|
@@ -1,11 +1,16 @@
|
|
/**
|
|
/**
|
|
* Created by Tony on 2017/6/21.
|
|
* Created by Tony on 2017/6/21.
|
|
*/
|
|
*/
|
|
-let calcBaseCodeCollection = ["定额基价材料费", "定额基价机械费", "定额基价人工费"
|
|
|
|
|
|
+let calcBaseCodeCollection = ["定额基价人工费", "定额基价材料费", "定额基价机械费"
|
|
, "定额基价人工费(调整后)", "定额基价材料费(调整后)", "定额基价机械费(调整后)"
|
|
, "定额基价人工费(调整后)", "定额基价材料费(调整后)", "定额基价机械费(调整后)"
|
|
, "市场价格人工费", "市场价格材料费", "市场价格机械费"
|
|
, "市场价格人工费", "市场价格材料费", "市场价格机械费"
|
|
, "定额基价机上人工费", "主材费", "设备费"
|
|
, "定额基价机上人工费", "主材费", "设备费"
|
|
];
|
|
];
|
|
|
|
+let dummyCalcBaseCodeTypeCollection = [[2], [6], [64]
|
|
|
|
+ , [], [], []
|
|
|
|
+ , [], [], []
|
|
|
|
+ , [], [], []
|
|
|
|
+];
|
|
|
|
|
|
let executeObj = {
|
|
let executeObj = {
|
|
currentTpl : null,
|
|
currentTpl : null,
|
|
@@ -18,26 +23,42 @@ let executeObj = {
|
|
return rst;
|
|
return rst;
|
|
},
|
|
},
|
|
base: function(calcBaseCode) {
|
|
base: function(calcBaseCode) {
|
|
- let me = executeObj, rst = -1,
|
|
|
|
- idx = 10 + calcBaseCodeCollection.indexOf(calcBaseCode);
|
|
|
|
|
|
+ let me = executeObj, rst = 0,
|
|
|
|
+ idx = calcBaseCodeCollection.indexOf(calcBaseCode);
|
|
if (idx >= 0) {
|
|
if (idx >= 0) {
|
|
- //
|
|
|
|
- } else {
|
|
|
|
- //
|
|
|
|
|
|
+ if (dummyCalcBaseCodeTypeCollection[idx].length > 0) {
|
|
|
|
+ let tmpSum = 0;
|
|
|
|
+ for (let glj of me.currentRationItem.rationGljList) {
|
|
|
|
+ if (dummyCalcBaseCodeTypeCollection[idx].indexOf(glj["glj"]["gljType"]) >= 0) {
|
|
|
|
+ tmpSum += glj["glj"]["basePrice"] * glj["consumeAmt"];
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ rst = tmpSum;
|
|
|
|
+ } else {
|
|
|
|
+ //rst = 10 + idx; //随便给个数
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- rst = idx; //暂时返回值,测试用
|
|
|
|
|
|
+ //rst = idx; //暂时返回值,测试用
|
|
return rst;
|
|
return rst;
|
|
},
|
|
},
|
|
fee: function(feeID) {
|
|
fee: function(feeID) {
|
|
- let me = executeObj, rst = -1;
|
|
|
|
- //
|
|
|
|
- //rst = parseInt(feeID); //暂时返回值,测试用
|
|
|
|
- rst = 0.89;
|
|
|
|
|
|
+ let me = executeObj, rst = 0;
|
|
|
|
+ /*
|
|
|
|
+ for (let fee of me.currentFeeRateFile) {
|
|
|
|
+ if (fee.ID == feeID) {
|
|
|
|
+ rst = fee.rate;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ /*/
|
|
|
|
+ if (me.compiledFeeRateFile["fee_" + feeID]) rst = me.compiledFeeRateFile["fee_" + feeID].rate;
|
|
|
|
+ //*/
|
|
return rst;
|
|
return rst;
|
|
},
|
|
},
|
|
factor: function(factorCode) {
|
|
factor: function(factorCode) {
|
|
let me = executeObj;
|
|
let me = executeObj;
|
|
- //
|
|
|
|
|
|
+ let rst = 0.89; //暂时固定输出,测试用
|
|
|
|
+ return rst;
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
@@ -120,10 +141,20 @@ class calculation {
|
|
//console.log(item.compiledExpr);
|
|
//console.log(item.compiledExpr);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
+ let private_comile_feeFile = function() {
|
|
|
|
+ if (me.calFee) {
|
|
|
|
+ me.compiledFee = {};
|
|
|
|
+ for (let fee of me.calFee) {
|
|
|
|
+ me.compiledFee["fee_" + fee.ID] = fee;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+
|
|
if (me.calcTpl && me.calcTpl.calcItems && me.calcTpl.calcItems.length > 0) {
|
|
if (me.calcTpl && me.calcTpl.calcItems && me.calcTpl.calcItems.length > 0) {
|
|
me.calcTpl.compiledSeq = [];
|
|
me.calcTpl.compiledSeq = [];
|
|
me.compileAssistantObj = {};
|
|
me.compileAssistantObj = {};
|
|
//1. first round -> prepare
|
|
//1. first round -> prepare
|
|
|
|
+ private_comile_feeFile();
|
|
for (let i = 0; i < me.calcTpl.calcItems.length; i++) {
|
|
for (let i = 0; i < me.calcTpl.calcItems.length; i++) {
|
|
let item = me.calcTpl.calcItems[i];
|
|
let item = me.calcTpl.calcItems[i];
|
|
me.compileAssistantObj[item.code] = item;
|
|
me.compileAssistantObj[item.code] = item;
|
|
@@ -149,14 +180,12 @@ class calculation {
|
|
let $CE = executeObj;
|
|
let $CE = executeObj;
|
|
$CE.currentRationItem = $RATION;
|
|
$CE.currentRationItem = $RATION;
|
|
$CE.currentTpl = me;
|
|
$CE.currentTpl = me;
|
|
|
|
+ $CE.currentFeeRateFile = me.calFee;
|
|
|
|
+ $CE.compiledFeeRateFile = me.compiledFee;
|
|
for (let idx of me.calcTpl.compiledSeq) {
|
|
for (let idx of me.calcTpl.compiledSeq) {
|
|
let item = me.calcTpl.calcItems[idx];
|
|
let item = me.calcTpl.calcItems[idx];
|
|
item.execRst = eval(item.compiledExpr);
|
|
item.execRst = eval(item.compiledExpr);
|
|
}
|
|
}
|
|
- for (let idx of me.calcTpl.compiledSeq) {
|
|
|
|
- let item = me.calcTpl.calcItems[idx];
|
|
|
|
- console.log('code: ' + item.code + ' | expression: ' + item.compiledExpr + ' | result: ' + item.execRst);
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|