weapp_subp_controller.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. 'use strict';
  2. /**
  3. * weapp控制器
  4. *
  5. * @author Lan
  6. * @date 2025/12/22
  7. * @version
  8. */
  9. const measureType = require('../const/tender').measureType;
  10. module.exports = app => {
  11. class WeappSubpController extends app.BaseController {
  12. async subProjectList(ctx) {
  13. try {
  14. const list = await ctx.service.subProject.getSubProject(ctx.session.sessionProject.id, ctx.session.sessionUser.id, ctx.session.sessionUser.is_admin);
  15. ctx.body = {
  16. code: 0, msg: '', data: {
  17. list,
  18. },
  19. };
  20. } catch (error) {
  21. this.log(error);
  22. ctx.body = { code: -1, msg: '', data: null };
  23. }
  24. }
  25. async subProjectDetail(ctx) {
  26. try {
  27. const { id: subProjectId } = ctx.query;
  28. if (!subProjectId) {
  29. ctx.body = { code: -1, msg: '子项目ID不能为空', data: null };
  30. return;
  31. }
  32. const subProject = await ctx.service.subProject.getDataById(subProjectId);
  33. if (!subProject) {
  34. ctx.body = { code: -1, msg: '子项目不存在', data: null };
  35. return;
  36. }
  37. const pageShow = subProject.page_show ? JSON.parse(subProject.page_show) : {};
  38. const auditList = [];
  39. // 获取待审批的计量期列表
  40. const auditStages = await ctx.service.stageAudit.getAuditStageByWap(ctx.session.sessionUser.id, subProjectId);
  41. auditList.push(...(auditStages.map(item => ({ ...item, type: 'stage', subType: 'stage' }))));
  42. // 获取待审批的变更期
  43. const auditChanges = await ctx.service.changeAudit.getAuditChangeByWap(ctx.session.sessionUser.id, subProjectId);
  44. auditList.push(...(auditChanges.map(item => ({ ...item, type: 'change', subType: 'change' }))));
  45. // 获取待审批的变更立项
  46. if (pageShow.openChangeProject) {
  47. const changeProjects = await ctx.service.changeProjectAudit.getAuditChangeProjectByWap(ctx.session.sessionUser.id, subProjectId);
  48. auditList.push(...(changeProjects.map(item => ({ ...item, type: 'change', subType: 'changeProject' }))));
  49. }
  50. // 获取待审批的变更申请
  51. if (pageShow.openChangeApply) {
  52. const changeApplys = await ctx.service.changeApplyAudit.getAuditChangeApplyByWap(ctx.session.sessionUser.id, subProjectId);
  53. auditList.push(...(changeApplys.map(item => ({ ...item, type: 'change', subType: 'changeApply' }))));
  54. }
  55. // 获取待审批的变更方案
  56. if (pageShow.openChangePlan) {
  57. const changePlans = await ctx.service.changePlanAudit.getAuditChangePlanByWap(ctx.session.sessionUser.id, subProjectId);
  58. auditList.push(...(changePlans.map(item => ({ ...item, type: 'change', subType: 'changePlan' }))));
  59. }
  60. // 获取待审批的台账修订
  61. const ledgerRevises = await ctx.service.reviseAudit.getAuditReviseByWap(ctx.session.sessionUser.id, subProjectId);
  62. auditList.push(...(ledgerRevises.map(item => ({ ...item, type: 'revise', subType: 'revise' }))));
  63. // 获取待审批的预付款
  64. const auditAdvance = await ctx.service.advanceAudit.getAuditAdvanceByWap(ctx.session.sessionUser.id, subProjectId);
  65. auditList.push(...(auditAdvance.map(item => ({ ...item, type: 'advance', subType: 'advance' }))));
  66. // 获取待审批的材料调差
  67. if (pageShow.openMaterial) {
  68. const materialList = await ctx.service.materialAudit.getAuditMaterialByWap(ctx.session.sessionUser.id, subProjectId);
  69. auditList.push(...(materialList.map(item => ({ ...item, type: 'material', subType: 'material' }))));
  70. }
  71. // 获取待审批的质量巡检单
  72. if (pageShow.qualityInspection) {
  73. const qualityInspectionList = await ctx.service.qualityInspectionAudit.getAuditInspectionByWap(ctx.session.sessionUser.id, subProjectId);
  74. auditList.push(...(qualityInspectionList.map(item => ({ ...item, type: 'qualityInspection', subType: 'qualityInspection' }))));
  75. }
  76. // 获取待审批的安全巡检
  77. if (pageShow.safeInspection) {
  78. const safeInspectionList = await ctx.service.safeInspectionAudit.getAuditInspectionByWap(ctx.session.sessionUser.id, subProjectId);
  79. auditList.push(...(safeInspectionList.map(item => ({ ...item, type: 'safeInspection', subType: 'safeInspection' }))));
  80. }
  81. // 获取消息列表
  82. const msgList = await ctx.service.message.getMsgList(ctx.session.sessionProject.id, subProjectId, 1);
  83. ctx.body = {
  84. code: 0, msg: '', data: {
  85. auditList: ctx.helper._.orderBy(auditList, ['begin_time'], ['desc', 'asc']),
  86. msgList,
  87. },
  88. };
  89. } catch (error) {
  90. this.log(error);
  91. ctx.body = { code: -1, msg: '', data: null };
  92. }
  93. }
  94. }
  95. return WeappSubpController;
  96. };