Jelajahi Sumber

汇总表调整

MaiXinRong 2 tahun lalu
induk
melakukan
b1b0ed0000
1 mengubah file dengan 27 tambahan dan 18 penghapusan
  1. 27 18
      app/service/rpt_gather_memory.js

+ 27 - 18
app/service/rpt_gather_memory.js

@@ -314,7 +314,7 @@ module.exports = app => {
             }
             return [validStages, preStage, endStage];
         }
-        async _getCheckedZoneStages(tender, zone) {
+        async _getCustomZoneStages(tender, zone, timeType) {
             const times = zone.split(' - ');
             if (times.length !== 2) throw '选择的汇总周期无效';
             const beginTime = moment(times[0], 'YYYY-MM-DD');
@@ -323,13 +323,22 @@ module.exports = app => {
             const stages = await this._getValidStages(tender.id, 'asc'), validStages = [];
             let preStage, endStage;
             for (const stage of stages) {
-                if (stage.status !== auditConst.stage.status.checked) continue;
+                let sTime;
+                switch (timeType) {
+                    case 'final-checked':
+                        if (stage.status !== auditConst.stage.status.checked) continue;
 
-                // const finalAudit = await this.ctx.service.stageAudit.getLastestAuditor(stage.id, stage.times, stage.status);
-                // if (!finalAudit) continue;
+                        const finalAudit = await this.ctx.service.stageAudit.getLastestAuditor(stage.id, stage.times, stage.status);
+                        if (!finalAudit) continue;
 
-                // const sTime = moment(moment(finalAudit.end_time).format('YYYY-MM-DD'), 'YYYY-MM-DD');
-                const sTime = moment(stage.period ? (stage.period.split(' ~ ')[1] ? stage.period.split(' ~ ')[1] : stage.period)  : '', 'YYYY-MM-DD');
+                        sTime = moment(moment(finalAudit.end_time).format('YYYY-MM-DD'), 'YYYY-MM-DD');
+                        break;
+                    case 'period-end':
+                        sTime = moment(stage.period ? (stage.period.split(' ~ ')[1] ? stage.period.split(' ~ ')[1] : stage.period)  : '', 'YYYY-MM-DD');
+                        break;
+                    default:
+                        throw '配置参数错误';
+                }
                 stage.checked_day = sTime;
                 stage.checked_time = moment(sTime);
                 if (sTime.isBetween(beginTime, endTime, null, '[]')) {
@@ -486,8 +495,8 @@ module.exports = app => {
             const [stages, preStage, endStage] = await this._getOrderZoneStages(tender, stageZone);
             await this._gatherStagesData(completeData, tender, stages, preStage);
         }
-        async _gatherCheckedZoneData(tender, completeData, zone) {
-            const [stages, preStage, endStage] = await this._getCheckedZoneStages(tender, zone);
+        async _gatherCustomZoneData(tender, completeData, zone, timeType) {
+            const [stages, preStage, endStage] = await this._getCustomZoneStages(tender, zone, timeType);
             await this._gatherStagesData(completeData, tender, stages, preStage);
         }
         async _gatherMonthsData(tender, completeData, month) {
@@ -701,8 +710,8 @@ module.exports = app => {
                         case 'stage-zone':
                             await this._gatherIndexZoneData(tender, completeData, gsCustom.stage_zone);
                             break;
-                        case 'checked-zone':
-                            await this._gatherCheckedZoneData(tender, completeData, gsCustom.checked_zone);
+                        case 'custom-zone':
+                            await this._gatherCustomZoneData(tender, completeData, gsCustom.checked_zone);
                             break;
                     }
                     commonIndex++;
@@ -819,9 +828,9 @@ module.exports = app => {
             await this._getStagesTenderInfo(stages, info, preStage);
             this.resultTenderInfo.push(info);
         }
-        async _gatherCheckedZoneTenderInfo(tender, index, zone) {
+        async _gatherCustomZoneTenderInfo(tender, index, zone, timeType) {
             const info = await this._getBaseTenderInfo(tender);
-            const [stages, preStage, endStage] = await this._getCheckedZoneStages(tender, zone);
+            const [stages, preStage, endStage] = await this._getCustomZoneStages(tender, zone, timeType);
             await this._getStagesTenderInfo(stages, info, preStage);
             this.resultTenderInfo.push(info);
         }
@@ -894,8 +903,8 @@ module.exports = app => {
                         case 'stage-zone':
                             await this._gatherOrderZoneTenderInfo(tender, commonIndex, gsCustom.stage_zone);
                             break;
-                        case 'checked-zone':
-                            await this._gatherCheckedZoneTenderInfo(tender, commonIndex, gsCustom.checked_zone);
+                        case 'custom-zone':
+                            await this._gatherCustomZoneTenderInfo(tender, commonIndex, gsCustom.custom_zone, gsSetting.timeType);
                             break;
                     }
                     commonIndex++;
@@ -1016,9 +1025,9 @@ module.exports = app => {
             const [stages, preStage, endStage] = await this._getOrderZoneStages(tender, stageZone);
             await this._gatherStagesPay(completeData, tender, stages, preStage);
         }
-        async _gatherCheckedZoneStagePay(sTender, completeData, zone) {
+        async _gatherCustomZoneStagePay(sTender, completeData, zone, timeType) {
             const tender = await this.ctx.service.tender.getCheckTender(sTender.tid);
-            const [stages, preStage, endStage] = await this._getCheckedZoneStages(tender, zone);
+            const [stages, preStage, endStage] = await this._getCustomZoneStages(tender, zone, timeType);
             await this._gatherStagesPay(completeData, tender, stages, preStage);
         }
 
@@ -1078,8 +1087,8 @@ module.exports = app => {
                         case 'stage-zone':
                             await this._gatherOrderZoneStagePay(tender, completeData, gsCustom.stage_zone);
                             break;
-                        case 'checked-zone':
-                            await this._gatherCheckedZoneStagePay(tender, completeData, gsCustom.checked_zone);
+                        case 'custom-zone':
+                            await this._gatherCustomZoneStagePay(tender, completeData, gsCustom.custom_zone, gsSetting.timeType);
                             break;
                     }
                     commonIndex++;