浏览代码

fix: 重庆接口文件工料机类型的定额导入导出问题

zhangweicheng 1 年之前
父节点
当前提交
915d8d40c0
共有 2 个文件被更改,包括 25 次插入1 次删除
  1. 11 1
      web/over_write/js/chongqing_2018_export.js
  2. 14 0
      web/over_write/js/chongqing_2018_import.js

+ 11 - 1
web/over_write/js/chongqing_2018_export.js

@@ -1434,6 +1434,16 @@ const XMLStandard = (function () {
                     return rationData.quantityEXP;
                 }
             }
+
+            function getRationGlj(ration,allRationGlj) {
+                if(ration.type == 3){//如果是工料机类型的定额,要组装一份需拟的定额工料机数据
+                    return [{code:ration.code,quantity:1,totalQuantity:ration.quantity}];
+                }else{
+                    let rationGlj = allRationGlj.filter(x => x.rationID === ration.ID);
+                    return rationGlj
+                }
+            }
+
             /*
              * 加载定额子目
              * @param {Array}rationData(清单项目下定额数据) {Array}rationGljData(定额的人材机数据) {Object}decimal(项目小数位数)
@@ -1514,7 +1524,7 @@ const XMLStandard = (function () {
                     //加载定额子目
                     rationData.sort((x, y) => x.serialNo - y.serialNo); //定额排序
                     for (let rData of rationData) {
-                        let rationGlj = allRationGlj.filter(x => x.rationID === rData.ID);
+                        let rationGlj = getRationGlj(rData,allRationGlj);
                         priceContent.children.push(loadRation(rData, rationGlj));
                     }
                 }

+ 14 - 0
web/over_write/js/chongqing_2018_import.js

@@ -1544,6 +1544,20 @@ const importXML = (() => {
                         let tempV = ration.quantity / bills.quantity;
                         ration.contain = isFinite(tempV) ? scMathUtil.roundForObj(tempV, 6) : '0';
                     }
+
+                    //如果之前处理是量价,但是又有定额工料机,而且只有一条名称,编号,单位又完全匹配,说明是工料机类型的定额,修改定额类型,去掉定额工料机
+                    if(ration.type===rationType.volumePrice && ration.rationGljs.length==1 ){
+                        let matchGLJ = getGLJByMap(ration.rationGljs[0].code); 
+                        if(matchGLJ && ration.code===matchGLJ.code && ration.name===matchGLJ.name&& ration.unit===matchGLJ.unit){
+                            ration.type=rationType.gljRation
+                            ration.subType=matchGLJ.type;
+                            ration.projectGLJID = matchGLJ.id;
+                            ration.rationGljs = [];
+                            
+                        }
+                    }
+
+
                     //处理定额人材机,添加需要的数据
                     ration.rationGljs.forEach(rGLJ => {
                         //let matchGLJ = projectGLJMap[rGLJ.code];