Prechádzať zdrojové kódy

归档分页处理批量归档请求

Tony Kang 1 rok pred
rodič
commit
48f74a3349

+ 12 - 1
app/public/report/js/rpt_indexDb.js

@@ -120,13 +120,24 @@ const indexDbOprObj = {
             needWaterMark = true;
         }
         const _requestNormalReport = async function() {
-            let refRptTplIds = [], rpt_names = [];
+            let refRptTplIds = [], rpt_names = [], splitArchives = [];
             for (let req of normal_request) {
                 //{id: keyStr, name: node.name, rpt_id: node.refId, stage_id, gather_select, stage_select, pageSize: rptControlObj.getCurrentPageSize(), CFG: CUST_CFG}
                 refRptTplIds.push(req.rpt_id);
                 rpt_names.push(req.name);
+                let splitArcObj = null;
+                for (let rnIdx = 0; rnIdx < rptNodes.length; rnIdx++) {
+                    if (rptNodes[rnIdx].refId === req.rpt_id) {
+                        if (rptNodes[rnIdx].flags && rptNodes[rnIdx].flags.amendmentType === 'splitArchive') {
+                            splitArcObj = {rpt_id: rptNodes[rnIdx].refId, split_field_id: parseInt(rptNodes[rnIdx].flags.splitArchiveField)};
+                        }
+                        break;
+                    }
+                }
+                splitArchives.push(splitArcObj);
             }
             let params = rptControlObj.creatCommonExportParam(refRptTplIds);
+            params.splitArchives = splitArchives;
             await rptCustomObj.getCustomSelect(params);
             // params.customSelect = [];
             params.needWaterMark = needWaterMark;

+ 2 - 0
app/public/report/js/rpt_main.js

@@ -696,6 +696,8 @@ let rptControlObj = {
             if (node.flags && node.flags.amendmentType === 'splitArchive') {
                 // splitArchives.push(node.refId);
                 splitArchives.push({rpt_id: node.refId, split_field_id: parseInt(node.flags.splitArchiveField)});
+            } else {
+                splitArchives.push(null);
             }
         }
     },

+ 6 - 1
app/service/jpc_report.js

@@ -196,7 +196,12 @@ module.exports = app => {
 
                     printCom.initialize(rptTpl);
                     // console.log(rptTpl);
-                    printCom.analyzeData(ctx.helper, rptTpl, tplData, defProperties, dftOption, outputType, customSelect, params.splitArchives);
+                    const dftSplitArchives = [];
+                    if (params.splitArchives[tplIdx]) {
+                        dftSplitArchives.push(params.splitArchives[tplIdx]);
+                    }
+                    // printCom.analyzeData(ctx.helper, rptTpl, tplData, defProperties, dftOption, outputType, customSelect, params.splitArchives);
+                    printCom.analyzeData(ctx.helper, rptTpl, tplData, defProperties, dftOption, outputType, customSelect, dftSplitArchives);
                     const maxPages = printCom.totalPages;
                     let pageRst = null;
                     // console.log(maxPages);