'use strict'; const DashboardStats = require('../lib/dashboard_stats'); 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 allAuditInspections = 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 }; 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); } await DashboardStats.auditSet(ctx, allAuditTenders, subProjects, dashboardStatus, 'ledger'); await DashboardStats.auditSet(ctx, allAuditStages, subProjects, dashboardStatus, 'stage'); await DashboardStats.auditSet(ctx, allAuditChanges, subProjects, dashboardStatus, 'change'); await DashboardStats.auditSet(ctx, allAuditRevise, subProjects, dashboardStatus, 'revise'); await DashboardStats.auditSet(ctx, allAuditMaterial, subProjects, dashboardStatus, 'material'); await DashboardStats.auditSet(ctx, allAuditAdvance, subProjects, dashboardStatus, 'advance'); await DashboardStats.auditSet(ctx, allAuditChangeProject, subProjects, dashboardStatus, 'changeProject'); await DashboardStats.auditSet(ctx, allAuditChangeApply, subProjects, dashboardStatus, 'changeApply'); await DashboardStats.auditSet(ctx, allAuditChangePlan, subProjects, dashboardStatus, 'changePlan'); await DashboardStats.auditSet(ctx, allAuditPayments, subProjects, dashboardStatus, 'payment'); await DashboardStats.auditSet(ctx, allAuditStageAss, subProjects, dashboardStatus, 'stageAss'); await DashboardStats.auditSet(ctx, allAuditFinancials, subProjects, dashboardStatus, 'financial'); await DashboardStats.auditSet(ctx, allAuditInspections, subProjects, dashboardStatus, 'inspection'); await DashboardStats.auditSet(ctx, allAuditSafeInspections, subProjects, dashboardStatus, 'safeInspection'); await DashboardStats.auditSet(ctx, allAuditSafeStage, subProjects, dashboardStatus, 'safeStage'); await DashboardStats.auditSet(ctx, allAuditPhasePay, subProjects, dashboardStatus, 'phasePay'); ctx.body = { code: 0, msg: '获取成功', data: { dashboardStatus: { all: dashboardStatus.all, dashboard: dashboardStatus.dashboard, worry: dashboardStatus.worry, early: dashboardStatus.early } } }; } catch (error) { this.log(error); ctx.body = { code: -1, msg: error.toString(), data: null }; } } } return WeappDashboardController; };