From 51542c2d2272cfe19db8e7dbc07cccc1c448d22a Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期五, 20 九月 2024 15:17:05 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/RoleRightDTO.java | 12 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java | 9 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/data.s.json | 94 ++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java | 28 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsActionServiceImpl.java | 56 + Bin/Redis-6.2.10/dump.rdb | 0 Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/RoleInfoDTO.java | 32 Source/plt-web/plt-web-parent/plt-poi/src/main/java/com/vci/starter/poi/bo/ReadExcelOption.java | 2 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/ISmFunctionQueryService.java | 7 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/HMSysModConfigController.java | 18 Source/plt-web/plt-web-parent/plt-poi/src/main/java/com/vci/starter/poi/util/ExcelUtil.java | 2 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsActionServiceI.java | 13 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java | 38 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java | 188 +++++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java | 167 +++++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmUserQueryController.java | 15 Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/PLDefinationVO.java | 2 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/enumpck/OrgTypeEnum.java | 112 +++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/ItemTypeEnum.java | 2 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java | 1105 ++++++++++++++++++++++++++------ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsActionController.java | 34 + Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/PLTabButtonVO.java | 1 22 files changed, 1,670 insertions(+), 267 deletions(-) diff --git a/Bin/Redis-6.2.10/dump.rdb b/Bin/Redis-6.2.10/dump.rdb index 743256f..e7fecc4 100644 --- a/Bin/Redis-6.2.10/dump.rdb +++ b/Bin/Redis-6.2.10/dump.rdb Binary files differ diff --git a/Source/plt-web/plt-web-parent/plt-poi/src/main/java/com/vci/starter/poi/bo/ReadExcelOption.java b/Source/plt-web/plt-web-parent/plt-poi/src/main/java/com/vci/starter/poi/bo/ReadExcelOption.java index 16e8da6..6a00a08 100644 --- a/Source/plt-web/plt-web-parent/plt-poi/src/main/java/com/vci/starter/poi/bo/ReadExcelOption.java +++ b/Source/plt-web/plt-web-parent/plt-poi/src/main/java/com/vci/starter/poi/bo/ReadExcelOption.java @@ -33,7 +33,7 @@ /** * 鎵╁睍灞炴�х殑鏄犲皠閰嶇疆锛宲o瀵硅薄涓婂睘鎬ф槸map鐨勫舰寮忔椂浣跨敤锛宬ey涓巈xcelColumn娉ㄨВ鐨剉alue()鐩稿悓锛屽�兼槸瀵瑰簲鐨勬爣棰� */ - private Map<String, List<ExcelColumnMap>> extendAttrMap ; + private Map<String, List<ExcelColumnMap>> extendAttrMap; public String getSheetName() { return sheetName; diff --git a/Source/plt-web/plt-web-parent/plt-poi/src/main/java/com/vci/starter/poi/util/ExcelUtil.java b/Source/plt-web/plt-web-parent/plt-poi/src/main/java/com/vci/starter/poi/util/ExcelUtil.java index a5d5e0e..34712cd 100644 --- a/Source/plt-web/plt-web-parent/plt-poi/src/main/java/com/vci/starter/poi/util/ExcelUtil.java +++ b/Source/plt-web/plt-web-parent/plt-poi/src/main/java/com/vci/starter/poi/util/ExcelUtil.java @@ -871,7 +871,7 @@ * @return 鏁版嵁鍒楄〃 * @throws VciBaseException 鎵ц鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 */ - public static List<SheetDataSet> readDataObjectFromExcel(File file) throws VciBaseException { + public static List<SheetDataSet> readDataObjectFromExcel(File file) throws VciBaseException { return readDataObjectFromExcel(file, SheetDataSet.class); } diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/RoleInfoDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/RoleInfoDTO.java new file mode 100644 index 0000000..12a6647 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/RoleInfoDTO.java @@ -0,0 +1,32 @@ +package com.vci.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 瑙掕壊浼犺緭瀵硅薄 + * @author yuxc + * @date 2024-09-09 + */ +@Data +public class RoleInfoDTO implements Serializable { + + + /** + * 绂佹淇敼杩欎釜鍊� + */ + private static final long serialVersionUID = 2492852474710986720L; + /** + * 涓婚敭 + */ + public String id; + public String name; + public String description; + public short type; + public long createTime; + public String createUser; + public long updateTime; + public String updateUser; + public String grantor; +} diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/RoleRightDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/RoleRightDTO.java index 4e3b571..9e12631 100644 --- a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/RoleRightDTO.java +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/RoleRightDTO.java @@ -36,10 +36,10 @@ /**鏂板鏁版嵁鍒涘缓鑰咃紝淇敼鑰咃紝鍒涘缓鏃堕棿锛屼慨鏀规椂闂达紝鎺堟潈鑰�***/ private String createUser = ""; - private Date createTime = new Date(); + private String createTime= ""; private String licensor = ""; private String modifyUser = ""; - private Date modifyTime = new Date(); + private String modifyTime = ""; public String getId() { return id; @@ -89,11 +89,11 @@ this.createUser = createUser; } - public Date getCreateTime() { + public String getCreateTime() { return createTime; } - public void setCreateTime(Date createTime) { + public void setCreateTime(String createTime) { this.createTime = createTime; } @@ -113,11 +113,11 @@ this.modifyUser = modifyUser; } - public Date getModifyTime() { + public String getModifyTime() { return modifyTime; } - public void setModifyTime(Date modifyTime) { + public void setModifyTime(String modifyTime) { this.modifyTime = modifyTime; } } diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/PLDefinationVO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/PLDefinationVO.java index 68d26e2..b364cdc 100644 --- a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/PLDefinationVO.java +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/PLDefinationVO.java @@ -99,7 +99,7 @@ /** * 涓氬姟绫诲瀷 */ - private String btmType = ""; + //private String btmType = ""; /** * 閾炬帴绫诲瀷 diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/PLTabButtonVO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/PLTabButtonVO.java index 647c43b..8480dbe 100644 --- a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/PLTabButtonVO.java +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/PLTabButtonVO.java @@ -1,5 +1,6 @@ package com.vci.pagemodel; +import com.vci.corba.portal.data.PLCommandParameter; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/ISmFunctionQueryService.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/ISmFunctionQueryService.java index 89cc712..4242734 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/ISmFunctionQueryService.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/ISmFunctionQueryService.java @@ -2,6 +2,7 @@ import com.vci.common.exception.VciException; import com.vci.corba.common.PLException; +import com.vci.dto.RoleInfoDTO; import com.vci.dto.RoleRightDTO; import com.vci.dto.RoleRightParamDTO; import com.vci.frameworkcore.enumpck.ResourceControlTypeEnum; @@ -176,4 +177,10 @@ * @throws PLException */ BaseResult saveRoleRight(List<RoleRightParamDTO> roleRightDTOS, String roleId) throws PLException; + /** + * 鑾峰彇鎵�鎺堟潈鐨勬ā鍧楁潈闄� + * @param roleName 鎼滅储鐨勮鑹� + * @return 瑙掕壊鍒楄〃 + */ + List<RoleInfoDTO> getRoleList(String roleName) throws PLException; } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java index 139b5d8..38889a2 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java @@ -160,6 +160,15 @@ */ List<Tree> refTreeUsers(TreeQueryObject treeQueryObject) throws VciBaseException; + /*** + * 浜哄憳鏉冮檺閫夋嫨鏍� + * @param treeQueryObject + * @return + * @throws VciBaseException + */ + List<Tree> refPersonOrgTree(TreeQueryObject treeQueryObject) throws VciBaseException; + + /** * 鏍¢獙瀵嗙爜鏄惁鐩稿悓锛屽湪鏂板钩鍙颁腑瀛樺偍鐨勫瘑鐮佹槸涓ゆmd5 * @param userOid 鐢ㄦ埛涓婚敭 diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java index a420aad..1fcb587 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java @@ -12,6 +12,7 @@ import com.vci.corba.framework.data.*; import com.vci.corba.omd.data.BusinessObject; import com.vci.corba.portal.data.PLUILayout; +import com.vci.dto.RoleInfoDTO; import com.vci.dto.RoleRightDTO; import com.vci.dto.RoleRightParamDTO; import com.vci.frameworkcore.compatibility.ISmFunctionQueryService; @@ -531,6 +532,7 @@ menuVO.setSort((int) funcObj.seq); findChildAuthFunctionVO(menuVO, isAll); functionVO.getChildren().add(menuVO); + functionVO.setHasChildren(true); } }else if(type == 2){ FuncOperationInfo[] infos = platformClientUtil.getFrameworkService().getFuncOperationByModule(functionVO.getId(), "", true); @@ -549,6 +551,7 @@ menuVO.setIsValid(info.isValid); menuVO.setHasChildren(false); functionVO.getChildren().add(menuVO); + functionVO.setHasChildren(true); } }else{ functionVO.setHasChildren(false); @@ -580,15 +583,13 @@ public List<String> getSysModelAuth(String roleId) throws PLException { RoleRightInfo[] roleRightList = platformClientUtil.getFrameworkService().getRoleRightList(roleId, WebUtil.getCurrentUserId()); - Map<String, Long> authMap = Arrays.stream(roleRightList).collect(Collectors.toMap(e -> e.funcId, e -> e.rightValue)); + Map<String, Long> authMap = Arrays.stream(roleRightList).collect(Collectors.toMap(e -> e.funcId, e -> e.rightValue, + (existing, replacement) -> existing)); String parentId; SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfoNotException(); boolean adminOrDeveloperOrRoot = rightControlUtil.isAdminOrDeveloperOrRoot(sessionInfo.getUserId()); if (adminOrDeveloperOrRoot) { //绯荤粺鑿滃崟 - parentId = SYSTEMMANAGMENTNODE; - } else if (rightControlUtil.isThreeAdminCurUser()) { - //涓夊憳杩斿洖绠$悊鍔熻兘妯″潡鐩稿叧鐨勮彍鍗� parentId = SYSTEMMANAGMENTNODE; } else { //鏅�氱敤鎴峰彧杩斿洖涓氬姟鍔熻兘妯″潡鐩稿叧鐨勮彍鍗� @@ -683,6 +684,32 @@ throw new PLException("500", new String[]{"鍔熻兘妯″潡鎺堟潈澶辫触锛�"}); } return BaseResult.success(); + } + /** + * 鑾峰彇鎵�鎺堟潈鐨勬ā鍧楁潈闄� + * @param roleName 鎼滅储鐨勮鑹� + * @return 瑙掕壊鍒楄〃 + */ + @Override + public List<RoleInfoDTO> getRoleList(String roleName) throws PLException { + RoleInfo[] roleInfos = platformClientUtil.getFrameworkService().fetchRoleInfoByUserType(WebUtil.getCurrentUserId()); + List<RoleInfoDTO> dtos = new ArrayList<>(); + for (RoleInfo roleInfo : roleInfos) { + if(StringUtils.isBlank(roleName) || roleInfo.name.indexOf(roleName) != -1) { + RoleInfoDTO dto = new RoleInfoDTO(); + dto.setName(roleInfo.name); + dto.setDescription(roleInfo.description); + dto.setId(roleInfo.id); + dto.setGrantor(roleInfo.grantor); + dto.setType(roleInfo.type); + dto.setCreateTime(roleInfo.createTime); + dto.setCreateUser(roleInfo.createUser); + dto.setUpdateTime(roleInfo.updateTime); + dto.setUpdateUser(roleInfo.updateUser); + dtos.add(dto); + } + } + return dtos; } private long countRightValue(List<RoleRightParamDTO> dtos){ @@ -1075,9 +1102,6 @@ String parentId; if (adminOrDeveloperOrRoot) { //绯荤粺鑿滃崟 - parentId = SYSTEMMANAGMENTNODE; - } else if (rightControlUtil.isThreeAdminCurUser()) { - //涓夊憳杩斿洖绠$悊鍔熻兘妯″潡鐩稿叧鐨勮彍鍗� parentId = SYSTEMMANAGMENTNODE; } else { //鏅�氱敤鎴峰彧杩斿洖涓氬姟鍔熻兘妯″潡鐩稿叧鐨勮彍鍗� diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java index 6a52208..3357a53 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java @@ -1,5 +1,7 @@ package com.vci.frameworkcore.compatibility.impl; +import com.vci.corba.framework.data.DeptInfo; +import com.vci.corba.framework.data.RoleInfo; import com.vci.dto.SmUserDTO; import com.vci.common.util.ThreeDES; import com.vci.corba.common.PLException; @@ -10,6 +12,7 @@ import com.vci.frameworkcore.compatibility.SmPwdStrategyQueryServiceI; import com.vci.frameworkcore.compatibility.SmRoleQueryServiceI; import com.vci.frameworkcore.compatibility.SmUserQueryServiceI; +import com.vci.frameworkcore.enumpck.OrgTypeEnum; import com.vci.model.SmUserDO; import com.vci.pagemodel.SmUserVO; import com.vci.po.SmUserPO; @@ -36,6 +39,7 @@ import com.vci.web.util.WebUtil; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.util.HSSFColor; +import org.apache.poi.ss.formula.functions.T; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -942,7 +946,168 @@ return treeList; } - /** + /** + * 鑾峰彇瑙掕壊鏁版嵁 + * @param treeQueryObject + * @return + * @throws VciBaseException + */ + @Override + public List<Tree> refPersonOrgTree(TreeQueryObject treeQueryObject) throws VciBaseException { + List<Tree> rootTreeList=new ArrayList<>(); + Map<String,String> conditionMap=treeQueryObject.getConditionMap(); + if(CollectionUtils.isEmpty(conditionMap)) { + conditionMap = new HashMap<>(); + } + String dataType=StringUtils.isNotBlank(conditionMap.get("dataType"))?conditionMap.get("dataType"):"";//鏁版嵁绫诲瀷 + String parentId=StringUtils.isNotBlank(conditionMap.get("parentId"))?conditionMap.get("parentId"):"";//鐖惰妭鐐� + String orgType=StringUtils.isNotBlank(conditionMap.get("orgType"))?conditionMap.get("orgType"):"";//鎺ュ彛鏌ヨ鍖呭惈鐨勭被鍨� + try { + initChildTree(dataType,orgType,parentId,rootTreeList); + } catch (PLException e) { + throw new VciBaseException("鐢ㄦ埛鏉冮檺閫夋嫨鏍戝姞杞藉け璐�:"+e.getMessage()); + } + return rootTreeList; + } + + /*** + * + * @param dataType + * @param orgType + * @param parentId + */ + private void initChildTree(String dataType,String orgType, String parentId, List<Tree>rootTreeList) throws PLException { + if(StringUtils.isBlank(parentId)){ + Tree rootTree=new Tree("root","浜哄憳缁勭粐","root"); + rootTree.setParentBtmName("root"); + rootTree.setExpanded(true); + List<Tree> childList=new ArrayList<>(); + if(OrgTypeEnum.ORG_TYPE_USER.getValue().equals(orgType)){//濡傛灉鏄汉鍛� + Tree userTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_USER.getValue(),"鐢ㄦ埛",OrgTypeEnum.ORG_TYPE_USER.getValue(),OrgTypeEnum.ORG_TYPE_USER.getValue(),rootTree); + childList.add(userTree); + }else if(OrgTypeEnum.ORG_TYPE_DEPT.getValue().equals(orgType)){//濡傛灉鏄儴闂� + Tree departmentTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_DEPT.getValue(),"閮ㄩ棬",OrgTypeEnum.ORG_TYPE_DEPT.getValue(),OrgTypeEnum.ORG_TYPE_DEPT.getValue(),rootTree); + childList.add(departmentTree); + }else if(OrgTypeEnum.ORG_TYPE_ROLE.getValue().equals(orgType)){//濡傛灉鏄鑹� + Tree roleTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_ROLE.getValue(),"瑙掕壊",OrgTypeEnum.ORG_TYPE_ROLE.getValue(),OrgTypeEnum.ORG_TYPE_ROLE.getValue(),rootTree); + childList.add(roleTree); + }else{ + Tree userTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_USER.getValue(),"鐢ㄦ埛",OrgTypeEnum.ORG_TYPE_USER.getValue(),OrgTypeEnum.ORG_TYPE_USER.getValue(),rootTree); + childList.add(userTree); + Tree departmentTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_DEPT.getValue(),"閮ㄩ棬",OrgTypeEnum.ORG_TYPE_DEPT.getValue(),OrgTypeEnum.ORG_TYPE_DEPT.getValue(),rootTree); + childList.add(departmentTree); + Tree roleTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_ROLE.getValue(),"瑙掕壊",OrgTypeEnum.ORG_TYPE_ROLE.getValue(),OrgTypeEnum.ORG_TYPE_ROLE.getValue(),rootTree); + childList.add(roleTree); + } + if(childList.size()>0){ + rootTree.setExpanded(true); + rootTree.setChildren(childList); + } + rootTreeList.add(rootTree); + }else{ + if(OrgTypeEnum.ORG_TYPE_ROOT.getValue().equals(dataType)){//濡傛灉鐖惰妭鐐规湁鍊硷紝鍒欓渶瑕佸垽鏂槸鍔犺浇浠�涔堣妭鐐� + Tree rootTree=new Tree("root","浜哄憳缁勭粐","root"); + rootTree.setParentBtmName("root"); + rootTree.setExpanded(true); + if(OrgTypeEnum.ORG_TYPE_USER.getValue().equals(orgType)){//濡傛灉鏄汉鍛� + Tree userTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_USER.getValue(),"鐢ㄦ埛",OrgTypeEnum.ORG_TYPE_USER.getValue(),OrgTypeEnum.ORG_TYPE_USER.getValue(),rootTree); + rootTreeList.add(userTree); + }else if(OrgTypeEnum.ORG_TYPE_DEPT.getValue().equals(orgType)){//濡傛灉鏄儴闂� + Tree departmentTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_DEPT.getValue(),"閮ㄩ棬",OrgTypeEnum.ORG_TYPE_DEPT.getValue(),OrgTypeEnum.ORG_TYPE_DEPT.getValue(),rootTree); + rootTreeList.add(departmentTree); + }else if(OrgTypeEnum.ORG_TYPE_ROLE.getValue().equals(orgType)){//濡傛灉鏄鑹� + Tree roleTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_ROLE.getValue(),"瑙掕壊",OrgTypeEnum.ORG_TYPE_ROLE.getValue(),OrgTypeEnum.ORG_TYPE_ROLE.getValue(),rootTree); + rootTreeList.add(roleTree); + }else{ + Tree userTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_USER.getValue(),"鐢ㄦ埛",OrgTypeEnum.ORG_TYPE_USER.getValue(),OrgTypeEnum.ORG_TYPE_USER.getValue(),rootTree); + rootTreeList.add(userTree); + Tree departmentTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_DEPT.getValue(),"閮ㄩ棬",OrgTypeEnum.ORG_TYPE_DEPT.getValue(),OrgTypeEnum.ORG_TYPE_DEPT.getValue(),rootTree); + rootTreeList.add(departmentTree); + Tree roleTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_ROLE.getValue(),"瑙掕壊",OrgTypeEnum.ORG_TYPE_ROLE.getValue(),OrgTypeEnum.ORG_TYPE_ROLE.getValue(),rootTree); + rootTreeList.add(roleTree); + } + }else if(OrgTypeEnum.ORG_TYPE_USER.getValue().equals(dataType)) {//濡傛灉浼犺繘鏉ョ殑鏄痷ser鑺傜偣 + if(OrgTypeEnum.ORG_TYPE_USER.getValue().equals(parentId)) { + Tree userTree = initDataTreeNode(OrgTypeEnum.ORG_TYPE_USER.getValue(), "鐢ㄦ埛", OrgTypeEnum.ORG_TYPE_USER.getValue(), OrgTypeEnum.ORG_TYPE_USER.getValue(), null); + UserInfo[] infos = platformClientUtil.getFrameworkService().fetchUserInfo(); + Arrays.stream(infos).forEach(info -> { + Tree childTree = initDataTreeNode(info.id, info.trueName + "(" + info.userName + ")", info, OrgTypeEnum.ORG_TYPE_USER.getValue(), userTree); + rootTreeList.add(childTree); + }); + } + }else if(OrgTypeEnum.ORG_TYPE_DEPT.getValue().equals(dataType)) {//濡傛灉鏄儴闂� + DeptInfo[] deptInfos=new DeptInfo[]{}; + Tree departmentTree=new Tree(); + if(OrgTypeEnum.ORG_TYPE_DEPT.getValue().equals(parentId)) { + departmentTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_DEPT.getValue(),"閮ㄩ棬",OrgTypeEnum.ORG_TYPE_DEPT.getValue(),OrgTypeEnum.ORG_TYPE_DEPT.getValue(),null); + deptInfos = platformClientUtil.getFrameworkService().fetchDepartmentInfo(); + }else{ + deptInfos=platformClientUtil.getFrameworkService().fetchDepartmentInfoByParentId(parentId); + DeptInfo deptInfo=platformClientUtil.getFrameworkService().fetchDepartmentInfoById(parentId); + departmentTree=initDataTreeNode(deptInfo.id,deptInfo.name,deptInfo,OrgTypeEnum.ORG_TYPE_DEPT.getValue(),null); + } + if(!CollectionUtils.isEmpty(Arrays.asList(deptInfos))){ + Tree finalDepartmentTree = departmentTree; + Arrays.stream(deptInfos).forEach(deptInfo -> { + Tree childTree=initDataTreeNode(deptInfo.id,deptInfo.name,deptInfo,OrgTypeEnum.ORG_TYPE_DEPT.getValue(), finalDepartmentTree); + rootTreeList.add(childTree); + }); + } + if(!OrgTypeEnum.ORG_TYPE_DEPT.getValue().equals(parentId)) { + UserInfo[] infos = platformClientUtil.getFrameworkService().getUserByDeptId(parentId); + if (infos != null && infos.length > 0) { + Tree finalDepartmentTree = departmentTree; + Arrays.stream(infos).forEach(info -> { + Tree childTree = initDataTreeNode(info.id, info.trueName + "(" + info.userName + ")", info, OrgTypeEnum.ORG_TYPE_USER.getValue(), finalDepartmentTree); + rootTreeList.add(childTree); + }); + } + } + + }else if(OrgTypeEnum.ORG_TYPE_ROLE.getValue().equals(dataType)) {//濡傛灉鏄鑹� + if(OrgTypeEnum.ORG_TYPE_ROLE.getValue().equals(parentId)){ + Tree roleTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_ROLE.getValue(),"瑙掕壊",OrgTypeEnum.ORG_TYPE_ROLE.getValue(),OrgTypeEnum.ORG_TYPE_ROLE.getValue(),null); + RoleInfo[] roleInfos=platformClientUtil.getFrameworkService().fetchRoleInfo(); + if(roleInfos!=null&&roleInfos.length>0) { + Arrays.stream(roleInfos).forEach(info -> { + Tree childTree = initDataTreeNode(info.id, info.name, info, OrgTypeEnum.ORG_TYPE_ROLE.getValue(), roleTree); + rootTreeList.add(childTree); + }); + } + }else{ + RoleInfo roleInfo=platformClientUtil.getFrameworkService().fetchRoleInfoById(parentId); + Tree roleTree=initDataTreeNode(roleInfo.id,roleInfo.name,roleInfo,OrgTypeEnum.ORG_TYPE_ROLE.getValue(),null); + UserInfo[] infos=platformClientUtil.getFrameworkService().fetchUserInfoByRoleId(roleInfo.id,roleInfo.type); + if(infos!=null&&infos.length>0) { + Arrays.stream(infos).forEach(info -> { + Tree childTree = initDataTreeNode(info.id, info.trueName + "(" + info.userName + ")", info, OrgTypeEnum.ORG_TYPE_USER.getValue(), roleTree); + rootTreeList.add(childTree); + }); + } + } + } + } + } + + /*** + * + * @param oid + * @param text + * @param o + * @param type + * @param parentTree + * @return + */ + private Tree initDataTreeNode(String oid,String text,Object o,String type,Tree parentTree){ + Tree ObjectTreeNode=new Tree(oid,text,o); + ObjectTreeNode.setParentBtmName(type); + if(parentTree!=null) { + ObjectTreeNode.setParentId(parentTree.getParentId()); + ObjectTreeNode.setParentName(parentTree.getParentName()); + } + return ObjectTreeNode; + } + /** * 鏍¢獙瀵嗙爜鏄惁鐩稿悓锛屽湪鏂板钩鍙颁腑瀛樺偍鐨勫瘑鐮佹槸涓ゆmd5 * @param userOid 鐢ㄦ埛涓婚敭 * @param md5Password 宸茬粡md5鍔犲瘑涓�娆$殑瀵嗙爜--鑰佺殑骞冲彴閲屼笉鑳藉姞瀵� diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmUserQueryController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmUserQueryController.java index 375ec71..c13c9ac 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmUserQueryController.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmUserQueryController.java @@ -348,4 +348,19 @@ } } + /** + * 鐢ㄦ埛鏉冮檺閫夋嫨鏍� + * @param treeQueryObject 鏍戝舰鏁版嵁鐨勬煡璇㈠璞★紝鍖呮嫭鏌ヨ鏉′欢锛屼笂绾т富閿紝鏄惁澶氶�夌瓑锛屽嵆鍏佽浣跨敤SmUserVO閲岀殑鎵�鏈夊睘鎬т綔涓烘煡璇㈡潯浠讹紝涔熷彲浠ヤ娇鐢╬kRole.xxx锛宲kDepartment.xxx,pkDuty.xxx杩欐牱鏉ユ煡璇� + * @return 鏅�氱敤鎴凤紙涓嶅寘鍚笁鍛橈紝涔熶笉鍖呭惈鍋滅敤鐨勶級鐨勬爲褰㈡暟鎹紝宸茬粡杞崲杩囦笂涓嬬骇鍏崇郴锛岃鑾峰彇鍏朵腑鐨則reeData灞炴�� + * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父锛屽鏋滄槸鑰佺殑椤圭洰閲屼笉鎶涘嚭寮傚父 + */ + @RequestMapping(value = "/refPersonOrgTree",method = RequestMethod.GET) + public BaseResult<Tree> refPersonOrgTree(TreeQueryObject treeQueryObject) throws VciBaseException{ + List<Tree> userTreeList = userQueryService.refPersonOrgTree(treeQueryObject); + return BaseResult.tree(userTreeList); + //鑰佺殑椤圭洰渚濈劧鏄坊鍔爐ry catch锛屾柟娉曢噷涓嶆姏鍑哄紓甯� + //BaseResult.fail("杩欓噷杩斿洖鍓嶇鐨勯敊璇俊鎭�"); + } + + } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/enumpck/OrgTypeEnum.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/enumpck/OrgTypeEnum.java new file mode 100644 index 0000000..c1552b2 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/enumpck/OrgTypeEnum.java @@ -0,0 +1,112 @@ +package com.vci.frameworkcore.enumpck; +import com.vci.starter.web.enumpck.BaseEnum; + +/** + * @author xj + * @date 2024-09-12 + * 浜哄憳閫夋嫨缁勭粐绫诲瀷 + */ +public enum OrgTypeEnum implements BaseEnum { + /** + * 鏍规帴鐐� + */ + ORG_TYPE_ROOT("root","浜哄憳缁勭粐"), + + /** + * 鏌ヨ鎵�鏈夌被鍨嬶細浜哄憳锛岄儴闂紝瑙掕壊 + */ + ORG_TYPE_ALL("all","鎵�鏈�"), + /** + * 閮ㄩ棬 + */ + ORG_TYPE_DEPT("department","閮ㄩ棬"), + + /** + * 瑙掕壊 + */ + ORG_TYPE_ROLE("role","瑙掕壊"), + + ORG_TYPE_USER("user","浜哄憳"); + + /** + * 鏋氫妇鐨勫�� + */ + private String value; + + /** + * 鏋氫妇鏄剧ず鏂囨湰 + */ + private String text; + + /** + * 鑾峰彇鏋氫妇鍊� + * @return 鏋氫妇鍊� + */ + @Override + public String getValue() { + return value; + } + + /** + * 璁剧疆鏋氫妇鍊� + * @param value 鏋氫妇鍊� + */ + public void setValue(String value) { + this.value = value; + } + + /** + * 鑾峰彇鏋氫妇鏄剧ず鏂囨湰 + * @return 鏄剧ず鏂囨湰 + */ + @Override + public String getText() { + return text; + } + + /** + * 璁剧疆鏄剧ず鏂囨湰 + * @param text 鏄剧ず鏂囨湰 + */ + public void setText(String text) { + this.text = text; + } + + /** + * 鏋勯�犲嚱鏁� + * @param value 鍊� + * @param text 鏄剧ず鏂囨湰 + */ + private OrgTypeEnum(String value, String text){ + this.value = value; + this.text = text; + } + + /** + * 鏍规嵁鍚嶇О鑾峰彇瀵瑰簲鐨勬灇涓惧�� + * @param text 鍚嶇О + * @return 鏋氫妇鍊� + */ + public static String getValueByText(String text){ + for(OrgTypeEnum wenum : OrgTypeEnum.values()){ + if(wenum.getText().equalsIgnoreCase(text)){ + return wenum.getValue(); + } + } + return ""; + } + + /** + * 鏍规嵁鏋氫妇鍊艰幏鍙栧悕绉� + * @param value 鏋氫妇鍊� + * @return 鍚嶇О + */ + public static String getTextByValue(String value){ + for(OrgTypeEnum wenum : OrgTypeEnum.values()){ + if(wenum.getValue().equalsIgnoreCase(value)){ + return wenum.getText(); + } + } + return ""; + } +} diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/HMSysModConfigController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/HMSysModConfigController.java index 858f465..98b5e18 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/HMSysModConfigController.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/HMSysModConfigController.java @@ -4,6 +4,7 @@ import com.vci.corba.common.PLException; import com.vci.corba.framework.data.FuncOperationInfo; import com.vci.corba.framework.data.OperateInfo; +import com.vci.dto.RoleInfoDTO; import com.vci.dto.RoleRightDTO; import com.vci.dto.RoleRightParamDTO; import com.vci.frameworkcore.compatibility.ISmFunctionQueryService; @@ -110,6 +111,23 @@ } /** + * 瑙掕壊鍒楄〃 + * @param roleName 鎼滅储鐨勮鑹� + * @return 瑙掕壊鍒楄〃 + */ + @GetMapping("/getRoleList") + public BaseResult<List<RoleInfoDTO>> getRoleList(String roleName) { + try { + return BaseResult.dataList(functionQueryService.getRoleList(roleName)); + }catch (Exception e){ + e.printStackTrace(); + String errorMsg = "鏌ヨ鏃跺嚭鐜伴敊璇紝鍘熷洜锛�"+ VciBaseUtil.getExceptionMessage(e); + logger.error(errorMsg); + throw new VciBaseException(errorMsg); + } + } + + /** * 淇濆瓨鎺堟潈鐨勬ā鍧� * @param roleRightDTOS 鐢ㄦ埛閫夋嫨鎺堟潈妯″潡淇℃伅 * @param roleId 瑙掕壊涓婚敭 diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsActionController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsActionController.java index 56ff805..ec90618 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsActionController.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsActionController.java @@ -82,6 +82,24 @@ } /** + * 鍒犻櫎鍒嗙被 + * @param dto 鍒嗙被瀵硅薄 + * @return 澶勭悊缁撴灉 + * @throws PLException + */ + @DeleteMapping("/deleteActionCls") + public BaseResult deleteActionCls(@RequestBody PLActionClsDTO dto){ + try { + return osActionServiceI.deleteActionCls(dto); + } catch (PLException e) { + BaseResult objectBaseResult = new BaseResult<>(); + objectBaseResult.setCode(Integer.parseInt(e.code)); + objectBaseResult.setMsg(Arrays.toString(e.messages)); + return objectBaseResult; + } + } + + /** * 鑾峰彇Action琛ㄦ牸鏁版嵁 * dto 鏌ヨ鏉′欢 * @return 鏌ヨ缁撴灉 @@ -234,4 +252,20 @@ return objectBaseResult; } } + /** + * 鏌ヨAction鍙傛暟鍒楄〃鏁版嵁 + * actionOid 鍙傛暟涓婚敭 + * @return 淇濆瓨缁撴灉 + */ + @GetMapping("/getPLActionParam") + public BaseResult getPLActionParam(String actionOid){ + try { + return osActionServiceI.getPLActionParam(actionOid); + } catch (PLException e) { + BaseResult objectBaseResult = new BaseResult<>(); + objectBaseResult.setCode(Integer.parseInt(e.code)); + objectBaseResult.setMsg(Arrays.toString(e.messages)); + return objectBaseResult; + } + } } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java index a0795b9..0e37319 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java @@ -1,20 +1,26 @@ package com.vci.web.controller; +import cn.hutool.core.io.FileUtil; +import com.vci.constant.FrameWorkLangCodeConstant; import com.vci.corba.common.PLException; -import com.vci.corba.portal.data.PLPageDefination; import com.vci.corba.portal.data.PLTabPage; import com.vci.corba.portal.data.PLUILayout; import com.vci.dto.UIAuthorDTO; import com.vci.pagemodel.PLDefinationVO; +import com.vci.pagemodel.PLTabButtonVO; import com.vci.pagemodel.PLUILayoutCloneVO; import com.vci.starter.web.annotation.log.VciBusinessLog; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.BaseQueryObject; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.starter.web.pagemodel.DataGrid; +import com.vci.starter.web.util.ControllerUtil; +import com.vci.starter.web.util.LocalFileUtil; import com.vci.starter.web.util.VciBaseUtil; import com.vci.web.service.OsBtmServiceI; import com.vci.web.service.UIManagerServiceI; +import com.vci.web.util.Func; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -22,10 +28,12 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; -import javax.xml.crypto.Data; +import java.io.File; import java.io.IOException; -import java.util.Comparator; +import java.util.Arrays; +import java.util.Date; import java.util.List; +import java.util.Map; /** * UI瀹氫箟鎺у埗灞� @@ -160,26 +168,76 @@ } /** + * 鏌ヨ瑕佸鍑篣I涓婁笅鏂囨爲 + * @param expDatas + * @return + * @throws PLException + */ + @GetMapping( "/getExpContextTree") + @VciBusinessLog(operateName = "鏌ヨ瑕佸鍑篣I涓婁笅鏂囨爲") + public BaseResult getExpContextTree(String[] expDatas){ + try { + return BaseResult.success(uiManagerService.getExpContextTree(Arrays.asList(expDatas)),"Success"); + }catch (Exception e) { + e.printStackTrace(); + String exceptionMessage = "鏌ヨ瑕佸鍑篣I涓婁笅鏂囨爲鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** * 瀵煎嚭UI涓婁笅鏂� * name 閾炬帴绫诲瀷鍚嶇О * @return */ - @GetMapping("/expUIContextData") - public void expUIContextData(String[] oids, HttpServletResponse response) throws PLException, IOException { - uiManagerService.expUIContextData(oids, response); + @PostMapping("/expUIContextData") + public void expUIContextData(@RequestBody Map<String,String> expConditionMap, HttpServletResponse response) throws PLException, IOException { + try { + String excelPath = uiManagerService.expUIContextData(expConditionMap); + ControllerUtil.writeFileToResponse(response,excelPath); + FileUtil.del(LocalFileUtil.getDefaultTempFolder() + File.separator); + } catch (Exception e) { + String msg = "瀵煎嚭UI涓婁笅鏂囨椂鍑虹幇閿欒锛屽師鍥狅細" + VciBaseUtil.getExceptionMessage(e); + try { + //鍑洪敊鏃� + e.printStackTrace(); + ControllerUtil.writeDataToResponse(response,"error_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss") + ".txt", StringUtils.isNotBlank(msg)?msg.getBytes():new byte[0],null); + } catch (IOException ioException) { + ioException.printStackTrace(); + } + } } /** * 瀵煎叆UI涓婁笅鏂� * @param file 涓婁紶鐨勬枃浠� + * @param isCovered 鏄惁瑕嗙洊 + * @param selectBtm 閫夋嫨瀵煎叆鍒扮殑涓氬姟绫诲瀷 * @return */ - @PostMapping("/impUiContextData") - public BaseResult impUIContextData(MultipartFile file){try { - return uiManagerService.impUIContextData(file); - }catch (Throwable e) { - throw new VciBaseException(VciBaseUtil.getExceptionMessage(e),new String[0],e); - } + @PostMapping("/impUIContextData") + public BaseResult impUIContextData(MultipartFile file, boolean isCovered,String selectBtm){ + File file1 = null; + try { + //瑕嗙洊锛屼笉闇�瑕佷紶file + if(!isCovered){ + String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + LocalFileUtil.getFileNameForIE(file.getOriginalFilename()); + file1 = new File(excelFileName); + file.transferTo(new File(excelFileName)); + } + if (file != null || isCovered) { + return uiManagerService.impUIContextData(file1, isCovered,selectBtm); + } else { + return BaseResult.fail(FrameWorkLangCodeConstant.IMPORT_FAIL, new String[]{"鏃犲鍏ョ殑鏂囦欢"}); + } + }catch (Throwable e) { + throw new VciBaseException(VciBaseUtil.getExceptionMessage(e),new String[0],e); + }finally { + if(!isCovered){ + file1.delete(); + } + } } /** @@ -339,6 +397,110 @@ } } + //椤甸潰璁捐涓嬮厤缃寜閽浉鍏虫帴鍙� + /** + * 鑾峰彇椤电鍖哄煙鎸夐挳閰嶇疆淇℃伅 + * @param pageDefinationOid + * @return + */ + @GetMapping( "/getTabButtons") + @VciBusinessLog(operateName = "鑾峰彇椤电鍖哄煙鎸夐挳閰嶇疆淇℃伅") + public BaseResult getTabButtons(String pageDefinationOid){ + try { + return BaseResult.dataList(uiManagerService.getTabButtons(pageDefinationOid)); + }catch (Exception e) { + e.printStackTrace(); + String exceptionMessage = "鑾峰彇椤电鍖哄煙鎸夐挳閰嶇疆淇℃伅鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * 娣诲姞鎸夐挳閰嶇疆淇℃伅 + * @param tabButtonVO + * @return 淇濆瓨缁撴灉 + */ + @PostMapping("/addTapButton") + public BaseResult addTapButton(@RequestBody PLTabButtonVO tabButtonVO){ + try { + return uiManagerService.addTapButton(tabButtonVO); + } catch (Throwable e) { + e.printStackTrace(); + String exceptionMessage = "鎸夐挳閰嶇疆淇℃伅娣诲姞鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * 淇敼鎸夐挳閰嶇疆淇℃伅 + * @param tabButtonVO + * @return 淇敼缁撴灉 + */ + @PutMapping("/updateTapButton") + public BaseResult updateTapButton(@RequestBody PLTabButtonVO tabButtonVO){ + try { + return uiManagerService.updateTapButton(tabButtonVO); + } catch (Throwable e) { + e.printStackTrace(); + String exceptionMessage = "淇敼鎸夐挳閰嶇疆淇℃伅鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * 鍒犻櫎鍗曚釜鎸夐挳閰嶇疆 + * @param tabButtonVO + * @return + */ + @DeleteMapping("/deleteTapButton") + public BaseResult deleteTapButton(@RequestBody PLTabButtonVO tabButtonVO){ + try { + return uiManagerService.deleteTapButton(tabButtonVO) ? BaseResult.success("鍒犻櫎鍗曚釜鎸夐挳閰嶇疆鎴愬姛锛�"):BaseResult.fail("鍒犻櫎鍗曚釜鎸夐挳閰嶇疆澶辫触锛�"); + } catch (PLException e) { + e.printStackTrace(); + String exceptionMessage = "鍒犻櫎鍗曚釜鎸夐挳閰嶇疆鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * 璋冩暣涓轰笅绾ф寜閽� + * @param tabButtonVO + * @return 淇敼缁撴灉 + */ + @PutMapping("/joinBtn") + public BaseResult joinBtn(@RequestBody PLTabButtonVO tabButtonVO){ + try { + return uiManagerService.joinBtn(tabButtonVO); + } catch (Throwable e) { + e.printStackTrace(); + String exceptionMessage = "璋冩暣涓轰笅绾ф寜閽椂鍑虹幇閿欒锛屽師鍥狅細" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * 璋冩暣涓轰笂绾ф寜閽� + * @param tabButtonVO + * @return 淇敼缁撴灉 + */ + @PutMapping("/exitBtn") + public BaseResult exitBtn(@RequestBody PLTabButtonVO tabButtonVO){ + try { + return uiManagerService.exitBtn(tabButtonVO); + } catch (Throwable e) { + e.printStackTrace(); + String exceptionMessage = "璋冩暣涓轰笂绾ф寜閽椂鍑虹幇閿欒锛屽師鍥狅細" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + /** * 鏍规嵁瑙掕壊鑾峰彇UI/琛ㄥ崟/鎸夐挳鐨勬潈闄�. * @param baseQueryObject @@ -363,7 +525,7 @@ */ @PostMapping( "/authorizedUI") @VciBusinessLog(operateName = "UI鎺堟潈") - public BaseResult authorizedUI(UIAuthorDTO uiAuthorDTO){ + public BaseResult authorizedUI(@RequestBody UIAuthorDTO uiAuthorDTO){ try { return uiManagerService.authorizedUI(uiAuthorDTO)?BaseResult.success("鎺堟潈鎴愬姛!"):BaseResult.fail("鎺堟潈澶辫触锛�"); }catch (Throwable e) { diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/data.s.json b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/data.s.json new file mode 100644 index 0000000..57196ad --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/data.s.json @@ -0,0 +1,94 @@ +{ + "code": 200, + "data": null, + "exceptionClassName": null, + "exceptionCode": null, + "exceptionObjs": null, + "finishTime": 1726130668800, + "msg": "", + "msgObjs": null, + "obj": null, + "requestTraceId": null, + "success": true, + "total": 0, + "traceId": "71bfe687-1112-47c3-9fe5-45ae9f7b7228", + "treeData": [ + { + "attributes": {}, + "checked": false, + "children": [ + { + "attributes": {}, + "checked": false, + "children": [], + "data": "user", + "expanded": false, + "href": null, + "icon": null, + "iconCls": null, + "index": null, + "leaf": false, + "level": 0, + "oid": "user", + "parentBtmName": "user", + "parentId": null, + "parentName": null, + "showCheckbox": false, + "text": "鐢ㄦ埛" + }, + { + "attributes": {}, + "checked": false, + "children": [], + "data": "department", + "expanded": false, + "href": null, + "icon": null, + "iconCls": null, + "index": null, + "leaf": false, + "level": 0, + "oid": "department", + "parentBtmName": "department", + "parentId": null, + "parentName": null, + "showCheckbox": false, + "text": "閮ㄩ棬" + }, + { + "attributes": {}, + "checked": false, + "children": [], + "data": "role", + "expanded": false, + "href": null, + "icon": null, + "iconCls": null, + "index": null, + "leaf": false, + "level": 0, + "oid": "role", + "parentBtmName": "role", + "parentId": null, + "parentName": null, + "showCheckbox": false, + "text": "瑙掕壊" + } + ], + "data": "root", + "expanded": true, + "href": null, + "icon": null, + "iconCls": null, + "index": null, + "leaf": false, + "level": 0, + "oid": "root", + "parentBtmName": "root", + "parentId": null, + "parentName": null, + "showCheckbox": false, + "text": "浜哄憳缁勭粐" + } + ] +} \ No newline at end of file diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/ItemTypeEnum.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/ItemTypeEnum.java index 8db2a92..c7364b5 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/ItemTypeEnum.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/ItemTypeEnum.java @@ -183,7 +183,7 @@ if (isText) { value = itemTypeEnum.getText(); } else { - value = itemTypeEnum.getText(); + value = itemTypeEnum.getValue(); } } return value; diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsActionServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsActionServiceI.java index 95e28e9..5cf2c13 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsActionServiceI.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsActionServiceI.java @@ -93,4 +93,17 @@ * @return 淇濆瓨缁撴灉 */ BaseResult deletePLActionParam(String oid) throws PLException; + /** + * 鏌ヨAction鍙傛暟鍒楄〃鏁版嵁 + * actionOid 鍙傛暟涓婚敭 + * @return 淇濆瓨缁撴灉 + */ + BaseResult getPLActionParam(String actionOid) throws PLException; + /** + * 鍒犻櫎鍒嗙被 + * @param dto 鍒嗙被瀵硅薄 + * @return 澶勭悊缁撴灉 + * @throws PLException + */ + BaseResult deleteActionCls(PLActionClsDTO dto) throws PLException; } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java index 3b4f001..3f393ba 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java @@ -1,9 +1,7 @@ package com.vci.web.service; import com.vci.corba.common.PLException; -import com.vci.corba.portal.data.PLTabButton; import com.vci.corba.portal.data.PLUILayout; -import com.vci.corba.portal.data.PLPageDefination; import com.vci.corba.portal.data.PLTabPage; import com.vci.pagemodel.PLTabButtonVO; import com.vci.pagemodel.PLUILayoutCloneVO; @@ -16,8 +14,10 @@ import com.vci.pagemodel.PLDefinationVO; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.IOException; import java.util.List; +import java.util.Map; /** * @author ludc @@ -63,18 +63,25 @@ boolean cloneUIContextData(PLUILayoutCloneVO pluiLayoutCloneVO) throws PLException; /** + * 鏍规嵁鍕鹃�夌殑鏉′欢鑾峰彇闇�瑕佸鍑虹殑ui涓婁笅鏂囨爲 + * @param expDatas + * @return + */ + Tree getExpContextTree(List<String> expDatas); + + /** * 瀵煎嚭ui涓婁笅鏂�(鍕鹃�夌殑瑕佸鍑虹殑鎺у埗鍖虹殑鏁版嵁) * oids * @return */ - void expUIContextData(String[] oids, HttpServletResponse response) throws PLException, IOException; + String expUIContextData(Map<String,String> expConditionMap) throws PLException, IOException; /** * 瀵煎叆UI涓婁笅鏂� * @param file * @return */ - BaseResult impUIContextData(MultipartFile file); + BaseResult impUIContextData(File file, boolean isCovered,String selectBtm); //鍖哄煙鐩稿叧鏌ヨ銆佹坊鍔犮�佸垹闄ゃ�佷慨鏀圭瓑鎺ュ彛 /** @@ -170,24 +177,24 @@ /** * 鍒犻櫎鍗曚釜鎸夐挳閰嶇疆 - * @param tabButton + * @param tabButtonVO * @return */ - boolean deleteTapButton(PLTabButton tabButton) throws PLException; + boolean deleteTapButton(PLTabButtonVO tabButtonVO) throws PLException; /** * 璋冩暣涓轰笅绾ф寜閽� - * @param plTabButton + * @param tabButtonVO * @return */ - BaseResult joinBtn(PLTabButton plTabButton) throws PLException; + BaseResult joinBtn(PLTabButtonVO tabButtonVO) throws PLException; /** * 璋冩暣涓轰笂绾ф寜閽� - * @param plTabButton + * @param tabButtonVO * @return */ - BaseResult exitBtn(PLTabButton plTabButton) throws PLException; + BaseResult exitBtn(PLTabButtonVO tabButtonVO) throws PLException; /** * 鑾峰彇UI鏉冮檺鏍� @@ -204,6 +211,5 @@ * @throws Exception */ boolean authorizedUI(UIAuthorDTO uiAuthorDTO)throws Exception; - } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsActionServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsActionServiceImpl.java index fd3d7b9..80c21c9 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsActionServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsActionServiceImpl.java @@ -127,6 +127,7 @@ PLActionCls[] clses = platformClientUtil.getUIService().getPLActionClsArray(); PLActionClsDTO treDto = new PLActionClsDTO(); treDto.setName("Action鍒嗙被"); + treDto.setId("root"); Map<String, List<PLActionCls>> allDataMap = Arrays.stream(clses).collect(Collectors.groupingBy(pl -> pl.pid)); for (PLActionCls cls : clses) { @@ -134,7 +135,7 @@ PLActionClsDTO parentDto = new PLActionClsDTO(); parentDto.setId(cls.id); parentDto.setName(cls.name); - parentDto.setPid(cls.pid); + parentDto.setPid("root"); parentDto.setDescription(cls.description); parentDto.setCreator(cls.creator); parentDto.setCreateTime(cls.createTime); @@ -186,7 +187,7 @@ Constraint[] consArray ; if(StringUtils.isNotBlank(dto.getPlactioncls())){ consArray = new Constraint[7]; - consArray[6] = new Constraint("plactioncls", dto.getPlactioncls()); + consArray[6] = new Constraint("plactioncls", dto.getPlactioncls().equals("root") ? "": dto.getPlactioncls()); }else { consArray = new Constraint[6]; } @@ -565,6 +566,57 @@ } return BaseResult.success(); } + /** + * 鏌ヨAction鍙傛暟鍒楄〃鏁版嵁 + * actionOid 鍙傛暟涓婚敭 + * @return 淇濆瓨缁撴灉 + */ + @Override + public BaseResult getPLActionParam(String actionOid) throws PLException { + if (StringUtils.isBlank(actionOid)){ + throw new PLException("500", new String[]{"Action涓婚敭涓嶈兘涓虹┖锛�"}); + } + PLActionParam[] paramArrays = platformClientUtil.getUIService().getPLActionParamArrayByActionId(actionOid); + List<PLActionParamDTO> dtos = new ArrayList<>(); + for (PLActionParam paramArray : paramArrays) { + PLActionParamDTO dto = new PLActionParamDTO(); + dto.setAction(paramArray.action); + dto.setOid(paramArray.oid); + dto.setName(paramArray.name); + dto.setDescription(paramArray.description); + dto.setDefaultValue(paramArray.defaultValue); + dtos.add(dto); + } + return BaseResult.dataList(dtos); + } + + /** + * 鍒犻櫎鍒嗙被 + * @param dto 鍒嗙被瀵硅薄 + * @return 澶勭悊缁撴灉 + * @throws PLException + */ + @Override + public BaseResult deleteActionCls(PLActionClsDTO dto) throws PLException { + PLActionCls[] clses = platformClientUtil.getUIService().getPLActionClsArray(); + // 灏嗘墍鏈夊垎绫荤埗鍒嗙被淇濆瓨 + HashSet<String> clsPids = new HashSet<String>(); + for (PLActionCls plActionCls : clses) { + clsPids.add(plActionCls.pid); + } + if (dto.getName().equals("鏈垎绫�")) { + throw new PLException("500", new String[]{"鏈垎绫讳笉鑳藉垹闄�!"}); + } + if (clsPids.contains(dto.getId())) { + throw new PLException("500", new String[]{"璇ュ垎绫讳笅瀛樺湪瀛愬垎绫讳笉鑳藉垹闄わ紒\n璇峰垹闄ゆ鍒嗙被涓嬬殑瀛愬垎绫伙紒"}); + } + // 鎵ц鍒犻櫎鎿嶄綔 + String message = platformClientUtil.getUIService().deletePLActionClsById(dto.getId()); + if (message.startsWith("0")) { + throw new PLException("500", new String[]{"鍒犻櫎鍒嗙被澶辫触锛�" + message.substring(1)}); + } + return BaseResult.success("鍒嗙被鍒犻櫎鎴愬姛锛�" + message.substring(1)); + } public boolean isValidPageForamt(PLActionExpDTO plActionExpDTO) throws PLException { diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java index 408a5c2..3ef9a19 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java @@ -2,27 +2,29 @@ import com.vci.common.utility.ObjectUtility; import com.vci.corba.common.PLException; +import com.vci.corba.common.data.UserEntityInfo; import com.vci.corba.framework.data.RoleRightInfo; import com.vci.corba.omd.btm.BizType; import com.vci.corba.portal.PortalService; import com.vci.corba.portal.data.*; import com.vci.dto.RoleRightDTO; import com.vci.dto.UIAuthorDTO; -import com.vci.frameworkcore.compatibility.SmRoleQueryServiceI; import com.vci.model.PLDefination; import com.vci.pagemodel.*; +import com.vci.starter.poi.bo.*; +import com.vci.starter.poi.util.ExcelUtil; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.*; import com.vci.starter.web.pagemodel.BaseQueryObject; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.pagemodel.SessionInfo; -import com.vci.starter.web.util.VciBaseUtil; -import com.vci.starter.web.util.VciDateUtil; -import com.vci.starter.web.util.WebThreadLocalUtil; +import com.vci.starter.web.util.*; +import com.vci.web.redis.RedisService; import com.vci.web.service.OsBtmServiceI; import com.vci.web.service.UIManagerServiceI; import com.vci.web.util.*; +import com.vci.web.util.BeanUtil; import org.apache.commons.lang3.StringUtils; import com.vci.web.util.Func; import com.vci.web.util.PlatformClientUtil; @@ -33,13 +35,11 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import javax.swing.*; -import javax.swing.tree.TreePath; -import java.io.IOException; +import java.io.File; import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; import java.util.regex.Pattern; @@ -57,6 +57,12 @@ @Resource private PlatformClientUtil platformClientUtil; + /** + * 缂撳瓨宸ュ叿 + */ + @Resource + private RedisService redisService; + /*** * 鏄惁鏄鐞嗗憳 */ @@ -73,6 +79,11 @@ * 鏃ュ織 */ private Logger logger = LoggerFactory.getLogger(getClass()); + + /** + * 瀵煎叆鏁版嵁鐨剆heet闆嗗悎 + */ + private final String IMPORTUIKEY = "importUIKey:"; /** * 鎺掑簭姣旇緝鍣� @@ -136,7 +147,7 @@ public List<PLUILayout> getUIContextDataByBtName(String btemName,String context) throws PLException { VciBaseUtil.alertNotNull(btemName,"涓氬姟绫诲瀷"); List<PLUILayout> pluiLayoutList=new ArrayList<>(); - List<String> contextList= VciBaseUtil.str2List(context); + List<String> contextList= new ArrayList<>(); if(StringUtils.isNotBlank(context)){ contextList=VciBaseUtil.str2List(context); }else{ @@ -313,23 +324,526 @@ } /** + * 鏍规嵁鍕鹃�夌殑鏉′欢鑾峰彇闇�瑕佸鍑虹殑ui涓婁笅鏂囨爲 + * @param expDatas + * @return + */ + @Override + public Tree getExpContextTree(List<String> expDatas) { + VciBaseUtil.alertNotNull(expDatas,"瀵煎嚭鏌ヨ鍒楄〃"); + Tree tree = new Tree(); + String newObjectID36 = ObjectUtility.getNewObjectID36(); + tree.setOid(newObjectID36); + tree.setText("鍖哄煙"); + tree.setLevel(0); + List<Tree> treeList = new ArrayList<>(); + expDatas.stream().forEach(oid->{ + try { + PLUILayout pluiLayout = platformClientUtil.getUIService().getPLUILayoutById(oid); + if(Func.isNotEmpty(pluiLayout) && Func.isNotBlank(pluiLayout.plOId)){ + Tree tree1 = new Tree(); + tree1.setText(pluiLayout.plName); + tree1.setOid(pluiLayout.plOId); + tree1.setLevel(1); + tree1.setParentId(newObjectID36); + //鏌ヨ + PLTabPage[] plTabPages = platformClientUtil.getUIService().getPLTabPagesByPageDefinationOId(pluiLayout.plOId); + List<Tree> treeChildrens = new ArrayList<>(); + Arrays.stream(plTabPages).forEach(item->{ + Tree tree2 = new Tree(); + tree2.setLeaf(true); + tree2.setOid(item.plOId); + tree2.setText(item.plName); + tree2.setLevel(2); + tree2.setParentId(item.plContextOId); + treeChildrens.add(tree2); + }); + tree1.setChildren(treeChildrens); + treeList.add(tree1); + } + } catch (PLException e) { + e.printStackTrace(); + } + }); + + tree.setChildren(treeList); + return tree; + } + + /** * 瀵煎嚭ui涓婁笅鏂�(鍕鹃�夌殑瑕佸鍑虹殑鎺у埗鍖虹殑鏁版嵁) * oids * @return */ @Override - public void expUIContextData(String[] oids, HttpServletResponse response) throws PLException, IOException { + public String expUIContextData(Map<String,String> expConditionMap) throws PLException { + if(Func.isEmpty(expConditionMap)){ + throw new PLException("500",new String[]{"璇峰嬀閫夎瀵煎嚭鐨刄I涓婁笅鏂囨暟鎹�!"}); + } + //鐣岄潰娌′紶鍚嶇О锛屼娇鐢ㄩ粯璁ゅ鍑哄悕绉� + String exportFileName = "UI涓婁笅鏂囧鍑篲" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss"); + //璁剧疆鍒楀悕 + /*List<String> columns = Arrays.asList( + "鎵�灞炰笟鍔$被鍨�","鍚嶇О", "UI涓婁笅鏂�", "瀵艰埅鍖�", "鎺у埗鍖�","鎿嶄綔鍖�", + "椤电搴忓彿","鍖哄煙缂栫爜","鍖哄煙鍚嶇О","鏄惁鍚敤","鏄剧ず琛ㄨ揪寮�", "UI瑙f瀽绫�", + "鎵╁睍灞炴��", "鎻忚堪","椤甸潰璁捐淇℃伅","椤甸潰涓嬮厤缃殑鎸夐挳" + );*/ + //鍐檈xcel + String excelPath = LocalFileUtil.getDefaultTempFolder() + File.separator + exportFileName + ".xls"; + try { + new File(excelPath).createNewFile(); + } catch (Throwable e) { + throw new VciBaseException(LangBaseUtil.getErrorMsg(e), new String[]{excelPath}, e); + } + //璁剧疆鍒� + List<WriteExcelData> pldDataList = new ArrayList<>(); + List<WriteExcelData> tpDataList = new ArrayList<>(); + List<WriteExcelData> pdDataList = new ArrayList<>(); + List<WriteExcelData> tbDataList = new ArrayList<>(); + List<WriteExcelData> cpDataList = new ArrayList<>(); + //璁剧疆鍒楀ご + /*for (int index = 0; index < columns.size(); index++) { + excelDataList.add(new WriteExcelData(0,index, columns.get(index))); + }*/ + AtomicInteger pldRow = new AtomicInteger(0); + AtomicInteger tpRow = new AtomicInteger(0); + AtomicInteger pdRow = new AtomicInteger(0); + AtomicInteger tbRow = new AtomicInteger(0); + AtomicInteger cpRow = new AtomicInteger(0); + + expConditionMap.entrySet().stream().forEach(item->{ + //key瀛樻斁鐨剈i涓婁笅鏂囩殑id + try { + PLUILayout pluiLayout = platformClientUtil.getUIService().getPLUILayoutById(item.getKey()); + pldDataList.add(new WriteExcelData(pldRow.get(),0, pluiLayout.plOId)); + pldDataList.add(new WriteExcelData(pldRow.get(),1, pluiLayout.plCode)); + pldDataList.add(new WriteExcelData(pldRow.get(),2, pluiLayout.plName)); + pldDataList.add(new WriteExcelData(pldRow.get(),3, pluiLayout.plRelatedType)); + pldDataList.add(new WriteExcelData(pldRow.get(),4, pluiLayout.plIsShowForm)); + pldDataList.add(new WriteExcelData(pldRow.get(),5, pluiLayout.plIsShowNavigator)); + pldDataList.add(new WriteExcelData(pldRow.get(),6, pluiLayout.plIsShowTab)); + pldRow.getAndIncrement(); + + //value涓瓨鏀剧殑澶氫釜浠ラ�楀彿闂撮殧鐨勯〉绛緄d,閫氳繃杩欎釜id鏌ヨ鍑哄叾涓嬬殑椤甸潰璁捐鍜屾寜閽厤缃� + List<String> plTabPageOIds = Arrays.asList(item.getValue().split(",")); + if(Func.isNotEmpty(pluiLayout) && Func.isNotBlank(pluiLayout.plOId) && Func.isNotEmpty(plTabPageOIds)){ + PLTabPage[] plTabPages = platformClientUtil.getUIService().getPLTabPagesByPageDefinationOId(pluiLayout.plOId); + List<PLTabPage> filterTabPages = Arrays.stream(plTabPages).filter(plTabPage -> plTabPageOIds.contains(plTabPage.plOId)).collect(Collectors.toList()); + filterTabPages.stream().forEach(tabPage->{ + //鍖哄煙瀹氫箟 + tpDataList.add(new WriteExcelData(tpRow.get(),0, tabPage.plOId)); + tpDataList.add(new WriteExcelData(tpRow.get(),1, tabPage.plSeq)); + tpDataList.add(new WriteExcelData(tpRow.get(),2, tabPage.plCode)); + tpDataList.add(new WriteExcelData(tpRow.get(),3, tabPage.plLabel)); + tpDataList.add(new WriteExcelData(tpRow.get(),4, tabPage.plName)); + tpDataList.add(new WriteExcelData(tpRow.get(),5, tabPage.plContextOId)); + tpDataList.add(new WriteExcelData(tpRow.get(),6, tabPage.plAreaType)); + tpDataList.add(new WriteExcelData(tpRow.get(),7, tabPage.plIsOpen)); + tpDataList.add(new WriteExcelData(tpRow.get(),8, tabPage.plOpenExpression)); + tpDataList.add(new WriteExcelData(tpRow.get(),9, tabPage.plUIParser)); + tpDataList.add(new WriteExcelData(tpRow.get(),10, tabPage.plExtAttr)); + tpDataList.add(new WriteExcelData(tpRow.get(),11, tabPage.plDesc)); + tpDataList.add(new WriteExcelData(tpRow.get(),12, tabPage.plLicensOrs)); + tpRow.getAndIncrement(); + try { + PLPageDefination[] plPageDefinations = platformClientUtil.getUIService().getPLPageDefinationsByPageContextOId(tabPage.plOId); + if(Func.isNotEmpty(plPageDefinations)){ + //List<PLTabButtonVO> tabButtonsTotal = new ArrayList<>(); + Arrays.stream(plPageDefinations).forEach(plPageDefination->{ + pdDataList.add(new WriteExcelData(pdRow.get(),0, plPageDefination.plOId)); + pdDataList.add(new WriteExcelData(pdRow.get(),1, plPageDefination.plTabPageOId)); + pdDataList.add(new WriteExcelData(pdRow.get(),2, plPageDefination.plType)); + pdDataList.add(new WriteExcelData(pdRow.get(),3, plPageDefination.name)); + pdDataList.add(new WriteExcelData(pdRow.get(),4, plPageDefination.desc)); + pdDataList.add(new WriteExcelData(pdRow.get(),5, plPageDefination.seq)); + pdDataList.add(new WriteExcelData(pdRow.get(),6, plPageDefination.plDefination)); + pdRow.getAndIncrement(); + //鏌ヨ鎸夐挳 + try { + PLTabButton[] tabButtons = platformClientUtil.getUIService().getPLTabButtonsByTableOId(plPageDefination.plOId); + for (PLTabButton tabButton:tabButtons){ + tbDataList.add(new WriteExcelData(tbRow.get(),0, tabButton.plOId)); + tbDataList.add(new WriteExcelData(tbRow.get(),1, tabButton.plTableOId)); + tbDataList.add(new WriteExcelData(tbRow.get(),2, tabButton.plPageOId)); + tbDataList.add(new WriteExcelData(tbRow.get(),3, tabButton.plActionOId)); + tbDataList.add(new WriteExcelData(tbRow.get(),4, tabButton.plLabel)); + tbDataList.add(new WriteExcelData(tbRow.get(),5, tabButton.plAreaType)); + tbDataList.add(new WriteExcelData(tbRow.get(),6, tabButton.plDesc)); + tbDataList.add(new WriteExcelData(tbRow.get(),7, tabButton.plSeq)); + tbDataList.add(new WriteExcelData(tbRow.get(),8, tabButton.plParentOid)); + tbDataList.add(new WriteExcelData(tbRow.get(),9, tabButton.displayMode)); + tbDataList.add(new WriteExcelData(tbRow.get(),10, tabButton.iconPath)); + tbDataList.add(new WriteExcelData(tbRow.get(),11, tabButton.authorization)); + tbDataList.add(new WriteExcelData(tbRow.get(),12, tabButton.show)); + tbRow.getAndIncrement(); + PLCommandParameter[] parameters = platformClientUtil.getUIService().getPLCommandParametersByCommandOId(tabButton.plOId); + if(Func.isNotEmpty(parameters)){ + Arrays.stream(parameters).forEach(param->{ + cpDataList.add(new WriteExcelData(cpRow.get(),0, param.plOId)); + cpDataList.add(new WriteExcelData(cpRow.get(),1, param.plCommandOId)); + cpDataList.add(new WriteExcelData(cpRow.get(),2, param.plKey)); + cpDataList.add(new WriteExcelData(cpRow.get(),3, param.plValue)); + cpRow.getAndIncrement(); + }); + } + } + } catch (PLException e) { + e.printStackTrace(); + } + }); + } + } catch (PLException e) { + e.printStackTrace(); + } + }); + } + } catch (PLException e) { + e.printStackTrace(); + } + }); + WriteExcelOption excelOption = new WriteExcelOption(); + excelOption.addSheetDataList("PlpageLayoutDefnation",pldDataList); + excelOption.addSheetDataList("Pltabpage",tpDataList); + excelOption.addSheetDataList("Plpagedefination",pdDataList); + excelOption.addSheetDataList("Pltabbutton",tbDataList); + excelOption.addSheetDataList("PlcommondParam",cpDataList); + ExcelUtil.writeDataToFile(excelPath, excelOption); + return excelPath; } /** * 瀵煎叆UI涓婁笅鏂� * @param file + * @param isCovered 鏄惁瑕嗙洊 + * @param selectBtm 閫夋嫨鐨勪笟鍔$被鍨� * @return */ @Override - public BaseResult impUIContextData(MultipartFile file) { - return null; + public BaseResult impUIContextData(File file,boolean isCovered,String selectBtm) { + if(!isCovered){ + VciBaseUtil.alertNotNull(file,"excel鏂囦欢"); + if(!file.exists()){ + throw new VciBaseException("瀵煎叆鐨別xcel鏂囦欢涓嶅瓨鍦�,{0}",new String[]{file.getPath()}); + } + } + + try { + List<SheetDataSet> sheetDataSets = null; + SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread(); + //鏄鐩栨搷浣滐紝鎵�浠ョ洿鎺ヨ鍙� + if(isCovered){ + sheetDataSets = redisService.getCacheList(IMPORTUIKEY + sessionInfo.getUserId()); + if(Func.isEmpty(sheetDataSets)){ + throw new VciBaseException("浠庣紦瀛樹腑鏈幏鍙栧埌瀵煎叆鐨勬暟鎹紝璇峰埛鏂板悗閲嶈瘯锛侊紒"); + } + }else{ + //璇诲彇excel琛� + ReadExcelOption readExcelOption = new ReadExcelOption(); + readExcelOption.setReadAllSheet(true); //璇诲彇鍏ㄩ儴鐨剆heet + sheetDataSets = ExcelUtil.readDataObjectFromExcel(file,SheetDataSet.class,readExcelOption); + } + + PLUILayout[] plpagelayoutdefinations = null; + + SheetDataSet plpagelayoutdefnationsheet = sheetDataSets.get(0); + SheetDataSet pltabpagesheet = sheetDataSets.get(1); + SheetDataSet plpagedefinationsheet = sheetDataSets.get(2); + SheetDataSet pltabbuttonsheet = sheetDataSets.get(3); + SheetDataSet plcommondparamsheet = sheetDataSets.get(4); + + Map<PLUILayout,List<PLTabPage>> pdMap = new HashMap<>(); + Map<PLTabPage,List<PLPageDefination>> tdMap = new HashMap<>(); + Map<PLPageDefination,List<PLTabButton>> dbMap = new HashMap<>(); + Map<PLTabButton,List<PLCommandParameter>> bcMap = new HashMap<>(); + + List<PLUILayout> plpagelayoutdefinationList = new ArrayList<>(); + List<PLTabPage> pltabpagelist = new ArrayList<>(); + List<PLPageDefination> plpagedefinationlist = new ArrayList<>(); + List<PLTabButton> pltabbuttonlist = new ArrayList<>(); + List<PLCommandParameter> plcommandparameterlist = new ArrayList<>(); + + /*StringBuffer checkplpagelayoutdefination = new StringBuffer(); + StringBuffer checkplpagelayoutdefinationPlcode = new StringBuffer();*/ + StringBuffer plActionIDNulls = new StringBuffer(); + + //add by caill start 鍒濆鍖栨爣璁� + int count=0; + int preCount=0; + String preOID=""; + String doublePreOID=""; + String plpageLayoutDefinationId=""; + String plPageContextOId=""; + String plCommandOId=""; + String plTableOId=""; + + //add by caill end + PLAction[] allPLAction = platformClientUtil.getUIService().getAllPLAction(); + Map<String,String> relation = null; + List<SheetRowData> rowData = plpagelayoutdefnationsheet.getRowData(); + for(int i=0; i<rowData.size(); i++){ + pltabpagelist = new ArrayList<PLTabPage>(); + PLUILayout p = new PLUILayout(); + //HSSFRow readrow = plpagelayoutdefnationsheet.getRowData(); + Map<Integer, String> dataMap = rowData.get(i).getData(); + if(Func.isEmpty(dataMap)){ + break; + } + //鏍规嵁涓氬姟绫诲瀷鏌ヨui涓婁笅鏂� + plpagelayoutdefinations = platformClientUtil.getUIService().getPLUILayoutsByRelatedType(selectBtm); + + p.plOId = ObjectUtility.getNewObjectID36(); + p.plCode = dataMap.get(1); + p.plName = dataMap.get(2); + //add by caill start + //閬嶅巻UI鍚嶇О + for(PLUILayout pd : plpagelayoutdefinations){ + if(pd.plName.equals(p.plName) && !isCovered){ + //濡傛灉鐢ㄦ埛閫夋嫨瑕嗙洊锛岀浜屾璋冪敤灏变笉浼氫紶瀵煎叆鏂囦欢锛屾墍浠ヨ繖閲屽瓨鍏ョ紦瀛� + redisService.setCacheList(IMPORTUIKEY+sessionInfo.getUserId(),sheetDataSets); + //璁剧疆杩囨湡鏃堕棿涓�5鍒嗛挓锛屽洜涓轰竴鑸儏鍐典笅涓嶄細璇存槸绛夊お涔� + redisService.expire(IMPORTUIKEY+sessionInfo.getUserId(),5, TimeUnit.MINUTES); + throw new VciBaseException(pd.plName+"鍚嶇О宸茬粡瀛樺湪,鏄惁瑕嗙洊?"); + } + //鏍规嵁UI涓婁笅鏂囧仛鍒ゆ柇 + if(pd.plCode.equals(p.plCode)){ + count=1; + preOID=pd.plOId; //濡傛灉UI涓婁笅鏂囩浉鍚岋紝灏辨妸绯荤粺涓殑id璧嬪�肩粰鏂板鍏ョ殑id + p.plOId=pd.plOId; + } + } + //add by caill end + plpageLayoutDefinationId = dataMap.get(0); + String name = dataMap.get(3); + p.plRelatedType = dataMap.get(3); + p.plIsShowNavigator = Short.parseShort(dataMap.get(4)); + p.plIsShowTab = Short.parseShort(dataMap.get(5)); + p.plIsShowForm = Short.parseShort(dataMap.get(6)); + //閫夋嫨鐨勫拰瀵煎叆鐨勪笟鍔$被鍨嬭妭鐐逛笉涓�鑷� + if(!selectBtm.equals(name)){ + throw new VciBaseException("璇烽�夋嫨瑕佸鍏ョ殑绫诲瀷鑺傜偣鍚嶇О锛�"); + } + + plpagelayoutdefinationList.add(p); + + //鍖哄煙瀹氫箟sheet澶勭悊 + List<SheetRowData> tabPageRowData = pltabpagesheet.getRowData(); + if(Func.isNotEmpty(tabPageRowData)){ + for(int j=0; j<tabPageRowData.size(); j++){ + plpagedefinationlist = new ArrayList<PLPageDefination>(); + PLTabPage pt = new PLTabPage(); + Map<Integer, String> tabPageDataMap = tabPageRowData.get(j).getData(); + if(Func.isEmpty(tabPageDataMap)){ + break; + } + pt.plOId = ObjectUtility.getNewObjectID36(); + pt.plCode = tabPageDataMap.get(2); + pt.plName = tabPageDataMap.get(4); + //add by caill start + if(count==1) { + PLTabPage[] PLTabPages = platformClientUtil.getUIService().getPLTabPagesByPageDefinationOId(preOID); + //閬嶅巻鎺у埗鍖鸿〃鏍� + for(PLTabPage pl : PLTabPages){ + if(pl.plCode.equals(pt.plCode)){ + pt.plOId=pl.plOId; //濡傛灉鎺у埗鍖鸿〃鏍肩殑缂栫爜鍜屽鍏ョ殑缂栫爜涓�鏍凤紝灏辨妸鎺у埗鍖篿d璧嬪�肩粰鏂板鍏ョ殑id + preCount=1; + doublePreOID=pl.plOId; + } + } + } + //add by caill end + pt.plSeq = Short.parseShort(tabPageDataMap.get(1)); + pt.plLabel = tabPageDataMap.get(3); + pt.plContextOId = tabPageDataMap.get(5); + pt.plAreaType = Short.parseShort(tabPageDataMap.get(6)); + pt.plIsOpen = Short.parseShort(tabPageDataMap.get(7)); + pt.plOpenExpression = tabPageDataMap.get(8); + pt.plUIParser = tabPageDataMap.get(9); + pt.plExtAttr = tabPageDataMap.get(10); + pt.plDesc = tabPageDataMap.get(11); + pt.plLicensOrs = tabPageDataMap.get(12); + plPageContextOId = tabPageDataMap.get(5); + if(pt.plContextOId.equals(plpageLayoutDefinationId)){ + pt.plContextOId = p.plOId; + pltabpagelist.add(pt); + //椤甸潰璁捐澶勭悊 + List<SheetRowData> pagedefinationRowData = plpagedefinationsheet.getRowData(); + if(Func.isNotEmpty(pagedefinationRowData)){ + for(int k=0;k<pagedefinationRowData.size();k++){ + pltabbuttonlist = new ArrayList<>(); + PLPageDefination plpagedefination = new PLPageDefination(); + Map<Integer, String> pagedefinationDataMap = pagedefinationRowData.get(k).getData(); + + if(Func.isEmpty(pagedefinationDataMap)){ + break; + } + plpagedefination.plOId = ObjectUtility.getNewObjectID36(); + plpagedefination.name = pagedefinationDataMap.get(3); + //add by caill start + //鏈�鍚庝竴绾х殑鍒ゆ柇 + if(preCount==1) { + PLPageDefination[] PLPageDefinations = platformClientUtil.getUIService().getPLPageDefinationsByPageContextOId(doublePreOID); + for(PLPageDefination plp : PLPageDefinations) { + if(plp.name.equals(plpagedefination.name)) { + plpagedefination.plOId=plp.plOId; + + } + + } + } + //add by caill end + plpagedefination.plDefination = pagedefinationDataMap.get(6); + plpagedefination.seq = Short.parseShort(pagedefinationDataMap.get(5)); + plpagedefination.plTabPageOId = pagedefinationDataMap.get(1); + plpagedefination.desc = pagedefinationDataMap.get(4); + plpagedefination.plType = Short.parseShort(pagedefinationDataMap.get(2)); + plTableOId = pagedefinationDataMap.get(1); + if(plpagedefination.plTabPageOId.equals(plPageContextOId)){ + plpagedefination.plTabPageOId = pt.plOId; + plpagedefinationlist.add(plpagedefination); + //淇濆瓨鏂版棫oid鐨勫叧绯伙紝鍦ㄧ‘瀹氬眰绾у叧绯绘椂浣跨敤 + relation = new HashMap<String,String>(); + List<SheetRowData> tabbuttonRowData = pltabbuttonsheet.getRowData(); + if(Func.isNotEmpty(tabbuttonRowData)){ + for(int a=0;a<tabbuttonRowData.size();a++){ + Map<Integer, String> tabbuttonDataMap = tabbuttonRowData.get(a).getData(); + if(Func.isNotEmpty(tabbuttonDataMap)){ + plCommandOId = tabbuttonDataMap.get(1); + String newOId = ObjectUtility.getNewObjectID36(); + relation.put(plCommandOId, newOId); + } + } + for(int a=0;a<tabbuttonRowData.size();a++){ + plcommandparameterlist = new ArrayList<PLCommandParameter>(); + PLTabButton plTabButton = new PLTabButton(); + Map<Integer, String> tabbuttonDataMap = tabbuttonRowData.get(a).getData(); + if(Func.isEmpty(tabbuttonDataMap)){ + break; + } + plTabButton.plOId = ObjectUtility.getNewObjectID36(); + plTabButton.plLabel = tabbuttonDataMap.get(4); + plTabButton.plAreaType = tabbuttonDataMap.get(5); + plTabButton.plTableOId = tabbuttonDataMap.get(1); + plTabButton.plSeq = Short.parseShort(tabbuttonDataMap.get(7)); + String plActionId = ""; + //PLAction[] allPLAction = Tool.getService().getAllPLAction(); + for(PLAction action : allPLAction){ + if((tabbuttonDataMap.get(3)!=null&&!"".equals(tabbuttonDataMap.get(3)) + )&&(tabbuttonDataMap.get(3).trim().equals(action.plCode.trim())) + ){ + plActionId = action.plOId; + break; + } + } + if(plActionId==null||"".equals(plActionId)){ + if(!plActionIDNulls.toString().contains(tabbuttonDataMap.get(3))){ + plActionIDNulls.append("\n\tAction缂栧彿:"+tabbuttonDataMap.get(3)); + } + } + plTabButton.plActionOId = plActionId; + plTabButton.plAreaType = tabbuttonDataMap.get(5); + plTabButton.plDesc = tabbuttonDataMap.get(6); + String parentOid = tabbuttonDataMap.get(8);//鐖秓id + plCommandOId = tabbuttonDataMap.get(1); + plTabButton.displayMode = tabbuttonDataMap.get(9); + plTabButton.iconPath = tabbuttonDataMap.get(10); + plTabButton.authorization = tabbuttonDataMap.get(11); + plTabButton.show = tabbuttonDataMap.get(12); + + //璧嬩簣淇濆瓨濂界殑鍊硷紝鏉ヤ繚璇佸眰绾у叧绯讳笉浼氫涪澶� + plTabButton.plOId = relation.get(plCommandOId); + if(parentOid != null && parentOid.length() > 0) { + plTabButton.plParentOid = + relation.get(parentOid) == null ? "" : relation.get(parentOid); + } + if(plTabButton.plTableOId.equals(plTableOId)){ + plTabButton.plTableOId = plpagedefination.plOId; + pltabbuttonlist.add(plTabButton); + List<SheetRowData> commondparamsRowData = plcommondparamsheet.getRowData(); + if(Func.isNotEmpty(commondparamsRowData)){ + for(int b=0;b<commondparamsRowData.size();b++){ + PLCommandParameter plCommandParameter = new PLCommandParameter(); + Map<Integer, String> commandParameterDataMap = commondparamsRowData.get(b).getData(); + if(Func.isEmpty(commandParameterDataMap)){ + break; + } + plCommandParameter.plOId = ObjectUtility.getNewObjectID36(); + plCommandParameter.plCommandOId = commandParameterDataMap.get(1); + plCommandParameter.plKey = commandParameterDataMap.get(2); + plCommandParameter.plValue = commandParameterDataMap.get(3); + if(plCommandParameter.plCommandOId.equals(plCommandOId)){ + plCommandParameter.plCommandOId = plTabButton.plOId; + plcommandparameterlist.add(plCommandParameter); + } + } + bcMap.put(plTabButton, plcommandparameterlist); + } + } + } + dbMap.put(plpagedefination, pltabbuttonlist); + } + } + } + tdMap.put(pt, plpagedefinationlist); + } + } + } + pdMap.put(p, pltabpagelist); + } + } + + if(plActionIDNulls.length()>0){ + throw new VciBaseException(plActionIDNulls.toString()+"涓嶅瓨鍦紒"); + } + + //鍒犻櫎鍘熸湁button鏁版嵁 + if(tdMap.size() > 0) { + for(List<PLPageDefination> list : tdMap.values()) { + for(PLPageDefination ppd : list) { + if(ppd.plOId != null && ppd.plOId.length() > 0) { + PLTabButton[] buttons = platformClientUtil.getUIService().getPLTabButtonsByTableOId(ppd.plOId); + if(buttons != null && buttons.length > 0) { + for(PLTabButton ptb : buttons) { + platformClientUtil.getUIService().deletePLTabButtonByID(ptb.plOId); + } + } + } + } + } + } + + for(PLUILayout plPageLayoutDefination : plpagelayoutdefinationList){ + List<PLTabPage> pltabpagelists = pdMap.get(plPageLayoutDefination); + for(PLTabPage pltabpage:pltabpagelists){ + List<PLPageDefination> plpagedefinationlists = tdMap.get(pltabpage); + for(PLPageDefination plpagedefination : plpagedefinationlists){ + List<PLTabButton> pltabbuttons = dbMap.get(plpagedefination); + for(PLTabButton pltabbutton : pltabbuttons){ + List<PLCommandParameter> plcommandParams = bcMap.get(pltabbutton); + for(PLCommandParameter plcommandparameter : plcommandParams){ + plcommandparameter.plCreateUser = sessionInfo.getUserId(); + plcommandparameter.plModifyUser = sessionInfo.getUserId(); + platformClientUtil.getUIService().savePLCommandParameter(plcommandparameter); + } + pltabbutton.plCreateUser = sessionInfo.getUserId(); + pltabbutton.plModifyUser = sessionInfo.getUserId(); + platformClientUtil.getUIService().savePLTabButton(pltabbutton); + } + platformClientUtil.getUIService().savePLPageDefination(plpagedefination); + } + pltabpage.plCreateUser = sessionInfo.getUserId(); + pltabpage.plModifyUser = sessionInfo.getUserId(); + platformClientUtil.getUIService().savePLTabPage(pltabpage); + } + plPageLayoutDefination.plCreateUser = sessionInfo.getUserId(); + plPageLayoutDefination.plModifyUser = sessionInfo.getUserId(); + platformClientUtil.getUIService().savePLUILayout(plPageLayoutDefination); + } + return BaseResult.success("UI涓婁笅鏂囧鍏ユ垚鍔燂紒"); + } catch (PLException e) { + e.printStackTrace(); + return BaseResult.success("UI涓婁笅鏂囧鍏ュけ璐�,鍘熷洜锛�"+VciBaseUtil.getExceptionMessage(e)); + } } /** @@ -436,6 +950,13 @@ PLDefinationVO plDefinationVO = new PLDefinationVO(); PLDefination plDefination = UITools.getPLDefination(item.plDefination); BeanUtil.copy(plDefination,plDefinationVO); + plDefinationVO.setDescription(item.desc); + plDefinationVO.setSeq(String.valueOf(item.seq)); + plDefinationVO.setTabPageOId(item.plTabPageOId); + plDefinationVO.setId(item.plOId); + plDefinationVO.setName(item.name); + plDefinationVO.setType(item.plType); + plDefinationVO.setTemplateType(String.valueOf(plDefination.getTemplateType())); plDefinationVOList.add(plDefinationVO); } catch (Throwable e) { e.printStackTrace(); @@ -460,14 +981,14 @@ pd.plTabPageOId = pdVO.getTabPageOId(); pd.plOId = ObjectUtility.getNewObjectID36(); //涓嶈兘涓虹┖灞炴�ф鏌� - if(!this.baseInfoIsOk(pd,false)){ + /*if(!this.baseInfoIsOk(pd,false)){ return false; - } + }*/ pd.name = pdVO.getName().trim(); pd.seq = Short.valueOf(pdVO.getSeq().trim()); pd.desc = pdVO.getDescription(); - pd.plType = Short.parseShort(pdVO.getTemplateType()); + pd.plType = (short) pdVO.getType(); d.setName(pdVO.getName().trim()); d.setUiParser(pdVO.getUiParser().trim()); @@ -478,15 +999,15 @@ newPLDefinationIsOk(pdVO, false); // 妫�鏌ュ悇涓被鍨嬩笅鐨勬暟鎹槸鍚﹁緭鍏ユ垨鏈夋晥,涓�鍏�6绉嶇被鍨嬫寜绫诲瀷妫�楠� - short plType = pd.plType; - switch (plType){ + String templateType = pdVO.getTemplateType(); + switch (templateType){ //Table(琛ㄦ牸) - case 1: + case "1": //From(琛ㄥ崟) - case 4: + case "4": TableComptCheckInput tci = new TableComptCheckInput( pdVO.getSearchTarger() - ,pdVO.getBtmType() + ,pdVO.getShowType() ,pdVO.getLinkType() ,pdVO.getTemplateId() ,pdVO.getQueryTemplateName() @@ -497,7 +1018,7 @@ d = tci.getNewPLDefination(d); break; //Custom(鑷畾涔夋ā鏉�) - case 2: + case "2": //鍙鏌ユ帶鍒惰矾寰勪笉鑳戒负绌�,鏈夐棶棰樹細鐩存帴鎶ラ敊 CustomComptCheckInput ccci = new CustomComptCheckInput(pdVO.getControlPath()); if(!ccci.checkInputIsOk()){ @@ -506,10 +1027,10 @@ d = ccci.getNewPLDefination(d); break; //TreeTable(鏍戣〃) - case 3: + case "3": TreeTableComptCheckInput ttcci = new TreeTableComptCheckInput( pdVO.getSearchTarger() - ,pdVO.getBtmType() + ,pdVO.getShowType() ,pdVO.getLinkType() ,pdVO.getTemplateId() ,pdVO.getQueryTemplateName() @@ -522,9 +1043,9 @@ d = ttcci.getNewPLDefination(d); break; //Tree(鏍�) - case 5: + case "5": TreeComptCheckInput tcci = new TreeComptCheckInput( - pdVO.getBtmType(), + pdVO.getShowType(), pdVO.getLinkType(), pdVO.getQueryTemplateName(), pdVO.getShowExpressionRoot(), @@ -539,10 +1060,10 @@ d = tcci.getNewPLDefination(d); break; //UILayout(UI瀹氫箟) - case 6: + case "6": UILayoutComptCheckInput ulci = new UILayoutComptCheckInput( pdVO.getSearchTarger(), - pdVO.getBtmType(), + pdVO.getShowType(), pdVO.getUiLayout(), pdVO.getQueryTemplateName(), pdVO.getQryType() @@ -576,14 +1097,17 @@ BeanUtil.copy(pdVO,d); //涓嶈兘涓虹┖灞炴�ф鏌� - if(!this.baseInfoIsOk(pd,true)){ + /*if(!this.baseInfoIsOk(pd,true)){ return false; - } + }*/ + pd.plOId = pdVO.getId(); + pd.plTabPageOId = pdVO.getTabPageOId(); pd.name = pdVO.getName().trim(); pd.seq = Short.valueOf(pdVO.getSeq().trim()); pd.desc = pdVO.getDescription(); - pd.plType = Short.parseShort(pdVO.getTemplateType()); + pd.plType = (short) pdVO.getType(); + d.setId(pdVO.getId()); d.setName(pdVO.getName().trim()); d.setUiParser(pdVO.getUiParser().trim()); d.setExtAttr(pdVO.getExtAttr().trim()); @@ -592,15 +1116,15 @@ this.newPLDefinationIsOk(pdVO, true); // 妫�鏌ュ悇涓粍浠跺唴閮ㄧ殑鏁版嵁鏄惁鏈夋晥 - int plType = pdVO.getType(); - switch (plType){ + String templateType = pdVO.getTemplateType(); + switch (templateType){ //Table(琛ㄦ牸) - case 1: + case "1": //From(琛ㄥ崟) - case 4: + case "4": TableComptCheckInput tci = new TableComptCheckInput( pdVO.getSearchTarger() - ,pdVO.getBtmType() + ,pdVO.getShowType() ,pdVO.getLinkType() ,pdVO.getTemplateId() ,pdVO.getQueryTemplateName() @@ -611,7 +1135,7 @@ d = tci.getNewPLDefination(d); break; //Custom(鑷畾涔夋ā鏉�) - case 2: + case "2": //鍙鏌ユ帶鍒惰矾寰勪笉鑳戒负绌�,鏈夐棶棰樹細鐩存帴鎶ラ敊 CustomComptCheckInput ccci = new CustomComptCheckInput(pdVO.getControlPath()); if(!ccci.checkInputIsOk()){ @@ -620,10 +1144,10 @@ d = ccci.getNewPLDefination(d); break; //TreeTable(鏍戣〃) - case 3: + case "3": TreeTableComptCheckInput ttcci = new TreeTableComptCheckInput( pdVO.getSearchTarger() - ,pdVO.getBtmType() + ,pdVO.getShowType() ,pdVO.getLinkType() ,pdVO.getTemplateId() ,pdVO.getQueryTemplateName() @@ -636,9 +1160,9 @@ d = ttcci.getNewPLDefination(d); break; //Tree(鏍�) - case 5: + case "5": TreeComptCheckInput tcci = new TreeComptCheckInput( - pdVO.getBtmType(), + pdVO.getShowType(), pdVO.getLinkType(), pdVO.getQueryTemplateName(), pdVO.getShowExpressionRoot(), @@ -653,10 +1177,10 @@ d = tcci.getNewPLDefination(d); break; //UILayout(UI瀹氫箟) - case 6: + case "6": UILayoutComptCheckInput ulci = new UILayoutComptCheckInput( pdVO.getSearchTarger(), - pdVO.getBtmType(), + pdVO.getShowType(), pdVO.getUiLayout(), pdVO.getQueryTemplateName(), pdVO.getQryType() @@ -682,7 +1206,7 @@ @Override public boolean delPageDefination(String[] oids) throws PLException { VciBaseUtil.alertNotNull(oids,"鍒犻櫎鐨勯〉闈㈠畾涔変富閿�"); - boolean res = platformClientUtil.getUIService().deletePLUILayoutByOidsForCascade(oids); + boolean res = platformClientUtil.getUIService().deletePLPageDefinationByOidsForCascade(oids); return res; } @@ -734,7 +1258,6 @@ logger.error(errorLog); throw new VciBaseException(errorLog); } - }); return plTabButtonVOList; } @@ -770,7 +1293,13 @@ //鍙傛暟淇℃伅鍥炲~ PLCommandParameter[] parameters = platformClientUtil.getUIService().getPLCommandParametersByCommandOId(tabButtonDO.plOId); if(Func.isNotEmpty(parameters)){ - LinkedHashMap<String, String> parameterMap = (LinkedHashMap<String, String>)Arrays.stream(parameters).collect(Collectors.toMap(parm -> parm.plKey, parm -> parm.plValue)); + LinkedHashMap<String, String> parameterMap = Arrays.stream(parameters) + .collect(Collectors.toMap( + parm -> parm.plKey, + parm -> parm.plValue, + (existing, replacement) -> existing, // 澶勭悊閲嶅閿殑鎯呭喌 + LinkedHashMap::new // 鎸囧畾浣跨敤 LinkedHashMap + )); plTabButtonVO.setButtonParams(parameterMap); } return plTabButtonVO; @@ -900,7 +1429,7 @@ } LinkedHashMap<String, String> buttonParams = tabButtonVO.getButtonParams(); - if(!buttonParams.isEmpty()) { + if(Func.isNotEmpty(buttonParams)) { Iterator<Map.Entry<String, String>> iterator = buttonParams.entrySet().iterator(); while(iterator.hasNext()){ Map.Entry<String, String> next = iterator.next(); @@ -908,23 +1437,21 @@ iterator.remove(); } } - if(!buttonParams.isEmpty()){ - Iterator<Map.Entry<String, String>> kvItor = buttonParams.entrySet().iterator(); - while(kvItor.hasNext()){ - Map.Entry<String, String> next = kvItor.next(); - PLCommandParameter plCommandParameter = new PLCommandParameter(); - plCommandParameter.plOId = ObjectUtility.getNewObjectID36(); - plCommandParameter.plCommandOId = plTabButton.plOId; - plCommandParameter.plKey = next.getKey(); - plCommandParameter.plValue = next.getValue(); - plCommandParameter.plCreateUser = sessionInfo.getUserId(); - plCommandParameter.plModifyUser = sessionInfo.getUserId(); - try { - platformClientUtil.getUIService().savePLCommandParameter(plCommandParameter); - } catch (PLException e) { - e.printStackTrace(); - throw new VciBaseException("淇濆瓨鎸夐挳淇℃伅鏃跺彂鐢熷紓甯革細"+ e.getMessage()); - } + Iterator<Map.Entry<String, String>> kvItor = buttonParams.entrySet().iterator(); + while(kvItor.hasNext()){ + Map.Entry<String, String> next = kvItor.next(); + PLCommandParameter plCommandParameter = new PLCommandParameter(); + plCommandParameter.plOId = ObjectUtility.getNewObjectID36(); + plCommandParameter.plCommandOId = plTabButton.plOId; + plCommandParameter.plKey = next.getKey(); + plCommandParameter.plValue = next.getValue(); + plCommandParameter.plCreateUser = sessionInfo.getUserId(); + plCommandParameter.plModifyUser = sessionInfo.getUserId(); + try { + platformClientUtil.getUIService().savePLCommandParameter(plCommandParameter); + } catch (PLException e) { + e.printStackTrace(); + throw new VciBaseException("淇濆瓨鎸夐挳淇℃伅鏃跺彂鐢熷紓甯革細"+ e.getMessage()); } } } @@ -933,36 +1460,36 @@ /** * 鍒犻櫎鍗曚釜鎸夐挳閰嶇疆 - * @param tabButton + * @param tabButtonVO * @return */ @Override - public boolean deleteTapButton(PLTabButton tabButton) throws PLException { - VciBaseUtil.alertNotNull(tabButton,"鍒犻櫎鐨勬寜閽厤缃璞�"); - boolean success = UITools.getService().deletePLTabButton(tabButton); - if(success == false){ - throw new VciBaseException("璇ユ湁瀛愮骇鎸夐挳锛屼笉鑳藉垹闄わ紒"); - } - return true; + public boolean deleteTapButton(PLTabButtonVO tabButtonVO) throws PLException { + VciBaseUtil.alertNotNull(tabButtonVO,"鍒犻櫎鐨勬寜閽厤缃璞�"); + boolean success = platformClientUtil.getUIService().deletePLTabButton(this.tabButtonVO2TabButton(new PLTabButton(),tabButtonVO)); + if(success == false){ + throw new VciBaseException("璇ユ湁瀛愮骇鎸夐挳锛屼笉鑳藉垹闄わ紒"); + } + return true; } /** * 璋冩暣涓轰笅绾ф寜閽� - * @param plTabButton + * @param tabButtonVO * @return */ @Override - public BaseResult joinBtn(PLTabButton plTabButton) throws PLException { - VciBaseUtil.alertNotNull(plTabButton,"闇�璋冩暣涓轰笅绾ф寜閽�",plTabButton.plTableOId,"褰撳墠鎸夐挳閰嶇疆鎵�鍦ㄧ殑椤甸潰涓婚敭"); + public BaseResult joinBtn(PLTabButtonVO tabButtonVO) throws PLException { + VciBaseUtil.alertNotNull(tabButtonVO,"闇�璋冩暣涓轰笅绾ф寜閽�",tabButtonVO.getTableOId(),"褰撳墠鎸夐挳閰嶇疆鎵�鍦ㄧ殑椤甸潰涓婚敭"); //鍚屼竴椤甸潰涓嬬殑鎸夐挳 - List<PLTabButtonVO> plTabButtons = this.getTabButtons(plTabButton.plTableOId); + List<PLTabButtonVO> plTabButtons = this.getTabButtons(tabButtonVO.getTableOId()); if(Func.isEmpty(plTabButtons)){ return BaseResult.fail("鏈幏鍙栧埌鎸夐挳閰嶇疆淇℃伅锛�"); } //鑾峰彇褰撳墠瑕佺Щ鍔ㄧ殑鎸夐挳鐨勪笅鏍� int index = 0; for (int i = 0; i < plTabButtons.size(); i++) { - if (plTabButtons.get(i).getOId().equals(plTabButton.plOId)) { + if (plTabButtons.get(i).getOId().equals(tabButtonVO.getOId())) { index = i; // 鎵惧埌鍚庤褰曚笅鏍� break; // 鎵惧埌鍚庨��鍑哄惊鐜� } @@ -972,8 +1499,8 @@ return BaseResult.fail("褰撳墠鑺傜偣涓嶅瓨鍦ㄥ厔鑺傜偣锛屾棤娉曡皟鏁翠负涓嬬骇鎸夐挳锛�"); } //璁剧疆鐖秈d涓轰笂涓�涓妭鐐圭殑 - plTabButton.plParentOid = plTabButtons.get(index-1).getOId(); - + tabButtonVO.setParentOid(plTabButtons.get(index-1).getOId()); + PLTabButton plTabButton = this.tabButtonVO2TabButton(new PLTabButton(), tabButtonVO); boolean success = platformClientUtil.getUIService().updatePLTabButton(plTabButton); if(success == false) { return BaseResult.fail("淇敼澶辫触锛�"); @@ -983,13 +1510,13 @@ /** * 璋冩暣涓轰笂绾ф寜閽� - * @param plTabButton + * @param tabButtonVO * @return */ @Override - public BaseResult exitBtn(PLTabButton plTabButton) throws PLException { - plTabButton.plParentOid = ""; - + public BaseResult exitBtn(PLTabButtonVO tabButtonVO) throws PLException { + tabButtonVO.setParentOid(""); + PLTabButton plTabButton = this.tabButtonVO2TabButton(new PLTabButton(), tabButtonVO); boolean success = platformClientUtil.getUIService().updatePLTabButton(plTabButton); if(success == false) { BaseResult.fail("鎾ら攢澶辫触锛�"); @@ -1047,7 +1574,6 @@ * @throws PLException */ private void newPLDefinationIsOk(PLDefinationVO pd, boolean isEdit) throws PLException{ - boolean res = false; boolean nameExist = false; boolean seqExist = false; PLPageDefination[] pds = platformClientUtil.getUIService().getPLPageDefinationsByPageContextOId(pd.getTabPageOId()); @@ -1162,7 +1688,7 @@ String userName= WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); RoleRightInfo[] rightInfos= platformClientUtil.getFrameworkService().getRoleRightList(roleId,userName); List<RoleRightVO> roleRightVOList=roleRightDOO2VOS(Arrays.asList(rightInfos)); - roleRightVOMap=roleRightVOList.stream().collect(Collectors.toMap(RoleRightVO::getFuncId,roleRightVO ->roleRightVO)); + roleRightVOMap=roleRightVOList.stream().collect(Collectors.toMap(RoleRightVO::getFuncId,roleRightVO ->roleRightVO,(oldValue,newOldValue)->oldValue)); } BizType[] bizTypes=osBtmServiceI.getBizTypes(type); List<Tree> treeList=new ArrayList<>(); @@ -1180,12 +1706,10 @@ bizTypeTree.setShowCheckbox(true); bizTypeTree.setParentBtmName(bizTypes[i].name); childList.add(bizTypeTree); - if(roleRightVOMap.containsKey(bizTypes[i].oid)){ - List<PLUILayout>contextList=getUIContextDataByBtName(bizTypes[i].name,context); - List<Tree> btmChildList=new ArrayList<>(); - btmChildList.add(bizTypeTree); - setChildNode(btmChildList,contextList,roleRightVOMap,showCheckBox); - } + List<PLUILayout>contextList=getUIContextDataByBtName(bizTypes[i].name,context); + List<Tree> btmChildList=new ArrayList<>(); + btmChildList.add(bizTypeTree); + setChildNode(btmChildList,contextList,roleRightVOMap,showCheckBox); } rootNode.setChildren(childList); treeList.add(rootNode); @@ -1213,48 +1737,96 @@ treeQueryObject.setConditionMap(conditionMap); List<Tree> treeList=this.getUIAuthor(treeQueryObject); HashMap<String,Tree> allTreeMap=new HashMap<>(); - Map<String,RoleRightVO> roleRightVOMap=new HashMap<>(); + Map<String,RoleRightDTO> roleRightVOMap=new HashMap<>(); if(!CollectionUtil.isEmpty(treeList)){ if(StringUtils.isNotBlank(uiAuthorDTO.getRoleId())){ String userName= WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); RoleRightInfo[] rightInfos= platformClientUtil.getFrameworkService().getRoleRightList(uiAuthorDTO.getRoleId(),userName); List<RoleRightVO> roleRightVOList=roleRightDOO2VOS(Arrays.asList(rightInfos)); - roleRightVOMap=roleRightVOList.stream().collect(Collectors.toMap(RoleRightVO::getFuncId,roleRightVO ->roleRightVO)); + roleRightVOMap=roleRightVOList.stream().collect(Collectors.toMap(RoleRightVO::getFuncId,roleRightVO ->roleRightVOO2DTO(roleRightVO),(oldValue,newValue)->oldValue)); } convertTreeDOO2Map(treeList,allTreeMap); List<RoleRightDTO> roleRightDTOList=new ArrayList<>(); List<Tree> selectTreeList= uiAuthorDTO.getSelectTreeList(); - getSelectedRoleRightObjs(uiAuthorDTO.getRoleId(),selectTreeList,allTreeMap,roleRightDTOList); + getSelectedRoleRightObjs(uiAuthorDTO.getRoleId(),selectTreeList,allTreeMap,roleRightVOMap,roleRightDTOList); + SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread(); + String currentUserName = sessionInfo.getUserId(); + boolean isDeveloper= rightControlUtil.isDeveloper(currentUserName); + List<RoleRightInfo> roleRightInfoList= roleRightDTOO2InfoS(roleRightDTOList); + UserEntityInfo info=new UserEntityInfo(); + info.modules="UI鎺堟潈"; + info.userName=currentUserName; + try { + res= platformClientUtil.getFrameworkService().saveRoleRight(roleRightInfoList.toArray(new RoleRightInfo[]{}),uiAuthorDTO.getRoleId(),currentUserName,info); + }catch (PLException e){ + throw new Exception("淇濆瓨澶辫触锛�"+e.getMessage()); + } } return res; } /** - * + *鏍规嵁鏉冮檺璁$畻涓婁笅鏉冮檺 * @param roleOid * @param selectTreeList * @param allTreeMap * @param roleRightDTOList */ - private void getSelectedRoleRightObjs(String roleOid,List<Tree> selectTreeList,HashMap<String,Tree> allTreeMap, List<RoleRightDTO> roleRightDTOList){ + private void getSelectedRoleRightObjs(String roleOid,List<Tree> selectTreeList,HashMap<String,Tree> allTreeMap,Map<String,RoleRightDTO> allRoleRightDTOMap, List<RoleRightDTO> roleRightDTOList){ Date date=new Date(); Map<String,RoleRightDTO> roleRightDTOMap=new HashMap<>(); - selectTreeList.stream().forEach(tree -> { - RoleRightDTO roleRightDTO=new RoleRightDTO(); - String id=ObjectUtility.getNewObjectID36(); - Object data= tree.getData(); - if(data instanceof String){ - getRightValue(roleOid,tree,allTreeMap,false,roleRightDTOMap);//鍚戜笅鑾峰彇鎵�鏈夋ā鍧楃殑鏉冮檺鍊� - }else if (!(data instanceof PLTabButton)) {//涓氬姟绫诲瀷 - getRightValue(roleOid,tree,allTreeMap,true,roleRightDTOMap);//鍚戜笂澶勭悊 - getRightValue(roleOid,tree,allTreeMap,false,roleRightDTOMap);//鍚戜笅澶勭悊锛堝寘鍚綋鍓嶈妭鐐癸級 - }else if (data instanceof PLTabButton) {//鎸夐挳 + if(!CollectionUtil.isEmpty(selectTreeList)){ + selectTreeList.stream().forEach(tree -> { + String oid=tree.getOid(); + if(allTreeMap.containsKey(oid)){ + tree= allTreeMap.get(oid); + Object data= tree.getData(); + if (data instanceof String) { + getRightValue(roleOid, tree, allTreeMap, false, roleRightDTOMap);//鍚戜笅鑾峰彇鎵�鏈夋ā鍧楃殑鏉冮檺鍊� + } else if (!(data instanceof PLTabButton)) {//涓氬姟绫诲瀷 + getRightValue(roleOid, tree, allTreeMap, true, roleRightDTOMap);//鍚戜笂澶勭悊 + getRightValue(roleOid, tree, allTreeMap, false, roleRightDTOMap);//鍚戜笅澶勭悊锛堝寘鍚綋鍓嶈妭鐐癸級 + } else if (data instanceof PLTabButton) {//鎸夐挳 + String parrentId=tree.getParentId(); + if(allTreeMap.containsKey(parrentId)){ + SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread(); + String currentUserName = sessionInfo.getUserId(); + boolean isDeveloper= rightControlUtil.isDeveloper(currentUserName); + Tree parentNode= allTreeMap.get(parrentId); + String funcId = parentNode.getOid(); + getRightValue(roleOid,tree, allTreeMap, true, roleRightDTOMap);//鍚戜笂澶勭悊璇ユ搷浣滅埗绾х殑涓婄骇妯″潡鏉冮檺(涓嶅寘鍚埗鑺傜偣) + if(!roleRightDTOMap.containsKey(funcId)){ + RoleRightDTO roleRightDTO = new RoleRightDTO(); + roleRightDTO.setId(ObjectUtility.getNewObjectID36());//涓婚敭 + roleRightDTO.setFuncId(funcId); + if(isDeveloper) { + roleRightDTO.setRightType((short) 1);//鏉冮檺绫诲瀷 鏉冮檺绫诲瀷锛岃秴绾х鐞嗗憳缁欑鐞嗗憳鎺堟潈涓�1锛岀鐞嗗憳缁欐櫘閫氱敤鎴锋巿鏉冧负2 + }else{ + roleRightDTO.setRightType((short) 2); + } + roleRightDTO.setRightValue(1);// 鏉冮檺鍊硷紝娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 + roleRightDTO.setRoleId(roleOid);//瑙掕壊ID + roleRightDTO.setCreateUser(currentUserName);//鍒涘缓鑰� + roleRightDTO.setCreateTime(VciDateUtil.date2Str(new Date(),""));//鍒涘缓鏃堕棿 + roleRightDTO.setModifyUser(currentUserName);//淇敼鑰� + roleRightDTO.setModifyTime(VciDateUtil.date2Str(new Date(),""));//淇敼鏃堕棿 + roleRightDTO.setLicensor(""); + if(!roleRightDTOMap.containsKey(funcId)){ + roleRightDTOMap.put(funcId, roleRightDTO); + } + roleRightDTOMap.put(funcId, roleRightDTO); + } + } - } - }); + } - - + } + }); + /* allRoleRightDTOMap.putAll(roleRightDTOMap.entrySet().stream() + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry:: getValue)));*/ + List<RoleRightDTO> newRoleRightDTOList=Optional.ofNullable(roleRightDTOMap).orElseGet(()->new HashMap<String,RoleRightDTO>()).values().stream().collect(Collectors.toList()); + roleRightDTOList.addAll(newRoleRightDTOList); + } } /** @@ -1265,28 +1837,28 @@ SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread(); String currentUserName = sessionInfo.getUserId(); boolean isDeveloper= rightControlUtil.isDeveloper(currentUserName); - String parentOid=node.getParentId(); - if(allTreeMap.containsKey(parentOid)){ - String id=ObjectUtility.getNewObjectID36(); - Tree parentNode =allTreeMap.get(parentOid); - Object parentData= parentNode.getData(); - if(isUp) {//鍚戜笂鑾峰彇锛屽瓨鍌ㄦ瘡涓笂绾фā鍧楃殑鏉冮檺鍊� - while (!"root".equals(parentNode.getData())){ + String id=ObjectUtility.getNewObjectID36(); + Object data=node.getData(); + if(isUp) {//鍚戜笂鑾峰彇锛屽瓨鍌ㄦ瘡涓笂绾фā鍧楃殑鏉冮檺鍊� + while (!"root".equals(node.getData())){ + data=node.getData(); + String oid=node.getOid(); + if(allTreeMap.containsKey(oid)){ String funcId = ""; - if (parentData instanceof BizType) { - BizType bizType = (BizType) parentData; + if (data instanceof BizType) { + BizType bizType = (BizType) data; funcId = bizType.name; - } else if (parentData instanceof PLUILayout) { - PLUILayout context = (PLUILayout)parentData; + } else if (data instanceof PLUILayout) { + PLUILayout context = (PLUILayout)data; funcId = context.plOId; - } else if (parentData instanceof PLTabPage) { - PLTabPage tab = (PLTabPage) parentData; + } else if (data instanceof PLTabPage) { + PLTabPage tab = (PLTabPage) data; funcId = tab.plOId; - } else if (parentData instanceof PLPageDefination){ - PLPageDefination pageDef = (PLPageDefination) parentData; + } else if (data instanceof PLPageDefination){ + PLPageDefination pageDef = (PLPageDefination) data; funcId = pageDef.plOId; - } else if (parentData instanceof PLTabButton) { - PLTabButton but = (PLTabButton)parentData; + } else if (data instanceof PLTabButton) { + PLTabButton but = (PLTabButton)data; funcId = but.plOId; } RoleRightDTO roleRightDTO = new RoleRightDTO(); @@ -1300,74 +1872,77 @@ roleRightDTO.setRightValue(1);// 鏉冮檺鍊硷紝娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 roleRightDTO.setRoleId(roleId);//瑙掕壊ID roleRightDTO.setCreateUser(currentUserName);//鍒涘缓鑰� - roleRightDTO.setCreateTime(new Date());//鍒涘缓鏃堕棿 + roleRightDTO.setCreateTime(VciDateUtil.date2Str(new Date(),""));//鍒涘缓鏃堕棿 roleRightDTO.setModifyUser(currentUserName);//淇敼鑰� - roleRightDTO.setModifyTime(new Date());//淇敼鏃堕棿 + roleRightDTO.setModifyTime(VciDateUtil.date2Str(new Date(),""));//淇敼鏃堕棿 roleRightDTO.setLicensor(""); if(!rightMap.containsKey(funcId)){ rightMap.put(funcId, roleRightDTO); } - } - }else{ - String funcId = ""; - if(parentData instanceof String){ - funcId = (String)parentData; - } else if (parentData instanceof BizType) { - BizType bizType = (BizType)parentData; - funcId = bizType.name; - } else if (parentData instanceof PLUILayout) { - PLUILayout context = (PLUILayout)parentData; - funcId = context.plOId; - } else if (parentData instanceof PLTabPage) { - PLTabPage tab = (PLTabPage) parentData; - funcId = tab.plOId; - } else if (parentData instanceof PLPageDefination){ - PLPageDefination pageDef = (PLPageDefination) parentData; - funcId = pageDef.plOId; - } else if (parentData instanceof PLTabButton) { - PLTabButton but = (PLTabButton)parentData; - funcId = but.plOId; - } - if(!(parentData instanceof PLPageDefination)) {//瀛愯妭鐐逛笉鏄搷浣� - if(!rightMap.containsKey(funcId)&&!funcId.equals("root")){ - RoleRightDTO roleRightDTO = new RoleRightDTO(); - roleRightDTO.setFuncId(funcId); - if(isDeveloper) { - roleRightDTO.setRightType((short) 1);//鏉冮檺绫诲瀷 鏉冮檺绫诲瀷锛岃秴绾х鐞嗗憳缁欑鐞嗗憳鎺堟潈涓�1锛岀鐞嗗憳缁欐櫘閫氱敤鎴锋巿鏉冧负2 - }else{ - roleRightDTO.setRightType((short) 2); - } - roleRightDTO.setRightValue(0);//娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 - roleRightDTO.setRoleId(roleId); - roleRightDTO.setCreateUser(currentUserName); - roleRightDTO.setCreateTime(new Date()); - roleRightDTO.setModifyUser(currentUserName); - roleRightDTO.setModifyTime(new Date()); - roleRightDTO.setLicensor(""); - rightMap.put(funcId, roleRightDTO); - } - for(int i = 0;i < parentNode.getChildren().size();i++){ - //瀵规瘡涓瓙鍚戜笅閫掑綊閬嶅巻 - getRightValue(roleId,parentNode.getChildren().get(i),allTreeMap,false,rightMap); - } - }else { - if(!rightMap.containsKey(funcId)){ - RoleRightDTO roleRightDTO = new RoleRightDTO(); - roleRightDTO.setFuncId(funcId); - roleRightDTO.setRightType((short)2); // 璁剧疆UI鏉冮檺 - roleRightDTO.setRightValue(countRightValue(parentNode,true));//娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 - roleRightDTO.setRoleId(roleId); - - roleRightDTO.setCreateUser(currentUserName); - roleRightDTO.setCreateTime(new Date()); - roleRightDTO.setModifyUser(currentUserName); - roleRightDTO.setModifyTime(new Date()); - roleRightDTO.setLicensor(""); - rightMap.put(funcId, roleRightDTO); + oid= node.getParentId(); + if(allTreeMap.containsKey(oid)) { + node=allTreeMap.get(oid); } } } + }else { + String funcId = ""; + if (data instanceof String) { + funcId = (String) data; + } else if (data instanceof BizType) { + BizType bizType = (BizType) data; + funcId = bizType.name; + } else if (data instanceof PLUILayout) { + PLUILayout context = (PLUILayout) data; + funcId = context.plOId; + } else if (data instanceof PLTabPage) { + PLTabPage tab = (PLTabPage) data; + funcId = tab.plOId; + } else if (data instanceof PLPageDefination) { + PLPageDefination pageDef = (PLPageDefination) data; + funcId = pageDef.plOId; + } else if (data instanceof PLTabButton) { + PLTabButton but = (PLTabButton) data; + funcId = but.plOId; + } + if (!(data instanceof PLPageDefination)) {//瀛愯妭鐐逛笉鏄搷浣� + if (!rightMap.containsKey(funcId) && !funcId.equals("root")) { + RoleRightDTO roleRightDTO = new RoleRightDTO(); + roleRightDTO.setFuncId(funcId); + if (isDeveloper) { + roleRightDTO.setRightType((short) 1);//鏉冮檺绫诲瀷 鏉冮檺绫诲瀷锛岃秴绾х鐞嗗憳缁欑鐞嗗憳鎺堟潈涓�1锛岀鐞嗗憳缁欐櫘閫氱敤鎴锋巿鏉冧负2 + } else { + roleRightDTO.setRightType((short) 2); + } + roleRightDTO.setRightValue(0);//娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 + roleRightDTO.setRoleId(roleId); + roleRightDTO.setCreateUser(currentUserName); + roleRightDTO.setCreateTime(VciDateUtil.date2Str(new Date(),"")); + roleRightDTO.setModifyUser(currentUserName); + roleRightDTO.setModifyTime(VciDateUtil.date2Str(new Date(),"")); + roleRightDTO.setLicensor(""); + rightMap.put(funcId, roleRightDTO); + } + for (int i = 0; i < node.getChildren().size(); i++) { + //瀵规瘡涓瓙鍚戜笅閫掑綊閬嶅巻 + getRightValue(roleId, node.getChildren().get(i), allTreeMap, false, rightMap); + } + } else { + if (!rightMap.containsKey(funcId)) { + RoleRightDTO roleRightDTO = new RoleRightDTO(); + roleRightDTO.setFuncId(funcId); + roleRightDTO.setRightType((short) 2); // 璁剧疆UI鏉冮檺 + roleRightDTO.setRightValue(countRightValue(node, true));//娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 + roleRightDTO.setRoleId(roleId); + roleRightDTO.setCreateUser(currentUserName); + roleRightDTO.setCreateTime(VciDateUtil.date2Str(new Date(),"")); + roleRightDTO.setModifyUser(currentUserName); + roleRightDTO.setModifyTime(VciDateUtil.date2Str(new Date(),"")); + roleRightDTO.setLicensor(""); + rightMap.put(funcId, roleRightDTO); + } + } } } @@ -1404,6 +1979,13 @@ }); } + /*** + * 閬嶅巻瀛愯妭鐐� + * @param parentTree + * @param contextList + * @param roleRightVOMap + * @param isShowCheckBox + */ private void setChildNode(List<Tree> parentTree, List<PLUILayout>contextList,Map<String,RoleRightVO> roleRightVOMap,boolean isShowCheckBox){ Optional.ofNullable(parentTree).orElseGet(()->new ArrayList<Tree>()).stream().forEach(pTree -> { Object funcObj= pTree.getData(); @@ -1523,6 +2105,22 @@ /** * UI瑙掕壊瀵硅薄杞崲 + * @param vos + * @return + */ + private List<RoleRightDTO> roleRightVOO2DTOS(List<RoleRightVO> vos){ + List<RoleRightDTO> roleRightVOS=new ArrayList<>(); + Optional.ofNullable(vos).orElseGet(()->new ArrayList<>()).stream().forEach(vo -> { + RoleRightDTO dto=roleRightVOO2DTO(vo); + roleRightVOS.add(dto); + }); + + return roleRightVOS; + } + + + /** + * UI瑙掕壊瀵硅薄杞崲 * @param infos * @return */ @@ -1534,6 +2132,26 @@ }); return roleRightVOS; + } + + /** + * UI瑙掕壊瀵硅薄杞崲 + * @param dtos + * @return + */ + private List<RoleRightInfo> roleRightDTOO2InfoS(List<RoleRightDTO> dtos){ + List<RoleRightInfo> roleRightInfoList=new ArrayList<>(); + Optional.ofNullable(dtos).orElseGet(()->new ArrayList<>()).stream().forEach(dto -> { + RoleRightInfo info= null; + try { + info = roleRightDTOO2Info(dto); + } catch (Exception e) { + e.printStackTrace(); + } + roleRightInfoList.add(info); + }); + + return roleRightInfoList; } /** @@ -1554,6 +2172,46 @@ vo.setModifyTime(VciDateUtil.date2Str(VciDateUtil.long2Date(info.modifyTime),"")); vo.setModifyUser(info.modifyUser); return vo; + } + + /** + * UI瑙掕壊瀵硅薄杞崲 + * @param vo + * @return + */ + private RoleRightDTO roleRightVOO2DTO(RoleRightVO vo){ + RoleRightDTO dto=new RoleRightDTO(); + dto.setId(vo.getId()); + dto.setCreateTime(vo.getCreateTime()); + dto.setCreateUser(vo.getCreateUser()); + dto.setRoleId(vo.getRoleId()); + dto.setRightType(vo.getRightType()); + dto.setLicensor(vo.getLicensor()); + dto.setRightValue(vo.getRightValue()); + dto.setFuncId(vo.getFuncId()); + dto.setModifyTime(vo.getModifyTime()); + dto.setModifyUser(vo.getModifyUser()); + return dto; + } + + /** + * UI瑙掕壊瀵硅薄杞崲 + * @param dto + * @return + */ + private RoleRightInfo roleRightDTOO2Info(RoleRightDTO dto) throws Exception { + RoleRightInfo info=new RoleRightInfo(); + info.id=StringUtils.isBlank(dto.getId())?"":dto.getId(); + info.createTime=StringUtils.isBlank(dto.getCreateTime())?new Date().getTime():VciDateUtil.getTime(VciDateUtil.str2Date(dto.getCreateTime(),"")); + info.createUser=StringUtils.isBlank(dto.getCreateUser())?"":dto.getCreateUser(); + info.roleId=StringUtils.isBlank(dto.getRoleId())?"":dto.getRoleId(); + info.rightType=dto.getRightType(); + info.licensor =StringUtils.isBlank(dto.getLicensor())?"":dto.getLicensor(); + info.rightValue=dto.getRightValue(); + info.funcId=StringUtils.isBlank(dto.getFuncId())?"":dto.getFuncId(); + info.modifyTime=StringUtils.isBlank(dto.getModifyTime())? new Date().getTime() :VciDateUtil.getTime(VciDateUtil.str2Date(dto.getModifyTime(),"")); + info.modifyUser=StringUtils.isBlank(dto.getModifyUser())?"":dto.getModifyUser(); + return info; } /** @@ -1694,13 +2352,14 @@ /** * 闈炵┖妫�鏌� - * @param tip - * @param txt + * @param tip 鎻愮ず淇℃伅 + * @param txt 鏍¢獙鐨勫唴瀹� + * @param isRequired 鏄惁蹇呭~ * @return */ - protected boolean checkRequiredIsOk(String tip, String txt){ + protected boolean checkRequiredIsOk(String tip, String txt,boolean isRequired/*鏄惁蹇呭~*/){ boolean res = false; - if(Func.isBlank(txt)){ + if(Func.isBlank(txt) && isRequired){ throw new VciBaseException(tip + " 涓嶈兘涓虹┖锛�"); } else { res = true; @@ -1714,11 +2373,11 @@ * @param btmName 涓氬姟绫诲瀷鍚� * @return */ - protected boolean checkBtmTypeTxtIsOk(String tipName, String btmName) throws PLException { + protected boolean checkBtmTypeTxtIsOk(String tipName, String btmName,boolean isRequired) throws PLException { boolean res = false; if(tipName == null) return true; if(btmName == null) return true; - if(!checkRequiredIsOk(tipName, btmName)){ + if(!checkRequiredIsOk(tipName, btmName, isRequired)){ res = false; } else if(!checkBtmNameIsExist(tipName, btmName)){ res = false; @@ -1770,11 +2429,11 @@ * @param btmLinkType * @return */ - protected boolean checkPortalVITxtIsOk(String tip, String txtVIName, String btmLinkType) throws PLException { + protected boolean checkPortalVITxtIsOk(String tip, String txtVIName, String btmLinkType, boolean isRequired) throws PLException { boolean res = false; if(tip == null) return true; if(txtVIName == null) return true; - if(!checkRequiredIsOk(tip, txtVIName)){ + if(!checkRequiredIsOk(tip, txtVIName,isRequired)){ res = false; } else if(!checkPortalVIIsExist(tip, txtVIName, btmLinkType)){ res = false; @@ -1813,13 +2472,13 @@ * @param btmLinkType * @return */ - protected boolean checkQTNameTxtIsOk(String tip, String txtQTName, String btmLinkType) throws PLException { + protected boolean checkQTNameTxtIsOk(String tip, String txtQTName, String btmLinkType, boolean isRequired) throws PLException { boolean res = false; if(tip == null) return true; if(txtQTName == null) return true; - if(!checkRequiredIsOk(tip, txtQTName)){ + if(!checkRequiredIsOk(tip, txtQTName, isRequired)){ res = false; - } else if(Func.isBlank(txtQTName) && !checkQTIsExist(tip, txtQTName, btmLinkType)){ + } else if(Func.isNotBlank(txtQTName) && !checkQTIsExist(tip, txtQTName, btmLinkType)){ res = false; } else { res = true; @@ -1834,11 +2493,11 @@ * @param btmLinkType * @return */ - protected boolean checkUILayoutTxtIsOk(String tip, String uiName, String btmLinkType) throws PLException { + protected boolean checkUILayoutTxtIsOk(String tip, String uiName, String btmLinkType, boolean isRequired) throws PLException { boolean res = false; if(tip == null) return true; if(uiName == null) return true; - if(!checkRequiredIsOk(tip, uiName)){ + if(!checkRequiredIsOk(tip, uiName,isRequired)){ res = false; } else if(!checkUILayoutIsExist(tip, uiName, btmLinkType)){ res = false; @@ -1892,11 +2551,11 @@ * @param linkTypeName * @return */ - protected boolean checkLinkTypeTxtIsOk(String tip, String linkTypeName) throws PLException { + protected boolean checkLinkTypeTxtIsOk(String tip, String linkTypeName, boolean isRequired) throws PLException { boolean res = false; if(tip == null) return true; if(linkTypeName == null) return true; - if(!checkRequiredIsOk(tip, linkTypeName)){ + if(!checkRequiredIsOk(tip, linkTypeName,isRequired)){ res = false; } else if(!checkLinkTypeIsExist(tip, linkTypeName)){ res = false; @@ -2040,11 +2699,11 @@ */ private boolean checkBtmTypeInputIsOk(String btmType,String txtVIName/*閫夋嫨妯℃澘*/,String txtQTName/*鏌ヨ妯℃澘*/) throws PLException { boolean res = false; - if(!super.checkBtmTypeTxtIsOk("涓氬姟绫诲瀷", btmType)){ + if(!super.checkBtmTypeTxtIsOk("涓氬姟绫诲瀷", btmType,true)){ res = false; - } else if(!super.checkPortalVITxtIsOk("閫夋嫨妯℃澘", txtVIName, btmType)){ + } else if(!super.checkPortalVITxtIsOk("閫夋嫨妯℃澘", txtVIName, btmType,true)){ res = false; - } else if(!super.checkQTNameTxtIsOk("鏌ヨ妯℃澘", txtQTName, btmType)){ + } else if(!super.checkQTNameTxtIsOk("鏌ヨ妯℃澘", txtQTName, btmType,false)){ res = false; } else { res = true; @@ -2061,11 +2720,11 @@ */ private boolean checkLinkTypeInputIsOk(String txtVIName/*閫夋嫨鐨勬ā鏉�*/,String txtQTName/*鏌ヨ妯℃澘*/,String btmType) throws PLException { boolean res = false; - if(!(this.checkBtmTypeTxtIsOk("鐩爣瀵硅薄", linkType))){ + if(!(this.checkBtmTypeTxtIsOk("鐩爣瀵硅薄", linkType,true))){ res = false; - } else if(!(this.checkPortalVITxtIsOk("閫夋嫨妯℃澘", txtVIName, linkType))){ + } else if(!(this.checkPortalVITxtIsOk("閫夋嫨妯℃澘", txtVIName, linkType,true))){ res = false; - } else if(!(this.checkQTNameTxtIsOk("鏌ヨ妯℃澘", txtQTName, linkType))){ + } else if(!(this.checkQTNameTxtIsOk("鏌ヨ妯℃澘", txtQTName, linkType,false))){ res = false; } else { res = true; @@ -2145,11 +2804,11 @@ private boolean checkBtmTypeInputIsOk() throws PLException { boolean res = false; - if(!(super.checkBtmTypeTxtIsOk("椤剁骇鑺傜偣鏄剧ず绫诲瀷", btmType))){ + if(!(super.checkBtmTypeTxtIsOk("椤剁骇鑺傜偣鏄剧ず绫诲瀷", btmType,true))){ res = false; - } else if(!(super.checkPortalVITxtIsOk("閫夋嫨妯℃澘", txtVIName, btmType))){ + } else if(!(super.checkPortalVITxtIsOk("閫夋嫨妯℃澘", txtVIName, btmType,true))){ res = false; - } else if(!(super.checkQTNameTxtIsOk("鏌ヨ妯℃澘", txtQTName , btmType))){ + } else if(!(super.checkQTNameTxtIsOk("鏌ヨ妯℃澘", txtQTName , btmType,false))){ res = false; } else { res = true; @@ -2159,11 +2818,11 @@ private boolean checkLinkTypeInputIsOk() throws PLException { boolean res = false; - if(!(super.checkBtmTypeTxtIsOk("椤剁骇鑺傜偣鏄剧ず绫诲瀷", linkType))){ + if(!(super.checkBtmTypeTxtIsOk("椤剁骇鑺傜偣鏄剧ず绫诲瀷", linkType,true))){ res = false; - } else if(!(super.checkPortalVITxtIsOk("閫夋嫨妯℃澘", txtVIName, linkType))){ + } else if(!(super.checkPortalVITxtIsOk("閫夋嫨妯℃澘", txtVIName, linkType,true))){ res = false; - } else if(!(super.checkQTNameTxtIsOk("鏌ヨ妯℃澘", txtQTName, linkType))){ + } else if(!(super.checkQTNameTxtIsOk("鏌ヨ妯℃澘", txtQTName, linkType,false))){ res = false; } else { res = true; @@ -2241,34 +2900,34 @@ private boolean checkBtmTypeInputIsOk() throws PLException { boolean res = false; - if(!(super.checkBtmTypeTxtIsOk("涓氬姟绫诲瀷", btmType))){ + if(!(super.checkBtmTypeTxtIsOk("涓氬姟绫诲瀷", btmType,true))){ res = false; return res; } // 閾炬帴绫诲瀷涓嶄负绌烘椂锛岄渶瑕佸悓鏃舵鏌ラ摼鎺ョ被鍨嬪強閾炬帴绫诲瀷涓嬬殑鏌ヨ妯℃澘鏄惁鏈夋晥 if(Func.isBlank(linkType)){ - if(!(super.checkLinkTypeTxtIsOk("閾炬帴绫诲瀷", linkType))){ + if(!(super.checkLinkTypeTxtIsOk("閾炬帴绫诲瀷", linkType,false))){ res = false; return res; - } else if(!(super.checkQTNameTxtIsOk("鏌ヨ妯℃澘", queryTemplateName, linkType))){ + } else if(!(super.checkQTNameTxtIsOk("鏌ヨ妯℃澘", queryTemplateName, linkType,true))){ res = false; return res; } } else { // 閾炬帴绫诲瀷涓虹┖鏃讹紝鍙渶瑕佹鏌ヤ笟鍔$被鍨嬩笅鐨勬煡璇㈡ā鏉挎槸鍚︽湁鏁� - if(!(super.checkQTNameTxtIsOk("鏌ヨ妯℃澘", queryTemplateName, btmType))){ + if(!(super.checkQTNameTxtIsOk("鏌ヨ妯℃澘", queryTemplateName, btmType,true))){ res = false; return res; } } - if(!super.checkRequiredIsOk("鏍硅妭鐐规樉绀鸿〃杈惧紡", showExpressionRoot)){ + if(!super.checkRequiredIsOk("鏍硅妭鐐规樉绀鸿〃杈惧紡", showExpressionRoot,true)){ res = false; } - else if(!super.checkRequiredIsOk("鏍戣妭鐐规樉绀鸿〃杈惧紡", showExpression)){ + else if(!super.checkRequiredIsOk("鏍戣妭鐐规樉绀鸿〃杈惧紡", showExpression,true)){ res = false; } - else if(!super.checkRequiredIsOk("鍙傜収鏍戣缃�", refTreeSet)){ + else if(!super.checkRequiredIsOk("鍙傜収鏍戣缃�", refTreeSet,true)){ res = false; } else { @@ -2336,11 +2995,11 @@ private boolean checkUILayoutInputIsOk() throws PLException { boolean res = false; - if (!(super.checkBtmTypeTxtIsOk("瀵硅薄绫诲瀷", uiBtmType))) { + if (!(super.checkBtmTypeTxtIsOk("瀵硅薄绫诲瀷", uiBtmType,true))) { res = false; - } else if (!(super.checkUILayoutTxtIsOk("UI瀹氫箟", uiLayout, uiBtmType))) { + } else if (!(super.checkUILayoutTxtIsOk("UI瀹氫箟", uiLayout, uiBtmType,true))) { res = false; - } else if (!(super.checkQTNameTxtIsOk("鏌ヨ妯℃澘", queryTemplateName, qryType))) { + } else if (!(super.checkQTNameTxtIsOk("鏌ヨ妯℃澘", queryTemplateName, qryType,false))) { res = false; } else { res = true; -- Gitblit v1.9.3