|
@@ -760,19 +760,49 @@ module.exports = app => {
|
|
|
info.end_sf_tp = helper.add(stage.sf_tp, stage.pre_sf_tp);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- async _getStagesTenderInfo(stages, info) {
|
|
|
+ async _getStagesTenderInfo(stages, info, preStage) {
|
|
|
const helper = this.ctx.helper;
|
|
|
+ if (preStage) {
|
|
|
+ info.pre_contract_tp = helper.add(preStage.contract_tp, preStage.pre_contract_tp);
|
|
|
+ info.pre_qc_tp = helper.add(preStage.qc_tp, preStage.pre_qc_tp);
|
|
|
+ info.pre_gather_tp = helper.add(info.pre_contract_tp, info.pre_qc_tp);
|
|
|
+ info.pre_yf_tp = helper.add(preStage.yf_tp, preStage.pre_yf_tp);
|
|
|
+ }
|
|
|
+
|
|
|
for (const stage of stages) {
|
|
|
await this.ctx.service.stage.doCheckStage(stage);
|
|
|
await this.ctx.service.stage.checkStageGatherData(stage, this.ctx.session.sessionUser.is_admin);
|
|
|
|
|
|
+
|
|
|
info.contract_tp = helper.add(info.contract_tp, stage.contract_tp);
|
|
|
info.qc_tp = helper.add(info.qc_tp, stage.qc_tp);
|
|
|
|
|
|
info.yf_tp = helper.add(info.yf_tp, stage.yf_tp);
|
|
|
}
|
|
|
info.gather_tp = helper.add(info.contract_tp, info.qc_tp);
|
|
|
+ info.end_contract_tp = helper.add(info.pre_contract_tp, info.contract_tp);
|
|
|
+ info.end_qc_tp = helper.add(info.pre_qc_tp, info.qc_tp);
|
|
|
+ info.end_gather_tp = helper.add(info.pre_gather_tp, info.gather_tp);
|
|
|
+ info.end_yf_tp = helper.add(info.pre_yf_tp, info.yf_tp);
|
|
|
+ }
|
|
|
+
|
|
|
+ async _gatherZoneTenderInfo(tender, index, zone) {
|
|
|
+ const info = await this._getBaseTenderInfo(tender);
|
|
|
+ const [stages, preStage, endStage] = await this._getTimeZoneStages(tender, zone);
|
|
|
+ await this._getStagesTenderInfo(stages, info, preStage);
|
|
|
+ this.resultTenderInfo.push(info);
|
|
|
+ }
|
|
|
+ async _gatherOrderZoneTenderInfo(tender, index, stageZone) {
|
|
|
+ const info = await this._getBaseTenderInfo(tender);
|
|
|
+ const [stages, preStage, endStage] = await this._getOrderZoneStages(tender, stageZone);
|
|
|
+ await this._getStagesTenderInfo(stages, info, preStage);
|
|
|
+ this.resultTenderInfo.push(info);
|
|
|
+ }
|
|
|
+ async _gatherCheckedZoneTenderInfo(tender, index, zone) {
|
|
|
+ const info = await this._getBaseTenderInfo(tender);
|
|
|
+ const [stages, preStage, endStage] = await this._getCheckedZoneStages(tender, zone);
|
|
|
+ await this._getStagesTenderInfo(stages, info, preStage);
|
|
|
+ this.resultTenderInfo.push(info);
|
|
|
}
|
|
|
|
|
|
async _gatherMonthTenderInfo(tender, index, month, hasPre) {
|
|
@@ -782,7 +812,6 @@ module.exports = app => {
|
|
|
await this._getStageTenderInfo(stage, info);
|
|
|
this.resultTenderInfo.push(info);
|
|
|
}
|
|
|
-
|
|
|
async _gatherOrderTenderInfo(tender, index, order, hasPre) {
|
|
|
const info = await this._getBaseTenderInfo(tender);
|
|
|
const stages = await this._getValidStages(tender.id);
|
|
@@ -790,28 +819,12 @@ module.exports = app => {
|
|
|
await this._getStageTenderInfo(stage, info);
|
|
|
this.resultTenderInfo.push(info);
|
|
|
}
|
|
|
-
|
|
|
- async _gatherZoneTenderInfo(tender, index, zone) {
|
|
|
- const info = await this._getBaseTenderInfo(tender);
|
|
|
- const stages = await this._getTimeZoneStages(tender, zone);
|
|
|
- await this._getStagesTenderInfo(stages, info);
|
|
|
- this.resultTenderInfo.push(info);
|
|
|
- }
|
|
|
-
|
|
|
- async _gatherOrderZoneTenderInfo(tender, index, stageZone) {
|
|
|
- const info = await this._getBaseTenderInfo(tender);
|
|
|
- const stages = await this._getOrderZoneStages(tender, stageZone);
|
|
|
- await this._getStagesTenderInfo(stages, info);
|
|
|
- this.resultTenderInfo.push(info);
|
|
|
- }
|
|
|
-
|
|
|
async _gatherFinalTenderInfo(tender, index, hasPre) {
|
|
|
const info = await this._getBaseTenderInfo(tender);
|
|
|
const stages = await this._getValidStages(tender.id);
|
|
|
await this._getStageTenderInfo(stages[0], info);
|
|
|
this.resultTenderInfo.push(info);
|
|
|
}
|
|
|
-
|
|
|
async _gatherCheckedFinalTenderInfo(tender, index, hasPre) {
|
|
|
const info = await this._getBaseTenderInfo(tender);
|
|
|
const stages = await this._getCheckedStages(tender.id);
|
|
@@ -823,7 +836,6 @@ module.exports = app => {
|
|
|
const info = await this._getBaseTenderInfo(tender);
|
|
|
this.resultTenderInfo.push(info);
|
|
|
}
|
|
|
-
|
|
|
async _gatherSpecialTenderInfo(tender, sKey) {
|
|
|
const info = await this._getBaseTenderInfo(tender);
|
|
|
info.spec = sKey;
|
|
@@ -863,6 +875,9 @@ 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);
|
|
|
+ break;
|
|
|
}
|
|
|
commonIndex++;
|
|
|
} else {
|
|
@@ -932,12 +947,26 @@ module.exports = app => {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- async _gatherStagesPay(completeData, tender, stages) {
|
|
|
+ async _gatherStagesPay(completeData, tender, stages, preStage) {
|
|
|
const helper = this.ctx.helper;
|
|
|
completeData.id = tender.id;
|
|
|
completeData.name = tender.name;
|
|
|
|
|
|
+ const preDealPay = preStage ? await this.ctx.service.stagePay.getStagePays(preStage) : [];
|
|
|
+ for (const dp of preDealPay) {
|
|
|
+ dp.end_tp = helper.add(dp.pre_tp, dp.tp);
|
|
|
+ this._gatherPayRecord(dp, function (gatherData, sourceData) {
|
|
|
+ gatherData[completeData.prefix + 'id'] = tender.id;
|
|
|
+ gatherData[completeData.prefix + 'name'] = tender.name;
|
|
|
+
|
|
|
+ gatherData[completeData.prefix + 'pre_tp'] = sourceData.end_tp;
|
|
|
+ gatherData.s_pre_tp = helper.add(gatherData.s_pre_tp, sourceData.end_tp);
|
|
|
+
|
|
|
+ gatherData[completeData.prefix + 'end_tp'] = sourceData.end_tp;
|
|
|
+ gatherData.s_end_tp = helper.add(gatherData.s_end_tp, sourceData.end_tp);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
for (const stage of stages) {
|
|
|
await this.ctx.service.stage.doCheckStage(stage);
|
|
|
|
|
@@ -951,43 +980,47 @@ module.exports = app => {
|
|
|
|
|
|
gatherData[completeData.prefix + 'tp'] = helper.add(gatherData[completeData.prefix + 'tp'], sourceData.tp);
|
|
|
gatherData['s_' + 'tp'] = helper.add(gatherData['s_' + 'tp'], sourceData.tp);
|
|
|
+
|
|
|
+ gatherData[completeData.prefix + 'end_tp'] = helper.add(gatherData[completeData.prefix + 'end_tp'], sourceData.tp);
|
|
|
+ gatherData['s_' + 'end_tp'] = helper.add(gatherData['s_' + 'end_tp'], sourceData.tp);
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ async _gatherZoneStagePay(sTender, completeData, zone) {
|
|
|
+ const tender = await this.ctx.service.tender.getCheckTender(sTender.tid);
|
|
|
+ const [stages, preStage, endStage] = await this._getTimeZoneStages(tender, zone);
|
|
|
+ await this._gatherStagesPay(completeData, tender, stages, preStage);
|
|
|
+ }
|
|
|
+ async _gatherOrderZoneStagePay(sTender, completeData, stageZone) {
|
|
|
+ const tender = await this.ctx.service.tender.getCheckTender(sTender.tid);
|
|
|
+ const [stages, preStage, endStage] = await this._getOrderZoneStages(tender, stageZone);
|
|
|
+ await this._gatherStagesPay(completeData, tender, stages, preStage);
|
|
|
+ }
|
|
|
+ async _gatherCheckedZoneStagePay(sTender, completeData, zone) {
|
|
|
+ const tender = await this.ctx.service.tender.getCheckTender(sTender.tid);
|
|
|
+ const [stages, preStage, endStage] = await this._getCheckedZoneStages(tender, zone);
|
|
|
+ await this._gatherStagesPay(completeData, tender, stages, preStage);
|
|
|
+ }
|
|
|
+
|
|
|
async _gatherMonthStagePay(sTender, completeData, month, hasPre) {
|
|
|
const tender = await this.ctx.service.tender.getCheckTender(sTender.tid);
|
|
|
const stages = await this._getValidStages(tender.id);
|
|
|
const stage = this.ctx.helper._.find(stages, {s_time: month});
|
|
|
await this._gatherStagePay(completeData, tender, stage, hasPre);
|
|
|
}
|
|
|
-
|
|
|
async _gatherOrderStagePay(sTender, completeData, order, hasPre) {
|
|
|
const tender = await this.ctx.service.tender.getCheckTender(sTender.tid);
|
|
|
const stages = await this._getValidStages(tender.id);
|
|
|
const stage = this.ctx.helper._.find(stages, {order: order});
|
|
|
await this._gatherStagePay(completeData, tender, stage, hasPre);
|
|
|
}
|
|
|
-
|
|
|
- async _gatherZoneStagePay(sTender, completeData, zone) {
|
|
|
- const tender = await this.ctx.service.tender.getCheckTender(sTender.tid);
|
|
|
- const stages = await this._getTimeZoneStages(tender, zone);
|
|
|
- await this._gatherStagesPay(completeData, tender, stages);
|
|
|
- }
|
|
|
-
|
|
|
- async _gatherOrderZoneStagePay(sTender, completeData, stageZone) {
|
|
|
- const tender = await this.ctx.service.tender.getCheckTender(sTender.tid);
|
|
|
- const stages = await this._getOrderZoneStages(tender, stageZone)
|
|
|
- await this._gatherStagesPay(completeData, tender, stages);
|
|
|
- }
|
|
|
-
|
|
|
async _gatherFinalStagePay(sTender, completeData, hasPre) {
|
|
|
const tender = await this.ctx.service.tender.getCheckTender(sTender.tid);
|
|
|
const stages = await this._getValidStages(tender.id);
|
|
|
await this._gatherStagePay(completeData, tender, stages[0], hasPre);
|
|
|
}
|
|
|
-
|
|
|
async _gatherCheckedFinalStagePay(sTender, completeData, hasPre) {
|
|
|
const tender = await this.ctx.service.tender.getCheckTender(sTender.tid);
|
|
|
const stages = await this._getCheckedStages(tender.id);
|
|
@@ -1028,6 +1061,9 @@ 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);
|
|
|
+ break;
|
|
|
}
|
|
|
commonIndex++;
|
|
|
}
|