|
@@ -290,7 +290,6 @@ module.exports = app => {
|
|
|
}
|
|
|
return validStages;
|
|
|
}
|
|
|
-
|
|
|
async _getOrderZoneStages (tender, zone) {
|
|
|
let [iBegin, iEnd] = zone.split(':');
|
|
|
iBegin = this.ctx.helper._.toInteger(iBegin) || 0;
|
|
@@ -303,6 +302,25 @@ module.exports = app => {
|
|
|
}
|
|
|
return validStages;
|
|
|
}
|
|
|
+ async _getCheckedZoneStages(tender, zone) {
|
|
|
+ const times = zone.split(' - ');
|
|
|
+ if (times.length !== 2) throw '选择的汇总周期无效';
|
|
|
+ const beginTime = moment(times[0], 'YYYY-MM-DD');
|
|
|
+ const endTime = moment(times[1], 'YYYY-MM-DD');
|
|
|
+
|
|
|
+ const stages = await this._getValidStages(tender.id), validStages = [];
|
|
|
+ for (const stage of stages) {
|
|
|
+ if (stage.status !== auditConst.stage.status.checked) continue;
|
|
|
+ const finalAudit = this.ctx.service.stageAudit.getLastestAuditor(stage.id, stage.times, stage.status);
|
|
|
+ if (!finalAudit) continue;
|
|
|
+
|
|
|
+ const sTime = moment(finalAudit.end_time);
|
|
|
+ if (sTime.isBetween(beginTime, endTime, null, '[]')) {
|
|
|
+ validStages.push(stage);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return validStages;
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 台账数据
|
|
@@ -410,6 +428,14 @@ module.exports = app => {
|
|
|
const stages = await this._getTimeZoneStages(tender, zone);
|
|
|
await this._gatherStagesData(completeData, tender, stages);
|
|
|
}
|
|
|
+ async _gatherIndexZoneData(tender, completeData, stageZone) {
|
|
|
+ const stages = await this._getOrderZoneStages(tender, stageZone);
|
|
|
+ await this._gatherStagesData(completeData, tender, stages);
|
|
|
+ }
|
|
|
+ async _gatherCheckedZoneData(tender, completeData, zone) {
|
|
|
+ const stages = await this._getCheckedZoneStages(tender, zone);
|
|
|
+ await this._gatherStagesData(completeData, tender, stages);
|
|
|
+ }
|
|
|
|
|
|
async _gatherStageData(completeData, tender, stage, hasPre) {
|
|
|
const helper = this.ctx.helper;
|
|
@@ -505,10 +531,6 @@ module.exports = app => {
|
|
|
const stage = this.ctx.helper._.find(stages, {order: index});
|
|
|
await this._gatherStageData(completeData, tender, stage, hasPre);
|
|
|
}
|
|
|
- async _gatherIndexZoneData(tender, completeData, stageZone) {
|
|
|
- const stages = await this._getOrderZoneStages(tender, stageZone);
|
|
|
- await this._gatherStagesData(completeData, tender, stages);
|
|
|
- }
|
|
|
async _gatherFinalData(tender, completeData, hasPre) {
|
|
|
const stages = await this._getValidStages(tender.id);
|
|
|
await this._gatherStageData(completeData, tender, stages[0], hasPre);
|
|
@@ -618,6 +640,9 @@ module.exports = app => {
|
|
|
case 'stage-zone':
|
|
|
await this._gatherIndexZoneData(tender, completeData, gsCustom.stage_zone);
|
|
|
break;
|
|
|
+ case 'checked-zone':
|
|
|
+ await this._gatherCheckedZoneData(tender, completeData, gsCustom.check_zone);
|
|
|
+ break;
|
|
|
}
|
|
|
commonIndex++;
|
|
|
} else {
|