|
@@ -11,6 +11,7 @@ let Template = mongoose.model('rpt_templates');
|
|
|
let rptTplDataFacade = require("../facade/rpt_tpl_data_facade");
|
|
|
let fsUtil = require("../../../public/fsUtil");
|
|
|
let pm_facade = require('../../../modules/pm/facade/pm_facade');
|
|
|
+let bill_facade = require('../../../modules/main/facade/bill_facade');
|
|
|
|
|
|
const rptTplFacade = require("../facade/rpt_template_facade");
|
|
|
const demoTemplateFacade = require("../facade/rpt_tpl_data_demo_facade");
|
|
@@ -197,7 +198,7 @@ function setupCustomizeCfg(customizeCfg, rptTpl, defProperties) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-async function getAllPagesCommon(user_id, prj_id, prj_ids, rpt_id, pageSize, orientation, customizeCfg, option, outputType, flag, cb) {
|
|
|
+async function getAllPagesCommon(construct_id, user_id, prj_id, prj_ids, rpt_id, pageSize, orientation, customizeCfg, option, outputType, flag, cb) {
|
|
|
let rptTpl = null;
|
|
|
rptTplFacade.getRptTemplate(rpt_id).then(function(rst) {
|
|
|
rptTpl = rst;
|
|
@@ -208,6 +209,9 @@ async function getAllPagesCommon(user_id, prj_id, prj_ids, rpt_id, pageSize, ori
|
|
|
let filter = rptDataUtil.getDataRequestFilter(summaryRst, economicRst);
|
|
|
let promiseArr = [null, null, null];
|
|
|
if (summaryRst.length > 0) {
|
|
|
+ if (summaryRst.indexOf(`Budget`) >= 0 || summaryRst.indexOf(`BudgetDetail`) >= 0) {
|
|
|
+ promiseArr[0] = bill_facade.getBudgetSummary(construct_id); //与其他汇总类的请求互斥,不能同时出现!
|
|
|
+ }
|
|
|
if (summaryRst.indexOf(`Construct`) >= 0 || summaryRst.indexOf(`ConstructDetail`) >= 0) {
|
|
|
promiseArr[0] = pm_facade.getSummaryInfoByTender(prj_id, pm_facade.projectType.project);
|
|
|
}
|
|
@@ -325,12 +329,17 @@ async function getAllPagesCommon(user_id, prj_id, prj_ids, rpt_id, pageSize, ori
|
|
|
//取汇总数据流程
|
|
|
if (promiseArr[0] !== null) {
|
|
|
promiseArr[0].then(function (rst) {
|
|
|
- rawDataObj.Construct = rst.parent;
|
|
|
- rawDataObj.ConstructDetail = rst.subList;
|
|
|
+ if (rst.hasOwnProperty('parent')) {
|
|
|
+ rawDataObj.Construct = rst.parent;
|
|
|
+ rawDataObj.ConstructDetail = rst.subList;
|
|
|
+ } else {
|
|
|
+ rawDataObj.Budget = [];
|
|
|
+ rawDataObj.BudgetDetail = rst;
|
|
|
+ }
|
|
|
if (promiseArr[1] !== null) {
|
|
|
- promiseArr[1].then(function (rst) {
|
|
|
- rawDataObj.Segment = rst.parent;
|
|
|
- rawDataObj.SegmentDetail = rst.subList;
|
|
|
+ promiseArr[1].then(function (rst2) {
|
|
|
+ rawDataObj.Segment = rst2.parent;
|
|
|
+ rawDataObj.SegmentDetail = rst2.subList;
|
|
|
buildPageData(rawDataObj, rptDataUtil, rptTpl);
|
|
|
});
|
|
|
} else {
|
|
@@ -399,6 +408,7 @@ module.exports = {
|
|
|
getReportAllPages: function (req, res) {
|
|
|
let params = JSON.parse(req.body.params),
|
|
|
rpt_id = params.rpt_tpl_id,
|
|
|
+ construct_id = params.construct_id,
|
|
|
prj_id = params.prj_id,
|
|
|
prj_ids = params.prj_ids,
|
|
|
flag = params.flag;
|
|
@@ -408,7 +418,7 @@ module.exports = {
|
|
|
;
|
|
|
// req.session.sessionUser.ssoId
|
|
|
let user_id = req.session.sessionUser.id;
|
|
|
- getAllPagesCommon(user_id, prj_id, prj_ids, rpt_id, pageSize, orientation, customizeCfg, null, JV.OUTPUT_TYPE_NORMAL, flag, function (err, pageRst) {
|
|
|
+ getAllPagesCommon(construct_id, user_id, prj_id, prj_ids, rpt_id, pageSize, orientation, customizeCfg, null, JV.OUTPUT_TYPE_NORMAL, flag, function (err, pageRst) {
|
|
|
try {
|
|
|
let userModel = new UserModel();
|
|
|
// console.log('req.session.sessionUser.ssoId: ' + req.session.sessionUser.ssoId);
|
|
@@ -430,6 +440,7 @@ module.exports = {
|
|
|
getMultiReports: function (req, res) {
|
|
|
let params = JSON.parse(req.body.params),
|
|
|
prj_id = params.prj_id,
|
|
|
+ construct_id = params.construct_id,
|
|
|
prj_ids = params.prj_ids,
|
|
|
compare_ids = params.compare_ids,
|
|
|
rpt_ids = params.rpt_ids.split(','),
|
|
@@ -449,7 +460,7 @@ module.exports = {
|
|
|
}
|
|
|
parallelFunctions.push((function (rpt_id, flag) {
|
|
|
return function (cb) {
|
|
|
- getAllPagesCommon(user_id, prj_id, f_prj_ids, rpt_id, pageSize, orientation, customizeCfg, dftOption, JV.OUTPUT_TYPE_NORMAL, flag, function (err, pageRst) {
|
|
|
+ getAllPagesCommon(construct_id, 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);
|
|
|
}
|
|
@@ -484,6 +495,7 @@ module.exports = {
|
|
|
getReportAllPagesSvg: function (req, res) {
|
|
|
let params = JSON.parse(req.body.params),
|
|
|
rpt_id = params.rpt_tpl_id,
|
|
|
+ construct_id = params.construct_id,
|
|
|
flag = params.flag;
|
|
|
prj_id = params.prj_id,
|
|
|
prj_ids = params.prj_ids,
|
|
@@ -492,7 +504,7 @@ module.exports = {
|
|
|
customizeCfg = params.custCfg
|
|
|
;
|
|
|
let user_id = req.session.sessionUser.id;
|
|
|
- getAllPagesCommon(user_id, prj_id, prj_ids, rpt_id, pageSize, orientation, customizeCfg, null, JV.OUTPUT_TYPE_SVG, flag, function (err, pageRst) {
|
|
|
+ getAllPagesCommon(construct_id, user_id, prj_id, prj_ids, rpt_id, pageSize, orientation, customizeCfg, null, JV.OUTPUT_TYPE_SVG, flag, function (err, pageRst) {
|
|
|
let svgRstStrArr = rpt_svg_util.exportSvgStr(pageRst, 0, 0);
|
|
|
callback(req, res, err, svgRstStrArr);
|
|
|
});
|
|
@@ -501,6 +513,7 @@ module.exports = {
|
|
|
createExcelFilesInOneBook: function (req, res) {
|
|
|
let params = JSON.parse(req.body.params),
|
|
|
prj_id = params.prj_id,
|
|
|
+ construct_id = params.construct_id,
|
|
|
prj_ids = params.prj_ids,
|
|
|
compare_ids = params.compare_ids,
|
|
|
rpt_ids = params.rpt_ids,
|
|
@@ -521,7 +534,7 @@ module.exports = {
|
|
|
}
|
|
|
parallelFunctions.push((function (rpt_id, flag) {
|
|
|
return function (cb) {
|
|
|
- getAllPagesCommon(user_id, prj_id, f_prj_ids, rpt_id, pageSize, orientation, customizeCfg, dftOption, JV.OUTPUT_TYPE_EXCEL, flag, function (err, pageRst) {
|
|
|
+ getAllPagesCommon(construct_id, 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);
|
|
|
}
|
|
@@ -547,6 +560,7 @@ module.exports = {
|
|
|
createExcelFiles: function (req, res) {
|
|
|
let params = JSON.parse(req.body.params),
|
|
|
prj_id = params.prj_id,
|
|
|
+ construct_id = params.construct_id,
|
|
|
prj_ids = params.prj_ids,
|
|
|
compare_ids = params.compare_ids,
|
|
|
rpt_ids = params.rpt_ids,
|
|
@@ -569,7 +583,7 @@ module.exports = {
|
|
|
let r_name = rpt_names[idx];
|
|
|
parallelFunctions.push((function (rpt_id, rpt_name, flag) {
|
|
|
return function (cb) {
|
|
|
- getAllPagesCommon(user_id, prj_id, f_prj_ids, rpt_id, pageSize, orientation, customizeCfg, dftOption, JV.OUTPUT_TYPE_EXCEL, flag, function (err, pageRst) {
|
|
|
+ getAllPagesCommon(construct_id, 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 {
|
|
@@ -615,6 +629,7 @@ module.exports = {
|
|
|
getExcel: function(req, res) {
|
|
|
let prj_id = req.params.prj_id,
|
|
|
prj_ids = params.prj_ids,
|
|
|
+ construct_id = params.construct_id,
|
|
|
rpt_id = req.params.rpt_id,
|
|
|
flag = req.params.flag,
|
|
|
pageSize = req.params.size,
|
|
@@ -626,7 +641,7 @@ module.exports = {
|
|
|
let customizeCfg = null;
|
|
|
let user_id = req.session.sessionUser.id;
|
|
|
let dftOption = option||JV.PAGING_OPTION_NORMAL;
|
|
|
- getAllPagesCommon(user_id, prj_id, prj_ids, rpt_id, pageSize, orientation, customizeCfg, dftOption, JV.OUTPUT_TYPE_EXCEL, flag, function(err, pageRst){
|
|
|
+ getAllPagesCommon(construct_id, user_id, prj_id, prj_ids, rpt_id, pageSize, orientation, customizeCfg, dftOption, JV.OUTPUT_TYPE_EXCEL, flag, function(err, pageRst){
|
|
|
try {
|
|
|
rpt_xl_util.exportExcel(pageRst, pageSize, rptName, isOneSheet, null, null, function(uuidName){
|
|
|
res.setHeader('Content-Type', 'application/vnd.openxmlformats');
|
|
@@ -648,6 +663,7 @@ module.exports = {
|
|
|
getExcelInOneBook: function (req, res) {
|
|
|
let prj_id = req.params.prj_id,
|
|
|
prj_ids = params.prj_ids,
|
|
|
+ construct_id = params.construct_id,
|
|
|
rpt_ids = req.params.rpt_ids.split(','),
|
|
|
flags = req.params.flags;
|
|
|
pageSize = req.params.size,
|
|
@@ -660,7 +676,7 @@ module.exports = {
|
|
|
let id = rpt_ids[idx], r_flag = flags[idx];
|
|
|
parallelFunctions.push((function (rpt_id, flag) {
|
|
|
return function (cb) {
|
|
|
- getAllPagesCommon(user_id, prj_id, prj_ids, rpt_id, pageSize, null, null, dftOption, JV.OUTPUT_TYPE_EXCEL, flag, function (err, pageRst) {
|
|
|
+ getAllPagesCommon(construct_id, user_id, prj_id, prj_ids, rpt_id, pageSize, null, null, dftOption, JV.OUTPUT_TYPE_EXCEL, flag, function (err, pageRst) {
|
|
|
if(err){
|
|
|
cb(err);
|
|
|
}
|
|
@@ -693,6 +709,7 @@ module.exports = {
|
|
|
createPdfFiles: function (req, res) {
|
|
|
let params = JSON.parse(req.body.params),
|
|
|
prj_id = params.prj_id,
|
|
|
+ construct_id = params.construct_id,
|
|
|
prj_ids = params.prj_ids,
|
|
|
rpt_ids = params.rpt_ids,
|
|
|
flags = params.flags,
|
|
@@ -709,7 +726,7 @@ module.exports = {
|
|
|
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_PDF, flag, function (err, pageRst) {
|
|
|
+ getAllPagesCommon(construct_id, user_id, prj_id, prj_ids, rpt_id, pageSize, orientation, customizeCfg, dftOption, JV.OUTPUT_TYPE_PDF, flag, function (err, pageRst) {
|
|
|
if(err){
|
|
|
cb(err);
|
|
|
}
|
|
@@ -736,13 +753,14 @@ module.exports = {
|
|
|
let prj_id = req.params.prj_id,
|
|
|
prj_ids = params.prj_ids,
|
|
|
rpt_id = req.params.rpt_id,
|
|
|
+ construct_id = req.params.construct_id,
|
|
|
flag = req.params.flag;
|
|
|
pageSize = req.params.size,
|
|
|
orientation = req.params.orientation,
|
|
|
rptName = req.params.rptName
|
|
|
;
|
|
|
let user_id = req.session.sessionUser.id;
|
|
|
- getAllPagesCommon(user_id, prj_id, prj_ids, rpt_id, pageSize, orientation, null, JV.PAGING_OPTION_NORMAL, JV.OUTPUT_TYPE_PDF, flag, function(err, pageRst){
|
|
|
+ getAllPagesCommon(construct_id, user_id, prj_id, prj_ids, rpt_id, pageSize, orientation, null, JV.PAGING_OPTION_NORMAL, JV.OUTPUT_TYPE_PDF, flag, function(err, pageRst){
|
|
|
rpt_pdf_util.export_pdf_file(pageRst, pageSize, rptName,function (uuidName) {
|
|
|
res.setHeader('Content-Type', 'application/vnd.openxmlformats');
|
|
|
// res.setHeader("Content-Disposition", "attachment; filename=" + strUtil.getPinYinCamelChars(rptName) + ".pdf");
|