| 
					
				 | 
			
			
				@@ -11,6 +11,7 @@ const fs = require('fs'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const fsUtil = require('../../public/js/fsUtil'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const stringUtil = require('../../public/js/stringUtil'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const scMathUtil = require('../../public/js/scMathUtil'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const data_analyze_util = require('../../lib/rpt_data_analysis'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const _ = require('lodash'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const treeUtil = require('../public/treeUtil'); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -189,7 +190,7 @@ class Rpt_Data_Extractor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 装配数据(把收集到的数据,依据报表模板的指示,预处理(如:排序、过滤、合计)及装配到相关指标) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    assembleData(rawDataObj, baseDir) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assembleData(ctx, rawDataObj, baseDir) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const $PROJECT = { REPORT: {} }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const tpl = this.rptTpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.COMMON.initialize(tpl, rawDataObj); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -203,13 +204,13 @@ class Rpt_Data_Extractor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const srcData = getModuleDataByKey(rawDataObj.prjData, preHandle[JV.PROP_DATA_KEY]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 switch (preHandle[JV.PROP_HANDLE_TYPE]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     case JV.PROP_HANDLE_TYPE_SORT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        sortData(srcData, preHandle, rawDataObj.prjData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        // sortData(srcData, preHandle, rawDataObj.prjData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     case JV.PROP_HANDLE_TYPE_FILTER: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        filterData(srcData, preHandle, rawDataObj.prjData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        // filterData(srcData, preHandle, rawDataObj.prjData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    case JV.PROP_HANDLE_TYPE_ADJUST: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        adjustData(srcData, preHandle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    case JV.PROP_HANDLE_TYPE_PRE_DEFINED: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        preDefineProcess(ctx, preHandle, rawDataObj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         break; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -483,6 +484,24 @@ function filterData(sourceData, handleCfg, prjData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // fsUtil.writeObjToFile(sourceData.data, 'D:/GitHome/ConstructionCost/tmp/filteredRst.jsp'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function preDefineProcess(ctx, preDefineCfg, rawDataObj) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    switch (preDefineCfg[JV.PROP_HANDLE_TYPE_PRE_DEFINED_KEY]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        case 'changeSort' : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // [{field: 'b_code', table: 'mem_stage_bills'}, {field: 'id', table: 'mem_stage_bills'}] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 在预定义方式中,小麦处理原始数据,不需要 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                data_analyze_util.changeSort.fun(ctx, rawDataObj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } catch (ex) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        case '' : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function adjustData(sourceData, adjustCfg) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const rstArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     for (const item of getActDataArr(sourceData)) { 
			 |