Jelajahi Sumber

重庆养护,增加版本判断,旧项目仍保持脏数据,新项目过滤脏数据。

chenshilong 3 tahun lalu
induk
melakukan
ce6c669a5f

+ 1 - 0
web/building_saas/main/html/main.html

@@ -2113,6 +2113,7 @@
     <script type="text/javascript" src="/web/building_saas/main/js/models/labour_coe.js"></script>
     <script type="text/javascript" src="/public/calculate_util.js"></script>
     <script type="text/javascript" src="/web/building_saas/main/js/models/calc_program.js"></script>
+    <script type="text/javascript" src="/web/building_saas/main/js/models/calc_data_tool.js"></script>
     <script type="text/javascript" src="/web/building_saas/main/js/models/calc_base.js"></script>
     <script type="text/javascript" src="/web/building_saas/main/js/models/installation_fee.js"></script>
     <script type="text/javascript" src="/web/building_saas/main/js/views/calc_program_manage.js"></script>

File diff ditekan karena terlalu besar
+ 348 - 298
web/building_saas/main/js/models/calc_base.js


+ 19 - 0
web/building_saas/main/js/models/calc_data_tool.js

@@ -0,0 +1,19 @@
+function isLowVer(ver) {
+  var fileVer = projectObj.project.projectInfo.fileVer;
+  return fileVer <= ver;
+}
+
+// 某种情况下,数据库会产生大量的billsItemID值为“-1”的脏数据,这些数据的金额会参与计算影响正确性,此方法是过滤这些脏数据。
+function cleanDirtyData(nodeArr) {
+  if (nodeArr.length === 0) return nodeArr;
+
+  var rst = [];
+  var node1 = nodeArr[0];
+  if (node1.data && node1.data.type) {
+    rst = nodeArr.filter((node) => node.data.billsItemID !== "-1");
+  } else {
+    rst = nodeArr.filter((node) => node.billsItemID !== "-1");
+    // test: rst = nodeArr.filter((node) => parseFloat(node.quantity) < 10);
+  }
+  return rst;
+}

+ 9 - 2
web/building_saas/main/js/models/calc_program.js

@@ -2088,8 +2088,15 @@ class CalcProgram {
       }
       calcTools.checkFeeField(treeNode, ftObj);
 
-      // 数量、金额时,同步定额建安费
-      if (calcTools.isInheritFrom(treeNode, fixedFlag.CONSTRUCTION_INSTALL_FEE) || calcTools.isInheritFrom(treeNode, fixedFlag.ONE_SEVEN_BILLS)) {
+      // 数量、金额时,同步定额建安费。(3000703及以下版本,漏掉了根节点固定ID为19的判断。新版本补上。因影响计算结果,版本分隔)
+      var need = false;
+      if (isLowVer("3000703") && calcTools.isInheritFrom(treeNode, 1)) need = true;
+      if (
+        !isLowVer("3000703") &&
+        (calcTools.isInheritFrom(treeNode, fixedFlag.CONSTRUCTION_INSTALL_FEE) || calcTools.isInheritFrom(treeNode, fixedFlag.ONE_SEVEN_BILLS))
+      )
+        need = true;
+      if (need) {
         let ftObj2 = {
           fieldName: "rationCommon",
           unitFee: ftObj.unitFee,