Просмотр исходного кода

feat: 优化审核逻辑,过滤无效数据,增强数据查询准确性

lanjianrong 1 неделя назад
Родитель
Сommit
b627d5f56c

+ 16 - 8
app/controller/weapp_dashboard_controller.js

@@ -7,15 +7,23 @@ 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);
+                let allAuditTenders = await ctx.service.ledgerAudit.getAuditTender(ctx.session.sessionUser.id);
+                allAuditTenders = allAuditTenders.filter(item => item.ledger_status !== auditConst.ledger.status.checkNo);
+                let allAuditStages = await ctx.service.stageAudit.getAuditStage(ctx.session.sessionUser.id);
+                allAuditStages = allAuditStages.filter(item => item.sstatus !== auditConst.stage.status.checkNo);
+                let allAuditRevise = await ctx.service.reviseAudit.getAuditRevise(ctx.session.sessionUser.id);
+                allAuditRevise = allAuditRevise.filter(item => item.status !== auditConst.revise.status.checkNo);
                 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);
+                let allAuditAdvance = await ctx.service.advanceAudit.getAuditAdvance(ctx.session.sessionUser.id);
+                allAuditAdvance = allAuditAdvance.filter(item => item.mstatus !== auditConst.advance.status.checkNo);
+                let allAuditChanges = await ctx.service.changeAudit.getAuditChange(ctx.session.sessionUser.id);
+                allAuditChanges = allAuditChanges.filter(item => ![auditConst.change.status.checkNo, auditConst.change.status.revise].includes(item.cstatus));
+                let allAuditChangeProject = await ctx.service.changeProjectAudit.getAuditChangeProject(ctx.session.sessionUser.id);
+                allAuditChangeProject = allAuditChangeProject.filter(item => ![auditConst.changeProject.status.checkNo, auditConst.changeProject.status.revise].includes(item.mstatus));
+                let allAuditChangeApply = await ctx.service.changeApplyAudit.getAuditChangeApply(ctx.session.sessionUser.id);
+                allAuditChangeApply = allAuditChangeApply.filter(item => [auditConst.changeApply.status.checkNo, auditConst.changeApply.status.revise].includes(item.mstatus));
+                let allAuditChangePlan = await ctx.service.changePlanAudit.getAuditChangePlan(ctx.session.sessionUser.id);
+                allAuditChangePlan = allAuditChangePlan.filter(item => ![auditConst.changePlan.status.checkNo, auditConst.changePlan.status.revise].includes(item.mstatus));
                 // 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);

+ 9 - 9
app/controller/weapp_subp_controller.js

@@ -78,15 +78,15 @@ module.exports = app => {
                     auditList.push(...(materialList.map(item => ({ ...item, type: 'material', subType: 'material' }))));
                 }
                 // 获取待审批的质量巡检单
-                if (pageShow.qualityInspection) {
-                    const qualityInspectionList = await ctx.service.qualityInspectionAudit.getAuditInspectionByWap(ctx.session.sessionUser.id, subProjectId);
-                    auditList.push(...(qualityInspectionList.map(item => ({ ...item, type: 'qualityInspection', subType: 'qualityInspection' }))));
-                }
-                // 获取待审批的安全巡检
-                if (pageShow.safeInspection) {
-                    const safeInspectionList = await ctx.service.safeInspectionAudit.getAuditInspectionByWap(ctx.session.sessionUser.id, subProjectId);
-                    auditList.push(...(safeInspectionList.map(item => ({ ...item, type: 'safeInspection', subType: 'safeInspection' }))));
-                }
+                // if (pageShow.qualityInspection) {
+                //     const qualityInspectionList = await ctx.service.qualityInspectionAudit.getAuditInspectionByWap(ctx.session.sessionUser.id, subProjectId);
+                //     auditList.push(...(qualityInspectionList.map(item => ({ ...item, type: 'qualityInspection', subType: 'qualityInspection' }))));
+                // }
+                // // 获取待审批的安全巡检
+                // if (pageShow.safeInspection) {
+                //     const safeInspectionList = await ctx.service.safeInspectionAudit.getAuditInspectionByWap(ctx.session.sessionUser.id, subProjectId);
+                //     auditList.push(...(safeInspectionList.map(item => ({ ...item, type: 'safeInspection', subType: 'safeInspection' }))));
+                // }
                 // 获取消息列表
                 const msgList = await ctx.service.message.getMsgList(ctx.session.sessionProject.id, subProjectId, 1);
 

+ 12 - 9
app/controller/weapp_tender_controller.js

@@ -515,25 +515,28 @@ module.exports = app => {
             }
         }
 
-        async changeCheck(ctx) {
+        async changeCheck(ctx, curChangeMap) {
             try {
-                const type = ctx.request.query.type || ctx.request.body.type;
-                const curChangeMap = changeMap[type];
-
                 const subProject = await ctx.service.subProject.getDataById(ctx.tender.data.spid);
+                if (subProject.page_show && typeof subProject.page_show === 'string') {
+                    subProject.page_show = JSON.parse(subProject.page_show);
+                };
                 if (curChangeMap && curChangeMap.pageShowKey && !subProject.page_show[curChangeMap.pageShowKey]) {
+
                     throw '该功能已关闭';
                 }
                 const id = ctx.request.query.id || ctx.request.body.id;
                 if (!id) {
                     throw '您访问的变更数据不存在';
                 }
-                const condition = { [type === 'change' ? 'cid' : 'id']: id };
+                const condition = { [curChangeMap.idKey]: id };
                 const change = await ctx.service[curChangeMap.service].getDataByCondition(condition);
 
                 if (!change) throw '变更方案数据有误';
                 // 读取原报、审核人数据
                 await ctx.service[curChangeMap.service].loadChangeUser(change);
+                await ctx.service[curChangeMap.service].loadChangeAuditViewData(change);
+
                 // decimal小数位设置
                 change.decimal = change.decimal ? JSON.parse(change.decimal) : { tp: ctx.tender.info.decimal.tp, up: ctx.tender.info.decimal.up, precision: ctx.tender.info.precision };
 
@@ -542,6 +545,7 @@ module.exports = app => {
                 const accountId = ctx.session.sessionUser.accountId,
                     shareIds = [];
                 const permission = ctx.session.sessionUser.permission;
+                const type = ctx.request.query.type || ctx.request.body.type;
                 const status = auditConst[type].status;
 
                 if (accountId === change.uid) { // 原报
@@ -549,6 +553,7 @@ module.exports = app => {
                     change.filePermission = true;
                 } else if (change.auditorIds.indexOf(accountId) !== -1) { // 审批人
                     if (change.status === status.uncheck) {
+
                         throw '您无权查看该数据';
                     }
                     // change.readOnly = change.status !== status.checking || accountId !== change.curAuditor.aid;
@@ -574,6 +579,7 @@ module.exports = app => {
                 } else { // 其他不可见
                     throw '您无权查看该数据';
                 }
+
                 // 调差的readOnly 指表格和页面只能看不能改,和审批无关
                 change.readOnly = !((change.status === status.uncheck || change.status === status.checkNo || change.status === status.revise) && accountId === change.uid);
                 change.shenpiPower = change.status === status.checking && change.curAuditorIds.indexOf(accountId) !== -1;
@@ -581,17 +587,14 @@ module.exports = app => {
                 await ctx.service[curChangeMap.service].doCheckChangeCanCancel(this.change);
             } catch (error) {
                 this.log(error);
-                ctx.body = { code: -1, msg: error.toString(), data: null };
             }
         }
 
         async changeDetail(ctx) {
             try {
-                await this.changeCheck(ctx);
                 const type = ctx.request.query.type;
                 const curChangeMap = changeMap[type];
-                await ctx.service[curChangeMap.service].loadChangeUser(this.change);
-                await ctx.service[curChangeMap.service].loadChangeAuditViewData(this.change);
+                await this.changeCheck(ctx, curChangeMap);
 
                 const tpUnit = ctx.tender.info.decimal.tp;
                 const subProject = await ctx.service.subProject.getDataById(ctx.tender.data.spid);

+ 1 - 4
app/service/change_apply_audit.js

@@ -390,7 +390,7 @@ module.exports = app => {
          * @param auditorId
          * @return {Promise<*>}
          */
-        async getAuditChangeApply(auditorId, spid = '', filterReport = false) {
+        async getAuditChangeApply(auditorId, spid = '') {
             const spSql = spid ? ' and t.`spid` = "' + spid + '"' : '';
             const sql = 'SELECT ma.`aid`, ma.`times`, ma.`order`, ma.`audit_order`, ma.`begin_time`, ma.`end_time`, ma.`tid`, ma.`caid`,' +
                 '    m.`status` As `mstatus`, m.`code` As `mcode`,' +
@@ -405,9 +405,6 @@ module.exports = app => {
             const caidArr = [];
             for (const r of result) {
                 if (caidArr.indexOf(r.caid) === -1) {
-                    if (filterReport && r.mstatus === auditConst.status.checkNo && r.audit_order === 0) {
-                        continue;
-                    }
                     filterResult.push(r);
                     caidArr.push(r.caid);
                 }

+ 0 - 17
app/service/change_audit.js

@@ -251,23 +251,6 @@ module.exports = app => {
         }
 
         /**
-         * weapp获取 审核人 待审批的() 变更令列表
-         */
-          async getAuditChangeByWeapp(uid, spid = '') {
-            const spSql = spid ? ' and t.`spid` = "' + spid + '"' : '';
-            const sql = 'SELECT ca.`uid`, ca.`times`, ca.`usite`, ca.`usort`, ca.`tid`, ca.`cid`, ca.`begin_time`, ca.`end_time`, ca.`sin_time`, ca.`name` As `caname`, ' +
-                '    c.`code` As `ccode`, c.`name` As `cname`, c.`status` As `cstatus`, c.`cin_time`, ' +
-                '    t.`name`, t.`type`, t.`user_id`, t.`spid` ' +
-                '  FROM ?? AS ca LEFT JOIN ?? AS c ON ca.`cid` = c.`cid` ' +
-                '    LEFT JOIN ?? As t ON ca.`tid` = t.`id` ' +
-                '  WHERE ca.`uid` = ? and ca.`status` = ? and c.`status` != ? and ca.`usite` != ?' + spSql +
-                '  ORDER BY ca.`begin_time` DESC';
-            const sqlParam = [this.tableName, this.ctx.service.change.tableName, this.ctx.service.tender.tableName, uid, auditConst.status.checking, auditConst.status.uncheck, 0];
-            const changes = await this.db.query(sql, sqlParam);
-            return changes;
-          }
-
-        /**
          * 获取审核人审核的次数
          *
          * @param auditorId

+ 1 - 4
app/service/change_plan_audit.js

@@ -388,7 +388,7 @@ module.exports = app => {
          * @param auditorId
          * @return {Promise<*>}
          */
-        async getAuditChangePlan(auditorId, spid = '', filterReport = false) {
+        async getAuditChangePlan(auditorId, spid = '') {
             const spSql = spid ? ' and t.`spid` = "' + spid + '"' : '';
             const sql = 'SELECT ma.`aid`, ma.`times`, ma.`audit_order`, ma.`order`, ma.`begin_time`, ma.`end_time`, ma.`tid`, ma.`cpid`,' +
                 '    m.`status` As `mstatus`, m.`code` As `mcode`,' +
@@ -403,9 +403,6 @@ module.exports = app => {
             const cpidArr = [];
             for (const r of result) {
                 if (cpidArr.indexOf(r.cpid) === -1) {
-                    if (filterReport && r.mstatus === auditConst.status.checkNo && r.audit_order === 0) {
-                        continue;
-                    }
                     filterResult.push(r);
                     cpidArr.push(r.cpid);
                 }

+ 1 - 4
app/service/change_project_audit.js

@@ -397,7 +397,7 @@ module.exports = app => {
          * @param auditorId
          * @return {Promise<*>}
          */
-        async getAuditChangeProject(auditorId, spid = '', filterReport = false) {
+        async getAuditChangeProject(auditorId, spid = '') {
             const spSql = spid ? ' and t.`spid` = "' + spid + '"' : '';
             const sql = 'SELECT ma.`aid`, ma.`times`, ma.`audit_order`, ma.`order`, ma.`begin_time`, ma.`end_time`, ma.`tid`, ma.`cpid`,' +
                 '    m.`status` As `mstatus`, m.`code` As `mcode`,' +
@@ -412,9 +412,6 @@ module.exports = app => {
             const cpidArr = [];
             for (const r of result) {
                 if (cpidArr.indexOf(r.cpid) === -1) {
-                    if (filterReport && r.mstatus === auditConst.status.back && r.audit_order === 0) {
-                        continue;
-                    }
                     cpidArr.push(r.cpid);
                     filterResult.push(r);
                 }

+ 1 - 1
app/service/weapp.js

@@ -93,7 +93,7 @@ module.exports = app => {
                     }
                 }
                 if (pList.length === 0) {
-                    throw '该微信号未绑定任何项目';
+                    throw `该微信号未绑定任何项目: ${openid}`;
                 }
 
                 // 2. 生成 access_token + refresh_token