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

导入接口人材机匹配逻辑修改

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

+ 17 - 5
web/building_saas/main/js/models/importStandardInterface.js

@@ -1624,6 +1624,13 @@ const ImportXML = (() => {
             // 项目人材机customCode、code-原始数据映射,有的导入数据中,有一部分关联自生成材料号CX,有的关联代码...
             // 因此customCode、code都需要跟原始数据映射,通过customCode取不到数据的时候,通过orgCode获取
             let projectGLJMap = {};
+            // 代码映射
+            let customCodeMap = {};
+            // 原始代码映射
+            let originCodeMap = {};
+            function getGLJByMap(code) {
+                return customCodeMap[code] || originCodeMap[code] || null;
+            }
             //投标文件才需要导入定额等数据
             if (importFileKind === FileKind.tender) {
                 tenderData.gljSummary.forEach(pGLJ => {
@@ -1633,14 +1640,17 @@ const ImportXML = (() => {
                     pGLJ.type = pGLJ.type || 201;
                     pGLJ.shortName = pGLJ.shortName || '材';
                     //gljCodeMap[pGLJ.code] = pGLJ;
-                    projectGLJMap[pGLJ.customCode] = pGLJ;
-                    projectGLJMap[pGLJ.code] = pGLJ;
+                    //projectGLJMap[pGLJ.customCode] = pGLJ;
+                    //projectGLJMap[pGLJ.code] = pGLJ;
+                    customCodeMap[pGLJ.customCode] = pGLJ;
+                    originCodeMap[pGLJ.code] = pGLJ;
                 });
                 //处理项目人材机数据
                 tenderData.gljSummary.forEach(pGLJ => {
                     //组成物数据
                     pGLJ.ratios.forEach(ratio => {
-                        let matchData = projectGLJMap[ratio.code];
+                        //let matchData = projectGLJMap[ratio.code];
+                        let matchData = getGLJByMap(ratio.code);
                         ratio.code = matchData.code;
                         ratio.projectGLJID = pGLJ.id; //后端查找标准数据后,方便更新组成物数据
                         ratio.id = IDPlaceholder.ratio++;
@@ -1683,7 +1693,8 @@ const ImportXML = (() => {
                     if (typeof data.seq === 'undefined') {
                         data.seq = data.code;
                     }
-                    const projectGLJ = projectGLJMap[data.code];
+                    //const projectGLJ = projectGLJMap[data.code];
+                    const projectGLJ = getGLJByMap(data.code);
                     if (projectGLJ) {
                         projectGLJ[relatedType] = 1;
                         data.is_related = 1;
@@ -1755,7 +1766,8 @@ const ImportXML = (() => {
                         // 问题
                         //处理定额人材机,添加需要的数据
                         ration.rationGljs.forEach(rGLJ => {
-                            let matchGLJ = projectGLJMap[rGLJ.code];
+                            //let matchGLJ = projectGLJMap[rGLJ.code];
+                            let matchGLJ = getGLJByMap(rGLJ.code);
                             if (matchGLJ) {
                                 rGLJ.projectGLJID = matchGLJ.id;
                                 rGLJ.code = matchGLJ.code;