From 3df221b0a98cde4562471727a6ad41ffafbe39a8 Mon Sep 17 00:00:00 2001
From: 1821349743@qq.com <1821349743@qq.com>
Date: 星期一, 03 四月 2023 10:24:56 +0800
Subject: [PATCH] picc of version

---
 src/main/java/com/product/server/report/service/DataListReportService.java | 3112 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 1,557 insertions(+), 1,555 deletions(-)

diff --git a/src/main/java/com/product/server/report/service/DataListReportService.java b/src/main/java/com/product/server/report/service/DataListReportService.java
index ea5274c..f1ce643 100644
--- a/src/main/java/com/product/server/report/service/DataListReportService.java
+++ b/src/main/java/com/product/server/report/service/DataListReportService.java
@@ -42,1648 +42,1650 @@
  */
 @Component
 public class DataListReportService extends AbstractBaseService {
-    @Autowired
-    private BaseDao baseDao;
-    @Autowired
-    private GroupReportService groupReportService;
-    @Autowired
-    private CommonReportService commonReportService;
-    @Autowired
-    private QueryFilterService queryFilterService;
-    @Autowired
-    private RouterService routerService;
+	@Autowired
+	private BaseDao baseDao;
+	@Autowired
+	private GroupReportService groupReportService;
+	@Autowired
+	private CommonReportService commonReportService;
+	@Autowired
+	private QueryFilterService queryFilterService;
+	@Autowired
+	private RouterService routerService;
 
-    /**
-     * 鍔犺浇鎵�鏈夌紦瀛�
-     */
-    public void setAllConfig() {
-        DataTableEntity reportTypeDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_TYPE);
-        if (BaseUtil.dataTableIsEmpty(reportTypeDte)) {
-            return;
-        }
-        List<String> dataListUUIDList = Lists.newArrayList();
-        FieldSetEntity fse;
-        for (int i = 0; i < reportTypeDte.getRows(); i++) {
-            fse = reportTypeDte.getFieldSetEntity(i);
-            if ("DataList".equals(fse.getString(CmnConst.TYPE_GROUP))) {
-                dataListUUIDList.add(fse.getUUID());
-            }
-        }
-        DataTableEntity reportConfigDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_CONFIG);
-        if (reportConfigDte == null) {
-            return;
-        }
-        for (int i = 0; i < reportConfigDte.getRows(); i++) {
-            fse = reportConfigDte.getFieldSetEntity(i);
-            try {
-                if (!dataListUUIDList.contains(fse.getString(CmnConst.TYPE_UUID)) || (StringUtils.isEmpty(fse.getString(CmnConst.FUNCTION_UUID)) && !"1".equals(fse.getString(CmnConst.RELATE_FLAG)))) {
-                    continue;
-                }
-                setConfig(fse.getUUID());
-            } catch (Exception e) {
-                logger.error(ReportCode.GET_REPORT_CONFIG_FIAL.getText() + ": " + fse.getUUID(), e);
-            }
-        }
-    }
+	/**
+	 * 鍔犺浇鎵�鏈夌紦瀛�
+	 */
+	public void setAllConfig() {
+		DataTableEntity reportTypeDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_TYPE);
+		if (BaseUtil.dataTableIsEmpty(reportTypeDte)) {
+			return;
+		}
+		List<String> dataListUUIDList = Lists.newArrayList();
+		FieldSetEntity fse;
+		for (int i = 0; i < reportTypeDte.getRows(); i++) {
+			fse = reportTypeDte.getFieldSetEntity(i);
+			if ("DataList".equals(fse.getString(CmnConst.TYPE_GROUP))) {
+				dataListUUIDList.add(fse.getUUID());
+			}
+		}
+		DataTableEntity reportConfigDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_CONFIG);
+		if (reportConfigDte == null) {
+			return;
+		}
+		for (int i = 0; i < reportConfigDte.getRows(); i++) {
+			fse = reportConfigDte.getFieldSetEntity(i);
+			try {
+				if (!dataListUUIDList.contains(fse.getString(CmnConst.TYPE_UUID)) || (StringUtils.isEmpty(fse.getString(CmnConst.FUNCTION_UUID)) && !"1".equals(fse.getString(CmnConst.RELATE_FLAG)))) {
+					continue;
+				}
+				setConfig(fse.getUUID());
+			} catch (Exception e) {
+				logger.error(ReportCode.GET_REPORT_CONFIG_FIAL.getText() + ": " + fse.getUUID(), e);
+			}
+		}
+	}
 
-    /**
-     * 璁剧疆鎶ヨ〃鍔犺浇缂撳瓨
-     *
-     * @param reportConfigUUID 鎶ヨ〃閰嶇疆UUID
-     */
-    public void setConfig(String reportConfigUUID) {
-        // 灞炴�ц幏鍙�
-        StringBuilder sql = new StringBuilder(128);
-        sql.append("select report_area report_area,cell_position_y y,cell_position_x x,attribute_name name,report_type_attr_value value")
-                .append("\nfrom (")
-                .append("\n    select report_area,cell_position_y,cell_position_x,report_type_attr_value,report_type_attr FROM product_sys_report_config_attribute ca")
-                .append("\n    where report_config_uuid=?")
-                .append("\n) ca")
-                .append("\nleft join (")
-                .append("\n    select uuid,attribute_name FROM product_sys_report_type_attribute where type_group='DataList'")
-                .append("\n) ta on ca.report_type_attr=ta.uuid")
-                .append("\nwhere ta.attribute_name is not null")
-                .append("\norder by report_area,cell_position_y,cell_position_x");
-        DataTableEntity attrDte = baseDao.listTable(sql.toString(), new Object[]{reportConfigUUID});
-        if (BaseUtil.dataTableIsEmpty(attrDte)) {
-            throw new BaseException(ReportCode.SET_REPORT_CACHE_FAIL.getValue(), ReportCode.SET_REPORT_CACHE_FAIL.getText());
-        }
+	/**
+	 * 璁剧疆鎶ヨ〃鍔犺浇缂撳瓨
+	 *
+	 * @param reportConfigUUID 鎶ヨ〃閰嶇疆UUID
+	 */
+	public void setConfig(String reportConfigUUID) {
+		// 灞炴�ц幏鍙�
+		StringBuilder sql = new StringBuilder(128);
+		sql.append("select report_area report_area,cell_position_y y,cell_position_x x,attribute_name name,report_type_attr_value value")
+				.append("\nfrom (")
+				.append("\n    select report_area,cell_position_y,cell_position_x,report_type_attr_value,report_type_attr FROM product_sys_report_config_attribute ca")
+				.append("\n    where report_config_uuid=?")
+				.append("\n) ca")
+				.append("\nleft join (")
+				.append("\n    select uuid,attribute_name FROM product_sys_report_type_attribute where type_group='DataList'")
+				.append("\n) ta on ca.report_type_attr=ta.uuid")
+				.append("\nwhere ta.attribute_name is not null")
+				.append("\norder by report_area,cell_position_y,cell_position_x");
+		DataTableEntity attrDte = baseDao.listTable(sql.toString(), new Object[]{reportConfigUUID});
+		if (BaseUtil.dataTableIsEmpty(attrDte)) {
+			throw new BaseException(ReportCode.SET_REPORT_CACHE_FAIL.getValue(), ReportCode.SET_REPORT_CACHE_FAIL.getText());
+		}
 
-        // 鐢熸垚obj锛屾斁鍏ap锛岀粺璁″垎缁勮〃澶村尯琛屾暟
-        FieldSetEntity attrFse;
-        Map<Integer, List<JSONObject>> reportConfigMap = Maps.newHashMap();
-        List<JSONObject> areaList;
-        JSONObject fieldConfigObj;
-        int reportArea;
-        int x;
-        int y;
-        int preX = -1;
-        int preY = -1;
-        int groupAreaRowCount = 0;
-        for (int i = 0; i < attrDte.getRows(); i++) {
-            attrFse = attrDte.getFieldSetEntity(i);
-            if (attrFse.getInteger(CmnConst.ATTR_REPORT_AREA) == null) {
-                continue;
-            }
-            reportArea = attrFse.getInteger(CmnConst.ATTR_REPORT_AREA);
-            areaList = reportConfigMap.computeIfAbsent(reportArea, k -> Lists.newArrayList());
-            x = attrFse.getInteger(CmnConst.ATTR_X);
-            y = attrFse.getInteger(CmnConst.ATTR_Y);
-            if (preX != x || preY != y) {
-                fieldConfigObj = new JSONObject();
-                areaList.add(fieldConfigObj);
-            } else {
-                fieldConfigObj = areaList.get(areaList.size() - 1);
-            }
-            fieldConfigObj.put(attrFse.getString(CmnConst.ATTR_NAME), attrFse.getString(CmnConst.ATTR_VALUE));
-            fieldConfigObj.put(CmnConst.ATTR_X, x);
-            fieldConfigObj.put(CmnConst.ATTR_Y, y);
-            fieldConfigObj.put(CmnConst.ATTR_REPORT_AREA, reportArea);
-            if (reportArea == 2) {
-                groupAreaRowCount = Math.max(groupAreaRowCount, y);
-            }
-            preX = x;
-            preY = y;
-        }
+		// 鐢熸垚obj锛屾斁鍏ap锛岀粺璁″垎缁勮〃澶村尯琛屾暟
+		FieldSetEntity attrFse;
+		Map<Integer, List<JSONObject>> reportConfigMap = Maps.newHashMap();
+		List<JSONObject> areaList;
+		JSONObject fieldConfigObj;
+		int reportArea;
+		int x;
+		int y;
+		int preX = -1;
+		int preY = -1;
+		int groupAreaRowCount = 0;
+		for (int i = 0; i < attrDte.getRows(); i++) {
+			attrFse = attrDte.getFieldSetEntity(i);
+			if (attrFse.getInteger(CmnConst.ATTR_REPORT_AREA) == null) {
+				continue;
+			}
+			reportArea = attrFse.getInteger(CmnConst.ATTR_REPORT_AREA);
+			areaList = reportConfigMap.computeIfAbsent(reportArea, k -> Lists.newArrayList());
+			x = attrFse.getInteger(CmnConst.ATTR_X);
+			y = attrFse.getInteger(CmnConst.ATTR_Y);
+			if (preX != x || preY != y) {
+				fieldConfigObj = new JSONObject();
+				areaList.add(fieldConfigObj);
+			} else if (areaList.size() > 0) {
+				fieldConfigObj = areaList.get(areaList.size() - 1);
+			} else {
+				continue;
+			}
+			fieldConfigObj.put(attrFse.getString(CmnConst.ATTR_NAME), attrFse.getString(CmnConst.ATTR_VALUE));
+			fieldConfigObj.put(CmnConst.ATTR_X, x);
+			fieldConfigObj.put(CmnConst.ATTR_Y, y);
+			fieldConfigObj.put(CmnConst.ATTR_REPORT_AREA, reportArea);
+			if (reportArea == 2) {
+				groupAreaRowCount = Math.max(groupAreaRowCount, y);
+			}
+			preX = x;
+			preY = y;
+		}
 
-        // 娓呯悊绌烘牸
-        List<JSONObject> valueList;
-        JSONObject tempObj;
-        for (Map.Entry<Integer, List<JSONObject>> entry : reportConfigMap.entrySet()) {
-            valueList = entry.getValue();
-            for (int i = valueList.size() - 1; i >= 0; i--) {
-                tempObj = valueList.get(i);
-                if (StringUtils.isEmpty(tempObj.getString(CmnConst.ATTR_FIELD_INFO))) {
-                    valueList.remove(i);
-                }
-            }
-        }
+		// 娓呯悊绌烘牸
+		List<JSONObject> valueList;
+		JSONObject tempObj;
+		for (Map.Entry<Integer, List<JSONObject>> entry : reportConfigMap.entrySet()) {
+			valueList = entry.getValue();
+			for (int i = valueList.size() - 1; i >= 0; i--) {
+				tempObj = valueList.get(i);
+				if (StringUtils.isEmpty(tempObj.getString(CmnConst.ATTR_FIELD_INFO))) {
+					valueList.remove(i);
+				}
+			}
+		}
 
-        // 鎻愬彇鏁版嵁鍖哄垎缁勫瓧娈靛悕绉發ist锛屽鏁版嵁鍖哄瓧娈祇bj鏀惧叆鏁版嵁鍖哄垎缁勫瓧娈�
-        List<JSONObject> dataAreaReportConfigList = reportConfigMap.get(0);
-        String fieldName;
-        ArrayList<String> dataAreaGroupFieldNameList = Lists.newArrayList();
-        if (dataAreaReportConfigList != null) {
-            for (int i = 0; i < dataAreaReportConfigList.size(); i++) {
-                tempObj = dataAreaReportConfigList.get(i);
-                fieldName = fieldInfo2FieldName(tempObj.getString(CmnConst.ATTR_FIELD_INFO));
-                if (!dataAreaGroupFieldNameList.isEmpty()) {
-                    tempObj.put(CmnConst.ATTR_DATA_AREA_GROUP_FIELD, dataAreaGroupFieldNameList.clone());
-                }
-                fieldConfigObj = new JSONObject();
-                fieldConfigObj.put(fieldName, tempObj);
-                dataAreaReportConfigList.set(i, fieldConfigObj);
-                if ("1".equals(tempObj.getString(CmnConst.ATTR_IS_GROUP))) {
-                    dataAreaGroupFieldNameList.add(fieldName);
-                }
-            }
-        }
+		// 鎻愬彇鏁版嵁鍖哄垎缁勫瓧娈靛悕绉發ist锛屽鏁版嵁鍖哄瓧娈祇bj鏀惧叆鏁版嵁鍖哄垎缁勫瓧娈�
+		List<JSONObject> dataAreaReportConfigList = reportConfigMap.get(0);
+		String fieldName;
+		ArrayList<String> dataAreaGroupFieldNameList = Lists.newArrayList();
+		if (dataAreaReportConfigList != null) {
+			for (int i = 0; i < dataAreaReportConfigList.size(); i++) {
+				tempObj = dataAreaReportConfigList.get(i);
+				fieldName = fieldInfo2FieldName(tempObj.getString(CmnConst.ATTR_FIELD_INFO));
+				if (!dataAreaGroupFieldNameList.isEmpty()) {
+					tempObj.put(CmnConst.ATTR_DATA_AREA_GROUP_FIELD, dataAreaGroupFieldNameList.clone());
+				}
+				fieldConfigObj = new JSONObject();
+				fieldConfigObj.put(fieldName, tempObj);
+				dataAreaReportConfigList.set(i, fieldConfigObj);
+				if ("1".equals(tempObj.getString(CmnConst.ATTR_IS_GROUP))) {
+					dataAreaGroupFieldNameList.add(fieldName);
+				}
+			}
+		}
 
-        // 鎻愬彇鍒嗙粍琛ㄥご鍖哄垎缁勫瓧娈靛悕绉發ist锛屽鍒嗙粍琛ㄥご鍖哄瓧娈祇bj鏀惧叆鏁版嵁鍖哄垎缁勫瓧娈点�佸垎缁勮〃澶村尯鍒嗙粍瀛楁
-        List<JSONObject> groupAreaReportConfigList = reportConfigMap.get(2);
-        ArrayList<String> groupAreaGroupFieldNameList = Lists.newArrayList();
-        JSONObject dataAreaFieldConfigOuterObj;
-        JSONObject dataAreaFieldConfigInnerObj;
-        JSONObject groupAreaFieldConfigInnerObj;
-        if (groupAreaReportConfigList != null) {
-            for (int i = 0; i < groupAreaReportConfigList.size(); i++) {
-                tempObj = groupAreaReportConfigList.get(i);
-                fieldName = fieldInfo2FieldName(tempObj.getString(CmnConst.ATTR_FIELD_INFO));
-                if (!dataAreaGroupFieldNameList.isEmpty()) {
-                    tempObj.put(CmnConst.ATTR_DATA_AREA_GROUP_FIELD, dataAreaGroupFieldNameList);
-                }
-                if (!groupAreaGroupFieldNameList.isEmpty()) {
-                    tempObj.put(CmnConst.ATTR_GROUP_AREA_GROUP_FIELD, groupAreaGroupFieldNameList.clone());
-                }
-                fieldConfigObj = new JSONObject();
-                fieldConfigObj.put(fieldName, tempObj);
-                groupAreaReportConfigList.set(i, fieldConfigObj);
-                if ("1".equals(tempObj.getString(CmnConst.ATTR_IS_GROUP))) {
-                    groupAreaGroupFieldNameList.add(fieldName);
-                }
-                // 娣诲姞鏁版嵁鍖虹殑鍒嗙粍琛ㄥご鍖哄垎缁勫瓧娈�
-                if (dataAreaReportConfigList != null) {
-                    for (int j = 0; j < dataAreaReportConfigList.size(); j++) {
-                        dataAreaFieldConfigOuterObj = dataAreaReportConfigList.get(j);
-                        dataAreaFieldConfigInnerObj = (JSONObject) dataAreaFieldConfigOuterObj.entrySet().iterator().next().getValue();
-                        groupAreaFieldConfigInnerObj = tempObj;
-                        if (groupAreaFieldConfigInnerObj.getIntValue(CmnConst.ATTR_X) + Math.max(1, groupAreaFieldConfigInnerObj.getIntValue(CmnConst.ATTR_COLSPAN)) - 1 >= dataAreaFieldConfigInnerObj.getIntValue(CmnConst.ATTR_X)
-                                && groupAreaFieldConfigInnerObj.getIntValue(CmnConst.ATTR_X) <= dataAreaFieldConfigInnerObj.getIntValue(CmnConst.ATTR_X)) {
-                            dataAreaFieldConfigInnerObj.put(CmnConst.ATTR_GROUP_AREA_GROUP_FIELD, groupAreaGroupFieldNameList);
-                        }
-                    }
-                }
-            }
-        }
+		// 鎻愬彇鍒嗙粍琛ㄥご鍖哄垎缁勫瓧娈靛悕绉發ist锛屽鍒嗙粍琛ㄥご鍖哄瓧娈祇bj鏀惧叆鏁版嵁鍖哄垎缁勫瓧娈点�佸垎缁勮〃澶村尯鍒嗙粍瀛楁
+		List<JSONObject> groupAreaReportConfigList = reportConfigMap.get(2);
+		ArrayList<String> groupAreaGroupFieldNameList = Lists.newArrayList();
+		JSONObject dataAreaFieldConfigOuterObj;
+		JSONObject dataAreaFieldConfigInnerObj;
+		JSONObject groupAreaFieldConfigInnerObj;
+		if (groupAreaReportConfigList != null) {
+			for (int i = 0; i < groupAreaReportConfigList.size(); i++) {
+				tempObj = groupAreaReportConfigList.get(i);
+				fieldName = fieldInfo2FieldName(tempObj.getString(CmnConst.ATTR_FIELD_INFO));
+				if (!dataAreaGroupFieldNameList.isEmpty()) {
+					tempObj.put(CmnConst.ATTR_DATA_AREA_GROUP_FIELD, dataAreaGroupFieldNameList);
+				}
+				if (!groupAreaGroupFieldNameList.isEmpty()) {
+					tempObj.put(CmnConst.ATTR_GROUP_AREA_GROUP_FIELD, groupAreaGroupFieldNameList.clone());
+				}
+				fieldConfigObj = new JSONObject();
+				fieldConfigObj.put(fieldName, tempObj);
+				groupAreaReportConfigList.set(i, fieldConfigObj);
+				if ("1".equals(tempObj.getString(CmnConst.ATTR_IS_GROUP))) {
+					groupAreaGroupFieldNameList.add(fieldName);
+				}
+				// 娣诲姞鏁版嵁鍖虹殑鍒嗙粍琛ㄥご鍖哄垎缁勫瓧娈�
+				if (dataAreaReportConfigList != null) {
+					for (int j = 0; j < dataAreaReportConfigList.size(); j++) {
+						dataAreaFieldConfigOuterObj = dataAreaReportConfigList.get(j);
+						dataAreaFieldConfigInnerObj = (JSONObject) dataAreaFieldConfigOuterObj.entrySet().iterator().next().getValue();
+						groupAreaFieldConfigInnerObj = tempObj;
+						if (groupAreaFieldConfigInnerObj.getIntValue(CmnConst.ATTR_X) + Math.max(1, groupAreaFieldConfigInnerObj.getIntValue(CmnConst.ATTR_COLSPAN)) - 1 >= dataAreaFieldConfigInnerObj.getIntValue(CmnConst.ATTR_X)
+								&& groupAreaFieldConfigInnerObj.getIntValue(CmnConst.ATTR_X) <= dataAreaFieldConfigInnerObj.getIntValue(CmnConst.ATTR_X)) {
+							dataAreaFieldConfigInnerObj.put(CmnConst.ATTR_GROUP_AREA_GROUP_FIELD, groupAreaGroupFieldNameList);
+						}
+					}
+				}
+			}
+		}
 
-        // 鏁版嵁婧愭帓搴�
-        StringBuilder sort = new StringBuilder(128);
-        JSONObject innerObj;
-        if (dataAreaReportConfigList != null) {
-            for (JSONObject outerObj : dataAreaReportConfigList) {
-                fieldName = outerObj.keySet().iterator().next();
-                if (dataAreaGroupFieldNameList.contains(fieldName)) {
-                    innerObj = outerObj.getJSONObject(fieldName);
-                    sort.append(fieldName).append(StringUtils.isEmpty(innerObj.getString(CmnConst.ATTR_ORDER_BY)) ? "" : " " + innerObj.getString(CmnConst.ATTR_ORDER_BY)).append(",");
-                }
-            }
-        }
-        if (groupAreaReportConfigList != null) {
-            for (JSONObject outerObj : groupAreaReportConfigList) {
-                fieldName = outerObj.keySet().iterator().next();
-                if (StringUtils.isEmpty(fieldName)) {
-                    continue;
-                }
-                innerObj = outerObj.getJSONObject(fieldName);
-                sort.append(fieldName).append(StringUtils.isEmpty(innerObj.getString(CmnConst.ATTR_ORDER_BY)) ? "" : " " + innerObj.getString(CmnConst.ATTR_ORDER_BY)).append(",");
-            }
-        }
-        if (sort.length() > 0) {
-            sort.deleteCharAt(sort.length() - 1);
-        }
+		// 鏁版嵁婧愭帓搴�
+		StringBuilder sort = new StringBuilder(128);
+		JSONObject innerObj;
+		if (dataAreaReportConfigList != null) {
+			for (JSONObject outerObj : dataAreaReportConfigList) {
+				fieldName = outerObj.keySet().iterator().next();
+				if (dataAreaGroupFieldNameList.contains(fieldName)) {
+					innerObj = outerObj.getJSONObject(fieldName);
+					sort.append(fieldName).append(StringUtils.isEmpty(innerObj.getString(CmnConst.ATTR_ORDER_BY)) ? "" : " " + innerObj.getString(CmnConst.ATTR_ORDER_BY)).append(",");
+				}
+			}
+		}
+		if (groupAreaReportConfigList != null) {
+			for (JSONObject outerObj : groupAreaReportConfigList) {
+				fieldName = outerObj.keySet().iterator().next();
+				if (StringUtils.isEmpty(fieldName)) {
+					continue;
+				}
+				innerObj = outerObj.getJSONObject(fieldName);
+				sort.append(fieldName).append(StringUtils.isEmpty(innerObj.getString(CmnConst.ATTR_ORDER_BY)) ? "" : " " + innerObj.getString(CmnConst.ATTR_ORDER_BY)).append(",");
+			}
+		}
+		if (sort.length() > 0) {
+			sort.deleteCharAt(sort.length() - 1);
+		}
 
-        // 鏀惧叆缂撳瓨
-        RedisUtil.setHash(reportConfigUUID, "sort", sort);
-        for (Map.Entry<Integer, List<JSONObject>> entry : reportConfigMap.entrySet()) {
-            RedisUtil.setHash(reportConfigUUID, String.valueOf(entry.getKey()), entry.getValue());
-        }
-    }
+		// 鏀惧叆缂撳瓨
+		RedisUtil.setHash(reportConfigUUID, "sort", sort);
+		for (Map.Entry<Integer, List<JSONObject>> entry : reportConfigMap.entrySet()) {
+			RedisUtil.setHash(reportConfigUUID, String.valueOf(entry.getKey()), entry.getValue());
+		}
+	}
 
-    /**
-     * 鑾峰彇鎶ヨ〃
-     *
-     * @return
-     */
-    public JSONObject getReport(FieldSetEntity fse) {
-        String reportConfigUUID = fse.getUUID();
-        DataTableEntity reportConfigDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_CONFIG, new String[]{reportConfigUUID});
-        if (BaseUtil.dataTableIsEmpty(reportConfigDte)) {
-            throw new BaseException(ReportCode.GET_CACHE_FIAL.getValue(), ReportCode.GET_CACHE_FIAL.getText() + ":" + CmnConst.CACHE_REPORT_CONFIG);
-        }
-        FieldSetEntity reportConfigFse = reportConfigDte.getFieldSetEntity(0);
-        if (!"1".equals(reportConfigFse.getString(CmnConst.IS_VALID))) {
-            throw new BaseException(ReportCode.INVALID_REPORT.getValue(), ReportCode.INVALID_REPORT.getText());
-        }
+	/**
+	 * 鑾峰彇鎶ヨ〃
+	 *
+	 * @return
+	 */
+	public JSONObject getReport(FieldSetEntity fse) {
+		String reportConfigUUID = fse.getUUID();
+		DataTableEntity reportConfigDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_CONFIG, new String[]{reportConfigUUID});
+		if (BaseUtil.dataTableIsEmpty(reportConfigDte)) {
+			throw new BaseException(ReportCode.GET_CACHE_FIAL.getValue(), ReportCode.GET_CACHE_FIAL.getText() + ":" + CmnConst.CACHE_REPORT_CONFIG);
+		}
+		FieldSetEntity reportConfigFse = reportConfigDte.getFieldSetEntity(0);
+		if (!"1".equals(reportConfigFse.getString(CmnConst.IS_VALID))) {
+			throw new BaseException(ReportCode.INVALID_REPORT.getValue(), ReportCode.INVALID_REPORT.getText());
+		}
 
-        DataTableEntity reportTypeDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_TYPE, new String[]{reportConfigFse.getString(CmnConst.TYPE_UUID)});
-        if (BaseUtil.dataTableIsEmpty(reportTypeDte)) {
-            throw new BaseException(ReportCode.GET_CACHE_FIAL.getValue(), ReportCode.GET_CACHE_FIAL.getText() + ":" + CmnConst.CACHE_REPORT_TYPE);
-        }
-        FieldSetEntity reportTypeFse = reportTypeDte.getFieldSetEntity(0);
+		DataTableEntity reportTypeDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_TYPE, new String[]{reportConfigFse.getString(CmnConst.TYPE_UUID)});
+		if (BaseUtil.dataTableIsEmpty(reportTypeDte)) {
+			throw new BaseException(ReportCode.GET_CACHE_FIAL.getValue(), ReportCode.GET_CACHE_FIAL.getText() + ":" + CmnConst.CACHE_REPORT_TYPE);
+		}
+		FieldSetEntity reportTypeFse = reportTypeDte.getFieldSetEntity(0);
 
-        StringBuilder sort = new StringBuilder(128);
-        // 鑾峰彇鎶ヨ〃缂撳瓨淇℃伅
-        Map<Integer, List<JSONObject>> reportConfigMap = getReportConfig(reportConfigUUID, sort);
-        // 鏍规嵁鍏蜂綋鐨刦unction_uuid鍜宐utton_uuid鑾峰彇瀵瑰簲鐨勮矾鐢憋紝鎷煎噾url
-        String url;
-        JSONObject valueObj;
-        for (Map.Entry<Integer, List<JSONObject>> entry : reportConfigMap.entrySet()) {
-            if (entry.getValue() != null) {
-                for (JSONObject tempValueObj : entry.getValue()) {
-                    if (entry.getValue() != null) {
-                        for (Map.Entry<String, Object> innerEntry : tempValueObj.entrySet()) {
-                            if (innerEntry.getValue() instanceof JSONObject) {
-                                valueObj = (JSONObject) innerEntry.getValue();
-                                if (!StringUtils.isEmpty(valueObj.getString(CmnConst.SUB_REPORT))) {
-                                    url = valueObj.getString(CmnConst.SUB_REPORT);
-                                    if (!StringUtils.isEmpty(valueObj.getString(CmnConst.ATTR_URL_PARAM))) {
-                                        url += "?" + valueObj.getString(CmnConst.ATTR_URL_PARAM);
-                                    }
-                                    valueObj.put(CmnConst.ATTR_URL, url);
-                                    valueObj.put("~isSubReport~", true);
-                                } else {
-                                    if (!StringUtils.isEmpty(valueObj.getString(CmnConst.FUNCTION_UUID)) && !StringUtils.isEmpty(valueObj.getString(CmnConst.BUTTON_UUID))) {
-                                        url = routerService.functionSkipByButtonUuid(valueObj.getString(CmnConst.FUNCTION_UUID), valueObj.getString(CmnConst.BUTTON_UUID));
-                                        if (StringUtils.isEmpty(url)) {
-                                            valueObj.remove(CmnConst.ATTR_URL);
-                                        } else {
-                                            if (!StringUtils.isEmpty(valueObj.getString(CmnConst.ATTR_URL_PARAM))) {
-                                                url += "?" + valueObj.getString(CmnConst.ATTR_URL_PARAM);
-                                            }
-                                            valueObj.put(CmnConst.ATTR_URL, url);
-                                        }
-                                    } else {
-                                        valueObj.remove(CmnConst.ATTR_URL);
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        // 鑾峰彇鎶ヨ〃绫诲瀷
-        String reportType = reportTypeFse.getString(CmnConst.TYPE_NAME);
-        // 鑾峰彇鏁版嵁婧�
-        DataTableEntity reportSourceDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_DATASOURCE_CONFIG, new String[]{reportConfigFse.getString(CmnConst.DATASOURCE_UUID)});
-        if (BaseUtil.dataTableIsEmpty(reportSourceDte)) {
-            throw new BaseException(ReportCode.GET_REPORT_DATASOURCE_FIAL.getValue(), ReportCode.GET_REPORT_DATASOURCE_FIAL.getText());
-        }
-        FieldSetEntity reportSourceFse = reportSourceDte.getFieldSetEntity(0);
-        int curPage = fse.getInteger(CmnConst.CPAGE) == null ? 1 : fse.getInteger(CmnConst.CPAGE);
+		StringBuilder sort = new StringBuilder(128);
+		// 鑾峰彇鎶ヨ〃缂撳瓨淇℃伅
+		Map<Integer, List<JSONObject>> reportConfigMap = getReportConfig(reportConfigUUID, sort);
+		// 鏍规嵁鍏蜂綋鐨刦unction_uuid鍜宐utton_uuid鑾峰彇瀵瑰簲鐨勮矾鐢憋紝鎷煎噾url
+		String url;
+		JSONObject valueObj;
+		for (Map.Entry<Integer, List<JSONObject>> entry : reportConfigMap.entrySet()) {
+			if (entry.getValue() != null) {
+				for (JSONObject tempValueObj : entry.getValue()) {
+					if (entry.getValue() != null) {
+						for (Map.Entry<String, Object> innerEntry : tempValueObj.entrySet()) {
+							if (innerEntry.getValue() instanceof JSONObject) {
+								valueObj = (JSONObject) innerEntry.getValue();
+								if (!StringUtils.isEmpty(valueObj.getString(CmnConst.SUB_REPORT))) {
+									url = valueObj.getString(CmnConst.SUB_REPORT);
+									if (!StringUtils.isEmpty(valueObj.getString(CmnConst.ATTR_URL_PARAM))) {
+										url += "?" + valueObj.getString(CmnConst.ATTR_URL_PARAM);
+									}
+									valueObj.put(CmnConst.ATTR_URL, url);
+									valueObj.put("~isSubReport~", true);
+								} else {
+									if (!StringUtils.isEmpty(valueObj.getString(CmnConst.FUNCTION_UUID)) && !StringUtils.isEmpty(valueObj.getString(CmnConst.BUTTON_UUID))) {
+										url = routerService.functionSkipByButtonUuid(valueObj.getString(CmnConst.FUNCTION_UUID), valueObj.getString(CmnConst.BUTTON_UUID));
+										if (StringUtils.isEmpty(url)) {
+											valueObj.remove(CmnConst.ATTR_URL);
+										} else {
+											if (!StringUtils.isEmpty(valueObj.getString(CmnConst.ATTR_URL_PARAM))) {
+												url += "?" + valueObj.getString(CmnConst.ATTR_URL_PARAM);
+											}
+											valueObj.put(CmnConst.ATTR_URL, url);
+										}
+									} else {
+										valueObj.remove(CmnConst.ATTR_URL);
+									}
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+		// 鑾峰彇鎶ヨ〃绫诲瀷
+		String reportType = reportTypeFse.getString(CmnConst.TYPE_NAME);
+		// 鑾峰彇鏁版嵁婧�
+		DataTableEntity reportSourceDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_DATASOURCE_CONFIG, new String[]{reportConfigFse.getString(CmnConst.DATASOURCE_UUID)});
+		if (BaseUtil.dataTableIsEmpty(reportSourceDte)) {
+			throw new BaseException(ReportCode.GET_REPORT_DATASOURCE_FIAL.getValue(), ReportCode.GET_REPORT_DATASOURCE_FIAL.getText());
+		}
+		FieldSetEntity reportSourceFse = reportSourceDte.getFieldSetEntity(0);
+		int curPage = fse.getInteger(CmnConst.CPAGE) == null ? 1 : fse.getInteger(CmnConst.CPAGE);
 
-        JSONObject resultObj = new JSONObject();
-        // 棣栨鍔犺浇锛岄粯璁ゆ坊鍔犳潯浠�
-        if (fse.getBoolean(CmnConst.FIRST_LOAD)) {
-            DataTableEntity allFilterDte = getDefaultSearchFilter(reportSourceFse.getUUID());
-            Map<String, DataTableEntity> subMap = Maps.newHashMap();
-            if (!DataTableEntity.isEmpty(allFilterDte)) {
-                subMap.put("systemFieldMeta", allFilterDte);
-            }
-            DataTableEntity defaultFilterDte = new DataTableEntity();
+		JSONObject resultObj = new JSONObject();
+		// 棣栨鍔犺浇锛岄粯璁ゆ坊鍔犳潯浠�
+		if (fse.getBoolean(CmnConst.FIRST_LOAD)) {
+			DataTableEntity allFilterDte = getDefaultSearchFilter(reportSourceFse.getUUID());
+			Map<String, DataTableEntity> subMap = Maps.newHashMap();
+			if (!DataTableEntity.isEmpty(allFilterDte)) {
+				subMap.put("systemFieldMeta", allFilterDte);
+			}
+			DataTableEntity defaultFilterDte = new DataTableEntity();
 
-            FieldSetEntity tempFse;
-            Map<String, Map<String, String>> outerMap = Maps.newHashMap();
-            Map<String, String> innerMap;
-            for (int i = 0; i < allFilterDte.getRows(); i++) {
-                tempFse = allFilterDte.getFieldSetEntity(i);
-                if (StringUtils.isEmpty(tempFse.getString(CmnConst.LOGICAL_VALUE))) {
-                    continue;
-                }
-                defaultFilterDte.addFieldSetEntity(tempFse);
-                innerMap = Maps.newHashMap();
-                innerMap.put(CmnConst.LOGICAL_OPERATOR, tempFse.getString(CmnConst.LOGICAL_OPERATOR));
-                innerMap.put(CmnConst.LOGICAL_VALUE, tempFse.getString(CmnConst.LOGICAL_VALUE));
-                innerMap.put(CmnConst.FIELD_TYPE, tempFse.getString(CmnConst.FIELD_TYPE));
-                outerMap.put(tempFse.getString(CmnConst.FIELD_NAME), innerMap);
-            }
-            resultObj.put("filterInfo", outerMap);
+			FieldSetEntity tempFse;
+			Map<String, Map<String, String>> outerMap = Maps.newHashMap();
+			Map<String, String> innerMap;
+			for (int i = 0; i < allFilterDte.getRows(); i++) {
+				tempFse = allFilterDte.getFieldSetEntity(i);
+				if (StringUtils.isEmpty(tempFse.getString(CmnConst.LOGICAL_VALUE))) {
+					continue;
+				}
+				defaultFilterDte.addFieldSetEntity(tempFse);
+				innerMap = Maps.newHashMap();
+				innerMap.put(CmnConst.LOGICAL_OPERATOR, tempFse.getString(CmnConst.LOGICAL_OPERATOR));
+				innerMap.put(CmnConst.LOGICAL_VALUE, tempFse.getString(CmnConst.LOGICAL_VALUE));
+				innerMap.put(CmnConst.FIELD_TYPE, tempFse.getString(CmnConst.FIELD_TYPE));
+				outerMap.put(tempFse.getString(CmnConst.FIELD_NAME), innerMap);
+			}
+			resultObj.put("filterInfo", outerMap);
 
-            if (!DataTableEntity.isEmpty(defaultFilterDte)) {
-                subMap.put("systemSeniorQueryString", defaultFilterDte);
-            }
-            fse.setSubData(subMap);
-        }
+			if (!DataTableEntity.isEmpty(defaultFilterDte)) {
+				subMap.put("systemSeniorQueryString", defaultFilterDte);
+			}
+			fse.setSubData(subMap);
+		}
 
-        DataTableEntity recordDte = getRecordDte(sort, curPage, reportSourceFse, fse, reportConfigFse, null);
-        // 鏄惁娣诲姞鎬诲悎璁�
-        boolean totalStatisticsFlag = "1".equalsIgnoreCase(reportConfigFse.getString(CmnConst.LAST_TOTAL));
-        String totalName = totalStatisticsFlag ? (StringUtils.isEmpty(reportConfigFse.getString(CmnConst.TOTAL_NAME)) ? "鎬昏" : reportConfigFse.getString(CmnConst.TOTAL_NAME)) : "";
+		DataTableEntity recordDte = getRecordDte(sort, curPage, reportSourceFse, fse, reportConfigFse, null);
+		// 鏄惁娣诲姞鎬诲悎璁�
+		boolean totalStatisticsFlag = "1".equalsIgnoreCase(reportConfigFse.getString(CmnConst.LAST_TOTAL));
+		String totalName = totalStatisticsFlag ? (StringUtils.isEmpty(reportConfigFse.getString(CmnConst.TOTAL_NAME)) ? "鎬昏" : reportConfigFse.getString(CmnConst.TOTAL_NAME)) : "";
 
 //        JSONObject checkObj = checkRecordDte(recordDte);
 //        if (CmnConst.FALSE.equals(checkObj.getString(CmnConst.RETURN_ATTR_RESULT))) {
 //            return checkObj;
 //        }
 
-        StringBuilder tableStyle = new StringBuilder(32);
-        String widthType = reportConfigFse.getString(CmnConst.REPORT_WIDTH_TYPE);
-        String width = reportConfigFse.getString(CmnConst.REPORT_WIDTH_VALUE);
-        if (!StringUtils.isEmpty(width)) {
-            if ("1".equals(widthType)) {
-                tableStyle.append(" style=\"width:").append(width).append("%\"");
-            } else if ("0".equals(widthType)) {
-                tableStyle.append(" style=\"width:").append(width).append("px\"");
-            }
-        }
+		StringBuilder tableStyle = new StringBuilder(32);
+		String widthType = reportConfigFse.getString(CmnConst.REPORT_WIDTH_TYPE);
+		String width = reportConfigFse.getString(CmnConst.REPORT_WIDTH_VALUE);
+		if (!StringUtils.isEmpty(width)) {
+			if ("1".equals(widthType)) {
+				tableStyle.append(" style=\"width:").append(width).append("%\"");
+			} else if ("0".equals(widthType)) {
+				tableStyle.append(" style=\"width:").append(width).append("px\"");
+			}
+		}
 
-        if (CmnConst.REPORT_TYPE_COMMON.equals(reportType)) {
-            resultObj.putAll(commonReportService.getReport(recordDte, totalName, reportConfigMap, tableStyle));
-        } else if (CmnConst.REPORT_TYPE_GROUP.equals(reportType)) {
-            // 鐗规畩澶勭悊棰濆鏌ヨ鍐呭
-            recordDte.addFieldSetEntity(getRecordDte(sort, curPage, reportSourceFse, fse, reportConfigFse, reportConfigMap));
-            resultObj.putAll(groupReportService.getReport(recordDte, totalName, reportConfigMap, tableStyle));
-        }
+		if (CmnConst.REPORT_TYPE_COMMON.equals(reportType)) {
+			resultObj.putAll(commonReportService.getReport(recordDte, totalName, reportConfigMap, tableStyle));
+		} else if (CmnConst.REPORT_TYPE_GROUP.equals(reportType)) {
+			// 鐗规畩澶勭悊棰濆鏌ヨ鍐呭
+			recordDte.addFieldSetEntity(getRecordDte(sort, curPage, reportSourceFse, fse, reportConfigFse, reportConfigMap));
+			resultObj.putAll(groupReportService.getReport(recordDte, totalName, reportConfigMap, tableStyle));
+		}
 
-        if (CmnConst.FALSE.equals(resultObj.getString(CmnConst.RETURN_ATTR_RESULT))) {
-            resultObj.put(CmnConst.RETURN_ATTR_RESULT, true);
-            resultObj.put(CmnConst.RETURN_ATTR_MESSAGE, "鑾峰彇鎶ヨ〃澶辫触锛�");
-        } else {
-            // 鍒嗛〉鍙傛暟
-            SQLEntity sqlEntity = recordDte.getSqle();
-            if ("1".equals(reportConfigFse.getString(CmnConst.IS_PAGE)) && sqlEntity != null) {
-                resultObj.put(CmnConst.IS_PAGE, 1);
-                resultObj.put(CmnConst.CPAGE, curPage);
-                resultObj.put("totalCount", sqlEntity.getTotalCount());
-                resultObj.put("totalpage", sqlEntity.getTotalpage());
-                resultObj.put("pagesize", StringUtils.isEmpty(reportConfigFse.getString(CmnConst.PAGE_SIZE)) ? 0 : reportConfigFse.getInteger(CmnConst.PAGE_SIZE));
-            } else {
-                resultObj.put(CmnConst.IS_PAGE, 0);
-            }
-        }
-        if (!DataTableEntity.isEmpty(recordDte)) {
-            resultObj.put("current_page_count", recordDte.getRows());
-        }
-        resultObj.put("systemFieldMeta", getSearchInfo(reportSourceFse.getUUID()));
-        resultObj.put("report_type", reportConfigFse.getString("type_uuid"));
+		if (CmnConst.FALSE.equals(resultObj.getString(CmnConst.RETURN_ATTR_RESULT))) {
+			resultObj.put(CmnConst.RETURN_ATTR_RESULT, true);
+			resultObj.put(CmnConst.RETURN_ATTR_MESSAGE, "鑾峰彇鎶ヨ〃澶辫触锛�");
+		} else {
+			// 鍒嗛〉鍙傛暟
+			SQLEntity sqlEntity = recordDte.getSqle();
+			if ("1".equals(reportConfigFse.getString(CmnConst.IS_PAGE)) && sqlEntity != null) {
+				resultObj.put(CmnConst.IS_PAGE, 1);
+				resultObj.put(CmnConst.CPAGE, curPage);
+				resultObj.put("totalCount", sqlEntity.getTotalCount());
+				resultObj.put("totalpage", sqlEntity.getTotalpage());
+				resultObj.put("pagesize", StringUtils.isEmpty(reportConfigFse.getString(CmnConst.PAGE_SIZE)) ? 0 : reportConfigFse.getInteger(CmnConst.PAGE_SIZE));
+			} else {
+				resultObj.put(CmnConst.IS_PAGE, 0);
+			}
+		}
+		if (!DataTableEntity.isEmpty(recordDte)) {
+			resultObj.put("current_page_count", recordDte.getRows());
+		}
+		resultObj.put("systemFieldMeta", getSearchInfo(reportSourceFse.getUUID()));
+		resultObj.put("report_type", reportConfigFse.getString("type_uuid"));
 //        System.out.println(resultObj.getString("html"));
 
-        return resultObj;
-    }
+		return resultObj;
+	}
 
-    /**
-     * 鑾峰彇鎶ヨ〃缂撳瓨淇℃伅
-     *
-     * @param reportConfigUUID
-     * @param sort
-     * @return
-     */
-    private Map<Integer, List<JSONObject>> getReportConfig(String reportConfigUUID, StringBuilder sort) {
-        Object obj;
-        Map<Integer, List<JSONObject>> reportConfigMap = Maps.newHashMap();
-        List<JSONObject> list;
-        for (int i = 0; i < 4; i++) {
-            obj = RedisUtil.getHash(reportConfigUUID, String.valueOf(i));
-            if (obj == null) {
-                continue;
-            }
-            list = (List<JSONObject>) obj;
-            reportConfigMap.put(i, list);
-        }
+	/**
+	 * 鑾峰彇鎶ヨ〃缂撳瓨淇℃伅
+	 *
+	 * @param reportConfigUUID
+	 * @param sort
+	 * @return
+	 */
+	private Map<Integer, List<JSONObject>> getReportConfig(String reportConfigUUID, StringBuilder sort) {
+		Object obj;
+		Map<Integer, List<JSONObject>> reportConfigMap = Maps.newHashMap();
+		List<JSONObject> list;
+		for (int i = 0; i < 4; i++) {
+			obj = RedisUtil.getHash(reportConfigUUID, String.valueOf(i));
+			if (obj == null) {
+				continue;
+			}
+			list = (List<JSONObject>) obj;
+			reportConfigMap.put(i, list);
+		}
 
-        if (reportConfigMap.isEmpty()) {
-            throw new BaseException(ReportCode.GET_REPORT_CONFIG_FIAL.getValue(), ReportCode.GET_REPORT_CONFIG_FIAL.getText());
-        }
-        obj = RedisUtil.getHash(reportConfigUUID, "sort");
-        if (obj != null) {
-            sort.append(obj.toString());
-        }
-        return reportConfigMap;
-    }
+		if (reportConfigMap.isEmpty()) {
+			throw new BaseException(ReportCode.GET_REPORT_CONFIG_FIAL.getValue(), ReportCode.GET_REPORT_CONFIG_FIAL.getText());
+		}
+		obj = RedisUtil.getHash(reportConfigUUID, "sort");
+		if (obj != null) {
+			sort.append(obj.toString());
+		}
+		return reportConfigMap;
+	}
 
-    /**
-     * 鑾峰彇鏁版嵁婧�
-     *
-     * @param sort
-     * @param curPage
-     * @param reportSourceFse
-     * @param fse
-     * @param reportConfigFse
-     * @return
-     */
-    private DataTableEntity getRecordDte(StringBuilder sort, int curPage, FieldSetEntity reportSourceFse, FieldSetEntity fse, FieldSetEntity reportConfigFse, Map<Integer, List<JSONObject>> reportConfigMap) {
-        boolean spTimeFlag = reportConfigMap != null;
-        String sql;
-        String sqlText = reportSourceFse.getString(CmnConst.SQL_TEXT);
-        DataTableEntity recordDte = new DataTableEntity();
+	/**
+	 * 鑾峰彇鏁版嵁婧�
+	 *
+	 * @param sort
+	 * @param curPage
+	 * @param reportSourceFse
+	 * @param fse
+	 * @param reportConfigFse
+	 * @return
+	 */
+	private DataTableEntity getRecordDte(StringBuilder sort, int curPage, FieldSetEntity reportSourceFse, FieldSetEntity fse, FieldSetEntity reportConfigFse, Map<Integer, List<JSONObject>> reportConfigMap) {
+		boolean spTimeFlag = reportConfigMap != null;
+		String sql;
+		String sqlText = reportSourceFse.getString(CmnConst.SQL_TEXT);
+		DataTableEntity recordDte = new DataTableEntity();
 
-        if (spTimeFlag) {
-            // 鑾峰彇鎵�鏈夌殑瀛楁
-            Set<String> baseFieldSet = Sets.newHashSet();
-            Map<String, Map<String, JSONObject>> spTimeStatisticsFieldMap = Maps.newHashMap();
-            Set<String> spTimeStatisticsTypeSet = Sets.newHashSet();
-            spTimeStatisticsTypeSet.addAll(getFieldAndSpTimeStatisticsTypeSet(baseFieldSet, spTimeStatisticsFieldMap, reportConfigMap.get(0)));
-            spTimeStatisticsTypeSet.addAll(getFieldAndSpTimeStatisticsTypeSet(baseFieldSet, spTimeStatisticsFieldMap, reportConfigMap.get(2)));
-            Map<String, List<String>> queryFilterMap = queryFilterService.getQueryFilterMore(fse);
-            Set<String> selectedFieldSet;
-            String headContent;
-            DataTableEntity tempDte;
-            String curFieldName;
-            String curCommonFieldName;
-            Map<String, List<String>> tempQueryFilterMap;
-            List<String> tempList;
-            Map<String, String> tempFieldMap;
-            Set<String> tempDateFieldInfoSet;
-            JSONObject obj;
+		if (spTimeFlag) {
+			// 鑾峰彇鎵�鏈夌殑瀛楁
+			Set<String> baseFieldSet = Sets.newHashSet();
+			Map<String, Map<String, JSONObject>> spTimeStatisticsFieldMap = Maps.newHashMap();
+			Set<String> spTimeStatisticsTypeSet = Sets.newHashSet();
+			spTimeStatisticsTypeSet.addAll(getFieldAndSpTimeStatisticsTypeSet(baseFieldSet, spTimeStatisticsFieldMap, reportConfigMap.get(0)));
+			spTimeStatisticsTypeSet.addAll(getFieldAndSpTimeStatisticsTypeSet(baseFieldSet, spTimeStatisticsFieldMap, reportConfigMap.get(2)));
+			Map<String, List<String>> queryFilterMap = queryFilterService.getQueryFilterMore(fse);
+			Set<String> selectedFieldSet;
+			String headContent;
+			DataTableEntity tempDte;
+			String curFieldName;
+			String curCommonFieldName;
+			Map<String, List<String>> tempQueryFilterMap;
+			List<String> tempList;
+			Map<String, String> tempFieldMap;
+			Set<String> tempDateFieldInfoSet;
+			JSONObject obj;
 
-            for (String spTimeStatisticsType : spTimeStatisticsTypeSet) {
-                selectedFieldSet = Sets.newHashSet();
-                tempFieldMap = Maps.newHashMap();
-                tempDateFieldInfoSet = Sets.newHashSet();
-                tempQueryFilterMap = Maps.newHashMap();
-                for (Map.Entry<String, JSONObject> outEntry : spTimeStatisticsFieldMap.get(spTimeStatisticsType).entrySet()) {
-                    obj = outEntry.getValue();
-                    curFieldName = fieldInfo2FieldName(obj.getString(CmnConst.ATTR_RELATE_TIME_FIELD));
-                    if ("0".equals(spTimeStatisticsType)) {
-                        // 鍘诲勾鍚屾湡
-                        headContent = CmnConst.ATTR_HEAD_LAST_YEAR;
-                    } else if ("1".equals(spTimeStatisticsType)) {
-                        // 涓婃湡
-                        headContent = CmnConst.ATTR_HEAD_PRE_PERIOD;
-                    } else {
-                        headContent = "";
-                    }
-                    for (Map.Entry<String, List<String>> entry : queryFilterMap.entrySet()) {
-                        tempList = Lists.newArrayList();
-                        tempList.addAll(entry.getValue());
-                        tempQueryFilterMap.put(entry.getKey(), tempList);
-                    }
-                    if (queryFilterMap.containsKey(curFieldName)) {
-                        if (!tempDateFieldInfoSet.contains(obj.getString(CmnConst.ATTR_RELATE_TIME_FIELD))) {
-                            tempDateFieldInfoSet.add(obj.getString(CmnConst.ATTR_RELATE_TIME_FIELD));
-                            if ("0".equals(spTimeStatisticsType)) {
-                                // 鍘诲勾鍚屾湡
-                                spDealFilterForLastYear(tempQueryFilterMap, queryFilterMap, curFieldName);
-                            } else if ("1".equals(spTimeStatisticsType)) {
-                                // 涓婃湡
-                                spDealFilterForPrePeriod(tempQueryFilterMap, queryFilterMap, curFieldName);
-                            }
-                        }
-                    }
-                    curCommonFieldName = fieldInfo2FieldName(obj.getString(CmnConst.ATTR_RELATE_COMMON_FIELD));
-                    for (String selectField : baseFieldSet) {
-                        if (selectField.equals(curCommonFieldName)) {
-                            tempFieldMap.put(curCommonFieldName, curCommonFieldName + " " + headContent + curCommonFieldName);
-                        }
-                    }
-                }
-                for (String selectField : baseFieldSet) {
-                    selectedFieldSet.add(tempFieldMap.getOrDefault(selectField, selectField));
-                }
-                sql = replaceSqlContent(sqlText, fse, null, reportConfigFse, curPage, SetUtils.set2String(selectedFieldSet, ","), tempQueryFilterMap);
+			for (String spTimeStatisticsType : spTimeStatisticsTypeSet) {
+				selectedFieldSet = Sets.newHashSet();
+				tempFieldMap = Maps.newHashMap();
+				tempDateFieldInfoSet = Sets.newHashSet();
+				tempQueryFilterMap = Maps.newHashMap();
+				for (Map.Entry<String, JSONObject> outEntry : spTimeStatisticsFieldMap.get(spTimeStatisticsType).entrySet()) {
+					obj = outEntry.getValue();
+					curFieldName = fieldInfo2FieldName(obj.getString(CmnConst.ATTR_RELATE_TIME_FIELD));
+					if ("0".equals(spTimeStatisticsType)) {
+						// 鍘诲勾鍚屾湡
+						headContent = CmnConst.ATTR_HEAD_LAST_YEAR;
+					} else if ("1".equals(spTimeStatisticsType)) {
+						// 涓婃湡
+						headContent = CmnConst.ATTR_HEAD_PRE_PERIOD;
+					} else {
+						headContent = "";
+					}
+					for (Map.Entry<String, List<String>> entry : queryFilterMap.entrySet()) {
+						tempList = Lists.newArrayList();
+						tempList.addAll(entry.getValue());
+						tempQueryFilterMap.put(entry.getKey(), tempList);
+					}
+					if (queryFilterMap.containsKey(curFieldName)) {
+						if (!tempDateFieldInfoSet.contains(obj.getString(CmnConst.ATTR_RELATE_TIME_FIELD))) {
+							tempDateFieldInfoSet.add(obj.getString(CmnConst.ATTR_RELATE_TIME_FIELD));
+							if ("0".equals(spTimeStatisticsType)) {
+								// 鍘诲勾鍚屾湡
+								spDealFilterForLastYear(tempQueryFilterMap, queryFilterMap, curFieldName);
+							} else if ("1".equals(spTimeStatisticsType)) {
+								// 涓婃湡
+								spDealFilterForPrePeriod(tempQueryFilterMap, queryFilterMap, curFieldName);
+							}
+						}
+					}
+					curCommonFieldName = fieldInfo2FieldName(obj.getString(CmnConst.ATTR_RELATE_COMMON_FIELD));
+					for (String selectField : baseFieldSet) {
+						if (selectField.equals(curCommonFieldName)) {
+							tempFieldMap.put(curCommonFieldName, curCommonFieldName + " " + headContent + curCommonFieldName);
+						}
+					}
+				}
+				for (String selectField : baseFieldSet) {
+					selectedFieldSet.add(tempFieldMap.getOrDefault(selectField, selectField));
+				}
+				sql = replaceSqlContent(sqlText, fse, null, reportConfigFse, curPage, SetUtils.set2String(selectedFieldSet, ","), tempQueryFilterMap);
 
-                if ("1".equalsIgnoreCase(reportConfigFse.getString(CmnConst.IS_PAGE))) {
-                    Integer pageSize = reportConfigFse.getInteger(CmnConst.PAGE_SIZE);
-                    tempDte = baseDao.listTable(sql, new Object[]{}, pageSize == null ? Integer.MAX_VALUE : pageSize, curPage);
-                } else {
-                    tempDte = baseDao.listTable(sql, new Object[]{});
-                }
+				if ("1".equalsIgnoreCase(reportConfigFse.getString(CmnConst.IS_PAGE))) {
+					Integer pageSize = reportConfigFse.getInteger(CmnConst.PAGE_SIZE);
+					tempDte = baseDao.listTable(sql, new Object[]{}, pageSize == null ? Integer.MAX_VALUE : pageSize, curPage);
+				} else {
+					tempDte = baseDao.listTable(sql, new Object[]{});
+				}
 
-                recordDte.addFieldSetEntity(tempDte);
-            }
-        } else {
-            sql = replaceSqlContent(sqlText, fse, sort, reportConfigFse, curPage);
+				recordDte.addFieldSetEntity(tempDte);
+			}
+		} else {
+			sql = replaceSqlContent(sqlText, fse, sort, reportConfigFse, curPage);
 
-            if ("1".equalsIgnoreCase(reportConfigFse.getString(CmnConst.IS_PAGE))) {
-                Integer pageSize = reportConfigFse.getInteger(CmnConst.PAGE_SIZE);
-                recordDte = baseDao.listTable(sql, new Object[]{}, pageSize == null ? Integer.MAX_VALUE : pageSize, curPage);
-            } else {
-                recordDte = baseDao.listTable(sql, new Object[]{});
-            }
+			if ("1".equalsIgnoreCase(reportConfigFse.getString(CmnConst.IS_PAGE))) {
+				Integer pageSize = reportConfigFse.getInteger(CmnConst.PAGE_SIZE);
+				recordDte = baseDao.listTable(sql, new Object[]{}, pageSize == null ? Integer.MAX_VALUE : pageSize, curPage);
+			} else {
+				recordDte = baseDao.listTable(sql, new Object[]{});
+			}
 
-        }
-        // 鍔犺浇鏁版嵁婧愮殑鍙傜収
-        loadPromptData(recordDte, reportSourceFse);
+		}
+		// 鍔犺浇鏁版嵁婧愮殑鍙傜収
+		loadPromptData(recordDte, reportSourceFse);
 
-        return recordDte;
-    }
+		return recordDte;
+	}
 
-    /**
-     * 瀛愭柟娉�-getRecordDte-鍔犺浇鍙傜収
-     *
-     * @param recordDte
-     * @param reportSourceFse
-     */
-    private void loadPromptData(DataTableEntity recordDte, FieldSetEntity reportSourceFse) {
-        if (BaseUtil.dataTableIsEmpty(recordDte)) {
-            return;
-        }
-        DataTableEntity reportDataSourceSubDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_DATASOURCE_FIELD_CONFIG, new String[]{reportSourceFse.getUUID()});
-        FieldSetEntity tempFse;
-        String fieldName;
-        String promptName;
-        for (int i = 0; i < reportDataSourceSubDte.getRows(); i++) {
-            tempFse = reportDataSourceSubDte.getFieldSetEntity(i);
-            promptName = tempFse.getString(CmnConst.FIELD_PROMPT);
-            fieldName = tempFse.getString(CmnConst.FIELD_NAME);
-            if (StringUtils.isEmpty(promptName) || StringUtils.isEmpty(fieldName)) {
-                continue;
-            }
-            if (promptName.startsWith("銆�")) {
-                // 鏅�氬弬鐓�
-                promptName = promptName.substring(1, promptName.length() - 1);
-                baseDao.copyDictData(recordDte, fieldName, promptName, 0);
-            } else {
-                // 楂樼骇鍙傜収
-                baseDao.copyPromptData(recordDte, fieldName, promptName);
-            }
-        }
-    }
+	/**
+	 * 瀛愭柟娉�-getRecordDte-鍔犺浇鍙傜収
+	 *
+	 * @param recordDte
+	 * @param reportSourceFse
+	 */
+	private void loadPromptData(DataTableEntity recordDte, FieldSetEntity reportSourceFse) {
+		if (BaseUtil.dataTableIsEmpty(recordDte)) {
+			return;
+		}
+		DataTableEntity reportDataSourceSubDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_DATASOURCE_FIELD_CONFIG, new String[]{reportSourceFse.getUUID()});
+		FieldSetEntity tempFse;
+		String fieldName;
+		String promptName;
+		for (int i = 0; i < reportDataSourceSubDte.getRows(); i++) {
+			tempFse = reportDataSourceSubDte.getFieldSetEntity(i);
+			promptName = tempFse.getString(CmnConst.FIELD_PROMPT);
+			fieldName = tempFse.getString(CmnConst.FIELD_NAME);
+			if (StringUtils.isEmpty(promptName) || StringUtils.isEmpty(fieldName)) {
+				continue;
+			}
+			if (promptName.startsWith("銆�")) {
+				// 鏅�氬弬鐓�
+				promptName = promptName.substring(1, promptName.length() - 1);
+				baseDao.copyDictData(recordDte, fieldName, promptName, 0);
+			} else {
+				// 楂樼骇鍙傜収
+				baseDao.copyPromptData(recordDte, fieldName, promptName);
+			}
+		}
+	}
 
 
-    /**
-     * 鏇挎崲sql涓殑鏉′欢锛屽皢鍏惰浆鎹负鑳藉鐩存帴鎵ц鐨剆ql
-     *
-     * @param sqlText
-     * @param fse
-     * @param sort
-     * @return
-     */
-    private String replaceSqlContent(String sqlText, FieldSetEntity fse, StringBuilder sort, FieldSetEntity reportConfigFse, int curPage, String selectedFields, Map<String, List<String>> queryFilterMap) {
-        queryFilterMap = queryFilterMap == null ? queryFilterService.getQueryFilterMore(fse) : queryFilterMap;
-        selectedFields = StringUtils.isEmpty(selectedFields) ? "*" : selectedFields;
-        // 鏇挎崲sql涓殑绯荤粺鍙傛暟
-        sqlText = SystemParamReplace.replaceParams(sqlText, fse);
+	/**
+	 * 鏇挎崲sql涓殑鏉′欢锛屽皢鍏惰浆鎹负鑳藉鐩存帴鎵ц鐨剆ql
+	 *
+	 * @param sqlText
+	 * @param fse
+	 * @param sort
+	 * @return
+	 */
+	private String replaceSqlContent(String sqlText, FieldSetEntity fse, StringBuilder sort, FieldSetEntity reportConfigFse, int curPage, String selectedFields, Map<String, List<String>> queryFilterMap) {
+		queryFilterMap = queryFilterMap == null ? queryFilterService.getQueryFilterMore(fse) : queryFilterMap;
+		selectedFields = StringUtils.isEmpty(selectedFields) ? "*" : selectedFields;
+		// 鏇挎崲sql涓殑绯荤粺鍙傛暟
+		sqlText = SystemParamReplace.replaceParams(sqlText, fse);
 
-        List<String> suitList = getSuitContent(sqlText, CmnConst.REGEXP_ALL_AREA);
-        String newContent;
-        int signCount = 0;
-        Map<String, List<String>> residueQueryFilterMap = Maps.newHashMap();
-        queryFilterMap.forEach((k, v) -> {
-            residueQueryFilterMap.put(k, v);
-        });
-        Map<String, String> tempReplaceMap = Maps.newHashMap();
-        for (String suitContent : suitList) {
-            if (tempReplaceMap.containsKey(suitContent)) {
-                continue;
-            }
-            newContent = spReplaceSqlContent(suitContent, CmnConst.REGEXP_ONLY_VALUE, 0, queryFilterMap, residueQueryFilterMap);
-            newContent = spReplaceSqlContent(newContent, CmnConst.REGEXP_EXCEPT_FIELD, 1, queryFilterMap, residueQueryFilterMap);
-            newContent = spReplaceSqlContent(newContent, CmnConst.REGEXP_FULL_CONTENT, 2, queryFilterMap, residueQueryFilterMap);
+		List<String> suitList = getSuitContent(sqlText, CmnConst.REGEXP_ALL_AREA);
+		String newContent;
+		int signCount = 0;
+		Map<String, List<String>> residueQueryFilterMap = Maps.newHashMap();
+		queryFilterMap.forEach((k, v) -> {
+			residueQueryFilterMap.put(k, v);
+		});
+		Map<String, String> tempReplaceMap = Maps.newHashMap();
+		for (String suitContent : suitList) {
+			if (tempReplaceMap.containsKey(suitContent)) {
+				continue;
+			}
+			newContent = spReplaceSqlContent(suitContent, CmnConst.REGEXP_ONLY_VALUE, 0, queryFilterMap, residueQueryFilterMap);
+			newContent = spReplaceSqlContent(newContent, CmnConst.REGEXP_EXCEPT_FIELD, 1, queryFilterMap, residueQueryFilterMap);
+			newContent = spReplaceSqlContent(newContent, CmnConst.REGEXP_FULL_CONTENT, 2, queryFilterMap, residueQueryFilterMap);
 
-            if (!suitContent.equals(newContent)) {
-                signCount++;
-            }
-            for (Map.Entry<String, String> entry : tempReplaceMap.entrySet()) {
-                suitContent = suitContent.replace(entry.getKey(), entry.getValue());
-            }
-            tempReplaceMap.put(suitContent, newContent);
-            sqlText = sqlText.replace(suitContent, newContent);
-        }
-        if ("1".equalsIgnoreCase(reportConfigFse.getString(CmnConst.IS_PAGE))) {
-            int pageSize = reportConfigFse.getInteger(CmnConst.PAGE_SIZE) == null ? 20 : reportConfigFse.getInteger(CmnConst.PAGE_SIZE);
-            sqlText = sqlText.replace(CmnConst.CONTENT_PAGE_AREA, "limit " + ((curPage - 1) * pageSize) + "," + pageSize);
-        }
-        // 涓夌洰琛ㄨ揪寮�
-        sqlText = replaceTernaryOperator(sqlText);
-        // 娓呴櫎宸茬粡澶勭悊鐨勪笁鐩鐨勪腑鎷彿
-        suitList = getSuitContent(sqlText, CmnConst.REGEXP_FILTER_AREA);
-        for (String suitContent : suitList) {
-            newContent = suitContent.substring(2, suitContent.length() - 2);
-            if (getSuitContent(newContent, CmnConst.REGEXP_SP_SIGN_AREA).isEmpty()) {
-                sqlText = sqlText.replace(suitContent, newContent);
-            }
-        }
-        // 鍓旈櫎寮傚父鍖哄煙
-        sqlText = sqlText.replaceAll(CmnConst.REGEXP_FILTER_AREA, "").replaceAll(CmnConst.REGEXP_ALL_TYPE, "null").replaceAll(CmnConst.REGEXP_ALWAYS_TRUE, "");
-        String queryFilter = "";
-        if (signCount > 0) {
-            for (Map.Entry<String, List<String>> entry : residueQueryFilterMap.entrySet()) {
-                if (CmnConst.SYSTEM_SENIOR_QUERY_STRING.equals(entry.getKey()) || entry.getValue() == null) {
-                    continue;
-                }
-                if (!StringUtils.isEmpty(queryFilter)) {
-                    queryFilter += "and";
-                }
-                queryFilter += " (" + entry.getValue().get(2) + ") ";
-            }
-        } else {
-            queryFilter = queryFilterMap.isEmpty() ? queryFilterService.getQueryFilter(fse) : queryFilterMap.get(CmnConst.SYSTEM_SENIOR_QUERY_STRING).get(0);
-        }
+			if (!suitContent.equals(newContent)) {
+				signCount++;
+			}
+			for (Map.Entry<String, String> entry : tempReplaceMap.entrySet()) {
+				suitContent = suitContent.replace(entry.getKey(), entry.getValue());
+			}
+			tempReplaceMap.put(suitContent, newContent);
+			sqlText = sqlText.replace(suitContent, newContent);
+		}
+		if ("1".equalsIgnoreCase(reportConfigFse.getString(CmnConst.IS_PAGE))) {
+			int pageSize = reportConfigFse.getInteger(CmnConst.PAGE_SIZE) == null ? 20 : reportConfigFse.getInteger(CmnConst.PAGE_SIZE);
+			sqlText = sqlText.replace(CmnConst.CONTENT_PAGE_AREA, "limit " + ((curPage - 1) * pageSize) + "," + pageSize);
+		}
+		// 涓夌洰琛ㄨ揪寮�
+		sqlText = replaceTernaryOperator(sqlText);
+		// 娓呴櫎宸茬粡澶勭悊鐨勪笁鐩鐨勪腑鎷彿
+		suitList = getSuitContent(sqlText, CmnConst.REGEXP_FILTER_AREA);
+		for (String suitContent : suitList) {
+			newContent = suitContent.substring(2, suitContent.length() - 2);
+			if (getSuitContent(newContent, CmnConst.REGEXP_SP_SIGN_AREA).isEmpty()) {
+				sqlText = sqlText.replace(suitContent, newContent);
+			}
+		}
+		// 鍓旈櫎寮傚父鍖哄煙
+		sqlText = sqlText.replaceAll(CmnConst.REGEXP_FILTER_AREA, "").replaceAll(CmnConst.REGEXP_ALL_TYPE, "null").replaceAll(CmnConst.REGEXP_ALWAYS_TRUE, "");
+		String queryFilter = "";
+		if (signCount > 0) {
+			for (Map.Entry<String, List<String>> entry : residueQueryFilterMap.entrySet()) {
+				if (CmnConst.SYSTEM_SENIOR_QUERY_STRING.equals(entry.getKey()) || entry.getValue() == null) {
+					continue;
+				}
+				if (!StringUtils.isEmpty(queryFilter)) {
+					queryFilter += "and";
+				}
+				queryFilter += " (" + entry.getValue().get(2) + ") ";
+			}
+		} else {
+			queryFilter = queryFilterMap.isEmpty() ? queryFilterService.getQueryFilter(fse) : queryFilterMap.get(CmnConst.SYSTEM_SENIOR_QUERY_STRING).get(0);
+		}
 
-        StringBuilder sql = new StringBuilder(1024);
-        sql.append("\nselect ").append(selectedFields).append(" from (\n")
-                .append(sqlText)
-                .append("\n) t");
-        if (!StringUtils.isEmpty(queryFilter)) {
-            sql.append("\nwhere ").append(queryFilter);
-        }
+		StringBuilder sql = new StringBuilder(1024);
+		sql.append("\nselect ").append(selectedFields).append(" from (\n")
+				.append(sqlText)
+				.append("\n) t");
+		if (!StringUtils.isEmpty(queryFilter)) {
+			sql.append("\nwhere ").append(queryFilter);
+		}
 //        if (!StringUtils.isEmpty(sort)) {
 //            sql.append("\norder by ").append(sort);
 //        }
-        return sql.toString();
-    }
+		return sql.toString();
+	}
 
-    private String replaceSqlContent(String sqlText, FieldSetEntity fse, StringBuilder sort, FieldSetEntity reportConfigFse, int curPage) {
-        return replaceSqlContent(sqlText, fse, sort, reportConfigFse, curPage, null, null);
-    }
+	private String replaceSqlContent(String sqlText, FieldSetEntity fse, StringBuilder sort, FieldSetEntity reportConfigFse, int curPage) {
+		return replaceSqlContent(sqlText, fse, sort, reportConfigFse, curPage, null, null);
+	}
 
-    /**
-     * 鐗规畩鏇挎崲sql閲岄潰鐨勫唴瀹�
-     *
-     * @param suitContent
-     * @param regexp
-     * @param num
-     * @param queryFilterMap
-     * @return
-     */
-    private String spReplaceSqlContent(String suitContent, String regexp, int num, Map<String, List<String>> queryFilterMap, Map<String, List<String>> residueQueryFilterMap) {
-        List<String> innerSuitList = getSuitContent(suitContent, regexp);
-        String curField;
-        String filter;
-        String spStatisticsWay;
-        String spStatisticsWayValue;
-        for (String innerSuitContent : innerSuitList) {
-            curField = innerSuitContent.substring(2, innerSuitContent.length() - 2);
-            if (curField.contains(" ")) {
-                spStatisticsWay = curField.substring(curField.indexOf(" ") + 1, curField.indexOf(":"));
-                spStatisticsWayValue = curField.substring(curField.indexOf(":") + 1);
-                curField = curField.substring(0, curField.indexOf(" "));
-            } else {
-                spStatisticsWay = "";
-                spStatisticsWayValue = "";
-            }
-            if (queryFilterMap.get(curField) != null && !queryFilterMap.get(curField).isEmpty()) {
-                Map<String, List<String>> tempQueryFilterMap = Maps.newHashMap();
-                List<String> tempList;
-                for (Map.Entry<String, List<String>> entry : queryFilterMap.entrySet()) {
-                    tempList = Lists.newArrayList();
-                    if (entry.getValue() == null) {
-                        continue;
-                    }
-                    tempList.addAll(entry.getValue());
-                    tempQueryFilterMap.put(entry.getKey(), tempList);
-                }
-                if ("sp_time_statistics_way".equals(spStatisticsWay)) {
-                    if ("0".equals(spStatisticsWayValue)) {
-                        // 鍘诲勾鍚屾湡
-                        spDealFilterForLastYear(tempQueryFilterMap, queryFilterMap, curField);
-                    } else if ("1".equals(spStatisticsWayValue)) {
-                        // 涓婃湡
-                        spDealFilterForPrePeriod(tempQueryFilterMap, queryFilterMap, curField);
-                    }
-                }
-                filter = tempQueryFilterMap.get(curField).get(num);
-                suitContent = suitContent.replace(innerSuitContent, filter);
-                residueQueryFilterMap.remove(curField);
-                if (getSuitContent(suitContent, CmnConst.REGEXP_ALL_TYPE).isEmpty() && suitContent.matches(CmnConst.REGEXP_FILTER_AREA)) {
-                    suitContent = suitContent.substring(2, suitContent.length() - 2);
-                }
-            }
-        }
-        return suitContent;
-    }
+	/**
+	 * 鐗规畩鏇挎崲sql閲岄潰鐨勫唴瀹�
+	 *
+	 * @param suitContent
+	 * @param regexp
+	 * @param num
+	 * @param queryFilterMap
+	 * @return
+	 */
+	private String spReplaceSqlContent(String suitContent, String regexp, int num, Map<String, List<String>> queryFilterMap, Map<String, List<String>> residueQueryFilterMap) {
+		List<String> innerSuitList = getSuitContent(suitContent, regexp);
+		String curField;
+		String filter;
+		String spStatisticsWay;
+		String spStatisticsWayValue;
+		for (String innerSuitContent : innerSuitList) {
+			curField = innerSuitContent.substring(2, innerSuitContent.length() - 2);
+			if (curField.contains(" ")) {
+				spStatisticsWay = curField.substring(curField.indexOf(" ") + 1, curField.indexOf(":"));
+				spStatisticsWayValue = curField.substring(curField.indexOf(":") + 1);
+				curField = curField.substring(0, curField.indexOf(" "));
+			} else {
+				spStatisticsWay = "";
+				spStatisticsWayValue = "";
+			}
+			if (queryFilterMap.get(curField) != null && !queryFilterMap.get(curField).isEmpty()) {
+				Map<String, List<String>> tempQueryFilterMap = Maps.newHashMap();
+				List<String> tempList;
+				for (Map.Entry<String, List<String>> entry : queryFilterMap.entrySet()) {
+					tempList = Lists.newArrayList();
+					if (entry.getValue() == null) {
+						continue;
+					}
+					tempList.addAll(entry.getValue());
+					tempQueryFilterMap.put(entry.getKey(), tempList);
+				}
+				if ("sp_time_statistics_way".equals(spStatisticsWay)) {
+					if ("0".equals(spStatisticsWayValue)) {
+						// 鍘诲勾鍚屾湡
+						spDealFilterForLastYear(tempQueryFilterMap, queryFilterMap, curField);
+					} else if ("1".equals(spStatisticsWayValue)) {
+						// 涓婃湡
+						spDealFilterForPrePeriod(tempQueryFilterMap, queryFilterMap, curField);
+					}
+				}
+				filter = tempQueryFilterMap.get(curField).get(num);
+				suitContent = suitContent.replace(innerSuitContent, filter);
+				residueQueryFilterMap.remove(curField);
+				if (getSuitContent(suitContent, CmnConst.REGEXP_ALL_TYPE).isEmpty() && suitContent.matches(CmnConst.REGEXP_FILTER_AREA)) {
+					suitContent = suitContent.substring(2, suitContent.length() - 2);
+				}
+			}
+		}
+		return suitContent;
+	}
 
-    /**
-     * 鏇挎崲涓夌洰琛ㄨ揪寮忓唴瀹�
-     *
-     * @param sqlText
-     * @return
-     */
-    private String replaceTernaryOperator(String sqlText) {
-        List<String> suitList = getSuitContent(sqlText, CmnConst.REGEXP_ALL_TERNARY_OPERATOR);
-        for (String suitContent : suitList) {
-            String singleTernaryOperator = suitContent.substring(2, suitContent.length() - 2);
-            String executeContent = singleTernaryOperator.replaceAll(CmnConst.REGEXP_ALL_TYPE, "null");
-            Object result;
-            String value;
-            try {
-                result = BaseUtil.executeExpression(executeContent);
-                value = result.toString();
-            } catch (Exception e) {
-                SpringMVCContextHolder.getSystemLogger().error(e);
-                value = "";
-            }
-            sqlText = sqlText.replace(suitContent, value);
-        }
-        return sqlText;
-    }
+	/**
+	 * 鏇挎崲涓夌洰琛ㄨ揪寮忓唴瀹�
+	 *
+	 * @param sqlText
+	 * @return
+	 */
+	private String replaceTernaryOperator(String sqlText) {
+		List<String> suitList = getSuitContent(sqlText, CmnConst.REGEXP_ALL_TERNARY_OPERATOR);
+		for (String suitContent : suitList) {
+			String singleTernaryOperator = suitContent.substring(2, suitContent.length() - 2);
+			String executeContent = singleTernaryOperator.replaceAll(CmnConst.REGEXP_ALL_TYPE, "null");
+			Object result;
+			String value;
+			try {
+				result = BaseUtil.executeExpression(executeContent);
+				value = result.toString();
+			} catch (Exception e) {
+				SpringMVCContextHolder.getSystemLogger().error(e);
+				value = "";
+			}
+			sqlText = sqlText.replace(suitContent, value);
+		}
+		return sqlText;
+	}
 
-    /**
-     * 鍘诲勾鍚屾湡
-     *
-     * @param tempQueryFilterMap
-     * @param queryFilterMap
-     * @param curFieldName
-     */
-    private void spDealFilterForLastYear(Map<String, List<String>> tempQueryFilterMap, Map<String, List<String>> queryFilterMap, String curFieldName) {
-        List<String> paramList = tempQueryFilterMap.get(curFieldName);
-        for (int i = 0; i < paramList.size(); i++) {
-            paramList.set(i, paramList.get(i).replace("str_to_date(", "date_add(str_to_date(")
-                    .replace("'%Y')", "'%Y'),interval -1 year)")
-                    .replace("'%Y-%m')", "'%Y-%m'),interval -1 year)")
-                    .replace("'%Y-%m-%d')", "'%Y-%m-%d'),interval -1 year)")
-                    .replace("'%Y-%m-%d %H')", "'%Y-%m-%d %H'),interval -1 year)")
-                    .replace("'%Y-%m-%d %H:%i')", "'%Y-%m-%d %H:%i'),interval -1 year)")
-                    .replace("'%Y-%m-%d %H:%i:%s')", "'%Y-%m-%d %H:%i:%s'),interval -1 year)"));
-        }
-        tempQueryFilterMap.put(CmnConst.SYSTEM_SENIOR_QUERY_STRING, Collections.singletonList(queryFilterMap.get(CmnConst.SYSTEM_SENIOR_QUERY_STRING).get(0).replace("str_to_date(", "date_add(str_to_date(").replace("'%Y-%m-%d %H:%i:%s')", "'%Y-%m-%d %H:%i:%s'),interval -1 year)")));
-    }
+	/**
+	 * 鍘诲勾鍚屾湡
+	 *
+	 * @param tempQueryFilterMap
+	 * @param queryFilterMap
+	 * @param curFieldName
+	 */
+	private void spDealFilterForLastYear(Map<String, List<String>> tempQueryFilterMap, Map<String, List<String>> queryFilterMap, String curFieldName) {
+		List<String> paramList = tempQueryFilterMap.get(curFieldName);
+		for (int i = 0; i < paramList.size(); i++) {
+			paramList.set(i, paramList.get(i).replace("str_to_date(", "date_add(str_to_date(")
+					.replace("'%Y')", "'%Y'),interval -1 year)")
+					.replace("'%Y-%m')", "'%Y-%m'),interval -1 year)")
+					.replace("'%Y-%m-%d')", "'%Y-%m-%d'),interval -1 year)")
+					.replace("'%Y-%m-%d %H')", "'%Y-%m-%d %H'),interval -1 year)")
+					.replace("'%Y-%m-%d %H:%i')", "'%Y-%m-%d %H:%i'),interval -1 year)")
+					.replace("'%Y-%m-%d %H:%i:%s')", "'%Y-%m-%d %H:%i:%s'),interval -1 year)"));
+		}
+		tempQueryFilterMap.put(CmnConst.SYSTEM_SENIOR_QUERY_STRING, Collections.singletonList(queryFilterMap.get(CmnConst.SYSTEM_SENIOR_QUERY_STRING).get(0).replace("str_to_date(", "date_add(str_to_date(").replace("'%Y-%m-%d %H:%i:%s')", "'%Y-%m-%d %H:%i:%s'),interval -1 year)")));
+	}
 
-    /**
-     * 涓婃湡
-     *
-     * @param tempQueryFilterMap
-     * @param queryFilterMap
-     * @param curFieldName
-     */
-    private void spDealFilterForPrePeriod(Map<String, List<String>> tempQueryFilterMap, Map<String, List<String>> queryFilterMap, String curFieldName) {
-        List<String> paramList = tempQueryFilterMap.get(curFieldName);
-        String[] timeArr = paramList.get(0).split("~");
-        try {
-            String startTime = timeArr[0].trim().substring(13, 13 + 19);
-            String finalTime = timeArr[1].trim().substring(13, 13 + 19);
-            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            Calendar c1 = Calendar.getInstance();
-            c1.setTime(simpleDateFormat.parse(startTime));
-            Calendar c2 = Calendar.getInstance();
-            c2.setTime(simpleDateFormat.parse(finalTime));
-            long millisecond = c2.getTimeInMillis() - c1.getTimeInMillis();
-            Calendar c3 = Calendar.getInstance();
-            c3.setTimeInMillis(c1.getTimeInMillis() - millisecond);
-            String newFinalTime = startTime;
-            String newStartTime = simpleDateFormat.format(c3.getTime());
-            for (int i = 0; i < paramList.size(); i++) {
-                paramList.set(i, paramList.get(i).replace(startTime, newStartTime).replace(finalTime, newFinalTime));
-            }
-            tempQueryFilterMap.put(CmnConst.SYSTEM_SENIOR_QUERY_STRING, Collections.singletonList(queryFilterMap.get(CmnConst.SYSTEM_SENIOR_QUERY_STRING).get(0).replace(startTime, newStartTime).replace(finalTime, newFinalTime)));
-        } catch (ParseException e) {
-            e.printStackTrace();
-        }
-    }
+	/**
+	 * 涓婃湡
+	 *
+	 * @param tempQueryFilterMap
+	 * @param queryFilterMap
+	 * @param curFieldName
+	 */
+	private void spDealFilterForPrePeriod(Map<String, List<String>> tempQueryFilterMap, Map<String, List<String>> queryFilterMap, String curFieldName) {
+		List<String> paramList = tempQueryFilterMap.get(curFieldName);
+		String[] timeArr = paramList.get(0).split("~");
+		try {
+			String startTime = timeArr[0].trim().substring(13, 13 + 19);
+			String finalTime = timeArr[1].trim().substring(13, 13 + 19);
+			SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+			Calendar c1 = Calendar.getInstance();
+			c1.setTime(simpleDateFormat.parse(startTime));
+			Calendar c2 = Calendar.getInstance();
+			c2.setTime(simpleDateFormat.parse(finalTime));
+			long millisecond = c2.getTimeInMillis() - c1.getTimeInMillis();
+			Calendar c3 = Calendar.getInstance();
+			c3.setTimeInMillis(c1.getTimeInMillis() - millisecond);
+			String newFinalTime = startTime;
+			String newStartTime = simpleDateFormat.format(c3.getTime());
+			for (int i = 0; i < paramList.size(); i++) {
+				paramList.set(i, paramList.get(i).replace(startTime, newStartTime).replace(finalTime, newFinalTime));
+			}
+			tempQueryFilterMap.put(CmnConst.SYSTEM_SENIOR_QUERY_STRING, Collections.singletonList(queryFilterMap.get(CmnConst.SYSTEM_SENIOR_QUERY_STRING).get(0).replace(startTime, newStartTime).replace(finalTime, newFinalTime)));
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+	}
 
-    /**
-     * 鑾峰彇鐗规畩鏃堕棿璁$畻绫诲瀷锛屾敞鍏ユ煡璇㈠瓧娈�
-     *
-     * @param baseFieldSet
-     * @param spTimeStatisticsFieldMap
-     * @param dataList
-     * @return
-     */
-    private Set<String> getFieldAndSpTimeStatisticsTypeSet(Set<String> baseFieldSet, Map<String, Map<String, JSONObject>> spTimeStatisticsFieldMap, List<JSONObject> dataList) {
-        Set<String> spTimeStatisticsTypeSet = Sets.newHashSet();
-        JSONObject curFieldObj;
-        String fieldName;
-        Map<String, JSONObject> spTimeStatisticsFieldInnerMap;
-        List<String> suitList;
-        for (JSONObject obj : dataList) {
-            for (Map.Entry<String, Object> entry : obj.entrySet()) {
-                curFieldObj = (JSONObject) entry.getValue();
-                fieldName = fieldInfo2FieldName(curFieldObj.getString(CmnConst.ATTR_FIELD_INFO));
-                if ("1".equals(curFieldObj.getString(CmnConst.ATTR_IS_CUSTOM_FIELD))) {
-                    if (!StringUtils.isEmpty(curFieldObj.getString(CmnConst.ATTR_SP_TIME_STATISTICS_WAY)) && !StringUtils.isEmpty(curFieldObj.getString(CmnConst.ATTR_RELATE_TIME_FIELD))
-                            && !StringUtils.isEmpty(curFieldObj.getString(CmnConst.ATTR_RELATE_COMMON_FIELD))) {
-                        if (spTimeStatisticsFieldMap.get(curFieldObj.getString(CmnConst.ATTR_SP_TIME_STATISTICS_WAY)) == null) {
-                            spTimeStatisticsFieldInnerMap = Maps.newHashMap();
-                            spTimeStatisticsFieldMap.put(curFieldObj.getString(CmnConst.ATTR_SP_TIME_STATISTICS_WAY), spTimeStatisticsFieldInnerMap);
-                        } else {
-                            spTimeStatisticsFieldInnerMap = spTimeStatisticsFieldMap.get(curFieldObj.getString(CmnConst.ATTR_SP_TIME_STATISTICS_WAY));
-                        }
-                        spTimeStatisticsFieldInnerMap.put(curFieldObj.getString(CmnConst.ATTR_RELATE_COMMON_FIELD), extendJSONObject(null, curFieldObj, Arrays.asList(CmnConst.ATTR_RELATE_TIME_FIELD, CmnConst.ATTR_RELATE_COMMON_FIELD)));
-                        spTimeStatisticsTypeSet.add(curFieldObj.getString(CmnConst.ATTR_SP_TIME_STATISTICS_WAY));
-                    } else if (!StringUtils.isEmpty(curFieldObj.getString(CmnConst.ATTR_FORMULA))) {
-                        // todo
-                        suitList = getSuitContent(curFieldObj.getString(CmnConst.ATTR_FORMULA), "\\{#((?!\\{).)+#\\}");
-                        for (String suitContent : suitList) {
-                            if (suitContent.matches("\\{#custom_field_\\d+#\\}")) {
-                                continue;
-                            }
-                            baseFieldSet.add(fieldInfo2FieldName(suitContent));
-                        }
-                    }
-                } else {
-                    baseFieldSet.add(fieldInfo2FieldName(fieldName));
-                }
-            }
-        }
-        return spTimeStatisticsTypeSet;
-    }
+	/**
+	 * 鑾峰彇鐗规畩鏃堕棿璁$畻绫诲瀷锛屾敞鍏ユ煡璇㈠瓧娈�
+	 *
+	 * @param baseFieldSet
+	 * @param spTimeStatisticsFieldMap
+	 * @param dataList
+	 * @return
+	 */
+	private Set<String> getFieldAndSpTimeStatisticsTypeSet(Set<String> baseFieldSet, Map<String, Map<String, JSONObject>> spTimeStatisticsFieldMap, List<JSONObject> dataList) {
+		Set<String> spTimeStatisticsTypeSet = Sets.newHashSet();
+		JSONObject curFieldObj;
+		String fieldName;
+		Map<String, JSONObject> spTimeStatisticsFieldInnerMap;
+		List<String> suitList;
+		for (JSONObject obj : dataList) {
+			for (Map.Entry<String, Object> entry : obj.entrySet()) {
+				curFieldObj = (JSONObject) entry.getValue();
+				fieldName = fieldInfo2FieldName(curFieldObj.getString(CmnConst.ATTR_FIELD_INFO));
+				if ("1".equals(curFieldObj.getString(CmnConst.ATTR_IS_CUSTOM_FIELD))) {
+					if (!StringUtils.isEmpty(curFieldObj.getString(CmnConst.ATTR_SP_TIME_STATISTICS_WAY)) && !StringUtils.isEmpty(curFieldObj.getString(CmnConst.ATTR_RELATE_TIME_FIELD))
+							&& !StringUtils.isEmpty(curFieldObj.getString(CmnConst.ATTR_RELATE_COMMON_FIELD))) {
+						if (spTimeStatisticsFieldMap.get(curFieldObj.getString(CmnConst.ATTR_SP_TIME_STATISTICS_WAY)) == null) {
+							spTimeStatisticsFieldInnerMap = Maps.newHashMap();
+							spTimeStatisticsFieldMap.put(curFieldObj.getString(CmnConst.ATTR_SP_TIME_STATISTICS_WAY), spTimeStatisticsFieldInnerMap);
+						} else {
+							spTimeStatisticsFieldInnerMap = spTimeStatisticsFieldMap.get(curFieldObj.getString(CmnConst.ATTR_SP_TIME_STATISTICS_WAY));
+						}
+						spTimeStatisticsFieldInnerMap.put(curFieldObj.getString(CmnConst.ATTR_RELATE_COMMON_FIELD), extendJSONObject(null, curFieldObj, Arrays.asList(CmnConst.ATTR_RELATE_TIME_FIELD, CmnConst.ATTR_RELATE_COMMON_FIELD)));
+						spTimeStatisticsTypeSet.add(curFieldObj.getString(CmnConst.ATTR_SP_TIME_STATISTICS_WAY));
+					} else if (!StringUtils.isEmpty(curFieldObj.getString(CmnConst.ATTR_FORMULA))) {
+						// todo
+						suitList = getSuitContent(curFieldObj.getString(CmnConst.ATTR_FORMULA), "\\{#((?!\\{).)+#\\}");
+						for (String suitContent : suitList) {
+							if (suitContent.matches("\\{#custom_field_\\d+#\\}")) {
+								continue;
+							}
+							baseFieldSet.add(fieldInfo2FieldName(suitContent));
+						}
+					}
+				} else {
+					baseFieldSet.add(fieldInfo2FieldName(fieldName));
+				}
+			}
+		}
+		return spTimeStatisticsTypeSet;
+	}
 
-    /**
-     * 妫�娴嬫暟鎹簮
-     *
-     * @param recordDte 鏁版嵁婧愰泦鍚�
-     * @return
-     */
-    private JSONObject checkRecordDte(DataTableEntity recordDte) {
-        JSONObject resultObj = new JSONObject();
-        boolean resultFlag = true;
-        if (BaseUtil.dataTableIsEmpty(recordDte)) {
-            resultFlag = false;
-            resultObj.put(CmnConst.RETURN_ATTR_MESSAGE, "鏁版嵁婧愪负绌猴紒");
-        }
-        resultObj.put(CmnConst.RETURN_ATTR_RESULT, resultFlag);
-        return resultObj;
-    }
+	/**
+	 * 妫�娴嬫暟鎹簮
+	 *
+	 * @param recordDte 鏁版嵁婧愰泦鍚�
+	 * @return
+	 */
+	private JSONObject checkRecordDte(DataTableEntity recordDte) {
+		JSONObject resultObj = new JSONObject();
+		boolean resultFlag = true;
+		if (BaseUtil.dataTableIsEmpty(recordDte)) {
+			resultFlag = false;
+			resultObj.put(CmnConst.RETURN_ATTR_MESSAGE, "鏁版嵁婧愪负绌猴紒");
+		}
+		resultObj.put(CmnConst.RETURN_ATTR_RESULT, resultFlag);
+		return resultObj;
+	}
 
-    /**
-     * 鑾峰彇鏌ヨ鏉′欢
-     *
-     * @param reportDatasourceUUID 鎶ヨ〃鏁版嵁婧恥uid
-     * @return
-     */
-    private JSONArray getSearchInfo(String reportDatasourceUUID) {
-        DataTableEntity reportSourceFieldDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_DATASOURCE_FIELD_CONFIG, new String[]{reportDatasourceUUID});
-        JSONArray resultArray = new JSONArray();
-        if (!BaseUtil.dataTableIsEmpty(reportSourceFieldDte)) {
-            FieldSetEntity reportSourceFieldFse;
-            JSONObject tempObj;
-            reportSourceFieldDte.getData().sort(Comparator.comparing(a -> a.getInteger("id")));
-            for (int i = 0; i < reportSourceFieldDte.getRows(); i++) {
-                reportSourceFieldFse = reportSourceFieldDte.getFieldSetEntity(i);
-                if (!StringUtils.isEmpty(reportSourceFieldFse.getString(CmnConst.SEARCH_TYPE)) && !"-1".equals(reportSourceFieldFse.getString(CmnConst.SEARCH_TYPE))) {
-                    tempObj = new JSONObject();
-                    resultArray.add(tempObj);
-                    tempObj.put("field_name", reportSourceFieldFse.getString(CmnConst.FIELD_NAME));
-                    tempObj.put("temp_id", reportSourceFieldFse.getString(CmnConst.FIELD_NAME));
-                    tempObj.put("field_show_name", reportSourceFieldFse.getString(CmnConst.FIELD_TEXT));
-                    tempObj.put("field_type", "date".equals(reportSourceFieldFse.getString(CmnConst.FIELD_FORMAT)) ? "datetime" : ("num".equals(reportSourceFieldFse.getString(CmnConst.FIELD_FORMAT)) ? "number" : reportSourceFieldFse.getString(CmnConst.FIELD_FORMAT)));
-                    tempObj.put("field_reference", reportSourceFieldFse.getString(CmnConst.FIELD_PROMPT));
-                    tempObj.put("table_name", reportSourceFieldFse.getString(CmnConst.TABLE_NAME));
-                    tempObj.put(CmnConst.SEARCH_TYPE, reportSourceFieldFse.getObject(CmnConst.SEARCH_TYPE));
-                    tempObj.put("is_multiple", "2".equals(reportSourceFieldFse.getString(CmnConst.SEARCH_TYPE)));
-                }
-            }
-        }
-        return resultArray;
-    }
+	/**
+	 * 鑾峰彇鏌ヨ鏉′欢
+	 *
+	 * @param reportDatasourceUUID 鎶ヨ〃鏁版嵁婧恥uid
+	 * @return
+	 */
+	private JSONArray getSearchInfo(String reportDatasourceUUID) {
+		DataTableEntity reportSourceFieldDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_DATASOURCE_FIELD_CONFIG, new String[]{reportDatasourceUUID});
+		JSONArray resultArray = new JSONArray();
+		if (!BaseUtil.dataTableIsEmpty(reportSourceFieldDte)) {
+			FieldSetEntity reportSourceFieldFse;
+			JSONObject tempObj;
+			reportSourceFieldDte.getData().sort(Comparator.comparing(a -> a.getInteger("id")));
+			for (int i = 0; i < reportSourceFieldDte.getRows(); i++) {
+				reportSourceFieldFse = reportSourceFieldDte.getFieldSetEntity(i);
+				if (!StringUtils.isEmpty(reportSourceFieldFse.getString(CmnConst.SEARCH_TYPE)) && !"-1".equals(reportSourceFieldFse.getString(CmnConst.SEARCH_TYPE))) {
+					tempObj = new JSONObject();
+					resultArray.add(tempObj);
+					tempObj.put("field_name", reportSourceFieldFse.getString(CmnConst.FIELD_NAME));
+					tempObj.put("temp_id", reportSourceFieldFse.getString(CmnConst.FIELD_NAME));
+					tempObj.put("field_show_name", reportSourceFieldFse.getString(CmnConst.FIELD_TEXT));
+					tempObj.put("field_type", "date".equals(reportSourceFieldFse.getString(CmnConst.FIELD_FORMAT)) ? "datetime" : ("num".equals(reportSourceFieldFse.getString(CmnConst.FIELD_FORMAT)) ? "number" : reportSourceFieldFse.getString(CmnConst.FIELD_FORMAT)));
+					tempObj.put("field_reference", reportSourceFieldFse.getString(CmnConst.FIELD_PROMPT));
+					tempObj.put("table_name", reportSourceFieldFse.getString(CmnConst.TABLE_NAME));
+					tempObj.put(CmnConst.SEARCH_TYPE, reportSourceFieldFse.getObject(CmnConst.SEARCH_TYPE));
+					tempObj.put("is_multiple", "2".equals(reportSourceFieldFse.getString(CmnConst.SEARCH_TYPE)));
+				}
+			}
+		}
+		return resultArray;
+	}
 
-    /**
-     * 鑾峰彇榛樿鏌ヨ鏉′欢
-     *
-     * @param reportDatasourceUUID 鎶ヨ〃鏁版嵁婧恥uid
-     * @return
-     */
-    private DataTableEntity getDefaultSearchFilter(String reportDatasourceUUID) {
-        DataTableEntity reportSourceFieldDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_DATASOURCE_FIELD_CONFIG, new String[]{reportDatasourceUUID});
-        DataTableEntity dte = new DataTableEntity();
-        if (!BaseUtil.dataTableIsEmpty(reportSourceFieldDte)) {
-            FieldSetEntity reportSourceFieldFse;
-            FieldSetEntity fse;
-            for (int i = 0; i < reportSourceFieldDte.getRows(); i++) {
-                reportSourceFieldFse = reportSourceFieldDte.getFieldSetEntity(i);
-                if (!StringUtils.isEmpty(reportSourceFieldFse.getString(CmnConst.SEARCH_TYPE)) && !"-1".equals(reportSourceFieldFse.getString(CmnConst.SEARCH_TYPE))) {
-                    fse = new FieldSetEntity();
-                    fse.setTableName("temp_table");
-                    fse.setValue("field_name", reportSourceFieldFse.getString(CmnConst.FIELD_NAME));
-                    fse.setValue("field_show_name", reportSourceFieldFse.getString(CmnConst.FIELD_TEXT));
-                    fse.setValue("field_type", "date".equals(reportSourceFieldFse.getString(CmnConst.FIELD_FORMAT)) ? "datetime" : ("num".equals(reportSourceFieldFse.getString(CmnConst.FIELD_FORMAT)) ? "number" : reportSourceFieldFse.getString(CmnConst.FIELD_FORMAT)));
-                    fse.setValue("field_reference", reportSourceFieldFse.getString(CmnConst.FIELD_PROMPT));
-                    fse.setValue("table_name", reportSourceFieldFse.getString(CmnConst.TABLE_NAME));
-                    fse.setValue(CmnConst.SEARCH_TYPE, reportSourceFieldFse.getObject(CmnConst.SEARCH_TYPE));
-                    fse.setValue("is_multiple", "2".equals(reportSourceFieldFse.getString(CmnConst.SEARCH_TYPE)));
-                    fse.setValue(CmnConst.LOGICAL_OPERATOR, reportSourceFieldFse.getString(CmnConst.LOGICAL_OPERATOR));
-                    fse.setValue(CmnConst.LOGICAL_VALUE, reportSourceFieldFse.getString(CmnConst.LOGICAL_VALUE));
-                    dte.addFieldSetEntity(fse);
-                }
-            }
-        }
-        return dte;
-    }
+	/**
+	 * 鑾峰彇榛樿鏌ヨ鏉′欢
+	 *
+	 * @param reportDatasourceUUID 鎶ヨ〃鏁版嵁婧恥uid
+	 * @return
+	 */
+	private DataTableEntity getDefaultSearchFilter(String reportDatasourceUUID) {
+		DataTableEntity reportSourceFieldDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_DATASOURCE_FIELD_CONFIG, new String[]{reportDatasourceUUID});
+		DataTableEntity dte = new DataTableEntity();
+		if (!BaseUtil.dataTableIsEmpty(reportSourceFieldDte)) {
+			FieldSetEntity reportSourceFieldFse;
+			FieldSetEntity fse;
+			for (int i = 0; i < reportSourceFieldDte.getRows(); i++) {
+				reportSourceFieldFse = reportSourceFieldDte.getFieldSetEntity(i);
+				if (!StringUtils.isEmpty(reportSourceFieldFse.getString(CmnConst.SEARCH_TYPE)) && !"-1".equals(reportSourceFieldFse.getString(CmnConst.SEARCH_TYPE))) {
+					fse = new FieldSetEntity();
+					fse.setTableName("temp_table");
+					fse.setValue("field_name", reportSourceFieldFse.getString(CmnConst.FIELD_NAME));
+					fse.setValue("field_show_name", reportSourceFieldFse.getString(CmnConst.FIELD_TEXT));
+					fse.setValue("field_type", "date".equals(reportSourceFieldFse.getString(CmnConst.FIELD_FORMAT)) ? "datetime" : ("num".equals(reportSourceFieldFse.getString(CmnConst.FIELD_FORMAT)) ? "number" : reportSourceFieldFse.getString(CmnConst.FIELD_FORMAT)));
+					fse.setValue("field_reference", reportSourceFieldFse.getString(CmnConst.FIELD_PROMPT));
+					fse.setValue("table_name", reportSourceFieldFse.getString(CmnConst.TABLE_NAME));
+					fse.setValue(CmnConst.SEARCH_TYPE, reportSourceFieldFse.getObject(CmnConst.SEARCH_TYPE));
+					fse.setValue("is_multiple", "2".equals(reportSourceFieldFse.getString(CmnConst.SEARCH_TYPE)));
+					fse.setValue(CmnConst.LOGICAL_OPERATOR, reportSourceFieldFse.getString(CmnConst.LOGICAL_OPERATOR));
+					fse.setValue(CmnConst.LOGICAL_VALUE, reportSourceFieldFse.getString(CmnConst.LOGICAL_VALUE));
+					dte.addFieldSetEntity(fse);
+				}
+			}
+		}
+		return dte;
+	}
 
-    /**
-     * 鍒嗙粍鍖哄拰鏁版嵁鍖虹壒娈婅浆鎹�
-     *
-     * @param list
-     * @return
-     */
-    public Map<String, JSONObject> groupAndDataJSONObject2Map(List<JSONObject> list) {
-        Map<String, JSONObject> map = Maps.newLinkedHashMap();
-        for (JSONObject jsonObject : list) {
-            for (Map.Entry<String, Object> fieldEntry : jsonObject.entrySet()) {
-                map.put(fieldEntry.getKey(), (JSONObject) fieldEntry.getValue());
-            }
-        }
-        return map;
-    }
+	/**
+	 * 鍒嗙粍鍖哄拰鏁版嵁鍖虹壒娈婅浆鎹�
+	 *
+	 * @param list
+	 * @return
+	 */
+	public Map<String, JSONObject> groupAndDataJSONObject2Map(List<JSONObject> list) {
+		Map<String, JSONObject> map = Maps.newLinkedHashMap();
+		for (JSONObject jsonObject : list) {
+			for (Map.Entry<String, Object> fieldEntry : jsonObject.entrySet()) {
+				map.put(fieldEntry.getKey(), (JSONObject) fieldEntry.getValue());
+			}
+		}
+		return map;
+	}
 
-    /**
-     * 鎶ヨ〃-瑙f瀽-鑾峰彇澶撮儴鎴栬�呭熬閮ㄦ爣棰楬tml
-     *
-     * @param list                    鎶ヨ〃閰嶇疆淇℃伅锛岀紦瀛榣ist
-     * @param totalColCount           鎬诲垪鏁�
-     * @param headAndTailTitleDataMap 澶撮儴銆佸熬閮ㄦ爣棰樺尯鏁版嵁瀛楁map
-     * @param locationType            浣嶇疆绫诲瀷锛宧ead-澶撮儴锛宼ail-灏鹃儴
-     * @return
-     */
-    public StringBuilder getTitleHtml(List<JSONObject> list, int totalColCount, Map<String, Set<String>> headAndTailTitleDataMap, String locationType) {
-        StringBuilder html = new StringBuilder(1024);
-        int colspan;
-        int preRow = 0;
-        int preCol = 0;
-        int curRow;
-        int curCol;
-        String value;
-        String style;
-        for (JSONObject singleObj : list) {
-            curRow = singleObj.getIntValue(CmnConst.ATTR_Y);
-            curCol = singleObj.getIntValue(CmnConst.ATTR_X);
-            colspan = singleObj.getIntValue(CmnConst.ATTR_COLSPAN);
-            colspan = colspan < 0 ? totalColCount : Math.max(1, colspan);
-            value = replaceFormDataAndSysData(singleObj.getString(CmnConst.ATTR_SHOW_NAME), headAndTailTitleDataMap, singleObj);
-            value = value == null ? "" : value;
-            if ("1".equals(singleObj.getString(CmnConst.ATTR_IS_TITLE))) {
-                style = " class=\"" + CmnConst.CLASS_TR_REPORT_TITLE + "\"";
-            } else {
-                if ("head".equals(locationType)) {
-                    style = " class=\"" + CmnConst.CLASS_TR_HEAD + "\"";
-                } else {
-                    style = " class=\"" + CmnConst.CLASS_TR_TAIL + "\"";
-                }
-            }
-            if (preRow < curRow) {
-                if (preRow == 0) {
-                    html.append("\n<tr ");
-                } else {
-                    html.append(getAimNumTdPlaceholder(totalColCount - preCol, 1));
-                    html.append("\n</tr>\n<tr ");
-                }
-                html.append(style).append(">\n    ");
-                if (preRow == 0 && preCol == 0 && preCol < curCol - 1) {
-                    html.append(getAimNumTdPlaceholder(curCol - preCol - 1, 1));
-                }
-                preCol = curCol;
-            }
-            if (preCol < curCol - 1) {
-                html.append(getAimNumTdPlaceholder(curCol - preCol - 1, 1));
-            }
-            if ("1".equals(singleObj.getString(CmnConst.ATTR_IS_TITLE))) {
-                colspan = totalColCount;
-            }
-            html.append("<td colspan=\"").append(colspan).append("\">").append(value).append("</td>");
-            preRow = curRow;
-            preCol = curCol + singleObj.getIntValue(CmnConst.ATTR_COLSPAN) - 1;
-            if ("1".equals(singleObj.getString(CmnConst.ATTR_IS_TITLE))) {
-                preCol = totalColCount;
-            }
-        }
-        if (html.length() > 5) {
-            html.delete(html.length() - 5, html.length());
-        }
-        html.append(getAimNumTdPlaceholder(totalColCount - preCol, 1));
-        html.append("\n</tr>");
-        return html;
-    }
+	/**
+	 * 鎶ヨ〃-瑙f瀽-鑾峰彇澶撮儴鎴栬�呭熬閮ㄦ爣棰楬tml
+	 *
+	 * @param list                    鎶ヨ〃閰嶇疆淇℃伅锛岀紦瀛榣ist
+	 * @param totalColCount           鎬诲垪鏁�
+	 * @param headAndTailTitleDataMap 澶撮儴銆佸熬閮ㄦ爣棰樺尯鏁版嵁瀛楁map
+	 * @param locationType            浣嶇疆绫诲瀷锛宧ead-澶撮儴锛宼ail-灏鹃儴
+	 * @return
+	 */
+	public StringBuilder getTitleHtml(List<JSONObject> list, int totalColCount, Map<String, Set<String>> headAndTailTitleDataMap, String locationType) {
+		StringBuilder html = new StringBuilder(1024);
+		int colspan;
+		int preRow = 0;
+		int preCol = 0;
+		int curRow;
+		int curCol;
+		String value;
+		String style;
+		for (JSONObject singleObj : list) {
+			curRow = singleObj.getIntValue(CmnConst.ATTR_Y);
+			curCol = singleObj.getIntValue(CmnConst.ATTR_X);
+			colspan = singleObj.getIntValue(CmnConst.ATTR_COLSPAN);
+			colspan = colspan < 0 ? totalColCount : Math.max(1, colspan);
+			value = replaceFormDataAndSysData(singleObj.getString(CmnConst.ATTR_SHOW_NAME), headAndTailTitleDataMap, singleObj);
+			value = value == null ? "" : value;
+			if ("1".equals(singleObj.getString(CmnConst.ATTR_IS_TITLE))) {
+				style = " class=\"" + CmnConst.CLASS_TR_REPORT_TITLE + "\"";
+			} else {
+				if ("head".equals(locationType)) {
+					style = " class=\"" + CmnConst.CLASS_TR_HEAD + "\"";
+				} else {
+					style = " class=\"" + CmnConst.CLASS_TR_TAIL + "\"";
+				}
+			}
+			if (preRow < curRow) {
+				if (preRow == 0) {
+					html.append("\n<tr ");
+				} else {
+					html.append(getAimNumTdPlaceholder(totalColCount - preCol, 1));
+					html.append("\n</tr>\n<tr ");
+				}
+				html.append(style).append(">\n    ");
+				if (preRow == 0 && preCol == 0 && preCol < curCol - 1) {
+					html.append(getAimNumTdPlaceholder(curCol - preCol - 1, 1));
+				}
+				preCol = curCol;
+			}
+			if (preCol < curCol - 1) {
+				html.append(getAimNumTdPlaceholder(curCol - preCol - 1, 1));
+			}
+			if ("1".equals(singleObj.getString(CmnConst.ATTR_IS_TITLE))) {
+				colspan = totalColCount;
+			}
+			html.append("<td colspan=\"").append(colspan).append("\">").append(value).append("</td>");
+			preRow = curRow;
+			preCol = curCol + singleObj.getIntValue(CmnConst.ATTR_COLSPAN) - 1;
+			if ("1".equals(singleObj.getString(CmnConst.ATTR_IS_TITLE))) {
+				preCol = totalColCount;
+			}
+		}
+		if (html.length() > 5) {
+			html.delete(html.length() - 5, html.length());
+		}
+		html.append(getAimNumTdPlaceholder(totalColCount - preCol, 1));
+		html.append("\n</tr>");
+		return html;
+	}
 
-    /**
-     * 鑾峰彇鎸囧畾鏁版嵁闆嗕腑鍖呭惈鐨勬暟鎹尯瀛楁闆嗗悎
-     *
-     * @param list 鎸囧畾鏁版嵁闆嗗悎
-     * @return
-     */
-    public Set<String> getDataFields(List<JSONObject> list) {
-        Set<String> set = Sets.newLinkedHashSet();
-        if (list == null) {
-            return set;
-        }
-        String fieldInfo;
-        List<String> suitList;
-        for (JSONObject tempObj : list) {
-            fieldInfo = tempObj.getString(CmnConst.ATTR_FIELD_INFO);
-            suitList = getSuitContent(fieldInfo, CmnConst.REGEXP_FORM_FIELD);
-            if (!suitList.isEmpty()) {
-                for (String singleFieldInfo : suitList) {
-                    set.add(fieldInfo2FieldName(singleFieldInfo));
-                }
-            }
-        }
-        return set;
-    }
+	/**
+	 * 鑾峰彇鎸囧畾鏁版嵁闆嗕腑鍖呭惈鐨勬暟鎹尯瀛楁闆嗗悎
+	 *
+	 * @param list 鎸囧畾鏁版嵁闆嗗悎
+	 * @return
+	 */
+	public Set<String> getDataFields(List<JSONObject> list) {
+		Set<String> set = Sets.newLinkedHashSet();
+		if (list == null) {
+			return set;
+		}
+		String fieldInfo;
+		List<String> suitList;
+		for (JSONObject tempObj : list) {
+			fieldInfo = tempObj.getString(CmnConst.ATTR_FIELD_INFO);
+			suitList = getSuitContent(fieldInfo, CmnConst.REGEXP_FORM_FIELD);
+			if (!suitList.isEmpty()) {
+				for (String singleFieldInfo : suitList) {
+					set.add(fieldInfo2FieldName(singleFieldInfo));
+				}
+			}
+		}
+		return set;
+	}
 
-    /**
-     * 鑾峰彇缁熻map鐨剉alue
-     *
-     * @param valueJsonObject        鍊紀bj
-     * @param dataAreaFieldConfigObj 鏁版嵁鍖哄瓧娈电紦瀛榦bj
-     * @param actualValue            瀹為檯鍊�
-     * @param type                   缁熻绫诲瀷
-     * @param lastStageFlag          鏄惁鏈骇锛堟暟鎹尯鍒嗙粍瀛楁鏈骇鍜屽垎缁勮〃澶村尯瀛楁閮芥槸鏈骇鎵嶄负鏈骇锛�
-     * @return
-     */
-    public JSONObject getStatisticsValueObj(JSONObject valueJsonObject, JSONObject dataAreaFieldConfigObj, String actualValue, String type, boolean lastStageFlag) {
-        if (valueJsonObject == null) {
-            valueJsonObject = new JSONObject();
-        }
-        if (actualValue.matches(CmnConst.REGEXP_NUMBER)) {
-            BigDecimal curValue = new BigDecimal(actualValue);
-            if (CmnConst.ATTR_STATISTICS_SUM.equals(type) || CmnConst.ATTR_STATISTICS_AVG.equals(type)) {
-                valueJsonObject.put(CmnConst.ATTR_STATISTICS_SUM, valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_SUM) != null ? valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_SUM).add(curValue) : curValue);
-            }
-            if (CmnConst.ATTR_STATISTICS_MAX.equals(type)) {
-                valueJsonObject.put(CmnConst.ATTR_STATISTICS_MAX, valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_MAX) != null && valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_MAX).compareTo(curValue) > 0 ? valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_MAX) : curValue);
-            }
-            if (CmnConst.ATTR_STATISTICS_MIN.equals(type)) {
-                valueJsonObject.put(CmnConst.ATTR_STATISTICS_MIN, valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_MIN) != null && valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_MIN).compareTo(curValue) < 0 ? valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_MIN) : curValue);
-            }
-            if (CmnConst.ATTR_STATISTICS_DEFAULT.equals(type)) {
-                valueJsonObject.put(CmnConst.ATTR_STATISTICS_DEFAULT, valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_SUM) != null ? valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_SUM).add(curValue) : curValue);
-            }
-        }
-        if (CmnConst.ATTR_STATISTICS_CNT.equals(type) || CmnConst.ATTR_STATISTICS_AVG.equals(type)) {
-            valueJsonObject.put(CmnConst.ATTR_STATISTICS_CNT, valueJsonObject.getIntValue(CmnConst.ATTR_STATISTICS_CNT) + 1);
-        }
-        if (CmnConst.ATTR_STATISTICS_ENUM.equals(type) && !StringUtils.isEmpty(actualValue)) {
-            String preEnumValue = valueJsonObject.get(CmnConst.ATTR_STATISTICS_ENUM) == null ? "" : valueJsonObject.getString(CmnConst.ATTR_STATISTICS_ENUM);
-            if ("1".equals(dataAreaFieldConfigObj.getString(CmnConst.ATTR_ENUM_TYPE))) {
-                if (!checkContain(preEnumValue, actualValue)) {
-                    valueJsonObject.put(CmnConst.ATTR_STATISTICS_ENUM, StringUtils.isEmpty(preEnumValue) ? actualValue : preEnumValue + "," + actualValue);
-                }
-            } else {
-                valueJsonObject.put(CmnConst.ATTR_STATISTICS_ENUM, StringUtils.isEmpty(preEnumValue) ? actualValue : preEnumValue + "," + actualValue);
-            }
-        }
-        getAvgValue(valueJsonObject, dataAreaFieldConfigObj, lastStageFlag);
-        return valueJsonObject;
-    }
+	/**
+	 * 鑾峰彇缁熻map鐨剉alue
+	 *
+	 * @param valueJsonObject        鍊紀bj
+	 * @param dataAreaFieldConfigObj 鏁版嵁鍖哄瓧娈电紦瀛榦bj
+	 * @param actualValue            瀹為檯鍊�
+	 * @param type                   缁熻绫诲瀷
+	 * @param lastStageFlag          鏄惁鏈骇锛堟暟鎹尯鍒嗙粍瀛楁鏈骇鍜屽垎缁勮〃澶村尯瀛楁閮芥槸鏈骇鎵嶄负鏈骇锛�
+	 * @return
+	 */
+	public JSONObject getStatisticsValueObj(JSONObject valueJsonObject, JSONObject dataAreaFieldConfigObj, String actualValue, String type, boolean lastStageFlag) {
+		if (valueJsonObject == null) {
+			valueJsonObject = new JSONObject();
+		}
+		if (actualValue.matches(CmnConst.REGEXP_NUMBER)) {
+			BigDecimal curValue = new BigDecimal(actualValue);
+			if (CmnConst.ATTR_STATISTICS_SUM.equals(type) || CmnConst.ATTR_STATISTICS_AVG.equals(type)) {
+				valueJsonObject.put(CmnConst.ATTR_STATISTICS_SUM, valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_SUM) != null ? valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_SUM).add(curValue) : curValue);
+			}
+			if (CmnConst.ATTR_STATISTICS_MAX.equals(type)) {
+				valueJsonObject.put(CmnConst.ATTR_STATISTICS_MAX, valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_MAX) != null && valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_MAX).compareTo(curValue) > 0 ? valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_MAX) : curValue);
+			}
+			if (CmnConst.ATTR_STATISTICS_MIN.equals(type)) {
+				valueJsonObject.put(CmnConst.ATTR_STATISTICS_MIN, valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_MIN) != null && valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_MIN).compareTo(curValue) < 0 ? valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_MIN) : curValue);
+			}
+			if (CmnConst.ATTR_STATISTICS_DEFAULT.equals(type)) {
+				valueJsonObject.put(CmnConst.ATTR_STATISTICS_DEFAULT, valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_SUM) != null ? valueJsonObject.getBigDecimal(CmnConst.ATTR_STATISTICS_SUM).add(curValue) : curValue);
+			}
+		}
+		if (CmnConst.ATTR_STATISTICS_CNT.equals(type) || CmnConst.ATTR_STATISTICS_AVG.equals(type)) {
+			valueJsonObject.put(CmnConst.ATTR_STATISTICS_CNT, valueJsonObject.getIntValue(CmnConst.ATTR_STATISTICS_CNT) + 1);
+		}
+		if (CmnConst.ATTR_STATISTICS_ENUM.equals(type) && !StringUtils.isEmpty(actualValue)) {
+			String preEnumValue = valueJsonObject.get(CmnConst.ATTR_STATISTICS_ENUM) == null ? "" : valueJsonObject.getString(CmnConst.ATTR_STATISTICS_ENUM);
+			if ("1".equals(dataAreaFieldConfigObj.getString(CmnConst.ATTR_ENUM_TYPE))) {
+				if (!checkContain(preEnumValue, actualValue)) {
+					valueJsonObject.put(CmnConst.ATTR_STATISTICS_ENUM, StringUtils.isEmpty(preEnumValue) ? actualValue : preEnumValue + "," + actualValue);
+				}
+			} else {
+				valueJsonObject.put(CmnConst.ATTR_STATISTICS_ENUM, StringUtils.isEmpty(preEnumValue) ? actualValue : preEnumValue + "," + actualValue);
+			}
+		}
+		getAvgValue(valueJsonObject, dataAreaFieldConfigObj, lastStageFlag);
+		return valueJsonObject;
+	}
 
-    /**
-     * 璁$畻骞冲潎鍊�
-     *
-     * @param valueJsonObject        鍊紀bj
-     * @param dataAreaFieldConfigObj 鏁版嵁鍖哄瓧娈电紦瀛榦bj
-     * @param lastStageFlag          鏈骇瀛楁鏍囪瘑
-     * @return
-     */
-    public void getAvgValue(JSONObject valueJsonObject, JSONObject dataAreaFieldConfigObj, boolean lastStageFlag) {
-        if (CmnConst.ATTR_STATISTICS_AVG.equals(dataAreaFieldConfigObj.getString(CmnConst.ATTR_STATISTICS))) {
-            Double cnt = valueJsonObject.getDoubleValue(CmnConst.ATTR_STATISTICS_CNT);
-            if (!lastStageFlag && "1".equals(dataAreaFieldConfigObj.getString(CmnConst.ATTR_AVG_TYPE))) {
-                cnt = valueJsonObject.getDoubleValue(CmnConst.ATTR_STATISTICS_SUB_CNT);
-            }
-            valueJsonObject.put(CmnConst.ATTR_STATISTICS_AVG, valueJsonObject.getDoubleValue(CmnConst.ATTR_STATISTICS_SUM) / (cnt == 0 ? 1 : cnt));
-        }
-    }
+	/**
+	 * 璁$畻骞冲潎鍊�
+	 *
+	 * @param valueJsonObject        鍊紀bj
+	 * @param dataAreaFieldConfigObj 鏁版嵁鍖哄瓧娈电紦瀛榦bj
+	 * @param lastStageFlag          鏈骇瀛楁鏍囪瘑
+	 * @return
+	 */
+	public void getAvgValue(JSONObject valueJsonObject, JSONObject dataAreaFieldConfigObj, boolean lastStageFlag) {
+		if (CmnConst.ATTR_STATISTICS_AVG.equals(dataAreaFieldConfigObj.getString(CmnConst.ATTR_STATISTICS))) {
+			Double cnt = valueJsonObject.getDoubleValue(CmnConst.ATTR_STATISTICS_CNT);
+			if (!lastStageFlag && "1".equals(dataAreaFieldConfigObj.getString(CmnConst.ATTR_AVG_TYPE))) {
+				cnt = valueJsonObject.getDoubleValue(CmnConst.ATTR_STATISTICS_SUB_CNT);
+			}
+			valueJsonObject.put(CmnConst.ATTR_STATISTICS_AVG, valueJsonObject.getDoubleValue(CmnConst.ATTR_STATISTICS_SUM) / (cnt == 0 ? 1 : cnt));
+		}
+	}
 
-    /**
-     * 鑾峰彇澶撮儴銆佸熬閮ㄦ爣棰樻暟鎹瓧娈�
-     *
-     * @param headAndTailTitleDataMap
-     * @param set
-     * @param recordFse
-     */
-    public void getHeadAndTailTitleDataMap(Map<String, Set<String>> headAndTailTitleDataMap, Set<String> set, FieldSetEntity recordFse) {
-        for (String fieldName : set) {
-            headAndTailTitleDataMap.computeIfAbsent(fieldName, k -> Sets.newLinkedHashSet()).add(recordFse.getString(fieldName));
-        }
-    }
+	/**
+	 * 鑾峰彇澶撮儴銆佸熬閮ㄦ爣棰樻暟鎹瓧娈�
+	 *
+	 * @param headAndTailTitleDataMap
+	 * @param set
+	 * @param recordFse
+	 */
+	public void getHeadAndTailTitleDataMap(Map<String, Set<String>> headAndTailTitleDataMap, Set<String> set, FieldSetEntity recordFse) {
+		for (String fieldName : set) {
+			headAndTailTitleDataMap.computeIfAbsent(fieldName, k -> Sets.newLinkedHashSet()).add(recordFse.getString(fieldName));
+		}
+	}
 
-    /**
-     * 鑾峰彇鍊�
-     *
-     * @param dataAreaFieldConfigObj
-     * @param recordFse
-     * @param dataAreaFieldName
-     * @return
-     */
-    public String getValue(JSONObject dataAreaFieldConfigObj, FieldSetEntity recordFse, String dataAreaFieldName) {
-        String value = null;
+	/**
+	 * 鑾峰彇鍊�
+	 *
+	 * @param dataAreaFieldConfigObj
+	 * @param recordFse
+	 * @param dataAreaFieldName
+	 * @return
+	 */
+	public String getValue(JSONObject dataAreaFieldConfigObj, FieldSetEntity recordFse, String dataAreaFieldName) {
+		String value = null;
 
-        if (CmnConst.ATTR_DATA_TYPE_DATE.equals(dataAreaFieldConfigObj.getString(CmnConst.ATTR_DATA_TYPE))) {
-            String dateFormat = dataAreaFieldConfigObj.getString(CmnConst.ATTR_DATE_FORMAT);
-            if (!StringUtils.isEmpty(dateFormat)) {
-                value = recordFse.getDate(dataAreaFieldName, dateFormat);
-            }
-        } else {
-            if ("1".equals(dataAreaFieldConfigObj.getString(CmnConst.ATTR_IS_CUSTOM_FIELD))) {
-                // 鑷畾涔夊瓧娈�
-                if (!StringUtils.isEmpty(dataAreaFieldConfigObj.getString(CmnConst.ATTR_FORMULA))) {
-                    // 鏇挎崲绯荤粺鍙傛暟
-                    value = SystemParamReplace.systemParamsReplace(dataAreaFieldConfigObj.getString(CmnConst.ATTR_FORMULA));
-                    // 鏇挎崲琛ㄥ崟鍙傛暟锛屼娇鐢╠ouble杩涜璁$畻
-                    value = SystemParamReplace.formParamsReplace(value, recordFse, 1);
-                    // 鍘婚櫎鏈浣跨敤鐨勫弬鏁�
-                    value = value.replaceAll("\\/\\{#[\\w]+#}", "/1").replaceAll("\\{#[\\w]+#}", "0");
-                    // 姹傚��
-                    try {
-                        value = BaseUtil.executeExpression(value, Maps.newHashMap()).toString();
-                    } catch (Exception e) {
-                        SpringMVCContextHolder.getSystemLogger().error(e);
-                        value = "";
-                    }
-                } else {
-                    if (!StringUtils.isEmpty(dataAreaFieldConfigObj.getString(CmnConst.ATTR_SP_TIME_STATISTICS_WAY))) {
-                        value = recordFse.getString(fieldInfo2FieldName(getFieldInfo(dataAreaFieldConfigObj)));
-                    }
-                }
-            } else {
-                // 鏅�氬瓧娈�+鍒嗙粍瀛楁
-                value = recordFse.getString(dataAreaFieldName);
-            }
-        }
-        return StringUtils.isEmpty(value) ? "" : value;
-    }
+		if (CmnConst.ATTR_DATA_TYPE_DATE.equals(dataAreaFieldConfigObj.getString(CmnConst.ATTR_DATA_TYPE))) {
+			String dateFormat = dataAreaFieldConfigObj.getString(CmnConst.ATTR_DATE_FORMAT);
+			if (!StringUtils.isEmpty(dateFormat)) {
+				value = recordFse.getDate(dataAreaFieldName, dateFormat);
+			}
+		} else {
+			if ("1".equals(dataAreaFieldConfigObj.getString(CmnConst.ATTR_IS_CUSTOM_FIELD))) {
+				// 鑷畾涔夊瓧娈�
+				if (!StringUtils.isEmpty(dataAreaFieldConfigObj.getString(CmnConst.ATTR_FORMULA))) {
+					// 鏇挎崲绯荤粺鍙傛暟
+					value = SystemParamReplace.systemParamsReplace(dataAreaFieldConfigObj.getString(CmnConst.ATTR_FORMULA));
+					// 鏇挎崲琛ㄥ崟鍙傛暟锛屼娇鐢╠ouble杩涜璁$畻
+					value = SystemParamReplace.formParamsReplace(value, recordFse, 1);
+					// 鍘婚櫎鏈浣跨敤鐨勫弬鏁�
+					value = value.replaceAll("\\/\\{#[\\w]+#}", "/1").replaceAll("\\{#[\\w]+#}", "0");
+					// 姹傚��
+					try {
+						value = BaseUtil.executeExpression(value, Maps.newHashMap()).toString();
+					} catch (Exception e) {
+						SpringMVCContextHolder.getSystemLogger().error(e);
+						value = "";
+					}
+				} else {
+					if (!StringUtils.isEmpty(dataAreaFieldConfigObj.getString(CmnConst.ATTR_SP_TIME_STATISTICS_WAY))) {
+						value = recordFse.getString(fieldInfo2FieldName(getFieldInfo(dataAreaFieldConfigObj)));
+					}
+				}
+			} else {
+				// 鏅�氬瓧娈�+鍒嗙粍瀛楁
+				value = recordFse.getString(dataAreaFieldName);
+			}
+		}
+		return StringUtils.isEmpty(value) ? "" : value;
+	}
 
-    /**
-     * 鑾峰彇瀛楁淇℃伅
-     *
-     * @param dataAreaFieldConfigObj
-     * @return
-     */
-    private String getFieldInfo(JSONObject dataAreaFieldConfigObj) {
-        if ("1".equals(dataAreaFieldConfigObj.getString(CmnConst.ATTR_IS_CUSTOM_FIELD))) {
-            // 鑷畾涔夊瓧娈�
-            if (!StringUtils.isEmpty(dataAreaFieldConfigObj.getString(CmnConst.ATTR_SP_TIME_STATISTICS_WAY))) {
-                // 鐗规畩鏃堕棿璁$畻瀛楁
-                if ("0".equals(dataAreaFieldConfigObj.getString(CmnConst.ATTR_SP_TIME_STATISTICS_WAY))) {
-                    // 鍘诲勾鍚屾湡
-                    return fieldName2FieldInfo(CmnConst.ATTR_HEAD_LAST_YEAR + fieldInfo2FieldName(dataAreaFieldConfigObj.getString(CmnConst.ATTR_RELATE_COMMON_FIELD)));
-                } else if ("1".equals(dataAreaFieldConfigObj.getString(CmnConst.ATTR_SP_TIME_STATISTICS_WAY))) {
-                    // 涓婃湡
-                    return fieldName2FieldInfo(CmnConst.ATTR_HEAD_PRE_PERIOD + fieldInfo2FieldName(dataAreaFieldConfigObj.getString(CmnConst.ATTR_RELATE_COMMON_FIELD)));
-                }
-            }
-        }
-        // 鏅�氬瓧娈�
-        return dataAreaFieldConfigObj.getString(CmnConst.ATTR_FIELD_INFO);
-    }
+	/**
+	 * 鑾峰彇瀛楁淇℃伅
+	 *
+	 * @param dataAreaFieldConfigObj
+	 * @return
+	 */
+	private String getFieldInfo(JSONObject dataAreaFieldConfigObj) {
+		if ("1".equals(dataAreaFieldConfigObj.getString(CmnConst.ATTR_IS_CUSTOM_FIELD))) {
+			// 鑷畾涔夊瓧娈�
+			if (!StringUtils.isEmpty(dataAreaFieldConfigObj.getString(CmnConst.ATTR_SP_TIME_STATISTICS_WAY))) {
+				// 鐗规畩鏃堕棿璁$畻瀛楁
+				if ("0".equals(dataAreaFieldConfigObj.getString(CmnConst.ATTR_SP_TIME_STATISTICS_WAY))) {
+					// 鍘诲勾鍚屾湡
+					return fieldName2FieldInfo(CmnConst.ATTR_HEAD_LAST_YEAR + fieldInfo2FieldName(dataAreaFieldConfigObj.getString(CmnConst.ATTR_RELATE_COMMON_FIELD)));
+				} else if ("1".equals(dataAreaFieldConfigObj.getString(CmnConst.ATTR_SP_TIME_STATISTICS_WAY))) {
+					// 涓婃湡
+					return fieldName2FieldInfo(CmnConst.ATTR_HEAD_PRE_PERIOD + fieldInfo2FieldName(dataAreaFieldConfigObj.getString(CmnConst.ATTR_RELATE_COMMON_FIELD)));
+				}
+			}
+		}
+		// 鏅�氬瓧娈�
+		return dataAreaFieldConfigObj.getString(CmnConst.ATTR_FIELD_INFO);
+	}
 
-    /**
-     * 鏍煎紡鍖栨暟鎹�
-     *
-     * @param dataAreaFieldConfigObj 鏁版嵁鍖哄瓧娈电紦瀛榦bj
-     * @param value                  鏁版嵁鍊�
-     * @return
-     */
-    public String formatValue(JSONObject dataAreaFieldConfigObj, String value) {
-        if (StringUtils.isEmpty(value)) {
-            return value;
-        }
-        if (CmnConst.ATTR_DATA_TYPE_NUM.equals(dataAreaFieldConfigObj.getString(CmnConst.ATTR_DATA_TYPE))) {
-            int decimalDigits = dataAreaFieldConfigObj.getIntValue(CmnConst.ATTR_DECIMAL_DIGITS);
-            String numFormat = dataAreaFieldConfigObj.getString(CmnConst.ATTR_NUM_FORMAT);
-            StringBuilder numFormatSb = new StringBuilder(32);
-            StringBuilder valueSb = new StringBuilder(32);
-            String[] tempValueArr = value.split("\\\\");
-            for (String singleValue : tempValueArr) {
-                if (StringUtils.isEmpty(singleValue)) {
-                    continue;
-                }
-                if (valueSb.length() > 0) {
-                    valueSb.append("\\");
-                }
-                numFormatSb.setLength(0);
-                if ("1".equals(numFormat)) {
-                    // 鍗冨垎浣�
-                    numFormatSb.append("%1$,.").append(decimalDigits).append("f");
-                    singleValue = String.format(numFormatSb.toString(), Double.parseDouble(singleValue));
-                } else if ("2".equals(numFormat)) {
-                    // 鐧惧垎姣�
-                    numFormatSb.append("0.");
-                    for (int i = 0; i < decimalDigits; i++) {
-                        numFormatSb.append("0");
-                    }
-                    numFormatSb.append("%");
-                    singleValue = new DecimalFormat(numFormatSb.toString()).format(Double.parseDouble(singleValue));
-                } else {
-                    numFormatSb.append("%1$.").append(decimalDigits).append("f");
-                    singleValue = String.format(numFormatSb.toString(), Double.parseDouble(singleValue));
-                }
-                valueSb.append(singleValue);
-            }
-            value = valueSb.toString();
-        }
-        return value;
-    }
+	/**
+	 * 鏍煎紡鍖栨暟鎹�
+	 *
+	 * @param dataAreaFieldConfigObj 鏁版嵁鍖哄瓧娈电紦瀛榦bj
+	 * @param value                  鏁版嵁鍊�
+	 * @return
+	 */
+	public String formatValue(JSONObject dataAreaFieldConfigObj, String value) {
+		if (StringUtils.isEmpty(value)) {
+			return value;
+		}
+		if (CmnConst.ATTR_DATA_TYPE_NUM.equals(dataAreaFieldConfigObj.getString(CmnConst.ATTR_DATA_TYPE))) {
+			int decimalDigits = dataAreaFieldConfigObj.getIntValue(CmnConst.ATTR_DECIMAL_DIGITS);
+			String numFormat = dataAreaFieldConfigObj.getString(CmnConst.ATTR_NUM_FORMAT);
+			StringBuilder numFormatSb = new StringBuilder(32);
+			StringBuilder valueSb = new StringBuilder(32);
+			String[] tempValueArr = value.split("\\\\");
+			for (String singleValue : tempValueArr) {
+				if (StringUtils.isEmpty(singleValue)) {
+					continue;
+				}
+				if (valueSb.length() > 0) {
+					valueSb.append("\\");
+				}
+				numFormatSb.setLength(0);
+				if ("1".equals(numFormat)) {
+					// 鍗冨垎浣�
+					numFormatSb.append("%1$,.").append(decimalDigits).append("f");
+					singleValue = String.format(numFormatSb.toString(), Double.parseDouble(singleValue));
+				} else if ("2".equals(numFormat)) {
+					// 鐧惧垎姣�
+					numFormatSb.append("0.");
+					for (int i = 0; i < decimalDigits; i++) {
+						numFormatSb.append("0");
+					}
+					numFormatSb.append("%");
+					singleValue = new DecimalFormat(numFormatSb.toString()).format(Double.parseDouble(singleValue));
+				} else {
+					numFormatSb.append("%1$.").append(decimalDigits).append("f");
+					singleValue = String.format(numFormatSb.toString(), Double.parseDouble(singleValue));
+				}
+				valueSb.append(singleValue);
+			}
+			value = valueSb.toString();
+		}
+		return value;
+	}
 
-    /**
-     * 澶勭悊鎸囧畾鍗曞厓鏍肩殑鍥哄畾瀹藉害
-     *
-     * @param dataAreaFieldConfigObj
-     * @param value
-     * @return
-     */
-    public String dealTdWidth(JSONObject dataAreaFieldConfigObj, String value) {
-        StringBuilder dealedValueSb = new StringBuilder(64);
-        dealedValueSb.append("<div");
-        String width = dataAreaFieldConfigObj == null ? null : dataAreaFieldConfigObj.getString(CmnConst.ATTR_WIDTH);
-        if (!StringUtils.isEmpty(width)) {
-            dealedValueSb.append(" style=\"width:").append(width).append("px\"");
-        }
-        dealedValueSb.append(">").append(value).append("</div>");
-        return dealedValueSb.toString();
-    }
+	/**
+	 * 澶勭悊鎸囧畾鍗曞厓鏍肩殑鍥哄畾瀹藉害
+	 *
+	 * @param dataAreaFieldConfigObj
+	 * @param value
+	 * @return
+	 */
+	public String dealTdWidth(JSONObject dataAreaFieldConfigObj, String value) {
+		StringBuilder dealedValueSb = new StringBuilder(64);
+		dealedValueSb.append("<div");
+		String width = dataAreaFieldConfigObj == null ? null : dataAreaFieldConfigObj.getString(CmnConst.ATTR_WIDTH);
+		if (!StringUtils.isEmpty(width)) {
+			dealedValueSb.append(" style=\"width:").append(width).append("px\"");
+		}
+		dealedValueSb.append(">").append(value).append("</div>");
+		return dealedValueSb.toString();
+	}
 
-    /**
-     * 鑾峰彇td鐨勫睘鎬�
-     *
-     * @param obj        瀛楁缂撳瓨obj銆佹暟鎹爣棰榦bj銆佸垎缁勬爣棰榦bj
-     * @param collection 灞炴�ч泦鍚�
-     * @param type       1-鎺ユ敹鐨勫睘鎬э紝鍏朵粬锛堥�氬父涓�-1锛�-鎺掗櫎鐨勫睘鎬�
-     * @return
-     */
-    public StringBuilder getTdAttrByObj(JSONObject obj, Collection<String> collection, int type) {
-        StringBuilder attrSb = new StringBuilder(32);
-        if (!obj.isEmpty()) {
-            String key;
-            String value;
-            Object objValue;
-            if (!StringUtils.isEmpty(obj.getString(CmnConst.ATTR_URL))) {
-                for (Map.Entry<String, Object> entry : obj.entrySet()) {
-                    key = entry.getKey();
-                    objValue = entry.getValue();
-                    value = objValue == null ? "" : objValue.toString();
-                    if (collection != null) {
-                        for (String singleAttrName : collection) {
-                            if ((type == 1 && key.equals(singleAttrName)) || (type != 1 && !key.equals(singleAttrName))) {
-                                getTdAttrByObjPart(key, value, attrSb);
-                            }
-                        }
-                    } else {
-                        getTdAttrByObjPart(key, value, attrSb);
-                    }
-                }
-            }
-        }
-        return attrSb;
-    }
+	/**
+	 * 鑾峰彇td鐨勫睘鎬�
+	 *
+	 * @param obj        瀛楁缂撳瓨obj銆佹暟鎹爣棰榦bj銆佸垎缁勬爣棰榦bj
+	 * @param collection 灞炴�ч泦鍚�
+	 * @param type       1-鎺ユ敹鐨勫睘鎬э紝鍏朵粬锛堥�氬父涓�-1锛�-鎺掗櫎鐨勫睘鎬�
+	 * @return
+	 */
+	public StringBuilder getTdAttrByObj(JSONObject obj, Collection<String> collection, int type) {
+		StringBuilder attrSb = new StringBuilder(32);
+		if (!obj.isEmpty()) {
+			String key;
+			String value;
+			Object objValue;
+			if (!StringUtils.isEmpty(obj.getString(CmnConst.ATTR_URL))) {
+				for (Map.Entry<String, Object> entry : obj.entrySet()) {
+					key = entry.getKey();
+					objValue = entry.getValue();
+					value = objValue == null ? "" : objValue.toString();
+					if (collection != null) {
+						for (String singleAttrName : collection) {
+							if ((type == 1 && key.equals(singleAttrName)) || (type != 1 && !key.equals(singleAttrName))) {
+								getTdAttrByObjPart(key, value, attrSb);
+							}
+						}
+					} else {
+						getTdAttrByObjPart(key, value, attrSb);
+					}
+				}
+			}
+		}
+		return attrSb;
+	}
 
-    private void getTdAttrByObjPart(String key, String value, StringBuilder attrSb) {
-        if (CmnConst.ATTR_FIELD_INFO.equals(key)) {
-            value = fieldInfo2FieldName(value);
-        }
-        if (CmnConst.ATTR_URL.equals(key)) {
-            attrSb.append(" router=\"").append(value).append("\"");
-        } else {
-            attrSb.append(" ").append(key).append("=\"").append(value).append("\"");
-        }
-    }
+	private void getTdAttrByObjPart(String key, String value, StringBuilder attrSb) {
+		if (CmnConst.ATTR_FIELD_INFO.equals(key)) {
+			value = fieldInfo2FieldName(value);
+		}
+		if (CmnConst.ATTR_URL.equals(key)) {
+			attrSb.append(" router=\"").append(value).append("\"");
+		} else {
+			attrSb.append(" ").append(key).append("=\"").append(value).append("\"");
+		}
+	}
 
-    public StringBuilder getTdAttrByObj(JSONObject obj, Collection<String> collection) {
-        return getTdAttrByObj(obj, collection, 1);
-    }
+	public StringBuilder getTdAttrByObj(JSONObject obj, Collection<String> collection) {
+		return getTdAttrByObj(obj, collection, 1);
+	}
 
-    public StringBuilder getTdAttrByObj(JSONObject obj) {
-        return getTdAttrByObj(obj, null);
-    }
+	public StringBuilder getTdAttrByObj(JSONObject obj) {
+		return getTdAttrByObj(obj, null);
+	}
 
-    /**
-     * 澶勭悊td灞炴�bj涓殑鐪熷疄鍊�
-     *
-     * @param baseObj
-     * @param dealObj
-     */
-    public void getTdAttrObj(JSONObject baseObj, JSONObject dealObj) {
-        Object obj = dealObj.get(CmnConst.ATTR_REAL_VALUE);
-        if (obj != null) {
-            JSONObject realValueObj = (JSONObject) obj;
-            realValueObj.forEach((k, v) -> {
-                if (baseObj.get(k) != null) {
-                    baseObj.put(k, v);
-                }
-            });
-        }
-    }
+	/**
+	 * 澶勭悊td灞炴�bj涓殑鐪熷疄鍊�
+	 *
+	 * @param baseObj
+	 * @param dealObj
+	 */
+	public void getTdAttrObj(JSONObject baseObj, JSONObject dealObj) {
+		Object obj = dealObj.get(CmnConst.ATTR_REAL_VALUE);
+		if (obj != null) {
+			JSONObject realValueObj = (JSONObject) obj;
+			realValueObj.forEach((k, v) -> {
+				if (baseObj.get(k) != null) {
+					baseObj.put(k, v);
+				}
+			});
+		}
+	}
 
-    /**
-     * 鏇挎崲琛ㄥ崟鍙傛暟鍜岀郴缁熷彉閲�
-     *
-     * @param str                     甯﹀鐞嗙殑瀛楃涓�
-     * @param headAndTailTitleDataMap 澶撮儴銆佸熬閮ㄦ爣棰樺瓧娈垫暟鎹甿ap
-     * @param singleObj
-     * @return
-     */
-    public String replaceFormDataAndSysData(String str, Map<String, Set<String>> headAndTailTitleDataMap, JSONObject singleObj) {
-        if (StringUtils.isEmpty(str)) {
-            return "";
-        }
-        String reuslt = SystemParamReplace.systemParamsReplace(str);
-        reuslt = reuslt.replaceAll(CmnConst.REGEXP_SYS_FIELD, "");
-        if (!headAndTailTitleDataMap.isEmpty()) {
-            List<String> suitList = getSuitContent(reuslt, CmnConst.REGEXP_FORM_FIELD);
-            String dataType = singleObj.getString(CmnConst.ATTR_DATA_TYPE);
-            int decimalDigits;
-            String formatStr = null;
-            List<JSONObject> formatList = Lists.newArrayList();
-            boolean dateFormatFlag = false;
-            boolean numFormatFlag = false;
-            int numDealType = -1;
-            JSONObject tempObj;
-            if (StringUtils.isEmpty(dataType)) {
-                dataType = CmnConst.ATTR_DATA_TYPE_STRING;
-            } else {
-                String[] dataTypeArr = dataType.split(",");
-                for (String singleDataType : dataTypeArr) {
-                    if (StringUtils.isEmpty(singleDataType)) {
-                        continue;
-                    }
-                    tempObj = new JSONObject();
-                    tempObj.put(CmnConst.ATTR_DATA_TYPE, singleDataType);
-                    formatList.add(tempObj);
-                    if (CmnConst.ATTR_DATA_TYPE_DATE.equals(singleDataType)) {
-                        if (!dateFormatFlag) {
-                            dateFormatFlag = true;
-                            formatStr = singleObj.getString(CmnConst.ATTR_DATE_FORMAT);
-                        }
-                        tempObj.put("format", formatStr);
-                    } else if (CmnConst.ATTR_DATA_TYPE_NUM.equals(singleDataType)) {
-                        if (!numFormatFlag) {
-                            numFormatFlag = true;
-                            decimalDigits = singleObj.getIntValue(CmnConst.ATTR_DECIMAL_DIGITS);
-                            String numFormat = singleObj.getString(CmnConst.ATTR_NUM_FORMAT);
-                            StringBuilder numFormatSb = new StringBuilder(32);
-                            if ("1".equals(numFormat)) {
-                                // 鍗冨垎浣�
-                                numFormatSb.append("%1$,.").append(decimalDigits).append("f");
-                                numDealType = 1;
-                            } else if ("2".equals(numFormat)) {
-                                // 鐧惧垎姣�
-                                numFormatSb.append("0.");
-                                for (int i = 0; i < decimalDigits; i++) {
-                                    numFormatSb.append("0");
-                                }
-                                numFormatSb.append("%");
-                                numDealType = 2;
-                            } else {
-                                numFormatSb.append("%1$.").append(decimalDigits).append("f");
-                                numDealType = 1;
-                            }
-                            formatStr = numFormatSb.toString();
-                        }
-                        tempObj.put("format", formatStr);
-                    }
-                }
-            }
+	/**
+	 * 鏇挎崲琛ㄥ崟鍙傛暟鍜岀郴缁熷彉閲�
+	 *
+	 * @param str                     甯﹀鐞嗙殑瀛楃涓�
+	 * @param headAndTailTitleDataMap 澶撮儴銆佸熬閮ㄦ爣棰樺瓧娈垫暟鎹甿ap
+	 * @param singleObj
+	 * @return
+	 */
+	public String replaceFormDataAndSysData(String str, Map<String, Set<String>> headAndTailTitleDataMap, JSONObject singleObj) {
+		if (StringUtils.isEmpty(str)) {
+			return "";
+		}
+		String reuslt = SystemParamReplace.systemParamsReplace(str);
+		reuslt = reuslt.replaceAll(CmnConst.REGEXP_SYS_FIELD, "");
+		if (!headAndTailTitleDataMap.isEmpty()) {
+			List<String> suitList = getSuitContent(reuslt, CmnConst.REGEXP_FORM_FIELD);
+			String dataType = singleObj.getString(CmnConst.ATTR_DATA_TYPE);
+			int decimalDigits;
+			String formatStr = null;
+			List<JSONObject> formatList = Lists.newArrayList();
+			boolean dateFormatFlag = false;
+			boolean numFormatFlag = false;
+			int numDealType = -1;
+			JSONObject tempObj;
+			if (StringUtils.isEmpty(dataType)) {
+				dataType = CmnConst.ATTR_DATA_TYPE_STRING;
+			} else {
+				String[] dataTypeArr = dataType.split(",");
+				for (String singleDataType : dataTypeArr) {
+					if (StringUtils.isEmpty(singleDataType)) {
+						continue;
+					}
+					tempObj = new JSONObject();
+					tempObj.put(CmnConst.ATTR_DATA_TYPE, singleDataType);
+					formatList.add(tempObj);
+					if (CmnConst.ATTR_DATA_TYPE_DATE.equals(singleDataType)) {
+						if (!dateFormatFlag) {
+							dateFormatFlag = true;
+							formatStr = singleObj.getString(CmnConst.ATTR_DATE_FORMAT);
+						}
+						tempObj.put("format", formatStr);
+					} else if (CmnConst.ATTR_DATA_TYPE_NUM.equals(singleDataType)) {
+						if (!numFormatFlag) {
+							numFormatFlag = true;
+							decimalDigits = singleObj.getIntValue(CmnConst.ATTR_DECIMAL_DIGITS);
+							String numFormat = singleObj.getString(CmnConst.ATTR_NUM_FORMAT);
+							StringBuilder numFormatSb = new StringBuilder(32);
+							if ("1".equals(numFormat)) {
+								// 鍗冨垎浣�
+								numFormatSb.append("%1$,.").append(decimalDigits).append("f");
+								numDealType = 1;
+							} else if ("2".equals(numFormat)) {
+								// 鐧惧垎姣�
+								numFormatSb.append("0.");
+								for (int i = 0; i < decimalDigits; i++) {
+									numFormatSb.append("0");
+								}
+								numFormatSb.append("%");
+								numDealType = 2;
+							} else {
+								numFormatSb.append("%1$.").append(decimalDigits).append("f");
+								numDealType = 1;
+							}
+							formatStr = numFormatSb.toString();
+						}
+						tempObj.put("format", formatStr);
+					}
+				}
+			}
 
-            StringBuilder value = new StringBuilder(128);
-            String singleFieldInfo;
-            for (int i = 0; i < suitList.size(); i++) {
-                singleFieldInfo = suitList.get(i);
-                value.setLength(0);
-                if (formatList.size() > i) {
-                    tempObj = formatList.get(i);
-                    if (CmnConst.ATTR_DATA_TYPE_STRING.equals(tempObj.getString(CmnConst.ATTR_DATA_TYPE))) {
-                        reuslt = reuslt.replace(singleFieldInfo, SetUtils.set2String(headAndTailTitleDataMap.get(fieldInfo2FieldName(singleFieldInfo)), ","));
-                    } else {
-                        for (String singleValue : headAndTailTitleDataMap.get(fieldInfo2FieldName(singleFieldInfo))) {
-                            if (value.length() > 0) {
-                                value.append(",");
-                            }
-                            if (CmnConst.ATTR_DATA_TYPE_NUM.equals(tempObj.getString(CmnConst.ATTR_DATA_TYPE))) {
-                                if (numDealType == 1) {
-                                    value.append(String.format(tempObj.getString("format"), Double.parseDouble(singleValue)));
-                                } else if (numDealType == 2) {
-                                    value.append(new DecimalFormat(tempObj.getString("format")).format(Double.parseDouble(singleValue)));
-                                }
-                            } else if (CmnConst.ATTR_DATA_TYPE_DATE.equals(tempObj.getString(CmnConst.ATTR_DATA_TYPE))) {
-                                SimpleDateFormat restoreDataFormat = new SimpleDateFormat(CmnConst.FULL_DATE_FORMAT);
-                                try {
-                                    Date date = restoreDataFormat.parse(singleValue);
-                                    value.append(new SimpleDateFormat(tempObj.getString("format")).format(date));
-                                } catch (ParseException e) {
-                                    logger.error(ReportCode.DATE_TRANSFER_FIAL.getText() + ": " + singleValue, e);
-                                }
-                            }
-                        }
-                        reuslt = reuslt.replace(singleFieldInfo, value);
-                    }
-                } else {
-                    reuslt = reuslt.replace(singleFieldInfo, SetUtils.set2String(headAndTailTitleDataMap.get(fieldInfo2FieldName(singleFieldInfo)), ","));
-                }
+			StringBuilder value = new StringBuilder(128);
+			String singleFieldInfo;
+			for (int i = 0; i < suitList.size(); i++) {
+				singleFieldInfo = suitList.get(i);
+				value.setLength(0);
+				if (formatList.size() > i) {
+					tempObj = formatList.get(i);
+					if (CmnConst.ATTR_DATA_TYPE_STRING.equals(tempObj.getString(CmnConst.ATTR_DATA_TYPE))) {
+						reuslt = reuslt.replace(singleFieldInfo, SetUtils.set2String(headAndTailTitleDataMap.get(fieldInfo2FieldName(singleFieldInfo)), ","));
+					} else {
+						for (String singleValue : headAndTailTitleDataMap.get(fieldInfo2FieldName(singleFieldInfo))) {
+							if (value.length() > 0) {
+								value.append(",");
+							}
+							if (CmnConst.ATTR_DATA_TYPE_NUM.equals(tempObj.getString(CmnConst.ATTR_DATA_TYPE))) {
+								if (numDealType == 1) {
+									value.append(String.format(tempObj.getString("format"), Double.parseDouble(singleValue)));
+								} else if (numDealType == 2) {
+									value.append(new DecimalFormat(tempObj.getString("format")).format(Double.parseDouble(singleValue)));
+								}
+							} else if (CmnConst.ATTR_DATA_TYPE_DATE.equals(tempObj.getString(CmnConst.ATTR_DATA_TYPE))) {
+								SimpleDateFormat restoreDataFormat = new SimpleDateFormat(CmnConst.FULL_DATE_FORMAT);
+								try {
+									Date date = restoreDataFormat.parse(singleValue);
+									value.append(new SimpleDateFormat(tempObj.getString("format")).format(date));
+								} catch (ParseException e) {
+									logger.error(ReportCode.DATE_TRANSFER_FIAL.getText() + ": " + singleValue, e);
+								}
+							}
+						}
+						reuslt = reuslt.replace(singleFieldInfo, value);
+					}
+				} else {
+					reuslt = reuslt.replace(singleFieldInfo, SetUtils.set2String(headAndTailTitleDataMap.get(fieldInfo2FieldName(singleFieldInfo)), ","));
+				}
 
-            }
-        }
-        reuslt = reuslt.replaceAll(CmnConst.REGEXP_FORM_FIELD, "");
-        return reuslt;
-    }
+			}
+		}
+		reuslt = reuslt.replaceAll(CmnConst.REGEXP_FORM_FIELD, "");
+		return reuslt;
+	}
 
-    /*==========================宸ュ叿鏂规硶-start==========================*/
+	/*==========================宸ュ叿鏂规硶-start==========================*/
 
-    /**
-     * 姣旇緝v1锛寁2鐨勫ぇ灏忥紝鑻ユ槸涓烘暟瀛楋紝鍒欐寜鐓ф暟瀛楃殑鏂瑰紡杩涜姣旇緝
-     *
-     * @param v1
-     * @param v2
-     * @return
-     */
-    public int compare(String v1, String v2) {
-        BigDecimal b1;
-        BigDecimal b2;
-        int d1 = StringUtils.isEmpty(v1) ? -1 : 1;
-        int d2 = StringUtils.isEmpty(v2) ? -1 : 1;
-        int diffValue = Integer.compare(d1, d2);
-        if (diffValue == 0 && d1 != -1) {
-            if (v1.matches(CmnConst.REGEXP_NUMBER) && v2.matches(CmnConst.REGEXP_NUMBER)) {
-                b1 = new BigDecimal(v1);
-                b2 = new BigDecimal(v2);
-                diffValue = b1.compareTo(b2);
-            } else {
-                diffValue = v1.compareTo(v2);
-            }
-        }
-        return diffValue;
-    }
+	/**
+	 * 姣旇緝v1锛寁2鐨勫ぇ灏忥紝鑻ユ槸涓烘暟瀛楋紝鍒欐寜鐓ф暟瀛楃殑鏂瑰紡杩涜姣旇緝
+	 *
+	 * @param v1
+	 * @param v2
+	 * @return
+	 */
+	public int compare(String v1, String v2) {
+		BigDecimal b1;
+		BigDecimal b2;
+		int d1 = StringUtils.isEmpty(v1) ? -1 : 1;
+		int d2 = StringUtils.isEmpty(v2) ? -1 : 1;
+		int diffValue = Integer.compare(d1, d2);
+		if (diffValue == 0 && d1 != -1) {
+			if (v1.matches(CmnConst.REGEXP_NUMBER) && v2.matches(CmnConst.REGEXP_NUMBER)) {
+				b1 = new BigDecimal(v1);
+				b2 = new BigDecimal(v2);
+				diffValue = b1.compareTo(b2);
+			} else {
+				diffValue = v1.compareTo(v2);
+			}
+		}
+		return diffValue;
+	}
 
-    /**
-     * 鏍规嵁姝e垯杩斿洖绗﹀悎鏉′欢鐨勫唴瀹�
-     *
-     * @param str       瀛楃涓�
-     * @param regexp    姝e垯琛ㄨ揪寮�
-     * @param exceptKey 鎺掗櫎鍏抽敭瀛楋紙鍚湁璇ュ叧閿瓧鐨勫唴瀹逛笉鍋氬鐞嗭級
-     * @return
-     */
-    public List<String> getSuitContent(String str, String regexp, String exceptKey) {
-        List<String> list = Lists.newArrayList();
-        if (StringUtils.isEmpty(str)) {
-            return list;
-        }
-        Pattern pattern = Pattern.compile(regexp);
-        Matcher matcher = pattern.matcher(str);
-        String curContent;
-        while (matcher.find()) {
-            curContent = matcher.group();
-            if (!StringUtils.isEmpty(exceptKey) && curContent.contains(exceptKey)) {
-                continue;
-            }
-            list.add(curContent);
-        }
-        return list;
-    }
+	/**
+	 * 鏍规嵁姝e垯杩斿洖绗﹀悎鏉′欢鐨勫唴瀹�
+	 *
+	 * @param str       瀛楃涓�
+	 * @param regexp    姝e垯琛ㄨ揪寮�
+	 * @param exceptKey 鎺掗櫎鍏抽敭瀛楋紙鍚湁璇ュ叧閿瓧鐨勫唴瀹逛笉鍋氬鐞嗭級
+	 * @return
+	 */
+	public List<String> getSuitContent(String str, String regexp, String exceptKey) {
+		List<String> list = Lists.newArrayList();
+		if (StringUtils.isEmpty(str)) {
+			return list;
+		}
+		Pattern pattern = Pattern.compile(regexp);
+		Matcher matcher = pattern.matcher(str);
+		String curContent;
+		while (matcher.find()) {
+			curContent = matcher.group();
+			if (!StringUtils.isEmpty(exceptKey) && curContent.contains(exceptKey)) {
+				continue;
+			}
+			list.add(curContent);
+		}
+		return list;
+	}
 
-    public List<String> getSuitContent(String str, String regexp) {
-        return getSuitContent(str, regexp, "");
-    }
+	public List<String> getSuitContent(String str, String regexp) {
+		return getSuitContent(str, regexp, "");
+	}
 
-    /**
-     * 鑾峰彇鎸囧畾涓暟鐨則d鍗犱綅
-     *
-     * @param num
-     * @return
-     */
-    public String getAimNumTdPlaceholder(int num, int type) {
-        StringBuilder result = new StringBuilder(64);
-        if (num <= 0) {
-            return result.toString();
-        }
-        if (type == 0) {
-            for (int i = 0; i < num; i++) {
-                result.append("<td></td>");
-            }
-        } else {
-            result.append("<td colspan=\"").append(num).append("\"></td>");
-        }
-        return result.toString();
-    }
+	/**
+	 * 鑾峰彇鎸囧畾涓暟鐨則d鍗犱綅
+	 *
+	 * @param num
+	 * @return
+	 */
+	public String getAimNumTdPlaceholder(int num, int type) {
+		StringBuilder result = new StringBuilder(64);
+		if (num <= 0) {
+			return result.toString();
+		}
+		if (type == 0) {
+			for (int i = 0; i < num; i++) {
+				result.append("<td></td>");
+			}
+		} else {
+			result.append("<td colspan=\"").append(num).append("\"></td>");
+		}
+		return result.toString();
+	}
 
-    /**
-     * 瀛楁淇℃伅杞寲涓哄瓧娈靛悕绉�
-     *
-     * @param fieldInfo 瀛楁淇℃伅
-     * @return
-     */
-    public String fieldInfo2FieldName(String fieldInfo) {
-        if (StringUtils.isEmpty(fieldInfo)) {
-            return "";
-        }
-        return fieldInfo.replace("{#", "").replace("#}", "");
-    }
+	/**
+	 * 瀛楁淇℃伅杞寲涓哄瓧娈靛悕绉�
+	 *
+	 * @param fieldInfo 瀛楁淇℃伅
+	 * @return
+	 */
+	public String fieldInfo2FieldName(String fieldInfo) {
+		if (StringUtils.isEmpty(fieldInfo)) {
+			return "";
+		}
+		return fieldInfo.replace("{#", "").replace("#}", "");
+	}
 
-    /**
-     * 瀛楁鍚嶇О杞寲涓哄瓧娈典俊鎭�
-     *
-     * @param fieldName 瀛楁鍚嶇О
-     * @return
-     */
-    public String fieldName2FieldInfo(String fieldName) {
-        return "{#" + fieldName + "#}";
-    }
+	/**
+	 * 瀛楁鍚嶇О杞寲涓哄瓧娈典俊鎭�
+	 *
+	 * @param fieldName 瀛楁鍚嶇О
+	 * @return
+	 */
+	public String fieldName2FieldInfo(String fieldName) {
+		return "{#" + fieldName + "#}";
+	}
 
-    /**
-     * 绫诲瀷杞寲涓簂ist
-     *
-     * @param o
-     * @return
-     */
-    public List<String> transfer2List(Object o) {
-        return o == null ? Lists.newArrayList() : (List<String>) o;
-    }
+	/**
+	 * 绫诲瀷杞寲涓簂ist
+	 *
+	 * @param o
+	 * @return
+	 */
+	public List<String> transfer2List(Object o) {
+		return o == null ? Lists.newArrayList() : (List<String>) o;
+	}
 
-    /**
-     * 娴呭厠闅�-JSONObect-鎸囧畾鍏冪礌
-     *
-     * @param aimObj    鐩爣
-     * @param sourceObj 婧�
-     * @param aimAttr   鐩爣灞炴��
-     * @param type      绫诲瀷锛�1-鑾峰彇鐩爣灞炴�э紝鍏朵粬-鎺掗櫎鐩爣灞炴��
-     * @return
-     */
-    public JSONObject extendJSONObject(JSONObject aimObj, JSONObject sourceObj, Collection<String> aimAttr, int type) {
-        if (aimObj == null) {
-            aimObj = new JSONObject();
-        }
-        if (aimAttr == null) {
-            for (Map.Entry<String, Object> entry : sourceObj.entrySet()) {
-                aimObj.put(entry.getKey(), entry.getValue());
-            }
-        } else {
-            if (type == 1) {
-                for (String singleAttr : aimAttr) {
-                    aimObj.put(singleAttr, sourceObj.get(singleAttr));
-                }
-            } else {
-                for (Map.Entry<String, Object> entry : sourceObj.entrySet()) {
-                    if (aimAttr.contains(entry.getKey())) {
-                        continue;
-                    }
-                    aimObj.put(entry.getKey(), entry.getValue());
-                }
-            }
-        }
-        return aimObj;
-    }
+	/**
+	 * 娴呭厠闅�-JSONObect-鎸囧畾鍏冪礌
+	 *
+	 * @param aimObj    鐩爣
+	 * @param sourceObj 婧�
+	 * @param aimAttr   鐩爣灞炴��
+	 * @param type      绫诲瀷锛�1-鑾峰彇鐩爣灞炴�э紝鍏朵粬-鎺掗櫎鐩爣灞炴��
+	 * @return
+	 */
+	public JSONObject extendJSONObject(JSONObject aimObj, JSONObject sourceObj, Collection<String> aimAttr, int type) {
+		if (aimObj == null) {
+			aimObj = new JSONObject();
+		}
+		if (aimAttr == null) {
+			for (Map.Entry<String, Object> entry : sourceObj.entrySet()) {
+				aimObj.put(entry.getKey(), entry.getValue());
+			}
+		} else {
+			if (type == 1) {
+				for (String singleAttr : aimAttr) {
+					aimObj.put(singleAttr, sourceObj.get(singleAttr));
+				}
+			} else {
+				for (Map.Entry<String, Object> entry : sourceObj.entrySet()) {
+					if (aimAttr.contains(entry.getKey())) {
+						continue;
+					}
+					aimObj.put(entry.getKey(), entry.getValue());
+				}
+			}
+		}
+		return aimObj;
+	}
 
-    public JSONObject extendJSONObject(JSONObject aimObj, JSONObject sourceObj, Collection<String> aimAttr) {
-        return extendJSONObject(aimObj, sourceObj, aimAttr, 1);
-    }
+	public JSONObject extendJSONObject(JSONObject aimObj, JSONObject sourceObj, Collection<String> aimAttr) {
+		return extendJSONObject(aimObj, sourceObj, aimAttr, 1);
+	}
 
-    /**
-     * 妫�娴嬪瓧绗︿覆鏄惁鍖呭惈妫�娴嬪��
-     *
-     * @param str        寰呮娴嬬殑瀛楃涓�
-     * @param checkValue 妫�娴嬪��
-     * @param sign       鍒嗗壊鏍囪瘑
-     * @return
-     */
-    public boolean checkContain(String str, String checkValue, String sign) {
-        if (StringUtils.isEmpty(str) || StringUtils.isEmpty(checkValue)) {
-            return false;
-        }
-        return (sign + str + sign).contains(sign + checkValue + sign);
-    }
+	/**
+	 * 妫�娴嬪瓧绗︿覆鏄惁鍖呭惈妫�娴嬪��
+	 *
+	 * @param str        寰呮娴嬬殑瀛楃涓�
+	 * @param checkValue 妫�娴嬪��
+	 * @param sign       鍒嗗壊鏍囪瘑
+	 * @return
+	 */
+	public boolean checkContain(String str, String checkValue, String sign) {
+		if (StringUtils.isEmpty(str) || StringUtils.isEmpty(checkValue)) {
+			return false;
+		}
+		return (sign + str + sign).contains(sign + checkValue + sign);
+	}
 
-    public boolean checkContain(String str, String checkValue) {
-        return checkContain(str, checkValue, ",");
-    }
+	public boolean checkContain(String str, String checkValue) {
+		return checkContain(str, checkValue, ",");
+	}
 
-    /**
-     * 鎷兼帴
-     *
-     * @param obj
-     * @param attr
-     * @return
-     */
-    public String concat(JSONObject obj, String attr) {
-        return new StringBuilder(512).append(obj).append("_").append(attr).toString();
-    }
+	/**
+	 * 鎷兼帴
+	 *
+	 * @param obj
+	 * @param attr
+	 * @return
+	 */
+	public String concat(JSONObject obj, String attr) {
+		return new StringBuilder(512).append(obj).append("_").append(attr).toString();
+	}
 
-    /**
-     * 鑾峰彇鐪熷疄鍊硷紙鏁版嵁搴撲繚瀛樼殑鍊硷級锛屼富瑕佹槸閽堝浣跨敤浜嗗弬鐓х殑鍊�
-     *
-     * @param recordFse
-     * @param fieldName
-     * @return
-     */
-    public String getRealValue(FieldSetEntity recordFse, String fieldName) {
-        String tail = "_save_value";
-        return recordFse.getString(fieldName + tail);
-    }
-    /*==========================宸ュ叿鏂规硶-final==========================*/
+	/**
+	 * 鑾峰彇鐪熷疄鍊硷紙鏁版嵁搴撲繚瀛樼殑鍊硷級锛屼富瑕佹槸閽堝浣跨敤浜嗗弬鐓х殑鍊�
+	 *
+	 * @param recordFse
+	 * @param fieldName
+	 * @return
+	 */
+	public String getRealValue(FieldSetEntity recordFse, String fieldName) {
+		String tail = "_save_value";
+		return recordFse.getString(fieldName + tail);
+	}
+	/*==========================宸ュ叿鏂规硶-final==========================*/
 
-    /*==========================闈欐�佸唴瀹�-start==========================*/
+	/*==========================闈欐�佸唴瀹�-start==========================*/
 
-    /**
-     * 鑾峰彇鎶ヨ〃css
-     *
-     * @return
-     */
-    public StringBuilder getCssHtml() {
-        StringBuilder cssHtml = new StringBuilder(512);
-        cssHtml.append("\n<style rel=\"stylesheet\" type=\"text/css\"> ");
-        cssHtml.append("\n    table { ");
-        cssHtml.append("\n        margin: 0 auto; ");
-        cssHtml.append("\n    } ");
-        cssHtml.append("\n    tr, td { ");
-        cssHtml.append("\n        text-align: center; ");
-        cssHtml.append("\n    } ");
-        cssHtml.append("\n    .data_title td, .data_common td, .data_statistics td { ");
-        cssHtml.append("\n        border: 1px black solid; ");
-        cssHtml.append("\n    } ");
-        cssHtml.append("\n    .report_title {background-color: #fde8e8} ");
-        cssHtml.append("\n    .head {background-color: #fbeed5} ");
-        cssHtml.append("\n    .data_title {background-color: #f0fbd5} ");
-        cssHtml.append("\n    .data_statistics {background-color: #d5f6fb} ");
-        cssHtml.append("\n    .data_common {background-color: #e8d5fb} ");
-        cssHtml.append("\n    .tail {background-color: #fad5fb} ");
-        cssHtml.append("\n    .can_turn {cursor: pointer;color: blue} ");
-        cssHtml.append("\n</style> ");
-        return cssHtml;
-    }
+	/**
+	 * 鑾峰彇鎶ヨ〃css
+	 *
+	 * @return
+	 */
+	public StringBuilder getCssHtml() {
+		StringBuilder cssHtml = new StringBuilder(512);
+		cssHtml.append("\n<style rel=\"stylesheet\" type=\"text/css\"> ");
+		cssHtml.append("\n    table { ");
+		cssHtml.append("\n        margin: 0 auto; ");
+		cssHtml.append("\n    } ");
+		cssHtml.append("\n    tr, td { ");
+		cssHtml.append("\n        text-align: center; ");
+		cssHtml.append("\n    } ");
+		cssHtml.append("\n    .data_title td, .data_common td, .data_statistics td { ");
+		cssHtml.append("\n        border: 1px black solid; ");
+		cssHtml.append("\n    } ");
+		cssHtml.append("\n    .report_title {background-color: #fde8e8} ");
+		cssHtml.append("\n    .head {background-color: #fbeed5} ");
+		cssHtml.append("\n    .data_title {background-color: #f0fbd5} ");
+		cssHtml.append("\n    .data_statistics {background-color: #d5f6fb} ");
+		cssHtml.append("\n    .data_common {background-color: #e8d5fb} ");
+		cssHtml.append("\n    .tail {background-color: #fad5fb} ");
+		cssHtml.append("\n    .can_turn {cursor: pointer;color: blue} ");
+		cssHtml.append("\n</style> ");
+		return cssHtml;
+	}
 
-    /**
-     * 鏍规嵁缁熻绫诲瀷鍜屽�艰繑鍥炵粺璁″瓧娈垫弿杩�
-     *
-     * @param type  缁熻绫诲瀷
-     * @param value 鍊�
-     * @return
-     */
-    public String getStatisticsDesc(String type, String value) {
-        if (CmnConst.ATTR_STATISTICS_SUM.equals(type)) {
-            value += "(鍚堣)";
-        }
-        if (CmnConst.ATTR_STATISTICS_MAX.equals(type)) {
-            value += "(宄板��)";
-        }
-        if (CmnConst.ATTR_STATISTICS_MIN.equals(type)) {
-            value += "(璋峰��)";
-        }
-        if (CmnConst.ATTR_STATISTICS_CNT.equals(type)) {
-            value += "(璁℃暟)";
-        }
-        if (CmnConst.ATTR_STATISTICS_AVG.equals(type)) {
-            value += "(骞冲潎)";
-        }
-        if (CmnConst.ATTR_STATISTICS_ENUM.equals(type)) {
-            value += "(鏋氫妇)";
-        }
-        return value;
-    }
-    /*==========================闈欐�佸唴瀹�-final==========================*/
+	/**
+	 * 鏍规嵁缁熻绫诲瀷鍜屽�艰繑鍥炵粺璁″瓧娈垫弿杩�
+	 *
+	 * @param type  缁熻绫诲瀷
+	 * @param value 鍊�
+	 * @return
+	 */
+	public String getStatisticsDesc(String type, String value) {
+		if (CmnConst.ATTR_STATISTICS_SUM.equals(type)) {
+			value += "(鍚堣)";
+		}
+		if (CmnConst.ATTR_STATISTICS_MAX.equals(type)) {
+			value += "(宄板��)";
+		}
+		if (CmnConst.ATTR_STATISTICS_MIN.equals(type)) {
+			value += "(璋峰��)";
+		}
+		if (CmnConst.ATTR_STATISTICS_CNT.equals(type)) {
+			value += "(璁℃暟)";
+		}
+		if (CmnConst.ATTR_STATISTICS_AVG.equals(type)) {
+			value += "(骞冲潎)";
+		}
+		if (CmnConst.ATTR_STATISTICS_ENUM.equals(type)) {
+			value += "(鏋氫妇)";
+		}
+		return value;
+	}
+	/*==========================闈欐�佸唴瀹�-final==========================*/
 }

--
Gitblit v1.9.2