|
@@ -13,6 +13,7 @@ let treeUtil = require('../../../public/treeUtil');
|
|
|
let projectConst = consts.projectConst;
|
|
|
let projectConstList = consts.projectConstList;
|
|
|
const gljUtil = require('../../../public/gljUtil');
|
|
|
+// const pm_facade = require('../../pm/facade/pm_facade');
|
|
|
|
|
|
|
|
|
const GLJ_TYPE = {
|
|
@@ -124,7 +125,7 @@ class Rpt_Data_Extractor {
|
|
|
};
|
|
|
|
|
|
//-- 根据报表模板映射指标(非离散指标)的定义,罗列出所有需要用到的data对象key,作为数据请求的过滤依据
|
|
|
- getDataRequestFilter() {
|
|
|
+ getDataRequestFilter(summaryRst) {
|
|
|
let rst = [];
|
|
|
let tpl = this.rptTpl;
|
|
|
let pri_func_chk_filter = function (field) {
|
|
@@ -157,6 +158,17 @@ class Rpt_Data_Extractor {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ if (summaryRst instanceof Array) {
|
|
|
+ for (let key of consts.summaryConstList) {
|
|
|
+ if (summaryRst.indexOf(key) < 0) {
|
|
|
+ if (field[JV.PROP_FIELD_EXP_MAP]) {
|
|
|
+ if (field[JV.PROP_FIELD_EXP_MAP].indexOf('.' + key + '.') >= 0) {
|
|
|
+ summaryRst.push(key);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
};
|
|
|
let pri_setup_filter = function (FIELD_LIST_KEY) {
|
|
|
if (tpl[JV.NODE_FIELD_MAP][FIELD_LIST_KEY]) {
|
|
@@ -212,19 +224,38 @@ class Rpt_Data_Extractor {
|
|
|
let tpl = this.rptTpl;
|
|
|
this.COMMON.initialize(tpl, rawDataObj);
|
|
|
$PROJECT.COMMON = this.COMMON;
|
|
|
- $PROJECT.MAIN["myOwnRawDataObj"] = rawDataObj.prj._doc;
|
|
|
- $PROJECT.MAIN.getProperty = ext_mainGetPropety;
|
|
|
- $PROJECT.MAIN.getFee = ext_mainGetFee;
|
|
|
- for (let item of rawDataObj.prjData) {
|
|
|
- setupFunc($PROJECT.DETAIL, item.moduleName, item);
|
|
|
- }
|
|
|
- let projectGLJDatas = getModuleDataByKey(rawDataObj.prjData, "projectGLJ");
|
|
|
- let rationGLJDatas = getModuleDataByKey(rawDataObj.prjData, "ration_glj");
|
|
|
- let rationDatas = getModuleDataByKey(rawDataObj.prjData, "ration");
|
|
|
- let billsDatas = getModuleDataByKey(rawDataObj.prjData, "bills");
|
|
|
- let decimal = rawDataObj.prj.property.decimal.glj.quantity;
|
|
|
- if (projectGLJDatas && rationGLJDatas && rationDatas && billsDatas) {
|
|
|
- gljUtil.calcProjectGLJQuantity(projectGLJDatas.data, rationGLJDatas.data, rationDatas.data, billsDatas.data, decimal);
|
|
|
+ if (rawDataObj.hasOwnProperty(`prj`)) {
|
|
|
+ setupMainFunc($PROJECT, `MAIN`, rawDataObj.prj._doc);
|
|
|
+ // $PROJECT.MAIN["myOwnRawDataObj"] = rawDataObj.prj._doc;
|
|
|
+ // $PROJECT.MAIN.getProperty = ext_mainGetPropety;
|
|
|
+ // $PROJECT.MAIN.getFee = ext_mainGetFee;
|
|
|
+ for (let item of rawDataObj.prjData) {
|
|
|
+ setupFunc($PROJECT.DETAIL, item.moduleName, item);
|
|
|
+ }
|
|
|
+ let projectGLJDatas = getModuleDataByKey(rawDataObj.prjData, "projectGLJ");
|
|
|
+ let rationGLJDatas = getModuleDataByKey(rawDataObj.prjData, "ration_glj");
|
|
|
+ let rationDatas = getModuleDataByKey(rawDataObj.prjData, "ration");
|
|
|
+ let billsDatas = getModuleDataByKey(rawDataObj.prjData, "bills");
|
|
|
+ let decimal = rawDataObj.prj.property.decimal.glj.quantity;
|
|
|
+ if (projectGLJDatas && rationGLJDatas && rationDatas && billsDatas) {
|
|
|
+ gljUtil.calcProjectGLJQuantity(projectGLJDatas.data, rationGLJDatas.data, rationDatas.data, billsDatas.data, decimal);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //还有汇总的...
|
|
|
+ if (rawDataObj.hasOwnProperty(`Construct`) || rawDataObj.hasOwnProperty(`ConstructDetail`) || rawDataObj.hasOwnProperty(`Segment`) || rawDataObj.hasOwnProperty(`SegmentDetail`)) {
|
|
|
+ $PROJECT.SUMMARY = {};
|
|
|
+ if (rawDataObj.Construct) {
|
|
|
+ setupMainFunc($PROJECT.SUMMARY, `Construct`, rawDataObj.Construct);
|
|
|
+ }
|
|
|
+ if (rawDataObj.ConstructDetail) {
|
|
|
+ setupFunc($PROJECT.SUMMARY, `ConstructDetail`, {"data": rawDataObj.ConstructDetail});
|
|
|
+ }
|
|
|
+ if (rawDataObj.Segment) {
|
|
|
+ setupMainFunc($PROJECT.SUMMARY, `Segment`, rawDataObj.Construct);
|
|
|
+ }
|
|
|
+ if (rawDataObj.SegmentDetail) {
|
|
|
+ setupFunc($PROJECT.SUMMARY, `SegmentDetail`, {"data": rawDataObj.SegmentDetail});
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (tpl[JV.NODE_MAP_DATA_HANDLE_INFO]) {
|
|
@@ -959,6 +990,13 @@ function sortData(sourceData, sortCfg, prjData) {
|
|
|
return rst;
|
|
|
}
|
|
|
|
|
|
+function setupMainFunc(obj, prop, ownRawObj) {
|
|
|
+ obj[prop] = {};
|
|
|
+ obj[prop]["myOwnRawDataObj"] = ownRawObj;
|
|
|
+ obj[prop].getProperty = ext_mainGetPropety;
|
|
|
+ obj[prop].getFee = ext_mainGetFee;
|
|
|
+}
|
|
|
+
|
|
|
function setupFunc(obj, prop, ownRawObj) {
|
|
|
obj[prop] = {};
|
|
|
obj[prop]["myOwnRawDataObj"] = ownRawObj;
|