Ver código fonte

山东接口:清单编号

Tony Kang 2 anos atrás
pai
commit
e7fd6f7c67

+ 83 - 27
web/building_saas/standard_interface/export/shandong_common.js

@@ -107,36 +107,45 @@ INTERFACE_EXPORT = (() => {
     }
   
     const sectionNameMap = {
-      "清单 第100章 总则": true,
-      "清单 第200章 路基": true,
-      "清单 第300章 路面": true,
-      "清单 第400章 桥梁、涵洞": true,
-      "清单 第500章 隧道": true,
-      "清单 第600章 安全设施及预埋管线": true,
-      "清单 第700章 绿化及环境保护设施": true,
+      "清单第100章总则": true,
+      "清单第200章路基": true,
+      "清单第300章路面": true,
+      "清单第400章桥梁、涵洞": true,
+      "清单第500章隧道": true,
+      "清单第600章安全设施及预埋管线": true,
+      "清单第700章绿化及环境保护设施": true,
       // "清单 第800章 机电工程": true,
       // "清单 第900章 附属区房建工程":true
     }
   
     const ListCodeMap = {
       "第100章至700章清单":"1",
-      "清单 第100章 总则": "一",
-      "清单 第200章 路基": "二",
-      "清单 第300章 路面": "三",
-      "清单 第400章 桥梁、涵洞": "四",
-      "清单 第500章 隧道": "五",
-      "清单 第600章 安全设施及预埋管线": "六",
-      "清单 第700章 绿化及环境保护设施": "七",
+      // "清单 第100章 总则": "一",
+      // "清单 第200章 路基": "二",
+      // "清单 第300章 路面": "三",
+      // "清单 第400章 桥梁、涵洞": "四",
+      // "清单 第500章 隧道": "五",
+      // "清单 第600章 安全设施及预埋管线": "六",
+      // "清单 第700章 绿化及环境保护设施": "七",
       // "清单 第800章 机电工程": "八",
       // "清单 第900章 附属区房建工程": "九",
-      "已包含在清单合计中的材料、工程设备、专业工程暂估价合计": "10",
-      "清单合计减去材料、工程设备、专业工程暂估价合计": "11",
-      "计日工合计": "12",
-      "劳务": "12.1",
-      "材料": "12.2",
-      "机械": "12.3",
-      "暂列金额(不含计日工总额)": "13",
-      "投标报价": "14"
+      "清单第100章总则": "100",
+      "清单第200章路基": "200",
+      "清单第300章路面": "300",
+      "清单第400章桥梁、涵洞": "400",
+      "清单第500章隧道": "500",
+      "清单第600章安全设施及预埋管线": "600",
+      "清单第700章绿化及环境保护设施": "700",
+
+
+      "已包含在清单合计中的材料、工程设备、专业工程暂估价合计": "13",
+      "清单合计减去材料、工程设备、专业工程暂估价合计": "14",
+      "计日工合计": "15",
+      "劳务": "15.1",
+      "材料": "15.2",
+      "机械": "15.3",
+      "暂列金额(不含计日工总额)": "16",
+      "投标报价": "17"
     } 
   
   
@@ -147,6 +156,10 @@ INTERFACE_EXPORT = (() => {
       "04ACFZF":"3"
     }
   
+    const reg1 = new RegExp('\n', 'g'), reg2 = new RegExp('\r', 'g'),
+    reg3 = new RegExp(' ', 'g'), reg4 = new RegExp('\t', 'g')
+    ;
+
     function getBasePrice(projectGLJID, tenderProject) {
       let glj = _.find(tenderProject.projectGLJ.datas.gljList, {
         id: projectGLJID
@@ -167,7 +180,41 @@ INTERFACE_EXPORT = (() => {
       }
       return rate
     }
-  
+
+    function _billStrFilter(billStr) {
+      let rst = billStr;
+      if (typeof billStr === 'string') {
+        rst = billStr.replace(reg1, '').replace(reg2, '').replace(reg3, '').replace(reg4, '');
+      }
+      return rst;
+    }
+
+    function _chkAdhocChapterBillCode(billStr) {
+      let rst = false;
+      rst = (typeof billStr === 'string' && 
+              (billStr.indexOf('800章') >= 0 || billStr.indexOf('900章') >= 0 || billStr.indexOf('1000章') >= 0 || billStr.indexOf('1100章') >= 0 || billStr.indexOf('1200章') >= 0 )
+            )
+      return rst;
+    }
+
+    function _extractAdhocChapter(billStr) {
+      let rst = '';
+      if (typeof billStr === 'string') {
+        if (billStr.indexOf('800章') >= 0) {
+          rst = '800';
+        } else if (billStr.indexOf('900章') >= 0) {
+          rst = '900';
+        } else if (billStr.indexOf('1000章') >= 0) {
+          rst = '1000';
+        } else if (billStr.indexOf('1100章') >= 0) {
+          rst = '1100';
+        } else if (billStr.indexOf('1200章') >= 0) {
+          rst = '1200';
+        }
+      }
+      return rst;
+    }
+      
     function billNameChecking(bNode,projectName,fixedFlag) { 
       let data = bNode.data;
       let fail = null;
@@ -203,14 +250,17 @@ INTERFACE_EXPORT = (() => {
             pass = data.name == "投标报价";
             break;
           case fixedFlag.ONE_HUNDRED_BILLS:
-            pass = data.name == "清单 第100章 总则";
+            // pass = data.name == "清单 第100章 总则";
+            pass = _billStrFilter(data.name) == "清单第100章总则";
             break;
         }
       } else { 
         if (bNode.parent) { 
           const pdata = bNode.parent.data;
           if (pdata.flagsIndex && pdata.flagsIndex.fixed && pdata.flagsIndex.fixed.flag == fixedFlag.ONE_SEVEN_BILLS) { 
-            if (!sectionNameMap[data.name]) pass = false
+            if (!sectionNameMap[_billStrFilter(data.name)]) {
+              pass = _chkAdhocChapterBillCode(data.name);
+            }
           }
         }
       }
@@ -1864,8 +1914,14 @@ INTERFACE_EXPORT = (() => {
             let fail = billNameChecking(bNode,tenderProject.projectInfo.name,fixedFlag)
             //fail: { hint: '错误提示', type: '提示所属(基本就是单位工程名称)' }
             let ListCode = "";
-            if (ListCodeMap[data.name]) ListCode = ListCodeMap[data.name];
-            if (data.code && data.code != "") ListCode = data.code;
+            // if (ListCodeMap[data.name]) ListCode = ListCodeMap[data.name];
+            if (ListCodeMap[_billStrFilter(data.name)]) {
+              ListCode = ListCodeMap[_billStrFilter(data.name)];
+            } else if (_chkAdhocChapterBillCode(data.name)) {
+              ListCode = _extractAdhocChapter(data.name);
+            } else if (data.code && data.code != "") {
+              ListCode = data.code;
+            }
   
             let qtyFormula = data.feesIndex && data.feesIndex.common ? data.feesIndex.common.tenderTotalFee : "";
             //data.calcBase //data.calcBase ? cbParser.toFExpr(data.calcBase, tenderProject.mainTree.items) : "",