|
@@ -136,11 +136,25 @@ class Rpt_Data_Extractor {
|
|
|
if (key === projectConst.RATION_GLJ && (rst.indexOf(projectConst.PROJECTGLJ) < 0)) {
|
|
|
rst.push(projectConst.PROJECTGLJ);
|
|
|
}
|
|
|
- if (key === projectConst.PROJECTGLJ && (rst.indexOf(projectConst.RATION_GLJ) < 0)) {
|
|
|
- rst.push(projectConst.RATION_GLJ);
|
|
|
+ if (key === projectConst.PROJECTGLJ) {
|
|
|
+ if (rst.indexOf(projectConst.RATION_GLJ) < 0) rst.push(projectConst.RATION_GLJ);
|
|
|
+ if (field[JV.PROP_FIELD_EXP_MAP].indexOf("'quantity'") > 0 ||
|
|
|
+ field[JV.PROP_FIELD_EXP_MAP].indexOf("'subdivisionQuantity'") > 0 ||
|
|
|
+ field[JV.PROP_FIELD_EXP_MAP].indexOf("'techQuantity'") > 0 ) {
|
|
|
+ if (rst.indexOf(projectConst.RATION) < 0) rst.push(projectConst.RATION);
|
|
|
+ if (rst.indexOf(projectConst.BILLS) < 0) rst.push(projectConst.BILLS);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ } else if (key === projectConst.PROJECTGLJ) {
|
|
|
+ if (rst.indexOf(projectConst.RATION_GLJ) < 0) rst.push(projectConst.RATION_GLJ);
|
|
|
+ if (field[JV.PROP_FIELD_EXP_MAP].indexOf("'quantity'") > 0 ||
|
|
|
+ field[JV.PROP_FIELD_EXP_MAP].indexOf("'subdivisionQuantity'") > 0 ||
|
|
|
+ field[JV.PROP_FIELD_EXP_MAP].indexOf("'techQuantity'") > 0 ) {
|
|
|
+ if (rst.indexOf(projectConst.RATION) < 0) rst.push(projectConst.RATION);
|
|
|
+ if (rst.indexOf(projectConst.BILLS) < 0) rst.push(projectConst.BILLS);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
};
|
|
@@ -208,7 +222,7 @@ class Rpt_Data_Extractor {
|
|
|
let rationGLJDatas = getModuleDataByKey(rawDataObj.prjData, "ration_glj");
|
|
|
let rationDatas = getModuleDataByKey(rawDataObj.prjData, "ration");
|
|
|
let billsDatas = getModuleDataByKey(rawDataObj.prjData, "bills");
|
|
|
- if (projectGLJDatas && rationGLJDatas, rationDatas, billsDatas) {
|
|
|
+ if (projectGLJDatas && rationGLJDatas && rationDatas && billsDatas) {
|
|
|
gljUtil.calcProjectGLJQuantity(projectGLJDatas.data, rationGLJDatas.data, rationDatas.data, billsDatas.data, 4);
|
|
|
}
|
|
|
|
|
@@ -302,7 +316,7 @@ function getModuleDataByKey(prjData, key) {
|
|
|
function summaryData(sourceData, handleCfg, prjData){
|
|
|
let rstArr = [], tempRstArr = [];
|
|
|
let curParentPrjData = {};
|
|
|
- for (let item of sourceData.data) {
|
|
|
+ for (let item of getActDataArr(sourceData)) {
|
|
|
if (item._doc) {
|
|
|
tempRstArr.push(item._doc);
|
|
|
} else {
|
|
@@ -378,14 +392,13 @@ function summaryData(sourceData, handleCfg, prjData){
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- delete sourceData.data;
|
|
|
- sourceData.data = rstArr;
|
|
|
+ replaceActDataArr(sourceData, rstArr);
|
|
|
// fsUtil.writeObjToFile(sourceData.data, "D:/GitHome/ConstructionCost/tmp/sumRst.jsp");
|
|
|
}
|
|
|
|
|
|
function filterData(sourceData, handleCfg, prjData) {
|
|
|
let rstArr = [], tempRstArr = [];
|
|
|
- for (let item of sourceData.data) {
|
|
|
+ for (let item of getActDataArr(sourceData)) {
|
|
|
if (item._doc) {
|
|
|
tempRstArr.push(item._doc);
|
|
|
} else {
|
|
@@ -472,11 +485,7 @@ function filterData(sourceData, handleCfg, prjData) {
|
|
|
curComparePrjData = getModuleDataByKey(prjData, targetDataKey);
|
|
|
try {
|
|
|
if (curComparePrjData !== null) {
|
|
|
- if (targetDataKey === "projectGLJ") {
|
|
|
- objDataArr = curComparePrjData.data.gljList;
|
|
|
- } else {
|
|
|
- objDataArr = curComparePrjData.data;
|
|
|
- }
|
|
|
+ objDataArr = getActDataArr(curComparePrjData);
|
|
|
for (let dtl of objDataArr) {
|
|
|
if (item[refKey] === dtl[targetPropertyKey]) {
|
|
|
rst = dtl;
|
|
@@ -533,7 +542,7 @@ function filterData(sourceData, handleCfg, prjData) {
|
|
|
if (!compareObj.hasOwnProperty(cfg[JV.PROP_FILTER_COMPARE_OBJ_KEY] + startIdx.toString())) {
|
|
|
compareObj[cfg[JV.PROP_FILTER_COMPARE_OBJ_KEY] + startIdx.toString()] = [];
|
|
|
compareArr = compareObj[cfg[JV.PROP_FILTER_COMPARE_OBJ_KEY] + startIdx.toString()];
|
|
|
- for (let data of curComparePrjData.data) {
|
|
|
+ for (let data of getActDataArr(curComparePrjData)) {
|
|
|
if (compareArr.indexOf(data[cfg[JV.PROP_FILTER_COMPARE_OBJ_KEY]]) < 0) {
|
|
|
compareArr.push(data[cfg[JV.PROP_FILTER_COMPARE_OBJ_KEY]]);
|
|
|
}
|
|
@@ -543,7 +552,7 @@ function filterData(sourceData, handleCfg, prjData) {
|
|
|
}
|
|
|
compRst = private_chkVal(item[cfg.key], compareArr, cfg[JV.PROP_FILTER_CONDITION]);
|
|
|
} else {
|
|
|
- for (let data of curComparePrjData.data) {
|
|
|
+ for (let data of getActDataArr(curComparePrjData)) {
|
|
|
compRst = private_chkVal(item[cfg.key], data[cfg[JV.PROP_FILTER_COMPARE_OBJ_KEY]], cfg[JV.PROP_FILTER_CONDITION]);
|
|
|
if (compRst) break;
|
|
|
}
|
|
@@ -572,14 +581,13 @@ function filterData(sourceData, handleCfg, prjData) {
|
|
|
}
|
|
|
rstArr = newRstArr;
|
|
|
}
|
|
|
- delete sourceData.data;
|
|
|
- sourceData.data = rstArr;
|
|
|
+ replaceActDataArr(sourceData, rstArr);
|
|
|
// fsUtil.writeObjToFile(sourceData.data, "D:/GitHome/ConstructionCost/tmp/filteredRst.js");
|
|
|
}
|
|
|
|
|
|
function adjustData(sourceData, adjustCfg) {
|
|
|
let rstArr = [];
|
|
|
- for (let item of sourceData.data) {
|
|
|
+ for (let item of getActDataArr(sourceData)) {
|
|
|
if (item._doc) {
|
|
|
rstArr.push(item._doc);
|
|
|
} else {
|
|
@@ -595,8 +603,7 @@ function adjustData(sourceData, adjustCfg) {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- delete sourceData.data;
|
|
|
- sourceData.data = rstArr;
|
|
|
+ replaceActDataArr(sourceData, rstArr);
|
|
|
}
|
|
|
|
|
|
function moveRationData(rationData, rawDataObj) {
|
|
@@ -605,7 +612,7 @@ function moveRationData(rationData, rawDataObj) {
|
|
|
let rationGljData = getModuleDataByKey(rawDataObj.prjData, projectConst.RATION_GLJ);
|
|
|
let prjGljData = getModuleDataByKey(rawDataObj.prjData, projectConst.PROJECTGLJ);
|
|
|
let dummyCode = " ", dummyPRJID = 10101010;
|
|
|
- for (let rationItem of rationData.data) {
|
|
|
+ for (let rationItem of getActDataArr(rationData)) {
|
|
|
if (rationItem.type === 2 || rationItem.type === 3) {
|
|
|
//2: 量材(人工/材料/机械/主材/设备) 3:材料(材料/主材/设备)
|
|
|
let copyItem = {};
|
|
@@ -682,7 +689,7 @@ function getDupGrpKeyVals(sourceData, segKeys) {
|
|
|
|
|
|
function addDummyData(sourceData, addCfg) {
|
|
|
let rstArr = [], tempRstArr = [];
|
|
|
- for (let item of sourceData.data) {
|
|
|
+ for (let item of getActDataArr(sourceData)) {
|
|
|
if (item._doc) {
|
|
|
tempRstArr.push(item._doc);
|
|
|
} else {
|
|
@@ -715,8 +722,7 @@ function addDummyData(sourceData, addCfg) {
|
|
|
}
|
|
|
}
|
|
|
rstArr = rstArr.concat(tempRstArr);
|
|
|
- delete sourceData.data;
|
|
|
- sourceData.data = rstArr;
|
|
|
+ replaceActDataArr(sourceData, rstArr);
|
|
|
}
|
|
|
|
|
|
function getGLJBizType(orgType, orgCode, orgName) {
|
|
@@ -756,9 +762,10 @@ function getGLJBizType(orgType, orgCode, orgName) {
|
|
|
}
|
|
|
|
|
|
function sortData(sourceData, sortCfg, prjData) {
|
|
|
- let rst = sourceData.data, tempRstArr = [];
|
|
|
+ let rst = getActDataArr(sourceData), tempRstArr = [];
|
|
|
let sortType = sortCfg[JV.PROP_SORT_TYPE];
|
|
|
- for (let item of sourceData.data) {
|
|
|
+ let srcData = getActDataArr(sourceData);
|
|
|
+ for (let item of srcData) {
|
|
|
if (item._doc) {
|
|
|
tempRstArr.push(item._doc);
|
|
|
} else {
|
|
@@ -859,14 +866,12 @@ function sortData(sourceData, sortCfg, prjData) {
|
|
|
}
|
|
|
let destArr = [];
|
|
|
treeUtil.getFlatArray(newTopArr, destArr);
|
|
|
- delete sourceData.data;
|
|
|
- sourceData.data = destArr;
|
|
|
+ replaceActDataArr(sourceData, destArr);
|
|
|
// fsUtil.writeObjToFile(sourceData.data, "D:/GitHome/ConstructionCost/tmp/sortedAndFlattedRst.jsp");
|
|
|
break;
|
|
|
case "normal":
|
|
|
private_normal_sort(tempRstArr, sortCfg[JV.PROP_SORT_KEYS]);
|
|
|
- delete sourceData.data;
|
|
|
- sourceData.data = tempRstArr;
|
|
|
+ replaceActDataArr(sourceData, tempRstArr);
|
|
|
// fsUtil.writeObjToFile(sourceData.data, "D:/GitHome/ConstructionCost/tmp/normalSortedRst.jsp");
|
|
|
break;
|
|
|
case "accord_to_parent":
|
|
@@ -874,7 +879,7 @@ function sortData(sourceData, sortCfg, prjData) {
|
|
|
let parentSrcData = getModuleDataByKey(prjData, pcKey[JV.PROP_PARENT_DATA_KEY]);
|
|
|
if (parentSrcData) {
|
|
|
let tempParentArr = [];
|
|
|
- for (let item of parentSrcData.data) {
|
|
|
+ for (let item of getActDataArr(parentSrcData)) {
|
|
|
if (item._doc) {
|
|
|
tempParentArr.push(item._doc);
|
|
|
} else {
|
|
@@ -906,8 +911,7 @@ function sortData(sourceData, sortCfg, prjData) {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- delete sourceData.data;
|
|
|
- sourceData.data = tempRstArr;
|
|
|
+ replaceActDataArr(sourceData, tempRstArr);
|
|
|
break;
|
|
|
case "self_define":
|
|
|
if (sortCfg[JV.PROP_SORT_TYPE_SELF_DEFINE_LOGIC]) {
|
|
@@ -915,8 +919,7 @@ function sortData(sourceData, sortCfg, prjData) {
|
|
|
eval('selfDefFunc = ' + sortCfg[JV.PROP_SORT_TYPE_SELF_DEFINE_LOGIC]);
|
|
|
tempRstArr.sort(selfDefFunc);
|
|
|
}
|
|
|
- delete sourceData.data;
|
|
|
- sourceData.data = tempRstArr;
|
|
|
+ replaceActDataArr(sourceData, tempRstArr);
|
|
|
break;
|
|
|
default:
|
|
|
//
|
|
@@ -1020,7 +1023,7 @@ function ext_getPropety(propKey) {
|
|
|
let rst = [], parentObj = this;
|
|
|
let dtObj = parentObj["myOwnRawDataObj"];
|
|
|
if (propKey && dtObj) {
|
|
|
- for (let dItem of dtObj.data) {
|
|
|
+ for (let dItem of getActDataArr(dtObj)) {
|
|
|
let doc = (dItem._doc === null || dItem._doc === undefined)?dItem:dItem._doc;
|
|
|
if (propKey instanceof Array) {
|
|
|
for (let pi = 0; pi < propKey.length; pi++) {
|
|
@@ -1054,7 +1057,7 @@ function ext_getPropertyByRefId(baseKey, refIDKey, propertyKey){
|
|
|
let dtObj = parentObj["myOwnRawDataObj"];
|
|
|
let orgDtObj = parentObj["myOwnOrgRawDataObj"];
|
|
|
if (baseKey && refIDKey && propertyKey && dtObj) {
|
|
|
- for (let dItem of dtObj.data) {
|
|
|
+ for (let dItem of getActDataArr(dtObj)) {
|
|
|
let doc = (dItem._doc === null || dItem._doc === undefined)?dItem:dItem._doc;
|
|
|
let tmpRst = doc[baseKey];
|
|
|
if (typeof tmpRst === "string" && tmpRst[0] === "@") {
|
|
@@ -1108,7 +1111,7 @@ function ext_getFee(feeKey, dtlFeeKey) {
|
|
|
let rst = [], parentObj = this;
|
|
|
let dtObj = parentObj["myOwnRawDataObj"];
|
|
|
if (feeKey && dtObj) {
|
|
|
- for (let dItem of dtObj.data) {
|
|
|
+ for (let dItem of getActDataArr(dtObj)) {
|
|
|
rst.push(pri_getFee(dItem, feeKey, dtlFeeKey));
|
|
|
}
|
|
|
}
|
|
@@ -1219,7 +1222,7 @@ function ext_getArrayValues(itemKey) {
|
|
|
let rst = [], parentObj = this;
|
|
|
let dtObj = parentObj["myOwnRawDataObj"];
|
|
|
let keysArr = itemKey.split(".");
|
|
|
- for (let dataItem of dtObj.data) {
|
|
|
+ for (let dataItem of getActDataArr(dtObj)) {
|
|
|
let itemArr = [];
|
|
|
if (keysArr.length <= 2) {
|
|
|
if (dataItem[keysArr[0]] instanceof Array) {
|
|
@@ -1279,7 +1282,8 @@ function ext_getBlank(dftVal) {
|
|
|
let rst = [], parentObj = this;
|
|
|
let dtObj = parentObj["myOwnRawDataObj"];
|
|
|
if (dtObj) {
|
|
|
- for (let i = 0; i < dtObj.data.length; i++) {
|
|
|
+ let dtData = getActDataArr(dtObj);
|
|
|
+ for (let i = 0; i < dtData.length; i++) {
|
|
|
if (dftVal !== null && dftVal !== undefined) {
|
|
|
rst.push(dftVal)
|
|
|
} else rst.push('');
|
|
@@ -1293,7 +1297,7 @@ function ext_getPropertyByFlag(flagVal, rstKey, dftValIfEmpty) {
|
|
|
let dtObj = parentObj["myOwnRawDataObj"];
|
|
|
if (flagVal && rstKey && dtObj) {
|
|
|
let isArr = (flagVal instanceof Array);
|
|
|
- for (let dItem of dtObj.data) {
|
|
|
+ for (let dItem of getActDataArr(dtObj)) {
|
|
|
let doc = (dItem._doc)?dItem._doc:dItem;
|
|
|
if (doc.hasOwnProperty("flags")) {
|
|
|
let bFlag = false;
|
|
@@ -1335,8 +1339,7 @@ function ext_getPropertyByForeignId(foreignIdVal, adHocIdKey, propKey, dftValIfN
|
|
|
if (foreignIdVal instanceof Array) {
|
|
|
for (let idVal of foreignIdVal) {
|
|
|
isFound = false;
|
|
|
- let dataArr = dtObj.data;
|
|
|
- if (dtObj.moduleName === "projectGLJ") dataArr = dtObj.data.gljList;
|
|
|
+ let dataArr = getActDataArr(dtObj);
|
|
|
for (let i = 0; i < dataArr.length; i++) {
|
|
|
let item = (dataArr[i]._doc)?dataArr[i]._doc:dataArr[i];
|
|
|
if (item[IdKey] === idVal) {
|
|
@@ -1367,7 +1370,7 @@ function ext_getPropertyByForeignId(foreignIdVal, adHocIdKey, propKey, dftValIfN
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- for (let item of dtObj.data) {
|
|
|
+ for (let item of getActDataArr(dtObj)) {
|
|
|
if (item[IdKey] === foreignIdVal) {
|
|
|
rst.push(item[propKey]);
|
|
|
isFound = true;
|
|
@@ -1382,4 +1385,25 @@ function ext_getPropertyByForeignId(foreignIdVal, adHocIdKey, propKey, dftValIfN
|
|
|
return rst;
|
|
|
}
|
|
|
|
|
|
+function getActDataArr(dtObj) {
|
|
|
+ let rst = null;
|
|
|
+ if (dtObj) {
|
|
|
+ rst = dtObj.data;
|
|
|
+ if (dtObj.moduleName === "projectGLJ") {
|
|
|
+ rst = dtObj.data.gljList;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return rst;
|
|
|
+}
|
|
|
+
|
|
|
+function replaceActDataArr(dtObj, newArr) {
|
|
|
+ if (dtObj.moduleName === "projectGLJ") {
|
|
|
+ delete dtObj.data.gljList;
|
|
|
+ dtObj.data.gljList = newArr;
|
|
|
+ } else {
|
|
|
+ delete dtObj.data;
|
|
|
+ dtObj.data = newArr;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
export default Rpt_Data_Extractor;
|