|  | @@ -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)) {
 |