From cb4df5a1c9cda76e828fa202990df33be0735105 Mon Sep 17 00:00:00 2001
From: 许鹏程 <1821349743@qq.com>
Date: 星期四, 29 六月 2023 09:32:34 +0800
Subject: [PATCH] poi、easyexcel、poi-tl升级 ,合并空调中的报表、数据源模块

---
 src/main/java/com/product/server/report/service/ReportConfigService.java | 1034 ++++++++++++++++++++++++++++-----------------------------
 1 files changed, 510 insertions(+), 524 deletions(-)

diff --git a/src/main/java/com/product/server/report/service/ReportConfigService.java b/src/main/java/com/product/server/report/service/ReportConfigService.java
index 76180f4..45c1bda 100644
--- a/src/main/java/com/product/server/report/service/ReportConfigService.java
+++ b/src/main/java/com/product/server/report/service/ReportConfigService.java
@@ -8,7 +8,6 @@
 import com.product.admin.service.UpdateLoginUserInfoService;
 import com.product.common.lang.StringUtils;
 import com.product.core.cache.DataPoolCacheImpl;
-import com.product.core.config.CoreConst;
 import com.product.core.dao.BaseDao;
 import com.product.core.entity.DataTableEntity;
 import com.product.core.entity.FieldSetEntity;
@@ -24,589 +23,576 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import javax.xml.crypto.Data;
-import java.util.*;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 @Component
 public class ReportConfigService extends AbstractBaseService implements IReportConfigService {
-	@Autowired
-	BaseDao baseDao;
-	@Autowired
-	CodeService codeService;
-	@Autowired
-	public QueryFilterService queryFilterService;
-	@Autowired
-	public DataListReportService dataListReportService;
+    @Autowired
+    BaseDao baseDao;
+    @Autowired
+    CodeService codeService;
+    @Autowired
+    public QueryFilterService queryFilterService;
+    @Autowired
+    public DataListReportService dataListReportService;
 
-	/**
-	 * 鎶ヨ〃鍒楄〃
-	 *
-	 * @param cpage
-	 * @param pageSize
-	 * @return
-	 */
-	public DataTableEntity listReportConfig(Integer cpage, Integer pageSize, FieldSetEntity fse) {
-		cpage = cpage == null ? 1 : cpage;
-		pageSize = pageSize == null ? 20 : pageSize;
+    /**
+     * 鎶ヨ〃鍒楄〃
+     *
+     * @param cpage
+     * @param pageSize
+     * @return
+     */
+    public DataTableEntity listReportConfig(Integer cpage, Integer pageSize, FieldSetEntity fse) {
+        cpage = cpage == null ? 1 : cpage;
+        pageSize = pageSize == null ? 20 : pageSize;
 
-		List<Object> paramList = Lists.newArrayList();
-		StringBuilder sql = new StringBuilder(512);
-		sql.append("\nSELECT a.uuid,a.type_uuid,a.is_valid,a.org_level_uuid,a.report_name,b.type_name,b.type_group")
-				.append("\nFROM product_sys_report_config a")
-				.append("\nLEFT JOIN product_sys_report_type_config b ON a.type_uuid = b.uuid")
-				.append("\nwhere (function_uuid is null or function_uuid='') ");
-		if (!StringUtils.isEmpty(fse.getString(CmnConst.TYPE_UUID))) {
-			sql.append("\nand b.type_group=?");
-			paramList.add(fse.getString(CmnConst.TYPE_UUID));
-		}
-		return baseDao.listTable(sql.toString(), paramList.toArray(), pageSize, cpage);
-	}
+        List<Object> paramList = Lists.newArrayList();
+        StringBuilder sql = new StringBuilder(512);
+        sql.append("\nSELECT a.uuid,a.type_uuid,a.is_valid,a.org_level_uuid,a.report_name,b.type_name,b.type_group")
+                .append("\nFROM product_sys_report_config a")
+                .append("\nLEFT JOIN product_sys_report_type_config b ON a.type_uuid = b.uuid")
+                .append("\nwhere (function_uuid is null or function_uuid='') ");
+        if (!StringUtils.isEmpty(fse.getString(CmnConst.TYPE_UUID))) {
+            sql.append("\nand b.type_group=?");
+            paramList.add(fse.getString(CmnConst.TYPE_UUID));
+        }
+        return baseDao.listTable(sql.toString(), paramList.toArray(), pageSize, cpage);
+    }
 
-	/**
-	 * 鎶ヨ〃璇︽儏
-	 *
-	 * @param uuid
-	 * @return
-	 */
-	public FieldSetEntity findReportConfig(String uuid) {
-		StringBuilder sql = new StringBuilder(256);
-		sql.append("\nselect report_area,cell_position_y,cell_position_x,attribute_name,report_type_attr_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 attribute_name is not null ")
-				.append("\norder by report_area,cell_position_y,cell_position_x");
-		DataTableEntity tempDte = baseDao.listTable(sql.toString(), new Object[]{uuid});
-		DataTableEntity reportConfigAttrDte = new DataTableEntity();
-		FieldSetEntity tempFse;
-		FieldSetEntity reportConfigAttrFse = new FieldSetEntity();
-		String curReportArea;
-		String curX;
-		String curY;
-		String preReportArea = "";
-		String preX = "";
-		String preY = "";
-		for (int i = 0; i < tempDte.getRows(); i++) {
-			tempFse = tempDte.getFieldSetEntity(i);
-			curReportArea = tempFse.getString(CmnConst.ATTR_REPORT_AREA);
-			curX = tempFse.getString(CmnConst.CELL_POSITION_X);
-			curY = tempFse.getString(CmnConst.CELL_POSITION_Y);
-			if (curReportArea == null || curX == null || curY == null) {
-				continue;
-			}
-			if (!preReportArea.equals(curReportArea) || !preX.equals(curX) || !preY.equals(curY)) {
-				reportConfigAttrFse = new FieldSetEntity();
-				reportConfigAttrDte.addFieldSetEntity(reportConfigAttrFse);
-				reportConfigAttrFse.setTableName(CmnConst.PRODUCT_SYS_REPORT_CONFIG_ATTRIBUTE);
-				reportConfigAttrFse.setValue(CmnConst.ATTR_X, curX);
-				reportConfigAttrFse.setValue(CmnConst.ATTR_Y, curY);
-				reportConfigAttrFse.setValue(CmnConst.ATTR_REPORT_AREA, curReportArea);
-			}
-			reportConfigAttrFse.setValue(tempFse.getString(CmnConst.ATTRIBUTE_NAME), tempFse.getString(CmnConst.REPORT_TYPE_ATTR_VALUE));
-			preReportArea = curReportArea;
-			preX = curX;
-			preY = curY;
-		}
+    /**
+     * 鎶ヨ〃璇︽儏
+     *
+     * @param uuid
+     * @return
+     */
+    public FieldSetEntity findReportConfig(String uuid) {
+        StringBuilder sql = new StringBuilder(256);
+        sql.append("\nselect report_area,cell_position_y,cell_position_x,attribute_name,report_type_attr_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 attribute_name is not null ")
+                .append("\norder by report_area,cell_position_y,cell_position_x");
+        DataTableEntity tempDte = baseDao.listTable(sql.toString(), new Object[]{uuid});
+        DataTableEntity reportConfigAttrDte = new DataTableEntity();
+        FieldSetEntity tempFse;
+        FieldSetEntity reportConfigAttrFse = new FieldSetEntity();
+        String curReportArea;
+        String curX;
+        String curY;
+        String preReportArea = "";
+        String preX = "";
+        String preY = "";
+        for (int i = 0; i < tempDte.getRows(); i++) {
+            tempFse = tempDte.getFieldSetEntity(i);
+            curReportArea = tempFse.getString(CmnConst.ATTR_REPORT_AREA);
+            curX = tempFse.getString(CmnConst.CELL_POSITION_X);
+            curY = tempFse.getString(CmnConst.CELL_POSITION_Y);
+            if (curReportArea == null || curX == null || curY == null) {
+                continue;
+            }
+            if (!preReportArea.equals(curReportArea) || !preX.equals(curX) || !preY.equals(curY)) {
+                reportConfigAttrFse = new FieldSetEntity();
+                reportConfigAttrDte.addFieldSetEntity(reportConfigAttrFse);
+                reportConfigAttrFse.setTableName(CmnConst.PRODUCT_SYS_REPORT_CONFIG_ATTRIBUTE);
+                reportConfigAttrFse.setValue(CmnConst.ATTR_X, curX);
+                reportConfigAttrFse.setValue(CmnConst.ATTR_Y, curY);
+                reportConfigAttrFse.setValue(CmnConst.ATTR_REPORT_AREA, curReportArea);
+            }
+            reportConfigAttrFse.setValue(tempFse.getString(CmnConst.ATTRIBUTE_NAME), tempFse.getString(CmnConst.REPORT_TYPE_ATTR_VALUE));
+            preReportArea = curReportArea;
+            preX = curX;
+            preY = curY;
+        }
 
-		FieldSetEntity reportConfigFse = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_REPORT_CONFIG, uuid, false);
-		reportConfigFse.addSubDataTable(reportConfigAttrDte);
+        FieldSetEntity reportConfigFse = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_REPORT_CONFIG, uuid, false);
+        reportConfigFse.addSubDataTable(reportConfigAttrDte);
 
-		return reportConfigFse;
-	}
+        return reportConfigFse;
+    }
 
-	/**
-	 * 鎶ヨ〃鏂板
-	 *
-	 * @param fse
-	 * @return
-	 */
-	@Transactional
-	public String addReportConfig(FieldSetEntity fse) {
-		fse.setValue(CmnConst.CREATED_BY, SpringMVCContextHolder.getCurrentUserId());
-		fse.setValue(CmnConst.CREATED_UTC_DATETIME, new Date());
-		fse.setValue(CmnConst.IS_VALID, 1);
+    /**
+     * 鎶ヨ〃鏂板
+     *
+     * @param fse
+     * @return
+     */
+    @Transactional
+    public String addReportConfig(FieldSetEntity fse) {
+        fse.setValue(CmnConst.CREATED_BY, SpringMVCContextHolder.getCurrentUserId());
+        fse.setValue(CmnConst.CREATED_UTC_DATETIME, new Date());
+        fse.setValue(CmnConst.IS_VALID, 1);
 
-		replaceAttrName2UUID(fse);
+        replaceAttrName2UUID(fse);
 
-		if (StringUtils.isEmpty(fse.getString(CmnConst.PAGE_SIZE))) {
-			fse.setValue(CmnConst.PAGE_SIZE, null);
-		}
-		System.out.println(System.currentTimeMillis());
-		String uuid = baseDao.add(fse);
-		System.out.println(System.currentTimeMillis());
+        if (StringUtils.isEmpty(fse.getString(CmnConst.PAGE_SIZE))) {
+            fse.setValue(CmnConst.PAGE_SIZE, null);
+        }
 
-		if ("1".equals(fse.getString(CmnConst.RELATE_FLAG))) {
-			// 閲嶆柊璁剧疆缂撳瓨
-			dataListReportService.setConfig(fse.getUUID());
-		}
+        String uuid = baseDao.add(fse);
 
-		return uuid;
-	}
+        if ("1".equals(fse.getString(CmnConst.RELATE_FLAG))) {
+            // 閲嶆柊璁剧疆缂撳瓨
+            dataListReportService.setConfig(fse.getUUID());
+        }
 
-	/**
-	 * 鎶ヨ〃淇敼
-	 *
-	 * @param fse
-	 * @return
-	 */
-	@Transactional
-	public boolean updateReportConfig(FieldSetEntity fse) {
-		fse.setValue(CmnConst.UPDATED_BY, SpringMVCContextHolder.getCurrentUserId());
-		fse.setValue(CmnConst.UPDATED_UTC_DATETIME, new Date());
+        return uuid;
+    }
 
-		replaceAttrName2UUID(fse);
+    /**
+     * 鎶ヨ〃淇敼
+     *
+     * @param fse
+     * @return
+     */
+    @Transactional
+    public boolean updateReportConfig(FieldSetEntity fse) {
+        fse.setValue(CmnConst.UPDATED_BY, SpringMVCContextHolder.getCurrentUserId());
+        fse.setValue(CmnConst.UPDATED_UTC_DATETIME, new Date());
 
-		if (StringUtils.isEmpty(fse.getString(CmnConst.PAGE_SIZE))) {
-			fse.setValue(CmnConst.PAGE_SIZE, null);
-		}
+        replaceAttrName2UUID(fse);
 
-		boolean result = baseDao.update(fse);
+        if (StringUtils.isEmpty(fse.getString(CmnConst.PAGE_SIZE))) {
+            fse.setValue(CmnConst.PAGE_SIZE, null);
+        }
 
-		if ("1".equals(fse.getString(CmnConst.RELATE_FLAG)) || !StringUtils.isEmpty(fse.getString(CmnConst.FUNCTION_UUID))) {
-			// 閲嶆柊璁剧疆缂撳瓨
-			dataListReportService.setConfig(fse.getUUID());
-		}
+        boolean result = baseDao.update(fse);
 
-		return result;
-	}
+        if ("1".equals(fse.getString(CmnConst.RELATE_FLAG)) || !StringUtils.isEmpty(fse.getString(CmnConst.FUNCTION_UUID))) {
+            // 閲嶆柊璁剧疆缂撳瓨
+            dataListReportService.setConfig(fse.getUUID());
+        }
 
-	/**
-	 * 鏇挎崲灞炴�у悕绉颁负uuid
-	 *
-	 * @param fse
-	 */
-	private void replaceAttrName2UUID(FieldSetEntity fse) {
-		DataTableEntity reportTypeAttrDte = baseDao.listTable(CmnConst.PRODUCT_SYS_REPORT_TYPE_ATTRIBUTE, "type_group='DataList'", new Object[]{}, new Object[]{CmnConst.ATTRIBUTE_NAME, CmnConst.UUID});
-		if (!BaseUtil.dataTableIsEmpty(reportTypeAttrDte)) {
-			Map<String, String> reportTypeAttrMap = Maps.newHashMap();
-			FieldSetEntity tempFse;
-			for (int i = 0; i < reportTypeAttrDte.getRows(); i++) {
-				tempFse = reportTypeAttrDte.getFieldSetEntity(i);
-				reportTypeAttrMap.put(tempFse.getString(CmnConst.ATTRIBUTE_NAME), tempFse.getUUID());
-			}
-			DataTableEntity preReportAttrDte = baseDao.listTable(CmnConst.PRODUCT_SYS_REPORT_CONFIG_ATTRIBUTE, "report_config_uuid=?", new Object[]{fse.getUUID()});
-			Map<JSONObject, String> preReportAttrMap = Maps.newHashMap();
-			JSONObject tempObj;
-			if (!BaseUtil.dataTableIsEmpty(preReportAttrDte)) {
-				for (int i = 0; i < preReportAttrDte.getRows(); i++) {
-					tempFse = preReportAttrDte.getFieldSetEntity(i);
-					tempObj = new JSONObject();
-					tempObj.put(CmnConst.ATTR_REPORT_AREA, tempFse.getString(CmnConst.ATTR_REPORT_AREA));
-					tempObj.put(CmnConst.CELL_POSITION_X, tempFse.getString(CmnConst.CELL_POSITION_X));
-					tempObj.put(CmnConst.CELL_POSITION_Y, tempFse.getString(CmnConst.CELL_POSITION_Y));
-					tempObj.put(CmnConst.REPORT_TYPE_ATTR, tempFse.getString(CmnConst.REPORT_TYPE_ATTR));
-					preReportAttrMap.put(tempObj, tempFse.getUUID());
-				}
-			}
-			DataTableEntity reportAttrDte = fse.getSubDataTable(CmnConst.PRODUCT_SYS_REPORT_CONFIG_ATTRIBUTE);
-			if (!BaseUtil.dataTableIsEmpty(reportAttrDte)) {
-				String tempUUID;
-				for (int i = 0; i < reportAttrDte.getRows(); i++) {
-					tempFse = reportAttrDte.getFieldSetEntity(i);
-					tempFse.setValue("report_type_attr_show_name", tempFse.getString(CmnConst.REPORT_TYPE_ATTR));
-					tempFse.setValue(CmnConst.REPORT_TYPE_ATTR, reportTypeAttrMap.get(tempFse.getString(CmnConst.REPORT_TYPE_ATTR)));
-					tempFse.setValue(CmnConst.CELL_POSITION_X, tempFse.getString(CmnConst.ATTR_X));
-					tempFse.setValue(CmnConst.CELL_POSITION_Y, tempFse.getString(CmnConst.ATTR_Y));
-					String x = tempFse.getString(CmnConst.ATTR_X);
-					tempObj = new JSONObject();
-					tempObj.put(CmnConst.ATTR_REPORT_AREA, tempFse.getString(CmnConst.ATTR_REPORT_AREA));
-					tempObj.put(CmnConst.CELL_POSITION_X, tempFse.getString(CmnConst.CELL_POSITION_X));
-					tempObj.put(CmnConst.CELL_POSITION_Y, tempFse.getString(CmnConst.CELL_POSITION_Y));
-					tempObj.put(CmnConst.REPORT_TYPE_ATTR, tempFse.getString(CmnConst.REPORT_TYPE_ATTR));
+        return result;
+    }
 
-					tempUUID = preReportAttrMap.get(tempObj);
-					if (!StringUtils.isEmpty(tempUUID)) {
-						tempFse.setValue(CmnConst.UUID, tempUUID);
-					}
-					if (StringUtils.isEmpty(tempFse.getString(CmnConst.REPORT_TYPE_ATTR_VALUE))) {
-						//灞炴�у�兼槸鍚︿负绌�
-						if (StringUtils.isEmpty(tempFse.getUUID())) {
-							//娌℃湁淇濆瓨杩囩殑灞炴��
-							reportAttrDte.removeFieldSetEntity(i);
-							i--;
-						} else {
-							//鏍囪涓哄垹闄�
-							tempFse.setValue(CoreConst.SYSTEM_DATA_OPERATE_TYPE, "del");
-						}
-						continue;
-					}
-				}
-			}
-		}
-	}
+    /**
+     * 鏇挎崲灞炴�у悕绉颁负uuid
+     *
+     * @param fse
+     */
+    private void replaceAttrName2UUID(FieldSetEntity fse) {
+        DataTableEntity reportTypeAttrDte = baseDao.listTable(CmnConst.PRODUCT_SYS_REPORT_TYPE_ATTRIBUTE, "type_group='DataList'", new Object[]{}, new Object[]{CmnConst.ATTRIBUTE_NAME, CmnConst.UUID});
+        if (!BaseUtil.dataTableIsEmpty(reportTypeAttrDte)) {
+            Map<String, String> reportTypeAttrMap = Maps.newHashMap();
+            FieldSetEntity tempFse;
+            for (int i = 0; i < reportTypeAttrDte.getRows(); i++) {
+                tempFse = reportTypeAttrDte.getFieldSetEntity(i);
+                reportTypeAttrMap.put(tempFse.getString(CmnConst.ATTRIBUTE_NAME), tempFse.getUUID());
+            }
+            DataTableEntity preReportAttrDte = baseDao.listTable(CmnConst.PRODUCT_SYS_REPORT_CONFIG_ATTRIBUTE, "report_config_uuid=?", new Object[]{fse.getUUID()});
+            Map<JSONObject, String> preReportAttrMap = Maps.newHashMap();
+            JSONObject tempObj;
+            if (!BaseUtil.dataTableIsEmpty(preReportAttrDte)) {
+                for (int i = 0; i < preReportAttrDte.getRows(); i++) {
+                    tempFse = preReportAttrDte.getFieldSetEntity(i);
+                    tempObj = new JSONObject();
+                    tempObj.put(CmnConst.ATTR_REPORT_AREA, tempFse.getString(CmnConst.ATTR_REPORT_AREA));
+                    tempObj.put(CmnConst.CELL_POSITION_X, tempFse.getString(CmnConst.CELL_POSITION_X));
+                    tempObj.put(CmnConst.CELL_POSITION_Y, tempFse.getString(CmnConst.CELL_POSITION_Y));
+                    tempObj.put(CmnConst.REPORT_TYPE_ATTR, tempFse.getString(CmnConst.REPORT_TYPE_ATTR));
+                    preReportAttrMap.put(tempObj, tempFse.getUUID());
+                }
+            }
+            DataTableEntity reportAttrDte = fse.getSubDataTable(CmnConst.PRODUCT_SYS_REPORT_CONFIG_ATTRIBUTE);
+            if (!BaseUtil.dataTableIsEmpty(reportAttrDte)) {
+                String tempUUID;
+                for (int i = 0; i < reportAttrDte.getRows(); i++) {
+                    tempFse = reportAttrDte.getFieldSetEntity(i);
+                    tempFse.setValue(CmnConst.REPORT_TYPE_ATTR, reportTypeAttrMap.get(tempFse.getString(CmnConst.REPORT_TYPE_ATTR)));
+                    tempFse.setValue(CmnConst.CELL_POSITION_X, tempFse.getString(CmnConst.ATTR_X));
+                    tempFse.setValue(CmnConst.CELL_POSITION_Y, tempFse.getString(CmnConst.ATTR_Y));
 
-	/**
-	 * 鎶ヨ〃鍒犻櫎
-	 *
-	 * @param uuid
-	 * @return
-	 */
-	@Transactional
-	public boolean deleteReportConfig(String uuid) {
-		return baseDao.delete(CmnConst.PRODUCT_SYS_REPORT_CONFIG, "uuid=?", new Object[]{uuid});
-	}
+                    tempObj = new JSONObject();
+                    tempObj.put(CmnConst.ATTR_REPORT_AREA, tempFse.getString(CmnConst.ATTR_REPORT_AREA));
+                    tempObj.put(CmnConst.CELL_POSITION_X, tempFse.getString(CmnConst.CELL_POSITION_X));
+                    tempObj.put(CmnConst.CELL_POSITION_Y, tempFse.getString(CmnConst.CELL_POSITION_Y));
+                    tempObj.put(CmnConst.REPORT_TYPE_ATTR, tempFse.getString(CmnConst.REPORT_TYPE_ATTR));
 
-	@Autowired
-	UpdateLoginUserInfoService updateLoginUserInfoService;
+                    tempUUID = preReportAttrMap.get(tempObj);
+                    if (!StringUtils.isEmpty(tempUUID)) {
+                        tempFse.setValue(CmnConst.UUID, tempUUID);
+                    }
+                }
+            }
+        }
+    }
 
-	/**
-	 * 鍙栨秷鎶ヨ〃鍙戝竷
-	 *
-	 * @param fse
-	 * @return
-	 */
-	@Transactional
-	public boolean cancelRelease(FieldSetEntity fse) {
-		DataTableEntity reportConfigDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_CONFIG, new String[]{fse.getUUID()});
-		if (BaseUtil.dataTableIsEmpty(reportConfigDte)) {
-			throw new BaseException(ReportCode.GET_REPORT_CONFIG_FIAL.getValue(), ReportCode.GET_REPORT_CONFIG_FIAL.getText());
-		}
-		FieldSetEntity reportConfigFse = reportConfigDte.getFieldSetEntity(0);
-		String functionUUID = reportConfigFse.getString(CmnConst.FUNCTION_UUID);
-		if (StringUtils.isEmpty(functionUUID)) {
-			return false;
-		}
+    /**
+     * 鎶ヨ〃鍒犻櫎
+     *
+     * @param uuid
+     * @return
+     */
+    @Transactional
+    public boolean deleteReportConfig(String uuid) {
+        return baseDao.delete(CmnConst.PRODUCT_SYS_REPORT_CONFIG, "uuid=?", new Object[]{uuid});
+    }
 
-		DataTableEntity dt = baseDao.listTable(CmnConst.PRODUCT_SYS_FUNCTION_PERMISSION, "function_uuid=?", new Object[]{functionUUID}, new Object[]{"role_uuid uuid"});
-		//浠庤鑹叉潈闄愪腑绉婚櫎
-		baseDao.delete(CmnConst.PRODUCT_SYS_FUNCTION_PERMISSION, "function_uuid=?", new Object[]{functionUUID});
-		//鍒犻櫎杩炵嚎
-		baseDao.delete(CmnConst.PRODUCT_SYS_LINK, "function_uuid=?", new Object[]{functionUUID});
-		//鍒犻櫎鎸夐挳
-		baseDao.delete(CmnConst.PRODUCT_SYS_FUNCTION_BUTTONS, "function_uuid=?", new Object[]{functionUUID});
-		//鍒犻櫎椤甸潰
-		baseDao.delete(CmnConst.PRODUCT_SYS_MVC_PAGE, "function_uuid=?", new Object[]{functionUUID});
+    @Autowired
+    UpdateLoginUserInfoService updateLoginUserInfoService;
 
-		//鍒犻櫎鑿滃崟
-		baseDao.delete(CmnConst.PRODUCT_SYS_MENUS, "function_uuid=?", new Object[]{functionUUID});
-		//鍒犻櫎鍔熻兘
-		baseDao.delete(CmnConst.PRODUCT_SYS_FUNCTIONS, "uuid=?", new Object[]{functionUUID});
+    /**
+     * 鍙栨秷鎶ヨ〃鍙戝竷
+     *
+     * @param fse
+     * @return
+     */
+    @Transactional
+    public boolean cancelRelease(FieldSetEntity fse) {
+        DataTableEntity reportConfigDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_CONFIG, new String[]{fse.getUUID()});
+        if (BaseUtil.dataTableIsEmpty(reportConfigDte)) {
+            throw new BaseException(ReportCode.GET_REPORT_CONFIG_FIAL.getValue(), ReportCode.GET_REPORT_CONFIG_FIAL.getText());
+        }
+        FieldSetEntity reportConfigFse = reportConfigDte.getFieldSetEntity(0);
+        String functionUUID = reportConfigFse.getString(CmnConst.FUNCTION_UUID);
+        if (StringUtils.isEmpty(functionUUID)) {
+            return false;
+        }
 
-		//鏁版嵁鍥炲啓
-		fse.setValue(CmnConst.FUNCTION_UUID, "");
+        DataTableEntity dt = baseDao.listTable(CmnConst.PRODUCT_SYS_FUNCTION_PERMISSION, "function_uuid=?", new Object[]{functionUUID}, new Object[]{"role_uuid uuid"});
+        //浠庤鑹叉潈闄愪腑绉婚櫎
+        baseDao.delete(CmnConst.PRODUCT_SYS_FUNCTION_PERMISSION, "function_uuid=?", new Object[]{functionUUID});
+        //鍒犻櫎杩炵嚎
+        baseDao.delete(CmnConst.PRODUCT_SYS_LINK, "function_uuid=?", new Object[]{functionUUID});
+        //鍒犻櫎鎸夐挳
+        baseDao.delete(CmnConst.PRODUCT_SYS_FUNCTION_BUTTONS, "function_uuid=?", new Object[]{functionUUID});
+        //鍒犻櫎椤甸潰
+        baseDao.delete(CmnConst.PRODUCT_SYS_MVC_PAGE, "function_uuid=?", new Object[]{functionUUID});
 
-		if (!DataTableEntity.isEmpty(dt)) {
-			updateLoginUserInfoService.updateUserInfoByUpdateRole(dt.getUuids(), true);
-		}
-		return baseDao.update(fse);
-	}
+        //鍒犻櫎鑿滃崟
+        baseDao.delete(CmnConst.PRODUCT_SYS_MENUS, "function_uuid=?", new Object[]{functionUUID});
+        //鍒犻櫎鍔熻兘
+        baseDao.delete(CmnConst.PRODUCT_SYS_FUNCTIONS, "uuid=?", new Object[]{functionUUID});
 
-	/**
-	 * 鎶ヨ〃鍙戝竷
-	 *
-	 * @param fse
-	 * @return
-	 */
-	@Transactional
-	public boolean releaseConfig(FieldSetEntity fse) {
+        //鏁版嵁鍥炲啓
+        fse.setValue(CmnConst.FUNCTION_UUID, "");
 
-		FieldSetEntity fseReport = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_REPORT_CONFIG, fse.getUUID(), false);
+        if (!DataTableEntity.isEmpty(dt)) {
+            updateLoginUserInfoService.updateUserInfoByUpdateRole(dt.getUuids(), true);
+        }
+        return baseDao.update(fse);
+    }
 
-		//鍒涘缓MVCC淇濆瓨瀵硅薄
-		FieldSetEntity fseFunction = new FieldSetEntity();
-		//1.鍒涘缓MVC(绯荤粺MVC鐩綍涓�)
-		//鐢熸垚鍔熻兘缂栫爜
-		String defaultCode = "001-005";
-		fseFunction.setTableName(CmnConst.PRODUCT_SYS_FUNCTIONS);
-		codeService.createCode(fseFunction, CmnConst.PRODUCT_SYS_FUNCTIONS, CmnConst.TRICODE, defaultCode);
-		fseFunction.setValue(CmnConst.TABLE_UUID, CmnConst.PRODUCT_SYS_REPORT_CONFIG);            //鍔熻兘鍏宠仈琛�
-		fseFunction.setValue(CmnConst.FUNCTION_NAME, fseReport.getString(CmnConst.REPORT_NAME));    //鍔熻兘鍚嶇О
-		fseFunction.setValue(CmnConst.FUNCTION_DESCRIPTION, fseReport.getString(CmnConst.REPORT_NAME));    //鍔熻兘鎻忚堪
-		fseFunction.setValue(CmnConst.STATUS_UUID, 1);            //鏄惁鍚敤
-		fseFunction.setValue(CmnConst.FUNCTION_TYPE_UUID, 1);    //鍔熻兘绫诲瀷-涓氬姟鍔熻兘
-		fseFunction.setValue(CmnConst.CLIENT_TYPE_UUID, "Web");        //瀹㈡埛绔被鍨�
-		fseFunction.setValue(CmnConst.VERSION_UUID, "001");
-		fseFunction.setValue(CmnConst.DATA_TYPE, 1);// 鏁版嵁绫诲瀷
-		fseFunction.setValue(CmnConst.TRICODE_PARENT, defaultCode);// 涓婄骇妯″潡code
-		fseFunction.setValue("terminal_type", 1);
-		BaseUtil.createCreatorAndCreationTime(SpringMVCContextHolder.getCurrentUser(), fseFunction);
+    /**
+     * 鎶ヨ〃鍙戝竷
+     *
+     * @param fse
+     * @return
+     */
+    @Transactional
+    public boolean releaseConfig(FieldSetEntity fse) {
 
-		//鍒涘缓鎸夐挳淇濆瓨瀵硅薄
-		DataTableEntity dtButton = new DataTableEntity();
-		FieldSetEntity fseButton = new FieldSetEntity();
-		fseButton.setTableName(CmnConst.PRODUCT_SYS_FUNCTION_BUTTONS);
-		fseButton.setValue(CmnConst.IS_MAIN, 1);        //鏄惁鍏ュ彛
-		fseButton.setValue(CmnConst.STATUS_UUID, 1);    //鏄惁鍚敤
-		fseButton.setValue(CmnConst.CLIENT_TYPE_UUID, "Web");    //瀹㈡埛绔被鍨�
-		fseButton.setValue(CmnConst.BUTTON_NAME, "鍏ュ彛");    //鎸夐挳鍚嶇О
-		fseButton.setValue(CmnConst.BUTTON_TITLE, "entrance");    //鎸夐挳鏍囬
-		fseButton.setValue(CmnConst.BUTTON_TYPE, 1);            //鎸夐挳绫诲瀷
-		fseButton.setValue(CmnConst.BUTTON_CATEGORY_UUID, "main");    //鎸夐挳鍒嗙被
-		fseButton.setValue(CmnConst.ROUTE_NAME, BaseUtil.getPageCode());    //璺敱鍚嶇О
-		fseButton.setValue(CmnConst.UPLOAD_API_URL, CmnConst.ADDRESS_INIT_INTERFENCE);// 鍏ュ彛鎺ュ彛鍦板潃
-		fseButton.setValue("terminal_type", 1);
-		JSONObject paramObj = new JSONObject();
-		paramObj.put(CmnConst.UUID, fse.getUUID());
-		fseButton.setValue(CmnConst.PARAMS, paramObj.toString());// 鎺ュ彛鍙傛暟
-		fseButton.setValue(CmnConst.TOP_LOCATION, "100px");
-		fseButton.setValue(CmnConst.LEFT_LOCATION, "100px");
-		dtButton.setMeta(fseButton.getMeta());
-		dtButton.addFieldSetEntity(fseButton);
+        FieldSetEntity fseReport = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_REPORT_CONFIG, fse.getUUID(), false);
 
-		//鍒涘缓椤甸潰淇濆瓨瀵硅薄
-		DataTableEntity dtPage = new DataTableEntity();
-		FieldSetEntity fsePage = new FieldSetEntity();
-		fsePage.setTableName(CmnConst.PRODUCT_SYS_MVC_PAGE);
+        //鍒涘缓MVCC淇濆瓨瀵硅薄
+        FieldSetEntity fseFunction = new FieldSetEntity();
+        //1.鍒涘缓MVC(绯荤粺MVC鐩綍涓�)
+        //鐢熸垚鍔熻兘缂栫爜
+        String defaultCode = "001-005";
+        fseFunction.setTableName(CmnConst.PRODUCT_SYS_FUNCTIONS);
+        codeService.createCode(fseFunction, CmnConst.PRODUCT_SYS_FUNCTIONS, CmnConst.TRICODE, defaultCode);
+        fseFunction.setValue(CmnConst.TABLE_UUID, CmnConst.PRODUCT_SYS_REPORT_CONFIG);            //鍔熻兘鍏宠仈琛�
+        fseFunction.setValue(CmnConst.FUNCTION_NAME, fseReport.getString(CmnConst.REPORT_NAME));    //鍔熻兘鍚嶇О
+        fseFunction.setValue(CmnConst.FUNCTION_DESCRIPTION, fseReport.getString(CmnConst.REPORT_NAME));    //鍔熻兘鎻忚堪
+        fseFunction.setValue(CmnConst.STATUS_UUID, 1);            //鏄惁鍚敤
+        fseFunction.setValue(CmnConst.FUNCTION_TYPE_UUID, 5);    //鍔熻兘绫诲瀷-涓氬姟鍚庡彴绠$悊 绠$悊鍛樺拰鏅�氱敤鎴烽兘鑳藉垎閰嶈鎶ヨ〃鐨勬潈闄�
+        fseFunction.setValue(CmnConst.CLIENT_TYPE_UUID, "Web");        //瀹㈡埛绔被鍨�
+        fseFunction.setValue(CmnConst.VERSION_UUID, "001");
+        fseFunction.setValue(CmnConst.DATA_TYPE, 1);// 鏁版嵁绫诲瀷
+        fseFunction.setValue(CmnConst.TRICODE_PARENT, defaultCode);// 涓婄骇妯″潡code
+        fseFunction.setValue("terminal_type", 1);
+        BaseUtil.createCreatorAndCreationTime(SpringMVCContextHolder.getCurrentUser(), fseFunction);
+
+        //鍒涘缓鎸夐挳淇濆瓨瀵硅薄
+        DataTableEntity dtButton = new DataTableEntity();
+        FieldSetEntity fseButton = new FieldSetEntity();
+        fseButton.setTableName(CmnConst.PRODUCT_SYS_FUNCTION_BUTTONS);
+        fseButton.setValue(CmnConst.IS_MAIN, 1);        //鏄惁鍏ュ彛
+        fseButton.setValue(CmnConst.STATUS_UUID, 1);    //鏄惁鍚敤
+        fseButton.setValue(CmnConst.CLIENT_TYPE_UUID, "Web");    //瀹㈡埛绔被鍨�
+        fseButton.setValue(CmnConst.BUTTON_NAME, "鍏ュ彛");    //鎸夐挳鍚嶇О
+        fseButton.setValue(CmnConst.BUTTON_TITLE, "entrance");    //鎸夐挳鏍囬
+        fseButton.setValue(CmnConst.BUTTON_TYPE, 1);            //鎸夐挳绫诲瀷
+        fseButton.setValue(CmnConst.BUTTON_CATEGORY_UUID, "main");    //鎸夐挳鍒嗙被
+        fseButton.setValue(CmnConst.ROUTE_NAME, BaseUtil.getPageCode());    //璺敱鍚嶇О
+        fseButton.setValue(CmnConst.UPLOAD_API_URL, CmnConst.ADDRESS_INIT_INTERFENCE);// 鍏ュ彛鎺ュ彛鍦板潃
+        fseButton.setValue("terminal_type", 1);
+        JSONObject paramObj = new JSONObject();
+        paramObj.put(CmnConst.UUID, fse.getUUID());
+        fseButton.setValue(CmnConst.PARAMS, paramObj.toString());// 鎺ュ彛鍙傛暟
+        fseButton.setValue(CmnConst.TOP_LOCATION, "100px");
+        fseButton.setValue(CmnConst.LEFT_LOCATION, "100px");
+        dtButton.setMeta(fseButton.getMeta());
+        dtButton.addFieldSetEntity(fseButton);
+
+        //鍒涘缓椤甸潰淇濆瓨瀵硅薄
+        DataTableEntity dtPage = new DataTableEntity();
+        FieldSetEntity fsePage = new FieldSetEntity();
+        fsePage.setTableName(CmnConst.PRODUCT_SYS_MVC_PAGE);
 //        fsePage.setValue(CmnConst.PAGE_NAME, "鎶ヨ〃灞曠ず");
-		fsePage.setValue(CmnConst.PAGE_NAME, fse.getString(CmnConst.MENU_NAME));
-		fsePage.setValue(CmnConst.PAGE_TYPE, 2);
-		fsePage.setValue(CmnConst.PAGE_URL, CmnConst.ADDRESS_REPORT_SHOW);
-		fsePage.setValue(CmnConst.TOP_LOCATION, "300px");
-		fsePage.setValue(CmnConst.LEFT_LOCATION, "100px");
-		fsePage.setValue(CmnConst.PAGE_OPEN_WITH, 0);
-		fsePage.setValue(CmnConst.PAGE_TYPE, 0);
-		fsePage.setValue("terminal_type", 1);
-		dtPage.addFieldSetEntity(fsePage);
+        fsePage.setValue(CmnConst.PAGE_NAME, fse.getString(CmnConst.MENU_NAME));
+        fsePage.setValue(CmnConst.PAGE_TYPE, 2);
+        fsePage.setValue(CmnConst.PAGE_URL, CmnConst.ADDRESS_REPORT_SHOW);
+        fsePage.setValue(CmnConst.TOP_LOCATION, "300px");
+        fsePage.setValue(CmnConst.LEFT_LOCATION, "100px");
+        fsePage.setValue(CmnConst.PAGE_OPEN_WITH, 0);
+        fsePage.setValue(CmnConst.PAGE_TYPE, 0);
+        fsePage.setValue("terminal_type", 1);
+        dtPage.addFieldSetEntity(fsePage);
 
-		fseFunction.addSubDataTable(dtButton);
-		fseFunction.addSubDataTable(dtPage);
+        fseFunction.addSubDataTable(dtButton);
+        fseFunction.addSubDataTable(dtPage);
 
-		String functionUUID = baseDao.add(fseFunction);
+        String functionUUID = baseDao.add(fseFunction);
 
-		//鍒涘缓杩炵嚎淇濆瓨瀵硅薄
-		FieldSetEntity fseLink = new FieldSetEntity();
-		fseLink.setTableName(CmnConst.PRODUCT_SYS_LINK);
-		fseLink.setValue(CmnConst.LINK_TYPE, 0);        //杩炵嚎绫诲瀷
-		fseLink.setValue(CmnConst.FUNCTION_UUID, functionUUID);    //鎵�灞炲姛鑳経UID
-		fseLink.setValue(CmnConst.LINE_FROM, fseButton.getUUID());    //璧峰绔�
-		fseLink.setValue(CmnConst.FROM_TYPE, 0);                    //璧峰绔被鍨�
-		fseLink.setValue(CmnConst.LINE_TO, fsePage.getUUID());        //缁撴潫绔�
-		fseLink.setValue(CmnConst.TO_TYPE, 2);                        //缁撴潫绔被鍨�
-		fseLink.setValue("terminal_type", 1);
-		BaseUtil.createCreatorAndCreationTime(SpringMVCContextHolder.getCurrentUser(), fseLink);
+        //鍒涘缓杩炵嚎淇濆瓨瀵硅薄
+        FieldSetEntity fseLink = new FieldSetEntity();
+        fseLink.setTableName(CmnConst.PRODUCT_SYS_LINK);
+        fseLink.setValue(CmnConst.LINK_TYPE, 0);        //杩炵嚎绫诲瀷
+        fseLink.setValue(CmnConst.FUNCTION_UUID, functionUUID);    //鎵�灞炲姛鑳経UID
+        fseLink.setValue(CmnConst.LINE_FROM, fseButton.getUUID());    //璧峰绔�
+        fseLink.setValue(CmnConst.FROM_TYPE, 0);                    //璧峰绔被鍨�
+        fseLink.setValue(CmnConst.LINE_TO, fsePage.getUUID());        //缁撴潫绔�
+        fseLink.setValue(CmnConst.TO_TYPE, 2);                        //缁撴潫绔被鍨�
+        fseLink.setValue("terminal_type", 1);
+        BaseUtil.createCreatorAndCreationTime(SpringMVCContextHolder.getCurrentUser(), fseLink);
 
-		baseDao.add(fseLink);
+        baseDao.add(fseLink);
 
-		// 鎻愬彇鍙戝竷鐨勮鑹茬浉鍏虫暟鎹�
-		List<String> roleUUIDList = Lists.newArrayList();
-		List<String> clientUUIDList = Lists.newArrayList();
-		String[] singleRoleInfoArr;
-		for (String singleRoleInfo : fse.getString(CmnConst.ROLE_UUID).split("#")) {
-			singleRoleInfoArr = singleRoleInfo.split(",");
-			roleUUIDList.add(singleRoleInfoArr[2]);
-			clientUUIDList.add(singleRoleInfoArr[0]);
-		}
+        // 鎻愬彇鍙戝竷鐨勮鑹茬浉鍏虫暟鎹�
+        List<String> roleUUIDList = Lists.newArrayList();
+        List<String> clientUUIDList = Lists.newArrayList();
+        clientUUIDList.add(SpringMVCContextHolder.getCurrentUser().getClientUuid());
+//        String[] singleRoleInfoArr;
+        for (String singleRoleInfo : fse.getString(CmnConst.ROLE_UUID).split("#")) {
+//            singleRoleInfoArr = singleRoleInfo.split(",");
+            roleUUIDList.add(singleRoleInfo);
+        }
 
-		// 2.缁戝畾瑙掕壊(缁欐煇涓�瑙掕壊璧嬩簣璇ュ姛鑳�)
-		for (String roleUUID : roleUUIDList) {
-			FieldSetEntity fseFunctionButton = new FieldSetEntity();
-			fseFunctionButton.setTableName(CmnConst.PRODUCT_SYS_FUNCTION_PERMISSION);
-			fseFunctionButton.setValue(CmnConst.FUNCTION_UUID, functionUUID);// 鎵�灞炲姛鑳経UID
-			fseFunctionButton.setValue(CmnConst.BUTTON_UUID, fseButton.getUUID());// 鎸夐挳UUID
-			fseFunctionButton.setValue(CmnConst.ROLE_UUID, roleUUID);// 鎵�灞炶鑹睻UID
-			baseDao.add(fseFunctionButton);
-		}
+        // 2.缁戝畾瑙掕壊(缁欐煇涓�瑙掕壊璧嬩簣璇ュ姛鑳�)
+        for (String roleUUID : roleUUIDList) {
+            FieldSetEntity fseFunctionButton = new FieldSetEntity();
+            fseFunctionButton.setTableName(CmnConst.PRODUCT_SYS_FUNCTION_PERMISSION);
+            fseFunctionButton.setValue(CmnConst.FUNCTION_UUID, functionUUID);// 鎵�灞炲姛鑳経UID
+            fseFunctionButton.setValue(CmnConst.BUTTON_UUID, fseButton.getUUID());// 鎸夐挳UUID
+            fseFunctionButton.setValue(CmnConst.ROLE_UUID, roleUUID);// 鎵�灞炶鑹睻UID
+            baseDao.add(fseFunctionButton);
+        }
 
-		// 3.缁戝畾瀹㈡埛瑙掕壊(缁欐煇涓�瀹㈡埛瑙掕壊璧嬩簣璇ュ姛鑳�)
-		for (String clientUUID : clientUUIDList) {
-			DataTableEntity clientDte = DataPoolCacheImpl.getInstance().getCacheData("瀹㈡埛淇℃伅", new String[]{clientUUID});
-			if (BaseUtil.dataTableIsEmpty(clientDte)) {
-				continue;
-			}
-			FieldSetEntity clientFse = clientDte.getFieldSetEntity(0);
-			FieldSetEntity fseClientFunctionButton = new FieldSetEntity();
-			fseClientFunctionButton.setTableName(CmnConst.PRODUCT_SYS_FUNCTION_PERMISSION);
-			fseClientFunctionButton.setValue(CmnConst.FUNCTION_UUID, functionUUID);// 鎵�灞炲姛鑳経UID
-			fseClientFunctionButton.setValue(CmnConst.BUTTON_UUID, fseButton.getUUID());// 鎸夐挳UUID
-			fseClientFunctionButton.setValue(CmnConst.ROLE_UUID, clientFse.getString(CmnConst.ROLE_UUID));// 鎵�灞炶鑹睻UID
-			baseDao.add(fseClientFunctionButton);
-		}
+        // 3.缁戝畾瀹㈡埛瑙掕壊(缁欐煇涓�瀹㈡埛瑙掕壊璧嬩簣璇ュ姛鑳�)
+        for (String clientUUID : clientUUIDList) {
+            DataTableEntity clientDte = DataPoolCacheImpl.getInstance().getCacheData("瀹㈡埛淇℃伅", new String[]{clientUUID});
+            if (BaseUtil.dataTableIsEmpty(clientDte)) {
+                continue;
+            }
+            FieldSetEntity clientFse = clientDte.getFieldSetEntity(0);
+            FieldSetEntity fseClientFunctionButton = new FieldSetEntity();
+            fseClientFunctionButton.setTableName(CmnConst.PRODUCT_SYS_FUNCTION_PERMISSION);
+            fseClientFunctionButton.setValue(CmnConst.FUNCTION_UUID, functionUUID);// 鎵�灞炲姛鑳経UID
+            fseClientFunctionButton.setValue(CmnConst.BUTTON_UUID, fseButton.getUUID());// 鎸夐挳UUID
+            fseClientFunctionButton.setValue(CmnConst.ROLE_UUID, clientFse.getString(CmnConst.ROLE_UUID));// 鎵�灞炶鑹睻UID
+            baseDao.add(fseClientFunctionButton);
+        }
 
-		//4.鍒涘缓鑿滃崟(鏍规嵁鍓嶇鎵�閫夌埗绾ц彍鍗�)
-		FieldSetEntity fseMenu = new FieldSetEntity();
-		fseMenu.setTableName(CmnConst.PRODUCT_SYS_MENUS);
-		codeService.createCode(fseMenu, CmnConst.PRODUCT_SYS_MENUS, CmnConst.TRICODE, fse.getString(CmnConst.TRICODE_PARENT));
-		fseMenu.setValue(CmnConst.TRICODE_PARENT, fse.getString(CmnConst.TRICODE_PARENT));
-		fseMenu.setValue(CmnConst.MENU_NAME, fse.getString(CmnConst.MENU_NAME));
-		fseMenu.setValue(CmnConst.FUNCTION_UUID, functionUUID);
-		fseMenu.setValue(CmnConst.SEQUENCE, fse.getString(CmnConst.SEQUENCE));
-		fseMenu.setValue(CmnConst.IS_CATALOG, 0);
-		fseMenu.setValue(CmnConst.IS_SHOW, StringUtils.isEmpty(fse.getString(CmnConst.IS_SHOW)) ? 1 : fse.getString(CmnConst.IS_SHOW));
-		fseMenu.setValue(CmnConst.MENU_ICON, fse.getString(CmnConst.MENU_ICON));
-		BaseUtil.createCreatorAndCreationTime(SpringMVCContextHolder.getCurrentUser(), fseMenu);
+        //4.鍒涘缓鑿滃崟(鏍规嵁鍓嶇鎵�閫夌埗绾ц彍鍗�)
+        FieldSetEntity fseMenu = new FieldSetEntity();
+        fseMenu.setTableName(CmnConst.PRODUCT_SYS_MENUS);
+        codeService.createCode(fseMenu, CmnConst.PRODUCT_SYS_MENUS, CmnConst.TRICODE, fse.getString(CmnConst.TRICODE_PARENT));
+        fseMenu.setValue(CmnConst.TRICODE_PARENT, fse.getString(CmnConst.TRICODE_PARENT));
+        fseMenu.setValue(CmnConst.MENU_NAME, fse.getString(CmnConst.MENU_NAME));
+        fseMenu.setValue(CmnConst.FUNCTION_UUID, functionUUID);
+        fseMenu.setValue(CmnConst.SEQUENCE, fse.getString(CmnConst.SEQUENCE));
+        fseMenu.setValue(CmnConst.IS_CATALOG, 0);
+        fseMenu.setValue(CmnConst.IS_SHOW, StringUtils.isEmpty(fse.getString(CmnConst.IS_SHOW)) ? 1 : fse.getString(CmnConst.IS_SHOW));
+        fseMenu.setValue(CmnConst.MENU_ICON, fse.getString(CmnConst.MENU_ICON));
+        BaseUtil.createCreatorAndCreationTime(SpringMVCContextHolder.getCurrentUser(), fseMenu);
 
-		baseDao.add(fseMenu);
+        baseDao.add(fseMenu);
 
-		//鏁版嵁鍥炲啓
-		fseReport.setValue(CmnConst.FUNCTION_UUID, functionUUID);
+        //鏁版嵁鍥炲啓
+        fseReport.setValue(CmnConst.FUNCTION_UUID, functionUUID);
 
-		boolean result = baseDao.update(fseReport);
+        boolean result = baseDao.update(fseReport);
 
-		// 閲嶆柊璁剧疆缂撳瓨
-		dataListReportService.setConfig(fseReport.getUUID());
+        // 閲嶆柊璁剧疆缂撳瓨
+        dataListReportService.setConfig(fseReport.getUUID());
 
-		return result;
-	}
+        return result;
+    }
 
-	/**
-	 * 鎶ヨ〃copy
-	 *
-	 * @param uuid
-	 * @return
-	 */
-	public String copyConfig(String uuid) {
-		FieldSetEntity fse = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_REPORT_CONFIG, uuid, true);
-		FieldSetEntity fseCopy = fse;
-		fseCopy.remove(CmnConst.ID);
-		fseCopy.remove(CmnConst.UUID);
-		DataTableEntity dtSub = fseCopy.getSubDataTable(CmnConst.PRODUCT_SYS_REPORT_CONFIG_ATTRIBUTE);
-		if (dtSub != null && dtSub.getRows() > 0) {
-			for (int i = 0; i < dtSub.getRows(); i++) {
-				FieldSetEntity fseSub = dtSub.getFieldSetEntity(i);
-				fseSub.remove(CmnConst.ID);
-				fseSub.remove(CmnConst.UUID);
-			}
-		}
-		return baseDao.add(fseCopy, true);
-	}
+    /**
+     * 鎶ヨ〃copy
+     *
+     * @param uuid
+     * @return
+     */
+    public String copyConfig(String uuid) {
+        FieldSetEntity fse = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_REPORT_CONFIG, uuid, true);
+        FieldSetEntity fseCopy = fse;
+        fseCopy.remove(CmnConst.ID);
+        fseCopy.remove(CmnConst.UUID);
+        DataTableEntity dtSub = fseCopy.getSubDataTable(CmnConst.PRODUCT_SYS_REPORT_CONFIG_ATTRIBUTE);
+        if (dtSub != null && dtSub.getRows() > 0) {
+            for (int i = 0; i < dtSub.getRows(); i++) {
+                FieldSetEntity fseSub = dtSub.getFieldSetEntity(i);
+                fseSub.remove(CmnConst.ID);
+                fseSub.remove(CmnConst.UUID);
+            }
+        }
+        return baseDao.add(fseCopy, true);
+    }
 
-	/**
-	 * 閰嶇疆鎶ヨ〃-寮曠敤
-	 *
-	 * @param fse
-	 * @return
-	 */
-	public FieldSetEntity quoteReportConfig(FieldSetEntity fse) {
-		FieldSetEntity sourceFse = findReportConfig(fse.getUUID());
-		sourceFse.setValue(CmnConst.DATASOURCE_UUID, fse.getString(CmnConst.DATASOURCE_UUID));
-		sourceFse.remove(new String[]{CmnConst.ID, CmnConst.UUID, CmnConst.CREATED_BY, CmnConst.CREATED_UTC_DATETIME, CmnConst.UPDATED_BY, CmnConst.CREATED_UTC_DATETIME, CmnConst.REPORT_NAME});
-		DataTableEntity subDte = sourceFse.getSubDataTable(CmnConst.PRODUCT_SYS_REPORT_CONFIG_ATTRIBUTE);
-		FieldSetEntity subFse;
-		for (int i = 0; i < subDte.getRows(); i++) {
-			subFse = subDte.getFieldSetEntity(i);
-			subFse.remove(new String[]{CmnConst.ID, CmnConst.UUID, CmnConst.CREATED_BY, CmnConst.CREATED_UTC_DATETIME, CmnConst.UPDATED_BY, CmnConst.CREATED_UTC_DATETIME});
-		}
-		return sourceFse;
-	}
+    /**
+     * 閰嶇疆鎶ヨ〃-寮曠敤
+     *
+     * @param fse
+     * @return
+     */
+    public FieldSetEntity quoteReportConfig(FieldSetEntity fse) {
+        FieldSetEntity sourceFse = findReportConfig(fse.getUUID());
+        sourceFse.setValue(CmnConst.DATASOURCE_UUID, fse.getString(CmnConst.DATASOURCE_UUID));
+        sourceFse.remove(new String[]{CmnConst.ID, CmnConst.UUID, CmnConst.CREATED_BY, CmnConst.CREATED_UTC_DATETIME, CmnConst.UPDATED_BY, CmnConst.CREATED_UTC_DATETIME, CmnConst.REPORT_NAME});
+        DataTableEntity subDte = sourceFse.getSubDataTable(CmnConst.PRODUCT_SYS_REPORT_CONFIG_ATTRIBUTE);
+        FieldSetEntity subFse;
+        for (int i = 0; i < subDte.getRows(); i++) {
+            subFse = subDte.getFieldSetEntity(i);
+            subFse.remove(new String[]{CmnConst.ID, CmnConst.UUID, CmnConst.CREATED_BY, CmnConst.CREATED_UTC_DATETIME, CmnConst.UPDATED_BY, CmnConst.CREATED_UTC_DATETIME});
+        }
+        return sourceFse;
+    }
 
-	/**
-	 * 鑾峰彇鎶ヨ〃鍙戝竷淇℃伅-鍙戝竷
-	 *
-	 * @return
-	 */
-	public JSONArray getReportReleaseInfo() {
-		StringBuilder sql = new StringBuilder(256);
-		DataTableEntity aimDte = new DataTableEntity();
-		DataTableEntity dte;
-		Object[] arr;
-		String filter;
-		sql.append("select distinct null pid,uuid sid,client_name name FROM product_sys_clients c")
-				.append("\ninner join (")
-				.append("\n    select client_uuid pid,uuid sid,org_level_name FROM product_sys_org_levels where org_level_status=0 order by org_level_code")
-				.append("\n) o on o.pid=c.uuid")
-				.append("\ninner join (")
-				.append("\n    select org_level_uuid pid,uuid sid,role_name FROM product_sys_role where is_used=1")
-				.append("\n) r on r.pid=o.sid");
-		// 鍘绘帀admin鎵�灞炲鎴�
+    /**
+     * 鑾峰彇鎶ヨ〃鍙戝竷淇℃伅-鍙戝竷
+     *
+     * @return
+     */
+    public JSONArray getReportReleaseInfo() {
+        StringBuilder sql = new StringBuilder(256);
+        DataTableEntity aimDte = new DataTableEntity();
+        DataTableEntity dte;
+        Object[] arr;
+        String filter;
+        sql.append("select distinct null pid,uuid sid,client_name name FROM product_sys_clients c")
+                .append("\ninner join (")
+                .append("\n    select client_uuid pid,uuid sid,org_level_name FROM product_sys_org_levels where org_level_status=0 order by org_level_code")
+                .append("\n) o on o.pid=c.uuid")
+                .append("\ninner join (")
+                .append("\n    select org_level_uuid pid,uuid sid,role_name FROM product_sys_role where is_used=1")
+                .append("\n) r on r.pid=o.sid");
+        // 鍘绘帀admin鎵�灞炲鎴�
 //				.append("\nwhere c.uuid!='4d4679ed-c4c3-41b8-abfe-451a66fd4043'");
-		dte = baseDao.listTable(sql.toString(), new Object[]{});
+        dte = baseDao.listTable(sql.toString(), new Object[]{});
 
-		aimDte.addFieldSetEntity(dte);
+        aimDte.addFieldSetEntity(dte);
 
-		arr = dte.getFieldAllValues("sid");
-		filter = BaseUtil.buildQuestionMarkFilter("client_uuid", arr.length, true);
-		sql.setLength(0);
-		sql.append("\nselect distinct o.* from (")
-				.append("\n    select client_uuid pid,uuid sid,org_level_name name FROM product_sys_org_levels where org_level_status=0")
-				.append("\n    and ").append(filter)
-				.append("\n    order by org_level_code")
-				.append("\n) o")
-				.append("\ninner join (")
-				.append("\n    select org_level_uuid pid,uuid sid,role_name FROM product_sys_role where is_used=1")
-				.append("\n) r on r.pid=o.sid");
-		dte = baseDao.listTable(sql.toString(), arr);
-		aimDte.addFieldSetEntity(dte);
+        arr = dte.getFieldAllValues("sid");
+        filter = BaseUtil.buildQuestionMarkFilter("client_uuid", arr.length, true);
+        sql.setLength(0);
+        sql.append("\nselect distinct o.* from (")
+                .append("\n    select client_uuid pid,uuid sid,org_level_name name FROM product_sys_org_levels where org_level_status=0")
+                .append("\n    and ").append(filter)
+                .append("\n    order by org_level_code")
+                .append("\n) o")
+                .append("\ninner join (")
+                .append("\n    select org_level_uuid pid,uuid sid,role_name FROM product_sys_role where is_used=1")
+                .append("\n) r on r.pid=o.sid");
+        dte = baseDao.listTable(sql.toString(), arr);
+        aimDte.addFieldSetEntity(dte);
 
-		arr = dte.getFieldAllValues("sid");
-		filter = BaseUtil.buildQuestionMarkFilter("org_level_uuid", arr.length, true);
-		sql.setLength(0);
-		sql.append("\nselect org_level_uuid pid,uuid sid,role_name name FROM product_sys_role where is_used=1").append(" and ").append(filter);
-		dte = baseDao.listTable(sql.toString(), arr);
-		aimDte.addFieldSetEntity(dte);
+        arr = dte.getFieldAllValues("sid");
+        filter = BaseUtil.buildQuestionMarkFilter("org_level_uuid", arr.length, true);
+        sql.setLength(0);
+        sql.append("\nselect org_level_uuid pid,uuid sid,role_name name FROM product_sys_role where is_used=1").append(" and ").append(filter);
+        dte = baseDao.listTable(sql.toString(), arr);
+        aimDte.addFieldSetEntity(dte);
 
-		return BaseUtil.dataTableToTreeData(aimDte, "sid", "pid", null, false);
-	}
+        return BaseUtil.dataTableToTreeData(aimDte, "sid", "pid", null, false);
+    }
 
-	/**
-	 * 鑾峰彇鎶ヨ〃鍙戝竷淇℃伅-鍙戝竷鍚庢煡鐪嬩俊鎭�
-	 *
-	 * @return
-	 */
-	public JSONObject viewReportReleaseInfo(FieldSetEntity fse) {
-		DataTableEntity reportConfigDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_CONFIG, new String[]{fse.getUUID()});
-		if (BaseUtil.dataTableIsEmpty(reportConfigDte)) {
-			throw new BaseException(ReportCode.GET_REPORT_RELEASE_INFO_FAIL.getValue(), ReportCode.GET_REPORT_RELEASE_INFO_FAIL.getText());
-		}
-		FieldSetEntity reportConfigFse = reportConfigDte.getFieldSetEntity(0);
-		StringBuilder sql = new StringBuilder(256);
-		sql.append("\nselect group_concat(single_role_uuid separator '#') role_uuid")
-				.append("\nfrom (")
-				.append("\n    select concat(client_uuid,',',uuid,',',role_uuid) single_role_uuid")
-				.append("\n    FROM product_sys_org_levels o")
-				.append("\n    inner join (")
-				.append("\n        select org_level_uuid,uuid role_uuid,role_name")
-				.append("\n        FROM product_sys_role r")
-				.append("\n        inner join (")
-				.append("\n            select role_uuid FROM product_sys_function_permission where function_uuid=?")
-				.append("\n        ) p on r.uuid=p.role_uuid")
-				.append("\n    ) r1 on o.uuid=r1.org_level_uuid")
-				.append("\n) t");
-		String functionUUID = reportConfigFse.getString(CmnConst.FUNCTION_UUID);
-		DataTableEntity dte = baseDao.listTable(sql.toString(), new Object[]{functionUUID});
+    /**
+     * 鑾峰彇鎶ヨ〃鍙戝竷淇℃伅-鍙戝竷鍚庢煡鐪嬩俊鎭�
+     *
+     * @return
+     */
+    public JSONObject viewReportReleaseInfo(FieldSetEntity fse) {
+        DataTableEntity reportConfigDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_REPORT_CONFIG, new String[]{fse.getUUID()});
+        if (BaseUtil.dataTableIsEmpty(reportConfigDte)) {
+            throw new BaseException(ReportCode.GET_REPORT_RELEASE_INFO_FAIL.getValue(), ReportCode.GET_REPORT_RELEASE_INFO_FAIL.getText());
+        }
+        FieldSetEntity reportConfigFse = reportConfigDte.getFieldSetEntity(0);
+        StringBuilder sql = new StringBuilder(256);
+        sql.append("\nselect group_concat(single_role_uuid separator '#') role_uuid")
+                .append("\nfrom (")
+                .append("\n    select concat(client_uuid,',',uuid,',',role_uuid) single_role_uuid")
+                .append("\n    FROM product_sys_org_levels o")
+                .append("\n    inner join (")
+                .append("\n        select org_level_uuid,uuid role_uuid,role_name")
+                .append("\n        FROM product_sys_role r")
+                .append("\n        inner join (")
+                .append("\n            select role_uuid FROM product_sys_function_permission where function_uuid=?")
+                .append("\n        ) p on r.uuid=p.role_uuid")
+                .append("\n    ) r1 on o.uuid=r1.org_level_uuid")
+                .append("\n) t");
+        String functionUUID = reportConfigFse.getString(CmnConst.FUNCTION_UUID);
+        DataTableEntity dte = baseDao.listTable(sql.toString(), new Object[]{functionUUID});
 
-		FieldSetEntity menuFse = baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_MENUS, "function_uuid=?", new Object[]{functionUUID}, false);
+        FieldSetEntity menuFse = baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_MENUS, "function_uuid=?", new Object[]{functionUUID}, false);
 
-		JSONObject resultObj = new JSONObject();
-		resultObj.put(CmnConst.UUID, fse.getUUID());
-		resultObj.put(CmnConst.ROLE_UUID, dte.getFieldSetEntity(0).getString(CmnConst.ROLE_UUID));
-		resultObj.put(CmnConst.TRICODE_PARENT, menuFse.getString(CmnConst.TRICODE_PARENT));
-		resultObj.put(CmnConst.MENU_ICON, menuFse.getString(CmnConst.MENU_ICON));
-		resultObj.put(CmnConst.MENU_NAME, menuFse.getString(CmnConst.MENU_NAME));
+        JSONObject resultObj = new JSONObject();
+        resultObj.put(CmnConst.UUID, fse.getUUID());
+        resultObj.put(CmnConst.ROLE_UUID, dte.getFieldSetEntity(0).getString(CmnConst.ROLE_UUID));
+        resultObj.put(CmnConst.TRICODE_PARENT, menuFse.getString(CmnConst.TRICODE_PARENT));
+        resultObj.put(CmnConst.MENU_ICON, menuFse.getString(CmnConst.MENU_ICON));
+        resultObj.put(CmnConst.MENU_NAME, menuFse.getString(CmnConst.MENU_NAME));
 
-		return resultObj;
-	}
+        return resultObj;
+    }
 
-	/**
-	 * 宸插彂甯冨垪琛ㄧ晫闈�
-	 *
-	 * @param fse
-	 * @return
-	 */
-	public DataTableEntity releasedListReportConfig(FieldSetEntity fse) {
-		String filter = queryFilterService.getQueryFilter(fse);
-		StringBuilder sql = new StringBuilder(256);
+    /**
+     * 宸插彂甯冨垪琛ㄧ晫闈�
+     *
+     * @param fse
+     * @return
+     */
+    public DataTableEntity releasedListReportConfig(FieldSetEntity fse) {
+        String filter = queryFilterService.getQueryFilter(fse);
+        StringBuilder sql = new StringBuilder(256);
 //        sql.append("select * from ( ");
-		sql.append("\n    select rc.uuid,rc.report_name,rtc.type_name,t1.role_info,mp.menu_name tricode_parent,m.menu_icon,m.menu_name ");
-		sql.append("\n    FROM product_sys_report_config rc ");
-		sql.append("\n    inner join ( ");
-		sql.append("\n        select function_uuid,group_concat(role_info separator ',') role_info ");
-		sql.append("\n        from ( ");
-		sql.append("\n            select function_uuid,concat(c.client_name,'/',o.org_level_name,'/',role_name) role_info ");
-		sql.append("\n						FROM product_sys_clients c ");
-		sql.append("\n						inner join product_sys_org_levels o on o.client_uuid=c.uuid ");
-		sql.append("\n						inner join ( ");
-		sql.append("\n								select function_uuid,org_level_uuid,uuid role_uuid,role_name ");
-		sql.append("\n								FROM product_sys_role r ");
-		sql.append("\n								inner join ( ");
-		sql.append("\n										select function_uuid,role_uuid FROM product_sys_function_permission ");
-		sql.append("\n								) p on r.uuid=p.role_uuid ");
-		sql.append("\n						) r1 on o.uuid=r1.org_level_uuid ");
-		sql.append("\n        ) t ");
-		sql.append("\n        group by function_uuid ");
-		sql.append("\n    ) t1 on rc.function_uuid=t1.function_uuid ");
-		sql.append("\n    inner join product_sys_menus m on rc.function_uuid=m.function_uuid ");
-		sql.append("\n    inner join product_sys_report_type_config rtc on rc.type_uuid=rtc.uuid ");
-		sql.append("\n    inner join product_sys_menus mp on m.tricode_parent=mp.tricode ");
+        sql.append("\n    select rc.uuid,rc.report_name,rtc.type_name,t1.role_info,mp.menu_name tricode_parent,m.menu_icon,m.menu_name ");
+        sql.append("\n    FROM product_sys_report_config rc ");
+        sql.append("\n    inner join ( ");
+        sql.append("\n        select function_uuid,group_concat(role_info separator ',') role_info ");
+        sql.append("\n        from ( ");
+        sql.append("\n            select function_uuid,concat(c.client_name,'/',o.org_level_name,'/',role_name) role_info ");
+        sql.append("\n						FROM product_sys_clients c ");
+        sql.append("\n						inner join product_sys_org_levels o on o.client_uuid=c.uuid ");
+        sql.append("\n						inner join ( ");
+        sql.append("\n								select function_uuid,org_level_uuid,uuid role_uuid,role_name ");
+        sql.append("\n								FROM product_sys_role r ");
+        sql.append("\n								inner join ( ");
+        sql.append("\n										select function_uuid,role_uuid FROM product_sys_function_permission ");
+        sql.append("\n								) p on r.uuid=p.role_uuid ");
+        sql.append("\n						) r1 on o.uuid=r1.org_level_uuid ");
+        sql.append("\n        ) t ");
+        sql.append("\n        group by function_uuid ");
+        sql.append("\n    ) t1 on rc.function_uuid=t1.function_uuid ");
+        sql.append("\n    inner join product_sys_menus m on rc.function_uuid=m.function_uuid ");
+        sql.append("\n    inner join product_sys_report_type_config rtc on rc.type_uuid=rtc.uuid ");
+        sql.append("\n    inner join product_sys_menus mp on m.tricode_parent=mp.tricode ");
 //        sql.append("\n) t2 ");
-		if (!StringUtils.isEmpty(filter)) {
-			sql.append(" WHERE " + filter);
-		}
-		Integer curPage = fse.getInteger(CmnConst.CPAGE);
-		Integer pageSize = fse.getInteger(CmnConst.PAGESIZE);
-		return baseDao.listTable(sql.toString(), new Object[]{}, pageSize == null ? Integer.MAX_VALUE : pageSize, curPage == null ? 1 : curPage);
-	}
+        if (!StringUtils.isEmpty(filter)) {
+            sql.append(" WHERE " + filter);
+        }
+        Integer curPage = fse.getInteger(CmnConst.CPAGE);
+        Integer pageSize = fse.getInteger(CmnConst.PAGESIZE);
+        return baseDao.listTable(sql.toString(), new Object[]{}, pageSize == null ? Integer.MAX_VALUE : pageSize, curPage == null ? 1 : curPage);
+    }
 }

--
Gitblit v1.9.2