|
@@ -48,6 +48,10 @@ module.exports = app => {
|
|
|
const allAuditCostStageBook = await ctx.service.costStageAudit.getAuditStage('book', ctx.session.sessionUser.accountId);
|
|
const allAuditCostStageBook = await ctx.service.costStageAudit.getAuditStage('book', ctx.session.sessionUser.accountId);
|
|
|
const allAuditCostStageAnalysis = await ctx.service.costStageAudit.getAuditStage('analysis', ctx.session.sessionUser.accountId);
|
|
const allAuditCostStageAnalysis = await ctx.service.costStageAudit.getAuditStage('analysis', ctx.session.sessionUser.accountId);
|
|
|
const allAuditCostStageDuty = await ctx.service.costStageAudit.getAuditStage('duty', ctx.session.sessionUser.accountId);
|
|
const allAuditCostStageDuty = await ctx.service.costStageAudit.getAuditStage('duty', ctx.session.sessionUser.accountId);
|
|
|
|
|
+ // 获取所有待审批的合同列表
|
|
|
|
|
+ const allAuditContracts = await ctx.service.contractSpAudit.getAuditContract(ctx.session.sessionUser.accountId);
|
|
|
|
|
+ // 获取所有待审批的合同支付(回款)列表
|
|
|
|
|
+ const allAuditContractPays = await ctx.service.contractSpAudit.getAuditContractPay(ctx.session.sessionUser.accountId);
|
|
|
const pa = await ctx.service.projectAccount.getDataById(ctx.session.sessionUser.accountId);
|
|
const pa = await ctx.service.projectAccount.getDataById(ctx.session.sessionUser.accountId);
|
|
|
const auditShenpiTenders = await ctx.service.ledgerAudit.getDonesByAudit(ctx.session.sessionUser.accountId);
|
|
const auditShenpiTenders = await ctx.service.ledgerAudit.getDonesByAudit(ctx.session.sessionUser.accountId);
|
|
|
const auditShenpiStages = await ctx.service.stageAudit.getDonesByAudit(ctx.session.sessionUser.accountId);
|
|
const auditShenpiStages = await ctx.service.stageAudit.getDonesByAudit(ctx.session.sessionUser.accountId);
|
|
@@ -68,6 +72,8 @@ module.exports = app => {
|
|
|
const auditShenpiCostStageBook = await ctx.service.costStageAudit.getDonesByAudit('book', ctx.session.sessionUser.accountId);
|
|
const auditShenpiCostStageBook = await ctx.service.costStageAudit.getDonesByAudit('book', ctx.session.sessionUser.accountId);
|
|
|
const auditShenpiCostStageAnalysis = await ctx.service.costStageAudit.getDonesByAudit('analysis', ctx.session.sessionUser.accountId);
|
|
const auditShenpiCostStageAnalysis = await ctx.service.costStageAudit.getDonesByAudit('analysis', ctx.session.sessionUser.accountId);
|
|
|
const auditShenpiCostStageDuty = await ctx.service.costStageAudit.getDonesByAudit('duty', ctx.session.sessionUser.accountId);
|
|
const auditShenpiCostStageDuty = await ctx.service.costStageAudit.getDonesByAudit('duty', ctx.session.sessionUser.accountId);
|
|
|
|
|
+ const auditShenpiContracts = await ctx.service.contractSpAudit.getDonesByAudit(ctx.session.sessionUser.accountId);
|
|
|
|
|
+ const auditShenpiContractPays = await ctx.service.contractSpAudit.getDonesByAuditPay(ctx.session.sessionUser.accountId);
|
|
|
const dashboardStatus = {
|
|
const dashboardStatus = {
|
|
|
all: 0,
|
|
all: 0,
|
|
|
dashboard: 0,
|
|
dashboard: 0,
|
|
@@ -93,6 +99,9 @@ module.exports = app => {
|
|
|
costStageBook: 0,
|
|
costStageBook: 0,
|
|
|
costStageAnalysis: 0,
|
|
costStageAnalysis: 0,
|
|
|
costStageDuty: 0,
|
|
costStageDuty: 0,
|
|
|
|
|
+ contract: 0,
|
|
|
|
|
+ contractPay: 0,
|
|
|
|
|
+ contractReceipt: 0,
|
|
|
},
|
|
},
|
|
|
};
|
|
};
|
|
|
let noticeList = [];
|
|
let noticeList = [];
|
|
@@ -138,6 +147,13 @@ module.exports = app => {
|
|
|
noticeList.push(...ctx.helper.addKeyValue4ObjArray(spCostStageAnalysis, 'shenpi_type', 'costStageAnalysis'));
|
|
noticeList.push(...ctx.helper.addKeyValue4ObjArray(spCostStageAnalysis, 'shenpi_type', 'costStageAnalysis'));
|
|
|
const spCostStageDuty = subProject.page_show.cost ? ctx.helper._.filter(auditShenpiCostStageDuty, { spid: subProject.id }) : [];
|
|
const spCostStageDuty = subProject.page_show.cost ? ctx.helper._.filter(auditShenpiCostStageDuty, { spid: subProject.id }) : [];
|
|
|
noticeList.push(...ctx.helper.addKeyValue4ObjArray(spCostStageDuty, 'shenpi_type', 'costStageDuty'));
|
|
noticeList.push(...ctx.helper.addKeyValue4ObjArray(spCostStageDuty, 'shenpi_type', 'costStageDuty'));
|
|
|
|
|
+ const spContracts = subProject.page_show.openContract ? ctx.helper._.filter(auditShenpiContracts, { spid: subProject.id }) : [];
|
|
|
|
|
+ noticeList.push(...ctx.helper.addKeyValue4ObjArray(spContracts, 'shenpi_type', 'contract'));
|
|
|
|
|
+ const spContractPays = (subProject.page_show.openContractTenderShenpi || subProject.page_show.openContractSubProjectShenpi) ? ctx.helper._.filter(auditShenpiContractPays, { spid: subProject.id }) : [];
|
|
|
|
|
+ for (const pay of spContractPays) {
|
|
|
|
|
+ pay.shenpi_type = pay.contract_type === 2 ? 'contractReceipt' : 'contractPay';
|
|
|
|
|
+ }
|
|
|
|
|
+ noticeList.push(...spContractPays);
|
|
|
}
|
|
}
|
|
|
const noticeDayList = [];
|
|
const noticeDayList = [];
|
|
|
noticeList = ctx.helper._.orderBy(noticeList, ['shenpi_time'], ['desc']);
|
|
noticeList = ctx.helper._.orderBy(noticeList, ['shenpi_time'], ['desc']);
|
|
@@ -187,6 +203,20 @@ module.exports = app => {
|
|
|
dashboardShenpis.push(...auditCostStageAnalysis);
|
|
dashboardShenpis.push(...auditCostStageAnalysis);
|
|
|
const auditCostStageDuty = await this.auditSet(ctx, allAuditCostStageDuty, subProjects, dashboardStatus, 'costStageDuty');
|
|
const auditCostStageDuty = await this.auditSet(ctx, allAuditCostStageDuty, subProjects, dashboardStatus, 'costStageDuty');
|
|
|
dashboardShenpis.push(...auditCostStageDuty);
|
|
dashboardShenpis.push(...auditCostStageDuty);
|
|
|
|
|
+
|
|
|
|
|
+ // 处理合同审批数据,转换为统一格式
|
|
|
|
|
+ const auditContracts = await this.auditSet(ctx, allAuditContracts, subProjects, dashboardStatus, 'contract');
|
|
|
|
|
+ dashboardShenpis.push(...auditContracts);
|
|
|
|
|
+
|
|
|
|
|
+ // 处理合同支付/回款审批数据,转换为统一格式
|
|
|
|
|
+ const auditContractPays = await this.auditSet(ctx, allAuditContractPays, subProjects, dashboardStatus, 'contractPay');
|
|
|
|
|
+ // 将回款数据的shenpi_type改为contractReceipt
|
|
|
|
|
+ for (const pay of auditContractPays) {
|
|
|
|
|
+ if (pay.contract_type === 2) {
|
|
|
|
|
+ pay.shenpi_type = 'contractReceipt';
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ dashboardShenpis.push(...auditContractPays);
|
|
|
// console.log(ctx.helper._.orderBy(dashboardShenpis, ['start_audit', 'shenpi_time'], ['desc', 'desc']));
|
|
// console.log(ctx.helper._.orderBy(dashboardShenpis, ['start_audit', 'shenpi_time'], ['desc', 'desc']));
|
|
|
const projectData = await ctx.service.project.getDataById(ctx.session.sessionProject.id);
|
|
const projectData = await ctx.service.project.getDataById(ctx.session.sessionProject.id);
|
|
|
// 获取销售人员数据
|
|
// 获取销售人员数据
|
|
@@ -346,6 +376,15 @@ module.exports = app => {
|
|
|
if (!sp.page_show.cost) closeType = true;
|
|
if (!sp.page_show.cost) closeType = true;
|
|
|
calcTime = t.create_time;
|
|
calcTime = t.create_time;
|
|
|
break;
|
|
break;
|
|
|
|
|
+ case 'contract':
|
|
|
|
|
+ if (!sp.page_show.openContract) closeType = true;
|
|
|
|
|
+ calcTime = t.begin_time;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'contractPay':
|
|
|
|
|
+ case 'contractReceipt':
|
|
|
|
|
+ if (!sp.page_show.openContractTenderShenpi && !sp.page_show.openContractSubProjectShenpi) closeType = true;
|
|
|
|
|
+ calcTime = t.begin_time;
|
|
|
|
|
+ break;
|
|
|
default:
|
|
default:
|
|
|
closeType = true;
|
|
closeType = true;
|
|
|
}
|
|
}
|
|
@@ -361,7 +400,7 @@ module.exports = app => {
|
|
|
dashboardStatus.early += 1;
|
|
dashboardStatus.early += 1;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- const calcType = type === 'stageAss' ? 'stage' : type;
|
|
|
|
|
|
|
+ const calcType = type === 'stageAss' ? 'stage' : (type === 'contractReceipt' ? 'contractReceipt' : (type === 'contractPay' ? 'contractPay' : type));
|
|
|
dashboardStatus.shenpi[calcType] += 1;
|
|
dashboardStatus.shenpi[calcType] += 1;
|
|
|
t.shenpi_time = calcTime;
|
|
t.shenpi_time = calcTime;
|
|
|
t.shenpi_type = type;
|
|
t.shenpi_type = type;
|
|
@@ -399,6 +438,11 @@ module.exports = app => {
|
|
|
const auditCostStageBook = ctx.subProject.page_show.cost ? await ctx.service.costStageAudit.getAuditStage('book', ctx.session.sessionUser.accountId, ctx.subProject.id) : [];
|
|
const auditCostStageBook = ctx.subProject.page_show.cost ? await ctx.service.costStageAudit.getAuditStage('book', ctx.session.sessionUser.accountId, ctx.subProject.id) : [];
|
|
|
const auditCostStageAnalysis = ctx.subProject.page_show.cost ? await ctx.service.costStageAudit.getAuditStage('analysis', ctx.session.sessionUser.accountId, ctx.subProject.id) : [];
|
|
const auditCostStageAnalysis = ctx.subProject.page_show.cost ? await ctx.service.costStageAudit.getAuditStage('analysis', ctx.session.sessionUser.accountId, ctx.subProject.id) : [];
|
|
|
const auditCostStageDuty = ctx.subProject.page_show.cost ? await ctx.service.costStageAudit.getAuditStage('duty', ctx.session.sessionUser.accountId, ctx.subProject.id) : [];
|
|
const auditCostStageDuty = ctx.subProject.page_show.cost ? await ctx.service.costStageAudit.getAuditStage('duty', ctx.session.sessionUser.accountId, ctx.subProject.id) : [];
|
|
|
|
|
+ // 获取待审批的合同列表
|
|
|
|
|
+ const auditContracts = ctx.subProject.page_show.openContract ? await ctx.service.contractSpAudit.getAuditContract(ctx.session.sessionUser.accountId, ctx.subProject.id) : [];
|
|
|
|
|
+ // 获取待审批的合同支付(回款)列表
|
|
|
|
|
+ const auditContractPays = (ctx.subProject.page_show.openContractTenderShenpi || ctx.subProject.page_show.openContractSubProjectShenpi) ? await ctx.service.contractSpAudit.getAuditContractPay(ctx.session.sessionUser.accountId, ctx.subProject.id) : [];
|
|
|
|
|
+
|
|
|
const pa = await ctx.service.projectAccount.getDataById(ctx.session.sessionUser.accountId);
|
|
const pa = await ctx.service.projectAccount.getDataById(ctx.session.sessionUser.accountId);
|
|
|
const noticeList = await ctx.service.noticePush.getNotice(ctx.session.sessionProject.id, pa.id, ctx.subProject.id);
|
|
const noticeList = await ctx.service.noticePush.getNotice(ctx.session.sessionProject.id, pa.id, ctx.subProject.id);
|
|
|
const projectData = await ctx.service.project.getDataById(ctx.session.sessionProject.id);
|
|
const projectData = await ctx.service.project.getDataById(ctx.session.sessionProject.id);
|
|
@@ -432,6 +476,7 @@ module.exports = app => {
|
|
|
if (ctx.subProject.page_show.safeInspection) shenpi_count.push({ count: await ctx.service.safeInspectionAudit.getCountByChecked(ctx.session.sessionUser.accountId, ctx.subProject.id), name: '安全巡检' });
|
|
if (ctx.subProject.page_show.safeInspection) shenpi_count.push({ count: await ctx.service.safeInspectionAudit.getCountByChecked(ctx.session.sessionUser.accountId, ctx.subProject.id), name: '安全巡检' });
|
|
|
if (ctx.subProject.page_show.safePayment) shenpi_count.push({ count: await ctx.service.safeStageAudit.getCountByChecked(ctx.session.sessionUser.accountId, ctx.subProject.id), name: '安全计量' });
|
|
if (ctx.subProject.page_show.safePayment) shenpi_count.push({ count: await ctx.service.safeStageAudit.getCountByChecked(ctx.session.sessionUser.accountId, ctx.subProject.id), name: '安全计量' });
|
|
|
if (ctx.subProject.page_show.phasePay) shenpi_count.push({ count: await ctx.service.phasePayAudit.getCountByChecked(ctx.session.sessionUser.accountId, ctx.subProject.id), name: '合同支付' });
|
|
if (ctx.subProject.page_show.phasePay) shenpi_count.push({ count: await ctx.service.phasePayAudit.getCountByChecked(ctx.session.sessionUser.accountId, ctx.subProject.id), name: '合同支付' });
|
|
|
|
|
+ if (ctx.subProject.page_show.openContract) shenpi_count.push({ count: await ctx.service.contractSpAudit.getCountByChecked(ctx.session.sessionUser.accountId, ctx.subProject.id), name: '合同审批' });
|
|
|
if (ctx.subProject.page_show.cost) {
|
|
if (ctx.subProject.page_show.cost) {
|
|
|
shenpi_count.push({ count: await ctx.service.costStageAudit.getCountByChecked('ledger', ctx.session.sessionUser.accountId, ctx.subProject.id), name: '成本报审' });
|
|
shenpi_count.push({ count: await ctx.service.costStageAudit.getCountByChecked('ledger', ctx.session.sessionUser.accountId, ctx.subProject.id), name: '成本报审' });
|
|
|
shenpi_count.push({ count: await ctx.service.costStageAudit.getCountByChecked('book', ctx.session.sessionUser.accountId, ctx.subProject.id), name: '财务账面' });
|
|
shenpi_count.push({ count: await ctx.service.costStageAudit.getCountByChecked('book', ctx.session.sessionUser.accountId, ctx.subProject.id), name: '财务账面' });
|
|
@@ -459,6 +504,7 @@ module.exports = app => {
|
|
|
ctx.subProject.page_show.cost ? await ctx.service.costStageAudit.getLastEndTimeByChecked('book', ctx.session.sessionUser.accountId, ctx.subProject.id) : null,
|
|
ctx.subProject.page_show.cost ? await ctx.service.costStageAudit.getLastEndTimeByChecked('book', ctx.session.sessionUser.accountId, ctx.subProject.id) : null,
|
|
|
ctx.subProject.page_show.cost ? await ctx.service.costStageAudit.getLastEndTimeByChecked('analysis', ctx.session.sessionUser.accountId, ctx.subProject.id) : null,
|
|
ctx.subProject.page_show.cost ? await ctx.service.costStageAudit.getLastEndTimeByChecked('analysis', ctx.session.sessionUser.accountId, ctx.subProject.id) : null,
|
|
|
ctx.subProject.page_show.cost ? await ctx.service.costStageAudit.getLastEndTimeByChecked('duty', ctx.session.sessionUser.accountId, ctx.subProject.id) : null,
|
|
ctx.subProject.page_show.cost ? await ctx.service.costStageAudit.getLastEndTimeByChecked('duty', ctx.session.sessionUser.accountId, ctx.subProject.id) : null,
|
|
|
|
|
+ ctx.subProject.page_show.openContract ? await ctx.service.contractSpAudit.getLastEndTimeByChecked(ctx.session.sessionUser.accountId, ctx.subProject.id) : null,
|
|
|
];
|
|
];
|
|
|
const last_time = ctx.app._.max(shenpi_lastime);
|
|
const last_time = ctx.app._.max(shenpi_lastime);
|
|
|
// console.log(ctx.app._.max(shenpi_lastime), ctx.helper.calcDayNum(last_time));
|
|
// console.log(ctx.app._.max(shenpi_lastime), ctx.helper.calcDayNum(last_time));
|
|
@@ -483,6 +529,8 @@ module.exports = app => {
|
|
|
auditCostStageBook,
|
|
auditCostStageBook,
|
|
|
auditCostStageAnalysis,
|
|
auditCostStageAnalysis,
|
|
|
auditCostStageDuty,
|
|
auditCostStageDuty,
|
|
|
|
|
+ auditContracts,
|
|
|
|
|
+ auditContractPays,
|
|
|
shenpi_count,
|
|
shenpi_count,
|
|
|
total_count,
|
|
total_count,
|
|
|
last_day: ctx.helper.calcDayNum(last_time),
|
|
last_day: ctx.helper.calcDayNum(last_time),
|
|
@@ -502,6 +550,7 @@ module.exports = app => {
|
|
|
acSafeStage: auditConst.safeStage,
|
|
acSafeStage: auditConst.safeStage,
|
|
|
acPhasePay: auditConst.phasePay,
|
|
acPhasePay: auditConst.phasePay,
|
|
|
acCostStage: auditConst.costStage,
|
|
acCostStage: auditConst.costStage,
|
|
|
|
|
+ acContract: auditConst.contract,
|
|
|
noticeList,
|
|
noticeList,
|
|
|
pushType: auditConst.pushType,
|
|
pushType: auditConst.pushType,
|
|
|
projectData,
|
|
projectData,
|