Bläddra i källkod

浙江杭州接口调整(造价汇总表 的 清单合计的顺序要依据导入的招标文件顺序)

Tony Kang 1 år sedan
förälder
incheckning
821a46c20f

+ 5 - 2
web/building_saas/standard_interface/export/zhejiang_hangzhou.js

@@ -771,6 +771,7 @@ INTERFACE_EXPORT = (() => {
         // 提取需要显示的数据
         const nodes = [];
         let oneSevenMin = -1, oneSevenMax = -1;
+        const isTotalChapterFirst = !!curTender.property.adhocInfoIsTotalChapterFirst;
         curTender.mainTree.roots.forEach(node => {
           nodes.push(node);
           if (node.getFlag() === fixedFlag.ONE_SEVEN_BILLS) {
@@ -780,8 +781,10 @@ INTERFACE_EXPORT = (() => {
           }
         });
         const tmpNode = nodes[0];
-        nodes.splice(0, 1);
-        nodes.splice(oneSevenMax, 0, tmpNode);
+        if (!isTotalChapterFirst) {
+          nodes.splice(0, 1);
+          nodes.splice(oneSevenMax, 0, tmpNode);
+        }
         // 杭州需求:第100章至700章清单合计放在最后
         let startIdx = 0;
         oneSevenMin--;

+ 10 - 0
web/building_saas/standard_interface/import/base.js

@@ -553,9 +553,19 @@ const INTERFACE_EXPORT_BASE = (() => {
       boqType: commonConstants.BOQType.BID_SUBMISSION, // 导入后必为投标
       basicInformation: mergeInfo(importData.info, templateData.basicInfo), // 将提取的基本信息数据与标准基本信息数据进行合并(目前只赋值,没有匹配到的不追加)
     };
+    const adhocInfo = importData.info.find(item => item.key === 'adhocInfoIsTotalChapterFirst');
+    let bkAdHocInfo = null;
+    if (adhocInfo) {
+      bkAdHocInfo = { key: adhocInfo.key, value: adhocInfo.value };
+    }
     delete importData.info;
     // 处理单位工程数据
     handleTenderData(importData.tenders, templateData, rationValuationData, engineeringLib, areaKey, onlyImportMatchBills);
+    if (bkAdHocInfo) {
+      importData.tenders.forEach(tender => {
+        tender.property[bkAdHocInfo.key] = bkAdHocInfo.value;
+      });
+    }
     console.log(importData);
   }
 

+ 12 - 0
web/building_saas/standard_interface/import/zhejiang_hangzhou.js

@@ -91,6 +91,7 @@ INTERFACE_IMPORT = (() => {
           { key: 'bidBond', value: getValue(ztbxx, ['_投标保证金']) },
           { key: 'projectManagers', value: getValue(ztbxx, ['_项目经理或项目负责人']) },
           { key: 'projectmanagersCertNo', value: getValue(ztbxx, ['_项目经理或项目负责人资格证号']) },
+          { key: 'adhocInfoIsTotalChapterFirst', value: getIsTotalFirst(projectSrc) },
         ];
         return info;
       }
@@ -176,6 +177,17 @@ INTERFACE_IMPORT = (() => {
           bills: setupBills(rootSrc, oneSevenSrc, dayWorkSrc)
         };
       }
+
+      function getIsTotalFirst(projectSrc) {
+        // 因业务需要,要记录导入的招标文件中'造价汇总表'的 '第100章至X00章清单合计'的顺序(在前(品茗的)或在后(同望的))
+        let rst = false;
+        const tenders = arrayValue(projectSrc, ['公路工程数据', '公路标段工程'])
+        const rootSrc = arrayValue(tenders[0], ['造价汇总表', '造价汇总明细']);
+        // const roots = arrayValue(rootSrc, ['造价汇总明细'])
+        const nameStr = `${getValue(rootSrc[0], ['_名称']) || ''}`;
+        rst = (nameStr.includes('00章至') && nameStr.includes('章清单合计'))
+        return rst;
+      }
   
       // 从xml对象提取需要的数据
       function setupProject(projectSrc) {