weapp_dashboard_controller.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. 'use strict';
  2. const DashboardStats = require('../lib/dashboard_stats');
  3. module.exports = app => {
  4. class WeappDashboardController extends app.BaseController {
  5. async workspace(ctx) {
  6. try {
  7. const allAuditTenders = await ctx.service.ledgerAudit.getAuditTender(ctx.projectAccount.id);
  8. const allAuditStages = await ctx.service.stageAudit.getAuditStage(ctx.projectAccount.id);
  9. const allAuditChanges = await ctx.service.changeAudit.getAuditChange(ctx.projectAccount.id);
  10. const allAuditRevise = await ctx.service.reviseAudit.getAuditRevise(ctx.projectAccount.id);
  11. const allAuditMaterial = await ctx.service.materialAudit.getAuditMaterial(ctx.projectAccount.id);
  12. const allAuditAdvance = await ctx.service.advanceAudit.getAuditAdvance(ctx.projectAccount.id);
  13. const allAuditChangeProject = await ctx.service.changeProjectAudit.getAuditChangeProject(ctx.projectAccount.id);
  14. const allAuditChangeApply = await ctx.service.changeApplyAudit.getAuditChangeApply(ctx.projectAccount.id);
  15. const allAuditChangePlan = await ctx.service.changePlanAudit.getAuditChangePlan(ctx.projectAccount.id);
  16. const allAuditPayments = await ctx.service.paymentDetailAudit.getAuditPayment(ctx.projectAccount.id);
  17. const allAuditStageAss = await ctx.service.stageAuditAss.getAuditStageAss(ctx.projectAccount.id);
  18. const allAuditFinancials = await ctx.service.financialPayAudit.getAuditFinancial(ctx.projectAccount.id);
  19. const allAuditInspections = await ctx.service.qualityInspectionAudit.getAuditInspection(ctx.projectAccount.id);
  20. const allAuditSafeInspections = await ctx.service.safeInspectionAudit.getAuditInspection(ctx.projectAccount.id);
  21. const allAuditSafeStage = await ctx.service.safeStageAudit.getAuditStage(ctx.projectAccount.id);
  22. const allAuditPhasePay = await ctx.service.phasePayAudit.getAuditStage(ctx.projectAccount.id);
  23. const dashboardStatus = {
  24. all: 0,
  25. dashboard: 0,
  26. worry: 0,
  27. early: 0
  28. };
  29. const subProjects = await ctx.service.subProject.getSubProject(ctx.projectAccount.project_id, ctx.projectAccount.id, ctx.projectAccount.is_admin, true);
  30. for (const subProject of subProjects) {
  31. subProject.page_show = ctx.service.subProject.getPageShow(subProject.page_show);
  32. }
  33. await DashboardStats.auditSet(ctx, allAuditTenders, subProjects, dashboardStatus, 'ledger');
  34. await DashboardStats.auditSet(ctx, allAuditStages, subProjects, dashboardStatus, 'stage');
  35. await DashboardStats.auditSet(ctx, allAuditChanges, subProjects, dashboardStatus, 'change');
  36. await DashboardStats.auditSet(ctx, allAuditRevise, subProjects, dashboardStatus, 'revise');
  37. await DashboardStats.auditSet(ctx, allAuditMaterial, subProjects, dashboardStatus, 'material');
  38. await DashboardStats.auditSet(ctx, allAuditAdvance, subProjects, dashboardStatus, 'advance');
  39. await DashboardStats.auditSet(ctx, allAuditChangeProject, subProjects, dashboardStatus, 'changeProject');
  40. await DashboardStats.auditSet(ctx, allAuditChangeApply, subProjects, dashboardStatus, 'changeApply');
  41. await DashboardStats.auditSet(ctx, allAuditChangePlan, subProjects, dashboardStatus, 'changePlan');
  42. await DashboardStats.auditSet(ctx, allAuditPayments, subProjects, dashboardStatus, 'payment');
  43. await DashboardStats.auditSet(ctx, allAuditStageAss, subProjects, dashboardStatus, 'stageAss');
  44. await DashboardStats.auditSet(ctx, allAuditFinancials, subProjects, dashboardStatus, 'financial');
  45. await DashboardStats.auditSet(ctx, allAuditInspections, subProjects, dashboardStatus, 'inspection');
  46. await DashboardStats.auditSet(ctx, allAuditSafeInspections, subProjects, dashboardStatus, 'safeInspection');
  47. await DashboardStats.auditSet(ctx, allAuditSafeStage, subProjects, dashboardStatus, 'safeStage');
  48. await DashboardStats.auditSet(ctx, allAuditPhasePay, subProjects, dashboardStatus, 'phasePay');
  49. ctx.body = {
  50. code: 0,
  51. msg: '获取成功',
  52. data: {
  53. dashboardStatus: {
  54. all: dashboardStatus.all,
  55. dashboard: dashboardStatus.dashboard,
  56. worry: dashboardStatus.worry,
  57. early: dashboardStatus.early
  58. }
  59. }
  60. };
  61. } catch (error) {
  62. this.log(error);
  63. ctx.body = { code: -1, msg: error.toString(), data: null };
  64. }
  65. }
  66. }
  67. return WeappDashboardController;
  68. };