瀏覽代碼

变更的或签判断

Tony Kang 9 月之前
父節點
當前提交
69cc624645
共有 2 個文件被更改,包括 15 次插入7 次删除
  1. 11 3
      app/controller/report_controller.js
  2. 4 4
      app/public/report/js/rpt_signature.js

+ 11 - 3
app/controller/report_controller.js

@@ -999,7 +999,7 @@ module.exports = app => {
             }
         }
 
-        async _commonGetAudit(ctx, params, stgAudit) {
+        async _commonGetAudit(ctx, params, stgAudit, stageFlow) {
             const COMMON_INVALID_STATUS_FOR_ORG = [1, 6]; // 对原报来说,待上报、重新上报状态就不能默认为审核通过
             switch (params.stage_id) {
                 case -300: // 变更令
@@ -1010,6 +1010,8 @@ module.exports = app => {
                     stgAudit.push({ aid: change.uid, status: orgChangeStatus, opinion: '', end_time: change.in_time, order: 0 }); // 加上原报
                     changeAudit.forEach(audit => {
                         stgAudit.push({ aid: audit.uid, status: audit.status, opinion: audit.sdesc, end_time: audit.sin_time, order: audit.usite });
+                        // 创建dummy stageFlow
+                        stageFlow.push({ aid: audit.uid || audit.aid, audit_type: audit.audit_type, status: audit.status, order: audit.audit_order });
                     });
                     break;
                 case -301: // 变更方案
@@ -1023,6 +1025,8 @@ module.exports = app => {
                             stgAudit[0].end_time = audit.begin_time || stgAudit[0].end_time; // 如果没有begin_time,则保留时间
                         }
                         stgAudit.push({ aid: audit.aid, status: audit.status, opinion: audit.opinion, end_time: audit.end_time, times: audit.times, order: audit.order });
+                        // 创建dummy stageFlow
+                        stageFlow.push({ aid: audit.uid || audit.aid, audit_type: audit.audit_type, status: audit.status, order: audit.audit_order });
                     });
                     break;
                 case -302: // 变更立项
@@ -1036,6 +1040,8 @@ module.exports = app => {
                             stgAudit[0].end_time = audit.begin_time || stgAudit[0].end_time; // 如果没有begin_time,则保留时间
                         }
                         stgAudit.push({ aid: audit.aid, status: audit.status, opinion: audit.opinion, end_time: audit.end_time, times: audit.times, order: audit.order });
+                        // 创建dummy stageFlow
+                        stageFlow.push({ aid: audit.uid || audit.aid, audit_type: audit.audit_type, status: audit.status, order: audit.audit_order });
                     });
                     break;
                 case -303: // 变更申请
@@ -1049,6 +1055,8 @@ module.exports = app => {
                             stgAudit[0].end_time = audit.begin_time || stgAudit[0].end_time; // 如果没有begin_time,则保留时间
                         }
                         stgAudit.push({ aid: audit.aid, status: audit.status, opinion: audit.opinion, end_time: audit.end_time, times: audit.times, order: audit.order });
+                        // 创建dummy stageFlow
+                        stageFlow.push({ aid: audit.uid || audit.aid, audit_type: audit.audit_type, status: audit.status, order: audit.audit_order });
                     });
                     break;
                 case -400: // 预付款
@@ -1164,7 +1172,7 @@ module.exports = app => {
                 stgAudit = [];
                 stgAuditForOrg = [];
                 stageFlow = [];
-                await this._commonGetAudit(ctx, params, stgAudit);
+                await this._commonGetAudit(ctx, params, stgAudit, stageFlow);
                 stgAudit.sort(function(stg1, stg2) {
                     return stg1.order - stg2.order;
                 });
@@ -1293,7 +1301,7 @@ module.exports = app => {
             } else if ([-300, -301, -302, -303, -400, -500].includes(params.stage_id)) {
                 stgAudit = [];
                 stageFlow = [];
-                await this._commonGetAudit(ctx, params, stgAudit);
+                await this._commonGetAudit(ctx, params, stgAudit, stageFlow);
                 this._mergeBlankRoleSignDate(roleRel, stgAudit);
             } else if ([-400, -500].includes(params.stage_id)) {
                 stgAudit = [];

+ 4 - 4
app/public/report/js/rpt_signature.js

@@ -947,7 +947,7 @@ let rptSignatureHelper = {
                     // 判断 或签 用户状态
                     for (const secFlow of STAGE_FLOW) {
                         if (secFlow.audit_type === 3 && secFlow.order === flow.order && secFlow.aid !== acc_id) {
-                            rst = secFlow.status === 3;
+                            rst = secFlow.status === 3 || flow.status === 3;
                             if (rst) break;
                         }
                     }
@@ -1107,12 +1107,12 @@ function _getSignDateByAllScenarios(userAccId) {
     let rst = '';
     let hasAudit = false;
     for (const stg_audit of STAGE_AUDIT) {
-        if (stg_audit.aid === userAccId) {
+        if (stg_audit.aid === userAccId || rptSignatureHelper._chkOrAudit(stg_audit.aid)) {
             hasAudit = true;
             // 加上 '或签' 检测
-            if (stg_audit.status === 3 || rptSignatureHelper._chkOrAudit(userAccId)) {
+            if (stg_audit.status === 3) {
                 rst = stg_audit.end_time;
-            } else {
+            } else if (stg_audit.aid !== userAccId) {
                 rst = '';
             }
             // break; //因为实际业务中会有反复,所以就不break了,一直判断,以最后一个为准