소스 검색

修复指数法调差基数未勾选bug

ellisran 3 일 전
부모
커밋
093c1db689
2개의 변경된 파일6개의 추가작업 그리고 6개의 파일을 삭제
  1. 2 2
      app/service/material_exponent.js
  2. 4 4
      app/service/material_exponent_shard.js

+ 2 - 2
app/service/material_exponent.js

@@ -543,12 +543,12 @@ module.exports = app => {
             const stage_list = await ctx.service.stage.getStageMsgByStageId(stage_id);
             const stage_list = await ctx.service.stage.getStageMsgByStageId(stage_id);
             const calcBase = await ctx.service.stage.getMaterialCalcBase(stage_list, ctx.tender.info);
             const calcBase = await ctx.service.stage.getMaterialCalcBase(stage_list, ctx.tender.info);
             const old_ex_calc = ex_calc ? JSON.parse(ex_calc) : null;
             const old_ex_calc = ex_calc ? JSON.parse(ex_calc) : null;
-            const new_ex_calc = materialConst.ex_calc;
+            const new_ex_calc = this._.cloneDeep(materialConst.ex_calc);
             for (const bq of new_ex_calc) {
             for (const bq of new_ex_calc) {
                 const calc = this._.find(calcBase, { code: bq.code }) || this._.find(calcBase, { code: 'bqwc' });
                 const calc = this._.find(calcBase, { code: bq.code }) || this._.find(calcBase, { code: 'bqwc' });
                 const oldcalc = old_ex_calc ? this._.find(old_ex_calc, { code: bq.code }) : null;
                 const oldcalc = old_ex_calc ? this._.find(old_ex_calc, { code: bq.code }) : null;
                 bq.value = calc.value;
                 bq.value = calc.value;
-                bq.select = oldcalc ? oldcalc.select : false;
+                bq.select = oldcalc ? oldcalc.select : bq.select;
             }
             }
             await this.calcMaterialExTp(transaction, new_ex_calc, mid, decimal, rate);
             await this.calcMaterialExTp(transaction, new_ex_calc, mid, decimal, rate);
             return new_ex_calc;
             return new_ex_calc;

+ 4 - 4
app/service/material_exponent_shard.js

@@ -229,12 +229,12 @@ module.exports = app => {
             const stage_list = await ctx.service.stage.getStageMsgByStageId(stage_id);
             const stage_list = await ctx.service.stage.getStageMsgByStageId(stage_id);
             const calcBase = await ctx.service.stage.getMaterialCalcBase(stage_list, ctx.tender.info);
             const calcBase = await ctx.service.stage.getMaterialCalcBase(stage_list, ctx.tender.info);
             const old_ex_calc = ex_calc ? JSON.parse(ex_calc) : null;
             const old_ex_calc = ex_calc ? JSON.parse(ex_calc) : null;
-            const new_ex_calc = materialConst.ex_calc;
+            const new_ex_calc = this._.cloneDeep(materialConst.ex_calc);
             for (const bq of new_ex_calc) {
             for (const bq of new_ex_calc) {
                 const calc = this._.find(calcBase, { code: bq.code }) || this._.find(calcBase, { code: 'bqwc' });
                 const calc = this._.find(calcBase, { code: bq.code }) || this._.find(calcBase, { code: 'bqwc' });
                 const oldcalc = old_ex_calc ? this._.find(old_ex_calc, { code: bq.code }) : null;
                 const oldcalc = old_ex_calc ? this._.find(old_ex_calc, { code: bq.code }) : null;
                 bq.value = calc.value;
                 bq.value = calc.value;
-                bq.select = oldcalc ? oldcalc.select : false;
+                bq.select = oldcalc ? oldcalc.select : bq.select;
             }
             }
             await this.calcMaterialExTp(transaction, new_ex_calc, mid, msid, null, decimal, rate);
             await this.calcMaterialExTp(transaction, new_ex_calc, mid, msid, null, decimal, rate);
             return new_ex_calc;
             return new_ex_calc;
@@ -319,12 +319,12 @@ module.exports = app => {
                         old_ex_calc = JSON.parse(preMs.ex_calc);
                         old_ex_calc = JSON.parse(preMs.ex_calc);
                     }
                     }
                 }
                 }
-                const new_ex_calc = materialConst.ex_calc;
+                const new_ex_calc = this._.cloneDeep(materialConst.ex_calc);
                 for (const bq of new_ex_calc) {
                 for (const bq of new_ex_calc) {
                     const calc = this._.find(calcBase, { code: bq.code }) || this._.find(calcBase, { code: 'bqwc' });
                     const calc = this._.find(calcBase, { code: bq.code }) || this._.find(calcBase, { code: 'bqwc' });
                     const oldcalc = old_ex_calc ? this._.find(old_ex_calc, { code: bq.code }) : null;
                     const oldcalc = old_ex_calc ? this._.find(old_ex_calc, { code: bq.code }) : null;
                     bq.value = calc.value;
                     bq.value = calc.value;
-                    bq.select = oldcalc ? oldcalc.select : false;
+                    bq.select = oldcalc ? oldcalc.select : bq.select;
                 }
                 }
                 await this.calcMaterialExTp(transaction, new_ex_calc, mid, ms.id, null, decimal, rate);
                 await this.calcMaterialExTp(transaction, new_ex_calc, mid, ms.id, null, decimal, rate);
             }
             }