Browse Source

调差清单速度优化

laiguoran 3 years ago
parent
commit
6c04edf234

+ 1 - 1
app/controller/material_controller.js

@@ -397,7 +397,7 @@ module.exports = app => {
                 renderData.pos = await ctx.service.pos.getPosData({ tid: ctx.tender.id });
                 renderData.pos = await ctx.service.pos.getPosData({ tid: ctx.tender.id });
                 // 获取所选期数据并合并相加同类清单项
                 // 获取所选期数据并合并相加同类清单项
                 renderData.curLedgerData = await ctx.service.stageBills.getStagesData(ctx.tender.id, ctx.material.stage_id);
                 renderData.curLedgerData = await ctx.service.stageBills.getStagesData(ctx.tender.id, ctx.material.stage_id);
-                renderData.curPosData = await ctx.service.stagePos.getStagesData(ctx.tender.id, ctx.material.stage_id);
+                renderData.curPosData = await ctx.service.stagePos.getStagesData(ctx.tender.id, ctx.material.stage_id, 'list');
                 await this.layout('material/list.ejs', renderData, 'material/list_modal.ejs');
                 await this.layout('material/list.ejs', renderData, 'material/list_modal.ejs');
             } catch (err) {
             } catch (err) {
                 this.log(err);
                 this.log(err);

+ 4 - 0
app/public/js/material_list.js

@@ -160,12 +160,16 @@ $(document).ready(() => {
         return item.qc_qty || item.contract_qty
         return item.qc_qty || item.contract_qty
     });
     });
     calculateJiaCha(gclGatherData);
     calculateJiaCha(gclGatherData);
+    console.log(gclGatherData);
 
 
     // let gclGatherData = gclGatherModel.gatherGclData()
     // let gclGatherData = gclGatherModel.gatherGclData()
     // 获取项目节数据
     // 获取项目节数据
     function loadLeafXmjData(iGclRow) {
     function loadLeafXmjData(iGclRow) {
         const gcl = gclGatherData[iGclRow];
         const gcl = gclGatherData[iGclRow];
         if (gcl) {
         if (gcl) {
+            gcl.leafXmjs = gcl.leafXmjs.filter(item => {
+                return item.qc_qty || item.contract_qty
+            });
             for (const [index, xmj] of gcl.leafXmjs.entries()) {
             for (const [index, xmj] of gcl.leafXmjs.entries()) {
                 const jiacha = calcOneBQJC(xmj);
                 const jiacha = calcOneBQJC(xmj);
                 gcl.leafXmjs[index].jiacha = jiacha !== 0 ? ZhCalc.round(jiacha, 2) : null;
                 gcl.leafXmjs[index].jiacha = jiacha !== 0 ? ZhCalc.round(jiacha, 2) : null;

+ 3 - 2
app/service/stage_pos.js

@@ -663,9 +663,10 @@ module.exports = app => {
          * 多期清单数据整合 (材料调差调用)
          * 多期清单数据整合 (材料调差调用)
          * @param {Number} tid - 标段id
          * @param {Number} tid - 标段id
          * @param {String} stage_id_list - 期id列表
          * @param {String} stage_id_list - 期id列表
+         * @param {String} comefrom - 来源(部分不调用计量不获取)
          * @returns {Promise<void>}
          * @returns {Promise<void>}
          */
          */
-        async getStagesData(tid, stage_id_list) {
+        async getStagesData(tid, stage_id_list, comefrom = '') {
             const sids = stage_id_list.split(',');
             const sids = stage_id_list.split(',');
             const result = [];
             const result = [];
             for (const sid of sids) {
             for (const sid of sids) {
@@ -680,7 +681,7 @@ module.exports = app => {
                     if (rsp) {
                     if (rsp) {
                         rsp.contract_qty = this.ctx.helper.add(rsp.contract_qty, sp.contract_qty);
                         rsp.contract_qty = this.ctx.helper.add(rsp.contract_qty, sp.contract_qty);
                         rsp.qc_qty = this.ctx.helper.add(rsp.qc_qty, sp.qc_qty);
                         rsp.qc_qty = this.ctx.helper.add(rsp.qc_qty, sp.qc_qty);
-                    } else {
+                    } else if (!comefrom || (comefrom === 'list' && (sp.contract_qty || sp.qc_qty))) {
                         result.push({
                         result.push({
                             id: sp.id, tid: sp.tid, lid: sp.lid, pid: sp.pid,
                             id: sp.id, tid: sp.tid, lid: sp.lid, pid: sp.pid,
                             contract_qty: sp.contract_qty, qc_qty: sp.qc_qty,
                             contract_qty: sp.contract_qty, qc_qty: sp.qc_qty,