Просмотр исходного кода

导入处理单位工程汇总项,其他项目费和税金

zeweizhong 6 лет назад
Родитель
Сommit
b29a34c8af
1 измененных файлов с 27 добавлено и 23 удалено
  1. 27 23
      web/building_saas/main/js/models/importStandardInterface.js

+ 27 - 23
web/building_saas/main/js/models/importStandardInterface.js

@@ -406,7 +406,8 @@ const ImportXML = (() => {
                 let obj = {
                     rowCode: getValue(itemSrc, ['_行代号']),
                     name: getValue(itemSrc, ['_项目名称']),
-                    calcBase: getValue(itemSrc, ['_计算基础表达式'])
+                    calcBase: getValue(itemSrc, ['_计算基础表达式']),
+                    feeType: getValue(itemSrc, ['_费用类别'])
                 };
                 if (importFileKind === FileKind.tender) {
                     // obj.calcBase = getValue(itemSrc, ['_计算基础表达式']);
@@ -1064,26 +1065,29 @@ const ImportXML = (() => {
             );
             return isCoe ? AdjustType.coe : AdjustType.info;
         }
-        
-        let toMatches = [
-            {reg: /分部分项/, flag: fixedFlag.SUB_ENGINERRING},
-            {reg: /^措施项目/, flag: fixedFlag.MEASURE},
-            {reg: /技术措施/, flag: fixedFlag.CONSTRUCTION_TECH},
-            {reg: /组织措施/, flag: fixedFlag.CONSTRUCTION_ORGANIZATION},
-            {reg: /组织措施/, flag: fixedFlag.CONSTRUCTION_ORGANIZATION},
-            {reg: /安全文明/, flag: fixedFlag.SAFETY_CONSTRUCTION},
-            {reg: /其他项目/, flag: fixedFlag.OTHER},
-            {reg: /暂列金额/, flag: fixedFlag.PROVISIONAL},
-            {reg: /暂估价/, flag: fixedFlag.ESTIMATE},
-            {reg: /计日工/, flag: fixedFlag.DAYWORK},
-            {reg: /总承包服务/, flag: fixedFlag.TURN_KEY_CONTRACT},
-            {reg: /索赔(?:及|与|和)现场签证/, flag: fixedFlag.TURN_KEY_CONTRACT},
-            {reg: /规费/, flag: fixedFlag.CHARGE},
-            {reg: /税金/, flag: fixedFlag.TAX},
-            {reg: /增值税/, flag: fixedFlag.ADDED_VALUE_TAX},
-            {reg: /^附加税/, flag: fixedFlag.ADDITIONAL_TAX},
-            {reg: /环境保护税/, flag: fixedFlag.ENVIRONMENTAL_PROTECTION_TAX},
-            {reg: /(?:合\s*价)|(?:工程造价)/, flag: fixedFlag.ENGINEERINGCOST},
+
+        // 个软件公司确定了对应关系的其他项目、税金,使用费用类别进行匹配,其他按照名称关键字匹配
+        const matchRegs = [
+            {field: 'feeType', reg: /^1300$/, flag: fixedFlag.OTHER},
+            {field: 'feeType', reg: /^900$/, flag: fixedFlag.TAX},
+            {field: 'name', reg: /分部分项/, flag: fixedFlag.SUB_ENGINERRING},
+            {field: 'name', reg: /^措施项目/, flag: fixedFlag.MEASURE},
+            {field: 'name', reg: /技术措施/, flag: fixedFlag.CONSTRUCTION_TECH},
+            {field: 'name', reg: /组织措施/, flag: fixedFlag.CONSTRUCTION_ORGANIZATION},
+            {field: 'name', reg: /组织措施/, flag: fixedFlag.CONSTRUCTION_ORGANIZATION},
+            {field: 'name', reg: /安全文明/, flag: fixedFlag.SAFETY_CONSTRUCTION},
+           // {reg: /其他项目/, flag: fixedFlag.OTHER},
+            {field: 'name', reg: /暂列金额/, flag: fixedFlag.PROVISIONAL},
+            {field: 'name', reg: /暂估价/, flag: fixedFlag.ESTIMATE},
+            {field: 'name', reg: /计日工/, flag: fixedFlag.DAYWORK},
+            {field: 'name', reg: /总承包服务/, flag: fixedFlag.TURN_KEY_CONTRACT},
+            {field: 'name', reg: /索赔(?:及|与|和)现场签证/, flag: fixedFlag.TURN_KEY_CONTRACT},
+            {field: 'name', reg: /规费/, flag: fixedFlag.CHARGE},
+          //  {reg: /税金/, flag: fixedFlag.TAX},
+            {field: 'name', reg: /增值税/, flag: fixedFlag.ADDED_VALUE_TAX},
+            {field: 'name', reg: /^附加税/, flag: fixedFlag.ADDITIONAL_TAX},
+            {field: 'name', reg: /环境保护税/, flag: fixedFlag.ENVIRONMENTAL_PROTECTION_TAX},
+            {field: 'name', reg: /(?:合\s*价)|(?:工程造价)/, flag: fixedFlag.ENGINEERINGCOST}
         ];
         //处理单位工程费用汇总的清单,这一部分没有靠谱的规则,特殊处理并添加相关清单
         function setupFeeSummary(feeSummary, needfulTemplate) {
@@ -1119,8 +1123,8 @@ const ImportXML = (() => {
                 } else {
                     let isMatched = false;
                     //匹配固定项
-                    for (let match of toMatches) {
-                        if (!match.reg.test(feeBills.name)) {
+                    for (let match of matchRegs) {
+                        if (!match.reg.test(feeBills[match.field])) {
                             continue;
                         }
                         let findBills = needfulTemplate.find(nData => getFlag(nData) === match.flag);