|
|
@@ -860,7 +860,7 @@ let calcTools = {
|
|
|
} else if (calcTools.isGljRation(treeNode)) {
|
|
|
// result = treeNode.data.basePrice ? parseFloat(treeNode.data.basePrice).toDecimal(decimalObj.ration.unitPrice) : 0;
|
|
|
// 这里要取基价或市场价,但不能直接取basePrice,受限于项目属性的三个选项。
|
|
|
- if (baseName.includes("定额"))
|
|
|
+ if (baseName.includes("定额") || baseName.includes("指标"))
|
|
|
result = gljOprObj.getBasePrice(treeNode);
|
|
|
else
|
|
|
result = treeNode.data.marketUnitFee
|
|
|
@@ -1823,9 +1823,15 @@ let analyzer = {
|
|
|
});
|
|
|
for (var i = 0; i < atIDArr.length; i++) {
|
|
|
let patt = new RegExp(atIDArr[i]);
|
|
|
- let val =
|
|
|
- projectObj.project.calcProgram.compiledTemplates[template.ID]
|
|
|
- .compiledCalcItems[IDArr[i]].name;
|
|
|
+ let val = '';
|
|
|
+ try {
|
|
|
+ // 重庆养护2018的计算程序模板中ID=17重复,导到后面的模板覆盖前面的。此时后面的模板还没有健康的编译出来,这里调用会报错。
|
|
|
+ // 又不能直接改,受影响的旧项目有很多(3287个),这里加个保护。
|
|
|
+ val = projectObj.project.calcProgram.compiledTemplates[template.ID].compiledCalcItems[IDArr[i]].name;
|
|
|
+ }
|
|
|
+ catch (err) {
|
|
|
+ console.log(IDArr);
|
|
|
+ }
|
|
|
rst = rst.replace(patt, val);
|
|
|
}
|
|
|
rst = rst.replace(/\[/g, "");
|
|
|
@@ -2113,7 +2119,9 @@ class CalcProgram {
|
|
|
item.dispExprUser = analyzer.getDispExprUser(item.dispExpr, lc);
|
|
|
if (item.expression == "HJ") item.compiledExpr = "$CE.HJ()";
|
|
|
else item.compiledExpr = analyzer.getCompiledExpr(item.expression, lc);
|
|
|
- item.statement = analyzer.getStatement(item.expression, template);
|
|
|
+ if (item.statement === '') {
|
|
|
+ item.statement = analyzer.getStatement(item.expression, template);
|
|
|
+ }
|
|
|
|
|
|
if (item.feeRateID) {
|
|
|
let orgFeeRate = item.feeRate;
|