|
@@ -135,6 +135,16 @@ module.exports = app => {
|
|
|
}
|
|
|
// 获取待审批的变更期
|
|
|
const auditChanges = await ctx.service.changeAudit.getAuditChangeByWap(ctx.session.sessionUser.accountId);
|
|
|
+ // 获取待审批的变更立项
|
|
|
+ let auditChangeProjects = [];
|
|
|
+ if (ctx.session.sessionProject.page_show.openChangeProject) {
|
|
|
+ auditChangeProjects = await ctx.service.changeProjectAudit.getAuditChangeProjectByWap(ctx.session.sessionUser.accountId);
|
|
|
+ }
|
|
|
+ // 获取待审批的变更申请
|
|
|
+ let auditChangeApplys = [];
|
|
|
+ if (ctx.session.sessionProject.page_show.openChangeApply) {
|
|
|
+ auditChangeApplys = await ctx.service.changeApplyAudit.getAuditChangeApplyByWap(ctx.session.sessionUser.accountId);
|
|
|
+ }
|
|
|
// 获取待审批的变更方案
|
|
|
let auditChangePlans = [];
|
|
|
if (ctx.session.sessionProject.page_show.openChangePlan) {
|
|
@@ -151,6 +161,8 @@ module.exports = app => {
|
|
|
const renderData = {
|
|
|
auditStages,
|
|
|
auditChanges,
|
|
|
+ auditChangeProjects,
|
|
|
+ auditChangeApplys,
|
|
|
auditChangePlans,
|
|
|
auditRevise,
|
|
|
auditAdvance,
|
|
@@ -257,39 +269,6 @@ module.exports = app => {
|
|
|
p.end_ratio = ctx.helper.mul(ctx.helper.div(p.end_tp, tender.sum, 4), 100);
|
|
|
}
|
|
|
|
|
|
- // 变更令列表
|
|
|
- const changes = await ctx.service.change.getListByStatus(tender.id, 0, 0);
|
|
|
-
|
|
|
- for (const c of changes) {
|
|
|
- c.showApprovalBtn = false;
|
|
|
- c.curAuditors = await ctx.service.changeAudit.getAuditorsByStatus(c.cid, c.status, c.times);
|
|
|
- if (c.status === auditConst.change.status.checkNoPre) {
|
|
|
- c.curAuditors2 = await ctx.service.stageAudit.getAuditorsByStatus(c.cid, auditConst.change.status.checking, c.times);
|
|
|
- const curAudit = c.curAuditors2.find(function(x) {
|
|
|
- return x.uid === ctx.session.sessionUser.accountId;
|
|
|
- });
|
|
|
- if (curAudit && curAudit.status === auditConst.change.status.checking) {
|
|
|
- c.showApprovalBtn = true;
|
|
|
- }
|
|
|
- } else {
|
|
|
- const curAudit = c.curAuditors.find(function(x) {
|
|
|
- return x.uid === ctx.session.sessionUser.accountId;
|
|
|
- });
|
|
|
- if (curAudit && curAudit.status === auditConst.change.status.checking) {
|
|
|
- c.showApprovalBtn = true;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 变更令列表
|
|
|
- let changePlans = [];
|
|
|
- if (ctx.session.sessionProject.page_show.openChangePlan) {
|
|
|
- changePlans = await ctx.service.changePlan.getListByStatus(tender.id, 0, 0);
|
|
|
- for (const c of changePlans) {
|
|
|
- c.curAuditor = await ctx.service.changePlanAudit.getAuditorByStatus(c.id, c.status, c.times);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
// 台账修订列表
|
|
|
const revises = await ctx.service.ledgerRevise.getReviseList(ctx.tender.id);
|
|
|
for (const lr of revises) {
|
|
@@ -308,15 +287,10 @@ module.exports = app => {
|
|
|
const renderData = {
|
|
|
tender,
|
|
|
stages,
|
|
|
- changes,
|
|
|
- changePlans,
|
|
|
revises,
|
|
|
advanceList,
|
|
|
auditConst: auditConst.stage,
|
|
|
- auditChangeConst: auditConst.change,
|
|
|
- auditChangePlanConst: auditConst.changePlan,
|
|
|
auditReviseConst: auditConst.revise,
|
|
|
- changeConst,
|
|
|
advanceConst,
|
|
|
tpUnit: ctx.tender.info.decimal.tp,
|
|
|
monthProgress,
|
|
@@ -380,6 +354,106 @@ module.exports = app => {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 工程变更列表页
|
|
|
+ *
|
|
|
+ * @param {Object} ctx - egg全局变量
|
|
|
+ * @return {void}
|
|
|
+ */
|
|
|
+ async changeIndex(ctx) {
|
|
|
+ try {
|
|
|
+ // 变更令列表
|
|
|
+ const changes = await ctx.service.change.getListByStatus(ctx.tender.id, 0, 0);
|
|
|
+
|
|
|
+ for (const c of changes) {
|
|
|
+ c.showApprovalBtn = false;
|
|
|
+ c.curAuditors = await ctx.service.changeAudit.getAuditorsByStatus(c.cid, c.status, c.times);
|
|
|
+ if (c.status === auditConst.change.status.checkNoPre) {
|
|
|
+ c.curAuditors2 = await ctx.service.changeAudit.getAuditorsByStatus(c.cid, auditConst.change.status.checking, c.times);
|
|
|
+ const curAudit = c.curAuditors2.find(function(x) {
|
|
|
+ return x.uid === ctx.session.sessionUser.accountId;
|
|
|
+ });
|
|
|
+ if (curAudit && curAudit.status === auditConst.change.status.checking) {
|
|
|
+ c.showApprovalBtn = true;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ const curAudit = c.curAuditors.find(function(x) {
|
|
|
+ return x.uid === ctx.session.sessionUser.accountId;
|
|
|
+ });
|
|
|
+ if (curAudit && curAudit.status === auditConst.change.status.checking) {
|
|
|
+ c.showApprovalBtn = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 变更立项列表
|
|
|
+ let changeProjects = [];
|
|
|
+ if (ctx.session.sessionProject.page_show.openChangeProject) {
|
|
|
+ changeProjects = await ctx.service.changeProject.getListByStatus(ctx.tender.id, 0, 0);
|
|
|
+ for (const c of changeProjects) {
|
|
|
+ c.showApprovalBtn = false;
|
|
|
+ c.curAuditors = await ctx.service.changeProjectAudit.getAuditorsByStatus(c.id, c.status, c.times);
|
|
|
+ const curAudit = c.curAuditors.find(function(x) {
|
|
|
+ return x.uid === ctx.session.sessionUser.accountId;
|
|
|
+ });
|
|
|
+ if (curAudit && curAudit.status === auditConst.changeProject.status.checking) {
|
|
|
+ c.showApprovalBtn = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 变更申请列表
|
|
|
+ let changeApplys = [];
|
|
|
+ if (ctx.session.sessionProject.page_show.openChangeApply) {
|
|
|
+ changeApplys = await ctx.service.changeApply.getListByStatus(ctx.tender.id, 0, 0);
|
|
|
+ for (const c of changeApplys) {
|
|
|
+ c.showApprovalBtn = false;
|
|
|
+ c.curAuditors = await ctx.service.changeApplyAudit.getAuditorsByStatus(c.id, c.status, c.times);
|
|
|
+ const curAudit = c.curAuditors.find(function(x) {
|
|
|
+ return x.uid === ctx.session.sessionUser.accountId;
|
|
|
+ });
|
|
|
+ if (curAudit && curAudit.status === auditConst.changeApply.status.checking) {
|
|
|
+ c.showApprovalBtn = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 变更方案列表
|
|
|
+ let changePlans = [];
|
|
|
+ if (ctx.session.sessionProject.page_show.openChangePlan) {
|
|
|
+ changePlans = await ctx.service.changePlan.getListByStatus(ctx.tender.id, 0, 0);
|
|
|
+ for (const c of changePlans) {
|
|
|
+ c.showApprovalBtn = false;
|
|
|
+ c.curAuditors = await ctx.service.changePlanAudit.getAuditorsByStatus(c.id, c.status, c.times);
|
|
|
+ const curAudit = c.curAuditors.find(function(x) {
|
|
|
+ return x.uid === ctx.session.sessionUser.accountId;
|
|
|
+ });
|
|
|
+ if (curAudit && curAudit.status === auditConst.changePlan.status.checking) {
|
|
|
+ c.showApprovalBtn = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ const renderData = {
|
|
|
+ tender: ctx.tender,
|
|
|
+ changes,
|
|
|
+ changeProjects,
|
|
|
+ changeApplys,
|
|
|
+ changePlans,
|
|
|
+ auditChangeConst: auditConst.change,
|
|
|
+ auditChangeProjectConst: auditConst.changeProject,
|
|
|
+ auditChangeApplyConst: auditConst.changeApply,
|
|
|
+ auditChangePlanConst: auditConst.changePlan,
|
|
|
+ changeConst,
|
|
|
+ tpUnit: ctx.tender.info.decimal.tp,
|
|
|
+ auditType: auditConst.auditType,
|
|
|
+ };
|
|
|
+ await ctx.render('wap/shenpi_change_index.ejs', renderData);
|
|
|
+ } catch (err) {
|
|
|
+ this.log(err);
|
|
|
+ ctx.redirect('/wap/list');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 变更审批详细页
|
|
|
*
|
|
|
* @param {Object} ctx - egg全局变量
|
|
@@ -412,6 +486,60 @@ module.exports = app => {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 变更立项审批详细页
|
|
|
+ *
|
|
|
+ * @param {Object} ctx - egg全局变量
|
|
|
+ * @return {void}
|
|
|
+ */
|
|
|
+ async changeProject(ctx) {
|
|
|
+ try {
|
|
|
+ const tender = ctx.tender.data;
|
|
|
+ const change = ctx.change;
|
|
|
+ await ctx.service.changeProject.loadChangeAuditViewData(ctx.change);
|
|
|
+ const renderData = {
|
|
|
+ moment,
|
|
|
+ tender,
|
|
|
+ change,
|
|
|
+ auditConst: auditConst.changeProject,
|
|
|
+ changeConst,
|
|
|
+ tpUnit: ctx.tender.info.decimal.tp,
|
|
|
+ auditType,
|
|
|
+ };
|
|
|
+ await ctx.render('wap/shenpi_change_project.ejs', renderData);
|
|
|
+ } catch (err) {
|
|
|
+ this.log(err);
|
|
|
+ ctx.redirect('/wap/list');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 变更申请审批详细页
|
|
|
+ *
|
|
|
+ * @param {Object} ctx - egg全局变量
|
|
|
+ * @return {void}
|
|
|
+ */
|
|
|
+ async changeApply(ctx) {
|
|
|
+ try {
|
|
|
+ const tender = ctx.tender.data;
|
|
|
+ const change = ctx.change;
|
|
|
+ await ctx.service.changeApply.loadChangeAuditViewData(ctx.change);
|
|
|
+ const renderData = {
|
|
|
+ moment,
|
|
|
+ tender,
|
|
|
+ change,
|
|
|
+ auditConst: auditConst.changeApply,
|
|
|
+ changeConst,
|
|
|
+ tpUnit: ctx.tender.info.decimal.tp,
|
|
|
+ auditType,
|
|
|
+ };
|
|
|
+ await ctx.render('wap/shenpi_change_apply.ejs', renderData);
|
|
|
+ } catch (err) {
|
|
|
+ this.log(err);
|
|
|
+ ctx.redirect('/wap/list');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 变更方案审批详细页
|
|
|
*
|
|
|
* @param {Object} ctx - egg全局变量
|
|
@@ -420,22 +548,17 @@ module.exports = app => {
|
|
|
async changePlan(ctx) {
|
|
|
try {
|
|
|
const tender = ctx.tender.data;
|
|
|
- if (!ctx.session.sessionProject.page_show.openChangePlan) {
|
|
|
- throw '该功能已关闭';
|
|
|
- }
|
|
|
- const change = await ctx.service.changePlan.getDataById(ctx.params.cpid);
|
|
|
+ const change = ctx.change;
|
|
|
+ await ctx.service.changePlan.loadChangeAuditViewData(ctx.change);
|
|
|
const renderData = {
|
|
|
+ moment,
|
|
|
tender,
|
|
|
change,
|
|
|
- auditConst: auditConst.changePlan,
|
|
|
+ auditConst: auditConst.changeApply,
|
|
|
changeConst,
|
|
|
tpUnit: ctx.tender.info.decimal.tp,
|
|
|
+ auditType,
|
|
|
};
|
|
|
- const times = change.status !== auditConst.changePlan.status.checkNo ? change.times : change.times - 1;
|
|
|
- renderData.change.user = await ctx.service.projectAccount.getAccountInfoById(change.uid);
|
|
|
- renderData.change.auditors = await ctx.service.changePlanAudit.getAuditors(change.id, times);
|
|
|
- // 获取审批流程中左边列表
|
|
|
- renderData.change.auditors2 = await ctx.service.changePlanAudit.getAuditGroupByList(change.id, times);
|
|
|
await ctx.render('wap/shenpi_change_plan.ejs', renderData);
|
|
|
} catch (err) {
|
|
|
this.log(err);
|