|
@@ -1080,7 +1080,7 @@ let calcTools = {
|
|
else if (tender == tenderTypes.ttReverseRation)
|
|
else if (tender == tenderTypes.ttReverseRation)
|
|
return node.data.rationQuantityCoe;
|
|
return node.data.rationQuantityCoe;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
|
|
|
|
};
|
|
};
|
|
|
|
|
|
@@ -1866,7 +1866,10 @@ class CalcProgram {
|
|
// 取费方式为子目含量,清单行/列的XX单价应 =ROUND( ∑ROUND(定额XX单价*含量,清单单价精度),清单单价精度)
|
|
// 取费方式为子目含量,清单行/列的XX单价应 =ROUND( ∑ROUND(定额XX单价*含量,清单单价精度),清单单价精度)
|
|
if (me.project.property.billsCalcMode === leafBillGetFeeType.rationContent) {
|
|
if (me.project.property.billsCalcMode === leafBillGetFeeType.rationContent) {
|
|
buf = (buf + (ruf * parseFloatPlus(node.data.contain)).toDecimal(decimalObj.bills.unitPrice)).toDecimal(decimalObj.process);
|
|
buf = (buf + (ruf * parseFloatPlus(node.data.contain)).toDecimal(decimalObj.bills.unitPrice)).toDecimal(decimalObj.process);
|
|
- node.data.tenderContaion = (node.data.tenderQuantity / bq).toDecimal(decimalObj.process);
|
|
|
|
|
|
+ if (node.data.tenderQuantity)
|
|
|
|
+ node.data.tenderContaion = (node.data.tenderQuantity / bq).toDecimal(decimalObj.process)
|
|
|
|
+ else
|
|
|
|
+ node.data.tenderContaion = node.data.contain;
|
|
btuf = (btuf + (rtuf * parseFloatPlus(node.data.tenderContaion)).toDecimal(decimalObj.bills.unitPrice)).toDecimal(decimalObj.process);
|
|
btuf = (btuf + (rtuf * parseFloatPlus(node.data.tenderContaion)).toDecimal(decimalObj.bills.unitPrice)).toDecimal(decimalObj.process);
|
|
};
|
|
};
|
|
sum_rtf = (sum_rtf + rtf).toDecimal(decimalObj.process);
|
|
sum_rtf = (sum_rtf + rtf).toDecimal(decimalObj.process);
|
|
@@ -2140,7 +2143,7 @@ class CalcProgram {
|
|
calcNodes(me.project.mainTree.roots);
|
|
calcNodes(me.project.mainTree.roots);
|
|
me.calcFormulaNodes(changedNodes, tender);
|
|
me.calcFormulaNodes(changedNodes, tender);
|
|
|
|
|
|
- if (tender){
|
|
|
|
|
|
+ if (tender){
|
|
for(let node of projectObj.project.mainTree.items){
|
|
for(let node of projectObj.project.mainTree.items){
|
|
this.clearTenderCache(node);
|
|
this.clearTenderCache(node);
|
|
};
|
|
};
|
|
@@ -2498,7 +2501,7 @@ class CalcProgram {
|
|
let times = 300; // 逼近计算的极限次数。正常情况下“单位系数金额”列表中的结点耗尽即退出,这里指定轮数是最后保险阀,防止无限死循环。
|
|
let times = 300; // 逼近计算的极限次数。正常情况下“单位系数金额”列表中的结点耗尽即退出,这里指定轮数是最后保险阀,防止无限死循环。
|
|
let calcModel = 1; // 计算模式:1 精度优先(差值不接近0不停,直到结点用完或极限次数用完。时间长精度高)2 速度优先(达到指定差值范围即熔断逼近。时间短差值大)
|
|
let calcModel = 1; // 计算模式:1 精度优先(差值不接近0不停,直到结点用完或极限次数用完。时间长精度高)2 速度优先(达到指定差值范围即熔断逼近。时间短差值大)
|
|
let diffProp = 0.0001; // 计算模式=2(速度优先)时有效。 通过这个金额比例值计算可接受的最大差值D。差值D = 根结点金额 * diffProp
|
|
let diffProp = 0.0001; // 计算模式=2(速度优先)时有效。 通过这个金额比例值计算可接受的最大差值D。差值D = 根结点金额 * diffProp
|
|
- let isTest = false; // 测试
|
|
|
|
|
|
+ let isTest = true; // 测试
|
|
|
|
|
|
// 按指定的比例获取可接受的差值:如目标金额的万分之一。
|
|
// 按指定的比例获取可接受的差值:如目标金额的万分之一。
|
|
function getPropV(node){
|
|
function getPropV(node){
|
|
@@ -2737,7 +2740,7 @@ class CalcProgram {
|
|
})
|
|
})
|
|
|
|
|
|
};
|
|
};
|
|
-
|
|
|
|
|
|
+
|
|
};
|
|
};
|
|
|
|
|
|
// export default analyzer;
|
|
// export default analyzer;
|