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/ReportConfigService.java | 1033 +++++++++++++++++++++++++++++----------------------------
 1 files changed, 523 insertions(+), 510 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 c8d2df6..76180f4 100644
--- a/src/main/java/com/product/server/report/service/ReportConfigService.java
+++ b/src/main/java/com/product/server/report/service/ReportConfigService.java
@@ -8,6 +8,7 @@
 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,576 +25,588 @@
 import org.springframework.stereotype.Component;
 
 import javax.xml.crypto.Data;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @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);
-        }
+		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());
 
-        String uuid = baseDao.add(fse);
+		if ("1".equals(fse.getString(CmnConst.RELATE_FLAG))) {
+			// 閲嶆柊璁剧疆缂撳瓨
+			dataListReportService.setConfig(fse.getUUID());
+		}
 
-        if ("1".equals(fse.getString(CmnConst.RELATE_FLAG))) {
-            // 閲嶆柊璁剧疆缂撳瓨
-            dataListReportService.setConfig(fse.getUUID());
-        }
+		return uuid;
+	}
 
-        return uuid;
-    }
+	/**
+	 * 鎶ヨ〃淇敼
+	 *
+	 * @param fse
+	 * @return
+	 */
+	@Transactional
+	public boolean updateReportConfig(FieldSetEntity fse) {
+		fse.setValue(CmnConst.UPDATED_BY, SpringMVCContextHolder.getCurrentUserId());
+		fse.setValue(CmnConst.UPDATED_UTC_DATETIME, new Date());
 
-    /**
-     * 鎶ヨ〃淇敼
-     *
-     * @param fse
-     * @return
-     */
-    @Transactional
-    public boolean updateReportConfig(FieldSetEntity fse) {
-        fse.setValue(CmnConst.UPDATED_BY, SpringMVCContextHolder.getCurrentUserId());
-        fse.setValue(CmnConst.UPDATED_UTC_DATETIME, new Date());
+		replaceAttrName2UUID(fse);
 
-        replaceAttrName2UUID(fse);
+		if (StringUtils.isEmpty(fse.getString(CmnConst.PAGE_SIZE))) {
+			fse.setValue(CmnConst.PAGE_SIZE, null);
+		}
 
-        if (StringUtils.isEmpty(fse.getString(CmnConst.PAGE_SIZE))) {
-            fse.setValue(CmnConst.PAGE_SIZE, null);
-        }
+		boolean result = baseDao.update(fse);
 
-        boolean result = baseDao.update(fse);
+		if ("1".equals(fse.getString(CmnConst.RELATE_FLAG)) || !StringUtils.isEmpty(fse.getString(CmnConst.FUNCTION_UUID))) {
+			// 閲嶆柊璁剧疆缂撳瓨
+			dataListReportService.setConfig(fse.getUUID());
+		}
 
-        if ("1".equals(fse.getString(CmnConst.RELATE_FLAG)) || !StringUtils.isEmpty(fse.getString(CmnConst.FUNCTION_UUID))) {
-            // 閲嶆柊璁剧疆缂撳瓨
-            dataListReportService.setConfig(fse.getUUID());
-        }
+		return result;
+	}
 
-        return result;
-    }
+	/**
+	 * 鏇挎崲灞炴�у悕绉颁负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));
 
-    /**
-     * 鏇挎崲灞炴�у悕绉颁负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));
+					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;
+					}
+				}
+			}
+		}
+	}
 
-                    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));
+	/**
+	 * 鎶ヨ〃鍒犻櫎
+	 *
+	 * @param uuid
+	 * @return
+	 */
+	@Transactional
+	public boolean deleteReportConfig(String uuid) {
+		return baseDao.delete(CmnConst.PRODUCT_SYS_REPORT_CONFIG, "uuid=?", new Object[]{uuid});
+	}
 
-                    tempUUID = preReportAttrMap.get(tempObj);
-                    if (!StringUtils.isEmpty(tempUUID)) {
-                        tempFse.setValue(CmnConst.UUID, tempUUID);
-                    }
-                }
-            }
-        }
-    }
+	@Autowired
+	UpdateLoginUserInfoService updateLoginUserInfoService;
 
-    /**
-     * 鎶ヨ〃鍒犻櫎
-     *
-     * @param uuid
-     * @return
-     */
-    @Transactional
-    public boolean deleteReportConfig(String uuid) {
-        return baseDao.delete(CmnConst.PRODUCT_SYS_REPORT_CONFIG, "uuid=?", new Object[]{uuid});
-    }
+	/**
+	 * 鍙栨秷鎶ヨ〃鍙戝竷
+	 *
+	 * @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;
+		}
 
-    @Autowired
-    UpdateLoginUserInfoService updateLoginUserInfoService;
+		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});
 
-    /**
-     * 鍙栨秷鎶ヨ〃鍙戝竷
-     *
-     * @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;
-        }
+		//鍒犻櫎鑿滃崟
+		baseDao.delete(CmnConst.PRODUCT_SYS_MENUS, "function_uuid=?", new Object[]{functionUUID});
+		//鍒犻櫎鍔熻兘
+		baseDao.delete(CmnConst.PRODUCT_SYS_FUNCTIONS, "uuid=?", new Object[]{functionUUID});
 
-        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});
+		//鏁版嵁鍥炲啓
+		fse.setValue(CmnConst.FUNCTION_UUID, "");
 
-        //鍒犻櫎鑿滃崟
-        baseDao.delete(CmnConst.PRODUCT_SYS_MENUS, "function_uuid=?", new Object[]{functionUUID});
-        //鍒犻櫎鍔熻兘
-        baseDao.delete(CmnConst.PRODUCT_SYS_FUNCTIONS, "uuid=?", new Object[]{functionUUID});
+		if (!DataTableEntity.isEmpty(dt)) {
+			updateLoginUserInfoService.updateUserInfoByUpdateRole(dt.getUuids(), true);
+		}
+		return baseDao.update(fse);
+	}
 
-        //鏁版嵁鍥炲啓
-        fse.setValue(CmnConst.FUNCTION_UUID, "");
+	/**
+	 * 鎶ヨ〃鍙戝竷
+	 *
+	 * @param fse
+	 * @return
+	 */
+	@Transactional
+	public boolean releaseConfig(FieldSetEntity fse) {
 
-        if (!DataTableEntity.isEmpty(dt)) {
-            updateLoginUserInfoService.updateUserInfoByUpdateRole(dt.getUuids(), true);
-        }
-        return baseDao.update(fse);
-    }
+		FieldSetEntity fseReport = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_REPORT_CONFIG, fse.getUUID(), false);
 
-    /**
-     * 鎶ヨ〃鍙戝竷
-     *
-     * @param fse
-     * @return
-     */
-    @Transactional
-    public boolean releaseConfig(FieldSetEntity 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);
 
-        FieldSetEntity fseReport = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_REPORT_CONFIG, fse.getUUID(), false);
+		//鍒涘缓鎸夐挳淇濆瓨瀵硅薄
+		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);
 
-        //鍒涘缓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);
-
-        //鍒涘缓鎸夐挳淇濆瓨瀵硅薄
-        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);
+		//鍒涘缓椤甸潰淇濆瓨瀵硅薄
+		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();
+		String[] singleRoleInfoArr;
+		for (String singleRoleInfo : fse.getString(CmnConst.ROLE_UUID).split("#")) {
+			singleRoleInfoArr = singleRoleInfo.split(",");
+			roleUUIDList.add(singleRoleInfoArr[2]);
+			clientUUIDList.add(singleRoleInfoArr[0]);
+		}
 
-        // 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