| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- '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.session.sessionUser.id);
- const allAuditStages = await ctx.service.stageAudit.getAuditStage(ctx.session.sessionUser.id);
- const allAuditRevise = await ctx.service.reviseAudit.getAuditRevise(ctx.session.sessionUser.id);
- const allAuditMaterial = await ctx.service.materialAudit.getAuditMaterial(ctx.session.sessionUser.id);
- const allAuditAdvance = await ctx.service.advanceAudit.getAuditAdvance(ctx.session.sessionUser.id);
- const allAuditChanges = await ctx.service.changeAudit.getAuditChangeByWeapp(ctx.session.sessionUser.id, '', true);
- const allAuditChangeProject = await ctx.service.changeProjectAudit.getAuditChangeProject(ctx.session.sessionUser.id, '', true);
- const allAuditChangeApply = await ctx.service.changeApplyAudit.getAuditChangeApply(ctx.session.sessionUser.id, '', true);
- const allAuditChangePlan = await ctx.service.changePlanAudit.getAuditChangePlan(ctx.session.sessionUser.id, '', true);
- // const allAuditPayments = await ctx.service.paymentDetailAudit.getAuditPayment(ctx.session.sessionUser.id);
- // const allAuditStageAss = await ctx.service.stageAuditAss.getAuditStageAss(ctx.session.sessionUser.id);
- // const allAuditFinancials = await ctx.service.financialPayAudit.getAuditFinancial(ctx.session.sessionUser.id);
- const allAuditQualityInspections = await ctx.service.qualityInspectionAudit.getAuditInspection(ctx.session.sessionUser.id);
- const allAuditSafeInspections = await ctx.service.safeInspectionAudit.getAuditInspection(ctx.session.sessionUser.id);
- // const allAuditSafeStage = await ctx.service.safeStageAudit.getAuditStage(ctx.session.sessionUser.id);
- // const allAuditPhasePay = await ctx.service.phasePayAudit.getAuditStage(ctx.session.sessionUser.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.session.sessionUser.project_id, ctx.session.sessionUser.id, ctx.session.sessionUser.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.map(item => ({ ...item, type: 'ledger', subType: 'ledger' }))));
- 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');
- for (const item of auditChanges) {
- let sp = null;
- if (item.spid) {
- if (ctx.helper._.findIndex(subProjects, { id: item.spid }) !== -1) {
- sp = ctx.helper._.find(subProjects, { id: item.spid });
- } else {
- sp = await ctx.service.subProject.getDataById(item.spid);
- subProjects.push(sp);
- }
- }
- if (sp && sp.page_show) {
- if (sp.page_show.openChangeProject) {
- dashboardShenpis.push({ ...item, type: 'change', subType: 'change' });
- }
- }
- }
- const auditRevise = await DashboardStats.auditSet(ctx, allAuditRevise, subProjects, dashboardStatus, 'revise');
- dashboardShenpis.push(...(auditRevise.map(item => ({ ...item, type: 'revise', subType: 'revise' }))));
- const auditMaterial = await DashboardStats.auditSet(ctx, allAuditMaterial, subProjects, dashboardStatus, 'material');
- for (const item of auditMaterial) {
- let sp = null;
- if (item.spid) {
- if (ctx.helper._.findIndex(subProjects, { id: item.spid }) !== -1) {
- sp = ctx.helper._.find(subProjects, { id: item.spid });
- } else {
- sp = await ctx.service.subProject.getDataById(item.spid);
- subProjects.push(sp);
- }
- }
- if (sp && sp.page_show) {
- if (sp.page_show.openMaterial) {
- dashboardShenpis.push({ ...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');
- for (const item of auditChangeProject) {
- let sp = null;
- if (item.spid) {
- if (ctx.helper._.findIndex(subProjects, { id: item.spid }) !== -1) {
- sp = ctx.helper._.find(subProjects, { id: item.spid });
- } else {
- sp = await ctx.service.subProject.getDataById(item.spid);
- subProjects.push(sp);
- }
- }
- if (sp && sp.page_show) {
- if (sp.page_show.openChangeProject) {
- dashboardShenpis.push({ ...item, type: 'change', subType: 'changeProject' });
- }
- }
- }
- const auditChangeApply = await DashboardStats.auditSet(ctx, allAuditChangeApply, subProjects, dashboardStatus, 'changeApply');
- for (const item of auditChangeApply) {
- let sp = null;
- if (item.spid) {
- if (ctx.helper._.findIndex(subProjects, { id: item.spid }) !== -1) {
- sp = ctx.helper._.find(subProjects, { id: item.spid });
- } else {
- sp = await ctx.service.subProject.getDataById(item.spid);
- subProjects.push(sp);
- }
- }
- if (sp && sp.page_show) {
- if (sp.page_show.openChangeApply) {
- dashboardShenpis.push({ ...item, type: 'change', subType: 'changeApply' });
- }
- }
- }
- const auditChangePlan = await DashboardStats.auditSet(ctx, allAuditChangePlan, subProjects, dashboardStatus, 'changePlan');
- for (const item of auditChangePlan) {
- let sp = null;
- if (item.spid) {
- if (ctx.helper._.findIndex(subProjects, { id: item.spid }) !== -1) {
- sp = ctx.helper._.find(subProjects, { id: item.spid });
- } else {
- sp = await ctx.service.subProject.getDataById(item.spid);
- subProjects.push(sp);
- }
- }
- if (sp && sp.page_show) {
- if (sp.page_show.openChangePlan) {
- dashboardShenpis.push({ ...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;
- };
|