'use strict'; const DashboardStats = require('../lib/dashboard_stats'); const auditConst = require('../const/audit'); module.exports = app => { class WeappDashboardController extends app.BaseController { async workspace(ctx) { try { // const allAuditTenders = await ctx.service.ledgerAudit.getAuditTender(ctx.projectAccount.id); const allAuditStages = await ctx.service.stageAudit.getAuditStage(ctx.projectAccount.id); const allAuditChanges = await ctx.service.changeAudit.getAuditChange(ctx.projectAccount.id); // const allAuditRevise = await ctx.service.reviseAudit.getAuditRevise(ctx.projectAccount.id); const allAuditMaterial = await ctx.service.materialAudit.getAuditMaterial(ctx.projectAccount.id); const allAuditAdvance = await ctx.service.advanceAudit.getAuditAdvance(ctx.projectAccount.id); const allAuditChangeProject = await ctx.service.changeProjectAudit.getAuditChangeProject(ctx.projectAccount.id); const allAuditChangeApply = await ctx.service.changeApplyAudit.getAuditChangeApply(ctx.projectAccount.id); const allAuditChangePlan = await ctx.service.changePlanAudit.getAuditChangePlan(ctx.projectAccount.id); // const allAuditPayments = await ctx.service.paymentDetailAudit.getAuditPayment(ctx.projectAccount.id); // const allAuditStageAss = await ctx.service.stageAuditAss.getAuditStageAss(ctx.projectAccount.id); // const allAuditFinancials = await ctx.service.financialPayAudit.getAuditFinancial(ctx.projectAccount.id); const allAuditQualityInspections = await ctx.service.qualityInspectionAudit.getAuditInspection(ctx.projectAccount.id); const allAuditSafeInspections = await ctx.service.safeInspectionAudit.getAuditInspection(ctx.projectAccount.id); // const allAuditSafeStage = await ctx.service.safeStageAudit.getAuditStage(ctx.projectAccount.id); // const allAuditPhasePay = await ctx.service.phasePayAudit.getAuditStage(ctx.projectAccount.id); const dashboardStatus = { all: 0, dashboard: 0, worry: 0, early: 0, shenpi: { ledger: 0, stage: 0, change: 0, revise: 0, material: 0, advance: 0, changeProject: 0, changeApply: 0, changePlan: 0, payment: 0, financial: 0, inspection: 0, safeInspection: 0, safeStage: 0, phasePay: 0, }, }; const subProjects = await ctx.service.subProject.getSubProject(ctx.projectAccount.project_id, ctx.projectAccount.id, ctx.projectAccount.is_admin, true); for (const subProject of subProjects) { subProject.page_show = ctx.service.subProject.getPageShow(subProject.page_show); } const dashboardShenpis = []; // const auditTenders = await DashboardStats.auditSet(ctx, allAuditTenders, subProjects, dashboardStatus, 'ledger'); // dashboardShenpis.push(...auditTenders); const auditStages = await DashboardStats.auditSet(ctx, allAuditStages, subProjects, dashboardStatus, 'stage'); dashboardShenpis.push(...(auditStages.map(item => ({ ...item, type: 'stage', subType: 'stage' })))); const auditChanges = await DashboardStats.auditSet(ctx, allAuditChanges, subProjects, dashboardStatus, 'change'); dashboardShenpis.push(...(auditChanges.map(item => ({ ...item, type: 'change', subType: 'change' })))); // const auditRevise = await DashboardStats.auditSet(ctx, allAuditRevise, subProjects, dashboardStatus, 'revise'); // dashboardShenpis.push(...auditRevise); const auditMaterial = await DashboardStats.auditSet(ctx, allAuditMaterial, subProjects, dashboardStatus, 'material'); dashboardShenpis.push(...(auditMaterial.map(item => ({ ...item, type: 'material', subType: 'material' })))); const auditAdvance = await DashboardStats.auditSet(ctx, allAuditAdvance, subProjects, dashboardStatus, 'advance'); dashboardShenpis.push(...(auditAdvance.map(item => ({ ...item, type: 'advance', subType: 'advance' })))); const auditChangeProject = await DashboardStats.auditSet(ctx, allAuditChangeProject, subProjects, dashboardStatus, 'changeProject'); dashboardShenpis.push(...(auditChangeProject.map(item => ({ ...item, type: 'change', subType: 'changeProject' })))); const auditChangeApply = await DashboardStats.auditSet(ctx, allAuditChangeApply, subProjects, dashboardStatus, 'changeApply'); dashboardShenpis.push(...(auditChangeApply.map(item => ({ ...item, type: 'change', subType: 'changeApply' })))); const auditChangePlan = await DashboardStats.auditSet(ctx, allAuditChangePlan, subProjects, dashboardStatus, 'changePlan'); dashboardShenpis.push(...(auditChangePlan.map(item => ({ ...item, type: 'change', subType: 'changePlan' })))); // const auditPayments = await DashboardStats.auditSet(ctx, allAuditPayments, subProjects, dashboardStatus, 'payment'); // dashboardShenpis.push(...auditPayments); // const auditStageAss = await DashboardStats.auditSet(ctx, allAuditStageAss, subProjects, dashboardStatus, 'stageAss'); // dashboardShenpis.push(...auditStageAss); // const auditFinancials = await DashboardStats.auditSet(ctx, allAuditFinancials, subProjects, dashboardStatus, 'financial'); // dashboardShenpis.push(...auditFinancials); // const auditInspections = await DashboardStats.auditSet(ctx, allAuditInspections, subProjects, dashboardStatus, 'inspection'); // dashboardShenpis.push(...auditInspections); const auditQualityInspections = await DashboardStats.auditSet(ctx, allAuditQualityInspections, subProjects, dashboardStatus, 'inspection'); dashboardShenpis.push(...(auditQualityInspections.map(item => ({ ...item, type: 'qualityInspection', subType: 'qualityInspection' })))); const auditSafeInspections = await DashboardStats.auditSet(ctx, allAuditSafeInspections, subProjects, dashboardStatus, 'safeInspection'); dashboardShenpis.push(...(auditSafeInspections.map(item => ({ ...item, type: 'safeInspection', subType: 'safeInspection' })))); // const auditPhasePay = await DashboardStats.auditSet(ctx, allAuditPhasePay, subProjects, dashboardStatus, 'phasePay'); // dashboardShenpis.push(...auditPhasePay); const renderData = { code: 0, msg: '获取成功', data: { dashboardShenpis: ctx.helper._.orderBy(dashboardShenpis, ['start_audit', 'shenpi_time'], ['desc', 'asc']), dashboardStatus: { all: dashboardStatus.all, dashboard: dashboardStatus.dashboard, worry: dashboardStatus.worry, early: dashboardStatus.early, }, }, }; ctx.body = renderData; } catch (error) { this.log(error); ctx.body = { code: -1, msg: error.toString(), data: null }; } } } return WeappDashboardController; };