|
@@ -408,22 +408,38 @@ module.exports = app => {
|
|
|
tender.cur_ratio = ctx.helper.mul(ctx.helper.div(tender.gather_tp, tender.sum, 2), 100);
|
|
|
tender.other_tp = ctx.helper.sub(ctx.helper.sub(tender.sum, tender.pre_gather_tp), tender.gather_tp);
|
|
|
tender.other_ratio = Math.max(0, 100 - tender.pre_ratio - tender.cur_ratio);
|
|
|
+ tender.end_yf_tp = ctx.helper.add(lastStage.yf_tp, lastStage.pre_yf_tp);
|
|
|
+ tender.end_sf_tp = ctx.helper.add(lastStage.sf_tp, lastStage.pre_sf_tp);
|
|
|
+ const change_tp = await ctx.service.change.getChangeTp(tender.id);
|
|
|
+ tender.undone_tp = ctx.helper.sub(ctx.helper.sub(ctx.helper.add(tender.total_price, change_tp), tender.end_contract_tp), tender.end_qc_tp);
|
|
|
if (lastStage.status === auditConst.stage.status.uncheck) {
|
|
|
const status_name = await this.ctx.service.projectAccount.getAccountInfoById(lastStage.user_id);
|
|
|
lastStage.status_users = status_name ? status_name.name : '';
|
|
|
lastStage.auditors = [];
|
|
|
} else {
|
|
|
- const status_name = await this.ctx.service.stageAudit.getAuditorByStatus(lastStage.id, lastStage.status, lastStage.times);
|
|
|
- lastStage.status_users = status_name ? status_name.name : '';
|
|
|
+ lastStage.status = lastStage.status === auditConst.stage.status.checkNoPre ? auditConst.stage.status.checking : lastStage.status;
|
|
|
+ let cur;
|
|
|
+ if (lastStage.status === auditConst.stage.status.checked) {
|
|
|
+ cur = await this.ctx.service.stageAudit.getLastestAuditor(lastStage.id, lastStage.times, auditConst.stage.status.checked);
|
|
|
+ } else if (lastStage.status === auditConst.stage.status.checking) {
|
|
|
+ cur = await this.ctx.service.stageAudit.getCurAuditor(lastStage.id, lastStage.times);
|
|
|
+ } else {
|
|
|
+ cur = await this.ctx.service.stageAudit.getAuditorByStatus(lastStage.id, lastStage.status, lastStage.times);
|
|
|
+ }
|
|
|
+ // const status_name = await this.ctx.service.stageAudit.getAuditorByStatus(lastStage.id, lastStage.status, lastStage.times);
|
|
|
+ lastStage.status_users = cur ? cur.name : '';
|
|
|
const times = lastStage.status === auditConst.stage.status.checkNo ? lastStage.times - 1 : lastStage.times;
|
|
|
- lastStage.auditors = await ctx.service.stageAudit.getAuditors(lastStage.id, times);
|
|
|
+ lastStage.auditors = await ctx.service.stageAudit.getFinalAuditGroup(lastStage.id, times);
|
|
|
}
|
|
|
} else {
|
|
|
if (tender.ledger_status !== auditConst.ledger.status.uncheck) {
|
|
|
const status_name = await this.ctx.service.ledgerAudit.getStatusName(tender.id, tender.ledger_times);
|
|
|
tender.status_users = status_name ? status_name.name : '';
|
|
|
const times = tender.status === auditConst.ledger.status.checkNo ? tender.times - 1 : tender.times;
|
|
|
- tender.auditors = await ctx.service.ledgerAudit.getAuditors(tender.id, times);
|
|
|
+ tender.auditors = await ctx.service.ledgerAudit.getFinalAuditGroup(tender.id, times);
|
|
|
+ } else {
|
|
|
+ const status_name = await this.ctx.service.projectAccount.getAccountInfoById(tender.user_id);
|
|
|
+ tender.status_users = status_name ? status_name.name : '';
|
|
|
}
|
|
|
}
|
|
|
const monthProgress = [];
|
|
@@ -454,9 +470,9 @@ module.exports = app => {
|
|
|
const categoryData = await ctx.service.category.getAllCategory(ctx.session.sessionProject.id);
|
|
|
|
|
|
// 变更图表数据
|
|
|
- const change_done_total = await ctx.service.change.getCountByStatus(tender.id, auditConst.filter.status.checked);
|
|
|
- const change_doing_total = await ctx.service.change.getCountByStatus(tender.id, auditConst.filter.status.checking);
|
|
|
- const change_uncheck_total = await ctx.service.change.getCountByStatus(tender.id, auditConst.filter.status.uncheck);
|
|
|
+ const change_done_total = await ctx.service.change.getCountByStatus2(tender.id, auditConst.filter.status.checked);
|
|
|
+ const change_doing_total = await ctx.service.change.getCountByStatus2(tender.id, auditConst.filter.status.checking);
|
|
|
+ const change_uncheck_total = await ctx.service.change.getCountByStatus2(tender.id, auditConst.filter.status.uncheck);
|
|
|
const change_status_total = [
|
|
|
{ num: change_uncheck_total, name: '待上报' },
|
|
|
{ num: change_doing_total, name: '审批中' },
|
|
@@ -477,10 +493,17 @@ module.exports = app => {
|
|
|
materialData = materials[0];
|
|
|
materialData.curAuditor = await ctx.service.materialAudit.getAuditorByStatus(materialData.id, materialData.status, materialData.times);
|
|
|
const times = materialData.status === auditConst.material.status.checkNo ? materialData.times - 1 : materialData.times;
|
|
|
- materialData.auditors = materialData.status === auditConst.material.status.uncheck ? [] : await ctx.service.materialAudit.getAuditors(materialData.id, times);
|
|
|
+ materialData.auditors = materialData.status === auditConst.material.status.uncheck ? [] : await ctx.service.materialAudit.getFinalAuditGroup(materialData.id, times);
|
|
|
}
|
|
|
// 修订完成数目
|
|
|
const reviseNum = await ctx.service.ledgerRevise.count({ tid: tender.id, status: auditConst.revise.status.checked });
|
|
|
+ // 计量完成概况
|
|
|
+ // tender.total_price
|
|
|
+ const stage_total = [
|
|
|
+ { num: tender.end_contract_tp ? tender.end_contract_tp : 0, name: '合同完成' },
|
|
|
+ { num: tender.end_qc_tp ? tender.end_qc_tp : 0, name: '变更完成' },
|
|
|
+ { num: tender.undone_tp ? tender.undone_tp : 0, name: '未完成' },
|
|
|
+ ];
|
|
|
const renderData = {
|
|
|
tenders,
|
|
|
categoryData,
|
|
@@ -498,6 +521,7 @@ module.exports = app => {
|
|
|
change_quality_total,
|
|
|
materialData,
|
|
|
reviseNum,
|
|
|
+ stage_total,
|
|
|
jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.tender.tenderInfo),
|
|
|
};
|
|
|
if (ctx.session.sessionUser.is_admin) {
|