| 
					
				 | 
			
			
				@@ -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; 
			 |