TonyKang 4 vuotta sitten
vanhempi
commit
aed4bdfa6e

+ 19 - 4
modules/reports/controllers/rpt_controller.js

@@ -431,6 +431,7 @@ module.exports = {
         let params = JSON.parse(req.body.params),
             prj_id = params.prj_id,
             prj_ids = params.prj_ids,
+            compare_ids = params.compare_ids,
             rpt_ids = params.rpt_ids.split(','),
             flags = params.flags;
             pageSize = params.pageSize,
@@ -442,9 +443,13 @@ module.exports = {
         let dftOption = option||JV.PAGING_OPTION_NORMAL;
         for (let idx = 0; idx < rpt_ids.length; idx++) {
             let id = rpt_ids[idx], r_flag = flags[idx];
+            let f_prj_ids = prj_ids;
+            if (r_flag.auditType === 'audit_compare') {
+                f_prj_ids = compare_ids[idx];
+            }
             parallelFunctions.push((function (rpt_id, flag) {
                 return function (cb) {
-                    getAllPagesCommon(user_id, prj_id, prj_ids, rpt_id, pageSize, orientation, customizeCfg, dftOption, JV.OUTPUT_TYPE_NORMAL, flag, function (err, pageRst) {
+                    getAllPagesCommon(user_id, prj_id, f_prj_ids, rpt_id, pageSize, orientation, customizeCfg, dftOption, JV.OUTPUT_TYPE_NORMAL, flag, function (err, pageRst) {
                         if(err){
                             cb(err);
                         }
@@ -497,6 +502,7 @@ module.exports = {
         let params = JSON.parse(req.body.params),
             prj_id = params.prj_id,
             prj_ids = params.prj_ids,
+            compare_ids = params.compare_ids,
             rpt_ids = params.rpt_ids,
             flags = params.flags;
             rptName = params.rptName,
@@ -508,10 +514,14 @@ module.exports = {
         let parallelFunctions = [];
         let dftOption = option||JV.PAGING_OPTION_NORMAL;
         for (let idx = 0; idx < rpt_ids.length; idx++) {
-            let r_id = rpt_ids[idx], r_flag = flags[idx];            
+            let r_id = rpt_ids[idx], r_flag = flags[idx];
+            let f_prj_ids = prj_ids;
+            if (r_flag.auditType === 'audit_compare') {
+                f_prj_ids = compare_ids[idx];
+            }
             parallelFunctions.push((function (rpt_id, flag) {
                 return function (cb) {
-                    getAllPagesCommon(user_id, prj_id, prj_ids, rpt_id, pageSize, orientation, customizeCfg, dftOption, JV.OUTPUT_TYPE_EXCEL, flag, function (err, pageRst) {
+                    getAllPagesCommon(user_id, prj_id, f_prj_ids, rpt_id, pageSize, orientation, customizeCfg, dftOption, JV.OUTPUT_TYPE_EXCEL, flag, function (err, pageRst) {
                         if(err){
                             cb(err);
                         }
@@ -538,6 +548,7 @@ module.exports = {
         let params = JSON.parse(req.body.params),
             prj_id = params.prj_id,
             prj_ids = params.prj_ids,
+            compare_ids = params.compare_ids,
             rpt_ids = params.rpt_ids,
             flags = params.flags;
             rpt_names = params.rpt_names,
@@ -551,10 +562,14 @@ module.exports = {
         let dftOption = option||JV.PAGING_OPTION_NORMAL;
         for (let idx = 0; idx < rpt_ids.length; idx++) {
             let r_id = rpt_ids[idx], r_flag = flags[idx];
+            let f_prj_ids = prj_ids;
+            if (r_flag.auditType === 'audit_compare') {
+                f_prj_ids = compare_ids[idx];
+            }
             let r_name = rpt_names[idx];
             parallelFunctions.push((function (rpt_id, rpt_name, flag) {
                 return function (cb) {
-                    getAllPagesCommon(user_id, prj_id, prj_ids, rpt_id, pageSize, orientation, customizeCfg, dftOption, JV.OUTPUT_TYPE_EXCEL, flag, function (err, pageRst) {
+                    getAllPagesCommon(user_id, prj_id, f_prj_ids, rpt_id, pageSize, orientation, customizeCfg, dftOption, JV.OUTPUT_TYPE_EXCEL, flag, function (err, pageRst) {
                         if(err){
                             cb(err);
                         } else {

+ 52 - 4
web/building_saas/report/js/rpt_main.js

@@ -450,7 +450,7 @@ let rptControlObj = {
         if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0) {
             let me = rptControlObj;
             let orgRptName = projectObj.project.projectInfo.name;
-            let refRptTplIds = [];
+            let refRptTplIds = [], compare_ids = [];
             let flags = [];
             let params = {};
             for (let node of zTreeOprObj.checkedRptTplNodes) {
@@ -459,10 +459,22 @@ let rptControlObj = {
                 if (node.hasOwnProperty('flags')) {
                     flag = node.flags;
                     params.prj_ids = rptTplObj.getAllPrjIds();
+                    if (flag.auditType === 'audit_compare') {
+                        let pids = [];
+                        let comp_pid = await compareObject.getCompareID(); //返回单个对应的project ID
+                        if (comp_pid !== null) {
+                            pids.push(projectObj.project.projectInfo.ID);
+                            pids.push(comp_pid);
+                        }
+                        compare_ids.push(pids);
+                    } else {
+                        compare_ids.push([]);
+                    }
                 }
                 flags.push(flag);
             }
             params.prj_id = projectObj.project.projectInfo.ID;
+            params.compare_ids = compare_ids;
             params.rpt_ids = refRptTplIds;
             params.flags = flags;
             params.rptName = orgRptName;
@@ -496,7 +508,7 @@ let rptControlObj = {
     getAllIndividualExcelBook: function () {
         let me = rptControlObj;
         if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0) {
-            let rpt_ids = [], flags = [], rpt_names = [];
+            let rpt_ids = [], flags = [], rpt_names = [], compare_ids = [];
             let params = {};
             for (let tplNode of zTreeOprObj.checkedRptTplNodes) {
                 rpt_ids.push(tplNode.refId);
@@ -505,10 +517,22 @@ let rptControlObj = {
                 if (tplNode.hasOwnProperty('flags')) {
                     flag = tplNode.flags;
                     params.prj_ids = rptTplObj.getAllPrjIds();
+                    if (flag.auditType === 'audit_compare') {
+                        let pids = [];
+                        let comp_pid = await compareObject.getCompareID(); //返回单个对应的project ID
+                        if (comp_pid !== null) {
+                            pids.push(projectObj.project.projectInfo.ID);
+                            pids.push(comp_pid);
+                        }
+                        compare_ids.push(pids);
+                    } else {
+                        compare_ids.push([]);
+                    }
                 }
                 flags.push(flag);
             }
             params.prj_id = projectObj.project.projectInfo.ID;
+            params.compare_ids = compare_ids;
             params.rpt_ids = rpt_ids;
             params.flags = flags;
             params.rpt_names = rpt_names;
@@ -563,18 +587,30 @@ let rptControlObj = {
     getPDF: function() {
         let me = rptControlObj;
         if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0) {
-            let rpt_ids = [], flags = [], rpt_names = [];
+            let rpt_ids = [], flags = [], rpt_names = [], compare_ids = [];
             for (let tplNode of zTreeOprObj.checkedRptTplNodes) {
                 rpt_ids.push(tplNode.refId);
                 rpt_names.push(tplNode.name);
                 let flag = null;
                 if (tplNode.hasOwnProperty('flags')) {
                     flag = tplNode.flags;
+                    if (flag.auditType === 'audit_compare') {
+                        let pids = [];
+                        let comp_pid = await compareObject.getCompareID(); //返回单个对应的project ID
+                        if (comp_pid !== null) {
+                            pids.push(projectObj.project.projectInfo.ID);
+                            pids.push(comp_pid);
+                        }
+                        compare_ids.push(pids);
+                    } else {
+                        compare_ids.push([]);
+                    }
                 }
                 flags.push(flag);
             }
             let params = {};
             params.prj_id = projectObj.project.projectInfo.ID;
+            params.compare_ids = compare_ids;
             params.rpt_ids = rpt_ids;
             params.flags = flags;
             params.rpt_names = rpt_names;
@@ -620,7 +656,7 @@ let rptControlObj = {
     },
     getPDFEx: function () {
         if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0) {
-            let rptIds = [], rpt_names = [], flagsArr = [];
+            let rptIds = [], rpt_names = [], flagsArr = [], compare_ids = [];
             let params = {};
             params.pageSize = rptControlObj.getCurrentPageSize();
             params.orientation = ((zTreeOprObj.checkedRptTplNodes.length > 1)?null:rptControlObj.getCurrentOrientation());
@@ -633,10 +669,22 @@ let rptControlObj = {
                 if (tplNode.hasOwnProperty('flags')) {
                     flag = tplNode.flags;
                     params.prj_ids = rptTplObj.getAllPrjIds();
+                    if (flag.auditType === 'audit_compare') {
+                        let pids = [];
+                        let comp_pid = await compareObject.getCompareID(); //返回单个对应的project ID
+                        if (comp_pid !== null) {
+                            pids.push(projectObj.project.projectInfo.ID);
+                            pids.push(comp_pid);
+                        }
+                        compare_ids.push(pids);
+                    } else {
+                        compare_ids.push([]);
+                    }
                 }
                 flagsArr.push(flag);
             }
             params.rpt_ids = rptIds.join(",");
+            params.compare_ids = compare_ids;
             params.flags = flagsArr;
             params.compilation = projectObj.project.projectInfo.compilation;
             CommonAjax.postEx("report_api/getMultiReports", params, WAIT_TIME_EXPORT, true,