|
@@ -138,6 +138,15 @@ module.exports = app => {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ const changePlanList = await ctx.service.changePlan.getAllDataByCondition({ where: { tid: tender.id, status: audit.changePlan.status.checked } });
|
|
|
|
+ const allPlanCodes = await ctx.service.change.getAllDataByCondition({
|
|
|
|
+ columns: ['plan_code'],
|
|
|
|
+ where: {
|
|
|
|
+ tid: tender.id,
|
|
|
|
+ },
|
|
|
|
+ });
|
|
|
|
+ const apLists = allPlanCodes.length > 0 ? ctx.app._.uniq(ctx.app._.map(allPlanCodes, 'plan_code')) : [];
|
|
|
|
+
|
|
const renderData = {
|
|
const renderData = {
|
|
uid: ctx.session.sessionUser.accountId,
|
|
uid: ctx.session.sessionUser.accountId,
|
|
moment,
|
|
moment,
|
|
@@ -158,6 +167,8 @@ module.exports = app => {
|
|
tenderMenu: this.menu.tenderMenu,
|
|
tenderMenu: this.menu.tenderMenu,
|
|
preUrl: '/tender/' + tenderId,
|
|
preUrl: '/tender/' + tenderId,
|
|
tpUnit: ctx.tender.info.decimal.tp,
|
|
tpUnit: ctx.tender.info.decimal.tp,
|
|
|
|
+ changePlanList,
|
|
|
|
+ apLists,
|
|
};
|
|
};
|
|
await this.layout('change/index.ejs', renderData, 'change/modal.ejs');
|
|
await this.layout('change/index.ejs', renderData, 'change/modal.ejs');
|
|
}
|
|
}
|
|
@@ -259,11 +270,11 @@ module.exports = app => {
|
|
throw '当前未打开标段';
|
|
throw '当前未打开标段';
|
|
}
|
|
}
|
|
const data = JSON.parse(ctx.request.body.data);
|
|
const data = JSON.parse(ctx.request.body.data);
|
|
- if (!data.code || data.code === '' || !data.name || data.name === '') {
|
|
|
|
|
|
+ if (!data.code || data.code === '') {
|
|
throw '变更令号不能为空';
|
|
throw '变更令号不能为空';
|
|
}
|
|
}
|
|
|
|
|
|
- const change = await ctx.service.change.add(tenderId, ctx.session.sessionUser.accountId, data.code, data.name);
|
|
|
|
|
|
+ const change = await ctx.service.change.add(tenderId, ctx.session.sessionUser.accountId, data.code, data.plan_code, data.name);
|
|
|
|
|
|
ctx.body = { err: 0, msg: '', data: change };
|
|
ctx.body = { err: 0, msg: '', data: change };
|
|
} catch (err) {
|
|
} catch (err) {
|
|
@@ -3039,7 +3050,7 @@ module.exports = app => {
|
|
queryData: JSON.stringify(ctx.urlInfo.query),
|
|
queryData: JSON.stringify(ctx.urlInfo.query),
|
|
};
|
|
};
|
|
|
|
|
|
- const filter = JSON.parse(JSON.stringify(audit.changeApply.filter));
|
|
|
|
|
|
+ const filter = JSON.parse(JSON.stringify(audit.changePlan.filter));
|
|
filter.count = [];
|
|
filter.count = [];
|
|
filter.count[filter.status.pending] = await ctx.service.changePlan.getCountByStatus(tender.id, filter.status.pending);// await ctx.service.change.pendingDatas(tender.id, ctx.session.sessionUser.accountId);
|
|
filter.count[filter.status.pending] = await ctx.service.changePlan.getCountByStatus(tender.id, filter.status.pending);// await ctx.service.change.pendingDatas(tender.id, ctx.session.sessionUser.accountId);
|
|
filter.count[filter.status.uncheck] = await ctx.service.changePlan.getCountByStatus(tender.id, filter.status.uncheck);// await ctx.service.change.checkingDatas(tender.id, ctx.session.sessionUser.accountId);
|
|
filter.count[filter.status.uncheck] = await ctx.service.changePlan.getCountByStatus(tender.id, filter.status.uncheck);// await ctx.service.change.checkingDatas(tender.id, ctx.session.sessionUser.accountId);
|
|
@@ -3099,7 +3110,7 @@ module.exports = app => {
|
|
plan_username: tender_userInfo ? tender_userInfo.name : null,
|
|
plan_username: tender_userInfo ? tender_userInfo.name : null,
|
|
ruleType: codeRuleConst.ruleType[rule_type],
|
|
ruleType: codeRuleConst.ruleType[rule_type],
|
|
dealCode: ctx.tender.info.deal_info.dealCode,
|
|
dealCode: ctx.tender.info.deal_info.dealCode,
|
|
- auditConst: audit.changeApply,
|
|
|
|
|
|
+ auditConst: audit.changePlan,
|
|
ruleConst: codeRuleConst.measure,
|
|
ruleConst: codeRuleConst.measure,
|
|
changeConst,
|
|
changeConst,
|
|
changeApplyList,
|
|
changeApplyList,
|
|
@@ -3194,7 +3205,7 @@ module.exports = app => {
|
|
* @private
|
|
* @private
|
|
*/
|
|
*/
|
|
async _getChangePlanAuditViewData(ctx) {
|
|
async _getChangePlanAuditViewData(ctx) {
|
|
- const auditConst = audit.changeApply;
|
|
|
|
|
|
+ const auditConst = audit.changePlan;
|
|
const times = ctx.change.status === auditConst.status.checkNo ? ctx.change.times - 1 : ctx.change.times;
|
|
const times = ctx.change.status === auditConst.status.checkNo ? ctx.change.times - 1 : ctx.change.times;
|
|
ctx.change.user = await ctx.service.projectAccount.getAccountInfoById(ctx.change.uid);
|
|
ctx.change.user = await ctx.service.projectAccount.getAccountInfoById(ctx.change.uid);
|
|
ctx.change.auditHistory = [];
|
|
ctx.change.auditHistory = [];
|
|
@@ -3221,7 +3232,7 @@ module.exports = app => {
|
|
const fileList = await ctx.service.changePlanAtt.getAllChangePlanAtt(ctx.tender.id, ctx.change.id);
|
|
const fileList = await ctx.service.changePlanAtt.getAllChangePlanAtt(ctx.tender.id, ctx.change.id);
|
|
// 获取清单列表
|
|
// 获取清单列表
|
|
const changeList = await ctx.service.changePlanList.getList(ctx.change.id);
|
|
const changeList = await ctx.service.changePlanList.getList(ctx.change.id);
|
|
- if (ctx.change.status === audit.changeApply.status.checking || ctx.change.status === audit.changeApply.status.checked) {
|
|
|
|
|
|
+ if (ctx.change.status === audit.changePlan.status.checking || ctx.change.status === audit.changePlan.status.checked) {
|
|
const listAudits = await ctx.service.changePlanAudit.getAuditGroupByList(ctx.change.id, ctx.change.times);
|
|
const listAudits = await ctx.service.changePlanAudit.getAuditGroupByList(ctx.change.id, ctx.change.times);
|
|
ctx.change.listAudits = listAudits;
|
|
ctx.change.listAudits = listAudits;
|
|
for (const cl of changeList) {
|
|
for (const cl of changeList) {
|
|
@@ -3238,7 +3249,7 @@ module.exports = app => {
|
|
listRule: tender.c_plan_list_rule ? JSON.parse(tender.c_plan_list_rule) : { source: 1, rule: ['unit', 'unit_price'] },
|
|
listRule: tender.c_plan_list_rule ? JSON.parse(tender.c_plan_list_rule) : { source: 1, rule: ['unit', 'unit_price'] },
|
|
changeList,
|
|
changeList,
|
|
changeConst,
|
|
changeConst,
|
|
- auditConst: audit.changeApply,
|
|
|
|
|
|
+ auditConst: audit.changePlan,
|
|
fileList,
|
|
fileList,
|
|
whiteList,
|
|
whiteList,
|
|
tpUnit: ctx.change.decimal ? ctx.change.decimal.tp : ctx.tender.info.decimal.tp,
|
|
tpUnit: ctx.change.decimal ? ctx.change.decimal.tp : ctx.tender.info.decimal.tp,
|
|
@@ -3249,7 +3260,7 @@ module.exports = app => {
|
|
jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.change.plan_information),
|
|
jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.change.plan_information),
|
|
preUrl: '/tender/' + ctx.tender.id + '/change/plan/' + ctx.change.id + '/information',
|
|
preUrl: '/tender/' + ctx.tender.id + '/change/plan/' + ctx.change.id + '/information',
|
|
};
|
|
};
|
|
- if ((ctx.change.status === audit.changeApply.status.uncheck || ctx.change.status === audit.changeApply.status.checkNo) && (ctx.session.sessionUser.accountId === ctx.change.uid || ctx.tender.isTourist)) {
|
|
|
|
|
|
+ if ((ctx.change.status === audit.changePlan.status.uncheck || ctx.change.status === audit.changePlan.status.checkNo) && (ctx.session.sessionUser.accountId === ctx.change.uid || ctx.tender.isTourist)) {
|
|
// data.accountGroup = accountGroup;
|
|
// data.accountGroup = accountGroup;
|
|
// 获取所有项目参与者
|
|
// 获取所有项目参与者
|
|
const accountList = await ctx.service.projectAccount.getAllDataByCondition({
|
|
const accountList = await ctx.service.projectAccount.getAllDataByCondition({
|
|
@@ -3278,7 +3289,7 @@ module.exports = app => {
|
|
*/
|
|
*/
|
|
async addPlanAudit(ctx) {
|
|
async addPlanAudit(ctx) {
|
|
try {
|
|
try {
|
|
- const auditConst = audit.changeApply;
|
|
|
|
|
|
+ const auditConst = audit.changePlan;
|
|
const data = JSON.parse(ctx.request.body.data);
|
|
const data = JSON.parse(ctx.request.body.data);
|
|
const id = this.app._.toInteger(data.auditorId);
|
|
const id = this.app._.toInteger(data.auditorId);
|
|
if (isNaN(id) || id <= 0) {
|
|
if (isNaN(id) || id <= 0) {
|
|
@@ -3345,7 +3356,7 @@ module.exports = app => {
|
|
async uploadPlanFile(ctx) {
|
|
async uploadPlanFile(ctx) {
|
|
let stream;
|
|
let stream;
|
|
try {
|
|
try {
|
|
- const auditConst = audit.changeApply;
|
|
|
|
|
|
+ const auditConst = audit.changePlan;
|
|
// this._checkAdvanceFileCanModify(ctx);
|
|
// this._checkAdvanceFileCanModify(ctx);
|
|
const parts = this.ctx.multipart({
|
|
const parts = this.ctx.multipart({
|
|
autoFields: true,
|
|
autoFields: true,
|
|
@@ -3492,7 +3503,7 @@ module.exports = app => {
|
|
*/
|
|
*/
|
|
async startPlanAudit(ctx) {
|
|
async startPlanAudit(ctx) {
|
|
try {
|
|
try {
|
|
- const auditConst = audit.changeApply;
|
|
|
|
|
|
+ const auditConst = audit.changePlan;
|
|
// 检查权限等
|
|
// 检查权限等
|
|
if (!ctx.change) {
|
|
if (!ctx.change) {
|
|
throw '数据错误';
|
|
throw '数据错误';
|
|
@@ -3521,7 +3532,7 @@ module.exports = app => {
|
|
*/
|
|
*/
|
|
async checkPlanAudit(ctx) {
|
|
async checkPlanAudit(ctx) {
|
|
try {
|
|
try {
|
|
- const auditConst = audit.changeApply;
|
|
|
|
|
|
+ const auditConst = audit.changePlan;
|
|
if (!ctx.change || ctx.change.status !== auditConst.status.checking) {
|
|
if (!ctx.change || ctx.change.status !== auditConst.status.checking) {
|
|
throw '当前材料调差期数据有误';
|
|
throw '当前材料调差期数据有误';
|
|
}
|
|
}
|
|
@@ -3585,7 +3596,7 @@ module.exports = app => {
|
|
await ctx.service.changePlanList.saveDatas(data.updateData);
|
|
await ctx.service.changePlanList.saveDatas(data.updateData);
|
|
// 取所有工料表
|
|
// 取所有工料表
|
|
responseData.data = await ctx.service.changePlanList.getList(ctx.change.id);
|
|
responseData.data = await ctx.service.changePlanList.getList(ctx.change.id);
|
|
- if (ctx.change.status === audit.changeApply.status.checking || ctx.change.status === audit.changeApply.status.checked) {
|
|
|
|
|
|
+ if (ctx.change.status === audit.changePlan.status.checking || ctx.change.status === audit.changePlan.status.checked) {
|
|
const listAudits = await ctx.service.changePlanAudit.getAuditGroupByList(ctx.change.id, ctx.change.times);
|
|
const listAudits = await ctx.service.changePlanAudit.getAuditGroupByList(ctx.change.id, ctx.change.times);
|
|
for (const cl of responseData.data) {
|
|
for (const cl of responseData.data) {
|
|
const audit_amount = cl.audit_amount !== null && cl.audit_amount !== '' ? cl.audit_amount.split(',') : '';
|
|
const audit_amount = cl.audit_amount !== null && cl.audit_amount !== '' ? cl.audit_amount.split(',') : '';
|