|
@@ -12,6 +12,8 @@ let stringUtil = require("../../../public/stringUtil");
|
|
|
let treeUtil = require('../../../public/treeUtil');
|
|
|
let projectConst = consts.projectConst;
|
|
|
let projectConstList = consts.projectConstList;
|
|
|
+const gljUtil = require('../../../public/gljUtil');
|
|
|
+
|
|
|
|
|
|
const GLJ_TYPE = {
|
|
|
Labour: 1,
|
|
@@ -134,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);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
};
|
|
@@ -202,6 +218,14 @@ class Rpt_Data_Extractor {
|
|
|
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");
|
|
|
+ if (projectGLJDatas && rationGLJDatas && rationDatas && billsDatas) {
|
|
|
+ gljUtil.calcProjectGLJQuantity(projectGLJDatas.data, rationGLJDatas.data, rationDatas.data, billsDatas.data, 4);
|
|
|
+ }
|
|
|
+
|
|
|
if (tpl[JV.NODE_MAP_DATA_HANDLE_INFO]) {
|
|
|
for (let preHandle of tpl[JV.NODE_MAP_DATA_HANDLE_INFO]) {
|
|
|
let srcData = getModuleDataByKey(rawDataObj.prjData, preHandle[JV.PROP_DATA_KEY]);
|
|
@@ -292,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 {
|
|
@@ -368,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 {
|
|
@@ -414,9 +437,9 @@ function filterData(sourceData, handleCfg, prjData) {
|
|
|
rst = compVal.indexOf(src) >= 0;
|
|
|
} else {
|
|
|
//string,需要转类型
|
|
|
- let newCv = JSON.parse(compVal);
|
|
|
- if (newCv instanceof Array) {
|
|
|
- rst = newCv.indexOf(src) >= 0;
|
|
|
+ let newInCv = JSON.parse(compVal);
|
|
|
+ if (newInCv instanceof Array) {
|
|
|
+ rst = newInCv.indexOf(src) >= 0;
|
|
|
} else {
|
|
|
rst = false;
|
|
|
}
|
|
@@ -427,9 +450,9 @@ function filterData(sourceData, handleCfg, prjData) {
|
|
|
rst = compVal.indexOf(src) < 0;
|
|
|
} else {
|
|
|
//string,需要转类型
|
|
|
- let newCv = JSON.parse(compVal);
|
|
|
- if (newCv instanceof Array) {
|
|
|
- rst = newCv.indexOf(src) < 0;
|
|
|
+ let newNotInCv = JSON.parse(compVal);
|
|
|
+ if (newNotInCv instanceof Array) {
|
|
|
+ rst = (newNotInCv.indexOf(src) < 0);
|
|
|
} else {
|
|
|
rst = true;
|
|
|
}
|
|
@@ -442,12 +465,25 @@ function filterData(sourceData, handleCfg, prjData) {
|
|
|
};
|
|
|
let private_chkArrVal = function(arr, key, compVal, compStr){
|
|
|
let rst = false;
|
|
|
- for (let arrItem of arr) {
|
|
|
- if (arrItem[key]) {
|
|
|
- rst = private_chkVal(arrItem[key], compVal, compStr);
|
|
|
+ if (arr.length > 0) {
|
|
|
+ for (let arrItem of arr) {
|
|
|
+ if (arrItem[key]) {
|
|
|
+ rst = private_chkVal(arrItem[key], compVal, compStr);
|
|
|
+ }
|
|
|
+ if (rst) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
- if (rst) {
|
|
|
- break;
|
|
|
+ } else {
|
|
|
+ //在某些判断条件下(含有'非'判断),如arr没有数组项,默认结果反而是true
|
|
|
+ switch (compStr) {
|
|
|
+ case "!=" :
|
|
|
+ case "!==" :
|
|
|
+ case "not in":
|
|
|
+ rst = true;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
return rst;
|
|
@@ -462,11 +498,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;
|
|
@@ -523,7 +555,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]]);
|
|
|
}
|
|
@@ -533,16 +565,35 @@ 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;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
startIdx++;
|
|
|
+ if (!compRst) {
|
|
|
+ break; //有不符合条件的数据则退出(这里的判断条件是and关系)
|
|
|
+ }
|
|
|
}
|
|
|
return compRst;
|
|
|
};
|
|
|
+ let private_sub_filter_compare = function (dtlItem, subFilters) {
|
|
|
+ let cmpRst = false;
|
|
|
+ for (let dtlCfg of subFilters) {
|
|
|
+ cmpRst = private_filter_compare(dtlItem, dtlCfg);
|
|
|
+ if (cmpRst) {
|
|
|
+ if (dtlCfg[JV.PROP_OTHER_SUB_FILTER] && dtlCfg[JV.PROP_OTHER_SUB_FILTER].length > 0) {
|
|
|
+ cmpRst = private_sub_filter_compare(dtlItem, dtlCfg[JV.PROP_OTHER_SUB_FILTER]);
|
|
|
+ if (cmpRst) break;
|
|
|
+ } else {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return cmpRst;
|
|
|
+ };
|
|
|
+
|
|
|
for (let item of tempRstArr) {
|
|
|
if (private_filter_compare(item, handleCfg)) {
|
|
|
rstArr.push(item);
|
|
@@ -551,25 +602,20 @@ function filterData(sourceData, handleCfg, prjData) {
|
|
|
if (handleCfg[JV.PROP_OTHER_SUB_FILTER] && handleCfg[JV.PROP_OTHER_SUB_FILTER].length > 0) {
|
|
|
let newRstArr = [];
|
|
|
for (let dtlItem of rstArr) {
|
|
|
- let cmpRst = false;
|
|
|
- for (let dtlCfg of handleCfg[JV.PROP_OTHER_SUB_FILTER]) {
|
|
|
- cmpRst = private_filter_compare(dtlItem, dtlCfg);
|
|
|
- if (cmpRst) {
|
|
|
- newRstArr.push(dtlItem);
|
|
|
- break;
|
|
|
- }
|
|
|
+ let cmpRst = private_sub_filter_compare(dtlItem, handleCfg[JV.PROP_OTHER_SUB_FILTER]);
|
|
|
+ if (cmpRst) {
|
|
|
+ newRstArr.push(dtlItem);
|
|
|
}
|
|
|
}
|
|
|
rstArr = newRstArr;
|
|
|
}
|
|
|
- delete sourceData.data;
|
|
|
- sourceData.data = rstArr;
|
|
|
- // fsUtil.writeObjToFile(sourceData.data, "D:/GitHome/ConstructionCost/tmp/filteredRst.js");
|
|
|
+ replaceActDataArr(sourceData, rstArr);
|
|
|
+ // fsUtil.writeObjToFile(sourceData.data, "D:/GitHome/ConstructionCost/tmp/filteredRst.jsp");
|
|
|
}
|
|
|
|
|
|
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 {
|
|
@@ -585,8 +631,7 @@ function adjustData(sourceData, adjustCfg) {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- delete sourceData.data;
|
|
|
- sourceData.data = rstArr;
|
|
|
+ replaceActDataArr(sourceData, rstArr);
|
|
|
}
|
|
|
|
|
|
function moveRationData(rationData, rawDataObj) {
|
|
@@ -595,7 +640,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 = {};
|
|
@@ -672,7 +717,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 {
|
|
@@ -705,8 +750,7 @@ function addDummyData(sourceData, addCfg) {
|
|
|
}
|
|
|
}
|
|
|
rstArr = rstArr.concat(tempRstArr);
|
|
|
- delete sourceData.data;
|
|
|
- sourceData.data = rstArr;
|
|
|
+ replaceActDataArr(sourceData, rstArr);
|
|
|
}
|
|
|
|
|
|
function getGLJBizType(orgType, orgCode, orgName) {
|
|
@@ -746,9 +790,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 {
|
|
@@ -849,14 +894,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":
|
|
@@ -864,7 +907,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 {
|
|
@@ -896,8 +939,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]) {
|
|
@@ -905,8 +947,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:
|
|
|
//
|
|
@@ -1010,9 +1051,10 @@ 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) {
|
|
|
+ //备注:这里的key数组表示取value的优先级
|
|
|
for (let pi = 0; pi < propKey.length; pi++) {
|
|
|
if (doc.hasOwnProperty("property")) {
|
|
|
if (doc["property"].hasOwnProperty(propKey[pi])) {
|
|
@@ -1022,6 +1064,16 @@ function ext_getPropety(propKey) {
|
|
|
} else if (doc.hasOwnProperty(propKey[pi])) {
|
|
|
rst.push(doc[propKey[pi]]);
|
|
|
break;
|
|
|
+ } else {
|
|
|
+ let lenBefore = rst.length;
|
|
|
+ getDeepProperty(propKey[pi], doc, rst);
|
|
|
+ if (rst.length === (lenBefore + 1)) {
|
|
|
+ if (rst[lenBefore] !== null && rst[lenBefore] !== undefined && rst[lenBefore] !== "") {
|
|
|
+ break;
|
|
|
+ } else {
|
|
|
+ rst.splice(-1, 1); //删除末尾一条数据,给后面留空间
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
if (pi === propKey.length - 1) rst.push('');
|
|
|
}
|
|
@@ -1031,7 +1083,8 @@ function ext_getPropety(propKey) {
|
|
|
} else if (doc.hasOwnProperty(propKey)) {
|
|
|
rst.push(doc[propKey]);
|
|
|
} else {
|
|
|
- rst.push('');
|
|
|
+ // rst.push('');
|
|
|
+ getDeepProperty(propKey, doc, rst);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1044,7 +1097,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] === "@") {
|
|
@@ -1098,7 +1151,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));
|
|
|
}
|
|
|
}
|
|
@@ -1209,7 +1262,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) {
|
|
@@ -1269,7 +1322,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('');
|
|
@@ -1283,7 +1337,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;
|
|
@@ -1325,8 +1379,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) {
|
|
@@ -1357,7 +1410,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;
|
|
@@ -1372,4 +1425,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;
|