Explorar el Código

报表预处理,加载协作数据,可配合审批人选择使用

MaiXinRong hace 4 años
padre
commit
a227d3d2ae
Se han modificado 2 ficheros con 17 adiciones y 6 borrados
  1. 16 6
      app/lib/rpt_data_analysis.js
  2. 1 0
      test/app/lib/rpt_data_analysis.test.js

+ 16 - 6
app/lib/rpt_data_analysis.js

@@ -1434,7 +1434,18 @@ const loadCooperationData = {
             return auditor.sign_path;
         }
     },
-    _loadImCooperationData: function (ctx, data, options) {
+    _loadImCooperationData: function (ctx, data, options, csRela) {
+        let coSignOrder = [];
+        if (csRela && csRela.tplDefine && csRela.tplDefine.audit_select && csRela.cDefine && csRela.cDefine.audit_select) {
+            if (csRela.cDefine.audit_select) {
+                for (const asc of csRela.cDefine.audit_select) {
+                    coSignOrder.push(asc.order);
+                }
+            }
+        } else {
+            coSignOrder = options.co_sign || [];
+        }
+
         const stageCooperation = [];
         for (const sa of data.stage_audit) {
             stageCooperation.push(data.ledger_cooperation.filter(x => {return x.user_id === sa.aid}));
@@ -1447,10 +1458,9 @@ const loadCooperationData = {
             for (const [i, sa] of data.stage_audit.entries()) {
                 d.cooperation.push(this._findSign(relaId, stageCooperation[i], sa));
             }
-            if (options.co_sign) {
-                for (const [i, cs] of options.co_sign.entries()) {
-                    d['co_sign' + (i+1)] = d.cooperation[cs] || '';
-                }
+
+            for (const [i, cs] of coSignOrder.entries()) {
+                d['co_sign' + (i+1)] = d.cooperation[cs] || '';
             }
         }
     },
@@ -1462,7 +1472,7 @@ const loadCooperationData = {
         if (!data.ledger_cooperation) return;
 
         if (['mem_stage_im_zl', 'mem_stage_im_tz'].indexOf(options.table) >= 0)
-            this._loadImCooperationData(ctx, data, options);
+            this._loadImCooperationData(ctx, data, options, csRela);
     }
 };
 

+ 1 - 0
test/app/lib/rpt_data_analysis.test.js

@@ -202,6 +202,7 @@ describe('test/app/service/report_memory.test.js', () => {
             mem_stage_im_zl: ['lid', 'code'],
         });
         reportDataAnalysis.analysisObj.loadCooperationData.fun(ctx, data, [], {table: 'mem_stage_im_zl', co_sign: [0, 1, 2, 3]}, null);
+        console.log(data.mem_stage_im_zl);
     });
     it('test join', function* () {
         const ctx = app.mockContext(mockData);