From 09a31541e8aee63ed51e79c0eee32b685c3d753a Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期五, 06 九月 2024 18:30:13 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java | 359 ++++++++++++++++++--------------------- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java | 5 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsQueryTemplateImpl.java | 43 +--- Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/RoleRightParamDTO.java | 34 +++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsQuereyTemplateServiceI.java | 2 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/ISmFunctionQueryService.java | 27 ++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/HMSysModConfigController.java | 45 ++++ 7 files changed, 274 insertions(+), 241 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/RoleRightParamDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/RoleRightParamDTO.java new file mode 100644 index 0000000..3e78a67 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/RoleRightParamDTO.java @@ -0,0 +1,34 @@ +package com.vci.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 淇濆瓨鏉冮檺浼犺緭瀵硅薄 + * @author yuxc + * @date 2024-09-06 + */ +@Data +public class RoleRightParamDTO implements Serializable { + + + /** + * 绂佹淇敼杩欎釜鍊� + */ + private static final long serialVersionUID = 2492852474710986720L; + /** + * 鐖惰妭鐐圭殑涓婚敭 + */ + public String parentId; + /** + * 涓婚敭 + */ + public String id; + /** + * 褰撳墠鑺傜偣鐨勭被鍨� 1琛ㄧず妯″潡锛�2琛ㄧず鎿嶄綔 + */ + public int type; + + public long number; +} 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 9f04b2f..89cc712 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,14 +2,13 @@ import com.vci.common.exception.VciException; import com.vci.corba.common.PLException; +import com.vci.dto.RoleRightDTO; +import com.vci.dto.RoleRightParamDTO; import com.vci.frameworkcore.enumpck.ResourceControlTypeEnum; import com.vci.pagemodel.MenuVO; import com.vci.pagemodel.SmFunctionVO; import com.vci.starter.web.exception.VciBaseException; -import com.vci.starter.web.pagemodel.DataGrid; -import com.vci.starter.web.pagemodel.PageHelper; -import com.vci.starter.web.pagemodel.Tree; -import com.vci.starter.web.pagemodel.TreeQueryObject; +import com.vci.starter.web.pagemodel.*; import com.vci.pagemodel.UIContentVO; import com.vci.web.service.OsBaseServiceI; @@ -64,13 +63,11 @@ List<MenuVO> getSysModelTreeMenuByPID(String parentId,String modeType,boolean isAll) throws VciBaseException; /** * 閫氳繃妯″潡ID鑾峰彇瀛愮骇鍒楄〃 - * @param parentId - * @param modeType 妯″潡绫诲瀷 * @param isAll 鏄惁鍖呮嫭鏃犳晥鐨勬ā鍧楋紝true鍒欏寘鎷� * @return * @throws VciBaseException */ - List<MenuVO> getSysModelAuthTreeMenuByPID(String parentId,String modeType,boolean isAll) throws VciBaseException, PLException; + List<MenuVO> getSysModelAuthTreeMenuByPID(boolean isAll) throws VciBaseException, PLException; int checkChildObject(String moduleId) throws VciException; @@ -163,4 +160,20 @@ DataGrid<SmFunctionVO> gridFunctionByRoleOids(Collection<String> roleOidCollection, Map<String, String> queryMap, PageHelper pageHelper, ResourceControlTypeEnum resourceControlTypeEnum); UIContentVO getUIContentByBtmTypeAndId(TreeQueryObject treeQueryObject, ResourceControlTypeEnum bs) throws PLException; + /** + * 鑾峰彇鎺堟潈鐨勬ā鍧� + * @param roleId 瑙掕壊涓婚敭 + * @return 鎵�鍏锋湁鏉冮檺鐨勪富閿� + * @throws PLException + */ + List<String> getSysModelAuth(String roleId) throws PLException; + + /** + * 淇濆瓨鎺堟潈鐨勬ā鍧� + * @param roleRightDTOS 鐢ㄦ埛閫夋嫨鎺堟潈妯″潡淇℃伅 + * @param roleId 瑙掕壊涓婚敭 + * @return 鎺堟潈缁撴灉 + * @throws PLException + */ + BaseResult saveRoleRight(List<RoleRightParamDTO> roleRightDTOS, String roleId) throws PLException; } 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 daa7f5c..a420aad 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 @@ -8,11 +8,15 @@ import com.vci.common.exception.VciException; import com.vci.common.locale.LocaleDisplay; import com.vci.corba.common.PLException; +import com.vci.corba.common.data.UserEntityInfo; import com.vci.corba.framework.data.*; import com.vci.corba.omd.data.BusinessObject; import com.vci.corba.portal.data.PLUILayout; +import com.vci.dto.RoleRightDTO; +import com.vci.dto.RoleRightParamDTO; import com.vci.frameworkcore.compatibility.ISmFunctionQueryService; import com.vci.frameworkcore.enumpck.ResourceControlTypeEnum; +import com.vci.model.RoleRightDO; import com.vci.model.SmFunctionForPlatform1; import com.vci.model.SmRoleForPlatform1; import com.vci.pagemodel.MenuVO; @@ -567,6 +571,163 @@ } /** + * 鑾峰彇鎺堟潈鐨勬ā鍧� + * @param roleId 瑙掕壊涓婚敭 + * @return 鎵�鍏锋湁鏉冮檺鐨勪富閿� + * @throws PLException + */ + @Override + 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)); + String parentId; + SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfoNotException(); + boolean adminOrDeveloperOrRoot = rightControlUtil.isAdminOrDeveloperOrRoot(sessionInfo.getUserId()); + if (adminOrDeveloperOrRoot) { + //绯荤粺鑿滃崟 + parentId = SYSTEMMANAGMENTNODE; + } else if (rightControlUtil.isThreeAdminCurUser()) { + //涓夊憳杩斿洖绠$悊鍔熻兘妯″潡鐩稿叧鐨勮彍鍗� + parentId = SYSTEMMANAGMENTNODE; + } else { + //鏅�氱敤鎴峰彧杩斿洖涓氬姟鍔熻兘妯″潡鐩稿叧鐨勮彍鍗� + parentId = ROOT_MENU_ID; + } + FunctionInfo[] moduleListByParentId = getModuleListByParentId(parentId, false); + List<String> authList = new ArrayList<>(); + for (FunctionInfo functionInfo : moduleListByParentId) { + if(authMap.containsKey(functionInfo.id)){ + authList.add(functionInfo.id); + getChildAuthNode(functionInfo, authMap, authList); + } + } + return authList; + } + + public BaseResult saveRoleRight(List<RoleRightParamDTO> roleRightDTOS, String roleId) throws PLException { + /** + * 瀛樺偍闇�瑕佷繚瀛樼殑鏉冮檺 + */ + Map<String,RoleRightInfo> rightMap = new HashMap<String,RoleRightInfo>(); + + Map<String, List<RoleRightParamDTO>> parentMap = roleRightDTOS.stream().collect(Collectors.groupingBy(e -> e.parentId)); + + for (RoleRightParamDTO dto : roleRightDTOS) { + RoleRightInfo obj = null; + //鍒ゆ柇绫诲瀷 + if(dto.getType() == 1 && !dto.getParentId().equals(ROOT_MENU_ID) + && !dto.getParentId().equals(SYSTEMMANAGMENTNODE) + && !dto.getParentId().equals(OPERATENODE)){ + if(!rightMap.containsKey(dto.getParentId())){ + obj = new RoleRightInfo(); + obj.funcId = dto.getParentId(); + obj.rightType = (short)1; + obj.rightValue = 1;//娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 + obj.roleId = roleId; + obj.createUser = WebUtil.getCurrentUserId(); + obj.createTime = new Date().getTime(); + obj.modifyUser = WebUtil.getCurrentUserId(); + obj.modifyTime = new Date().getTime(); + obj.licensor = ""; + }else{ + obj = rightMap.get(dto.getParentId()); + if (obj == null) { + obj = new RoleRightInfo(); + obj.funcId = dto.getParentId(); + obj.rightType = (short)1; + obj.rightValue = 1;//娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 + obj.roleId = roleId; + obj.createUser = WebUtil.getCurrentUserId(); + obj.createTime = new Date().getTime(); + obj.modifyUser = WebUtil.getCurrentUserId(); + obj.modifyTime = new Date().getTime(); + obj.licensor = ""; + }else { + obj.rightValue = 1; + } + } + rightMap.put(dto.getParentId(), obj); + }else if (dto.getType() == 2){ +// RoleRightInfo roleRightObj = new RoleRightInfo(); + if(!rightMap.containsKey(dto.getParentId())) { + obj = new RoleRightInfo(); + obj.funcId = dto.getParentId(); + obj.rightType = (short)1; + obj.rightValue = countRightValue(parentMap.get(dto.getParentId()));//娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 + obj.roleId = roleId; + obj.createUser = WebUtil.getCurrentUserId(); + obj.createTime = new Date().getTime(); + obj.modifyUser = WebUtil.getCurrentUserId(); + obj.modifyTime = new Date().getTime(); + obj.licensor = ""; + rightMap.put(dto.getParentId(), obj); + } + + } + } + /**涓婇潰澶勭悊瀹屾垚鍚庯紝寰幆閬嶅巻鍙栧嚭MAP閲岀殑瀵硅薄杩涜淇濆瓨**/ + RoleRightInfo[] roleRightObjs = new RoleRightInfo[rightMap.size()]; + Set<String> objSet = rightMap.keySet(); + Iterator<String> it = objSet.iterator(); + int i = 0; + while(it.hasNext()){ + roleRightObjs[i++] = rightMap.get(it.next()); + } + UserEntityInfo userEntityInfo = new UserEntityInfo(); + userEntityInfo.setModules("com.vci.client.framework.rightdistribution.roleRight.RoleRightPanel"); + userEntityInfo.setUserName(WebUtil.getCurrentUserId()); + boolean res = platformClientUtil.getFrameworkService() + .saveRoleRight(roleRightObjs,roleId,WebUtil.getCurrentUserId(), userEntityInfo); + if(!res){ + throw new PLException("500", new String[]{"鍔熻兘妯″潡鎺堟潈澶辫触锛�"}); + } + return BaseResult.success(); + } + + private long countRightValue(List<RoleRightParamDTO> dtos){ + long value = 0; + for (RoleRightParamDTO dto : dtos) { + value += (long)Math.pow(2, dto.getNumber());//绱鍔犱笂鍚勪釜鎿嶄綔鐨勬潈闄愬�� + } + return value; + } + + /** + * + * @param funcObj 妯″潡瀵硅薄 + * @param authMap 璇ヨ鑹蹭笅鎵�鏈夌殑鏉冮檺鏁版嵁 + * @param authList 璇ヨ鑹蹭笅鎵�鍏锋湁鐨勬潈闄� + * @throws PLException + */ + private void getChildAuthNode(FunctionInfo funcObj, Map<String, Long> authMap, List<String> authList) throws PLException { + /**0琛ㄧず璇ユā鍧椾笅浠�涔堥兘娌℃湁锛�1琛ㄧず鏈夋ā鍧楋紝2琛ㄧず鏈夋搷浣�**/ + long funcType = platformClientUtil.getFrameworkService().checkChildObject(funcObj.id); + if(funcType == 1){ + FunctionInfo[] funcInfos = platformClientUtil.getFrameworkService().getModuleListByParentId(funcObj.id, false); + for(int i=0;i<funcInfos.length;i++){ + if(authMap.containsKey(funcInfos[i].id)){ + authList.add(funcInfos[i].id); + getChildAuthNode(funcInfos[i], authMap, authList); + } + } + }else if(funcType == 2){ + FuncOperationInfo[] funcOperates = platformClientUtil.getFrameworkService().getFuncOperationByModule(funcObj.id, "", true); + for (int j = 0; j < funcOperates.length; j++) { + if(authMap.containsKey(funcOperates[j].funcId)){ + long rightValue = authMap.get(funcOperates[j].funcId); + long nodeValue = funcOperates[j].number; + long preValue = (rightValue >> nodeValue) & 1; + //杩涜浣嶄笌鎿嶄綔锛屽鏋滅浉绛夊垯琛ㄧず鍏锋湁褰撳墠鎿嶄綔鐨勬潈闄� + if (preValue == 1) { + authList.add(funcOperates[j].id); + } + } + } + } + } + + /** * 鑾峰彇鎵�鏈夌殑鍔熻兘鑿滃崟 * * @param treeQueryObject 鏍戞煡璇㈠璞� @@ -903,20 +1064,15 @@ /** * 閫氳繃妯″潡ID鑾峰彇瀛愮骇鍒楄〃 - * @param parentId - * @param modeType 妯″潡绫诲瀷 * @param isAll 鏄惁鍖呮嫭鏃犳晥鐨勬ā鍧楋紝true鍒欏寘鎷� * @return * @throws VciBaseException */ @Override - public List<MenuVO> getSysModelAuthTreeMenuByPID(String parentId,String modeType,boolean isAll) throws VciBaseException, PLException { - List<MenuVO> menuVOList = new ArrayList<>(); -// if(Func.isBlank(parentId)){ -// return menuVOList; -// } + public List<MenuVO> getSysModelAuthTreeMenuByPID(boolean isAll) throws VciBaseException, PLException { SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfoNotException(); boolean adminOrDeveloperOrRoot = rightControlUtil.isAdminOrDeveloperOrRoot(sessionInfo.getUserId()); + String parentId; if (adminOrDeveloperOrRoot) { //绯荤粺鑿滃崟 parentId = SYSTEMMANAGMENTNODE; @@ -928,7 +1084,7 @@ parentId = ROOT_MENU_ID; } List<MenuVO> functionVOList = new ArrayList<>(); - FunctionInfo[] moduleListByParentId = getModuleListByParentId(parentId, false); + FunctionInfo[] moduleListByParentId = getModuleListByParentId(parentId, isAll); for (FunctionInfo menu : moduleListByParentId) { if(!menu.isValid){ continue; @@ -944,14 +1100,6 @@ functionVO.getMeta().put("keepAlive",false); functionVO.setSort((int) menu.seq); findChildAuthFunctionVO(functionVO, isAll); -// try { -// functionVO.setChildren(findChildAuthFunctionVO(menu.id)); -// } catch (PLException e) { -// e.printStackTrace(); -// String errorMsg = "鑿滃崟鏌ヨ鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); -// logger.error(errorMsg); -// throw new VciBaseException(errorMsg); -// } if(functionVO.getChildren().size() > 0){ functionVO.setHasChildren(true); }else { @@ -960,185 +1108,6 @@ functionVOList.add(functionVO); } return functionVOList; - - - -// RoleRightInfo[] userRoleRights = rightControlUtil.getRoleRightByUserName(sessionInfo.getUserId()); -// Map<String, List<FunctionInfo>> map = rightControlUtil.getAllChildrenFunctionsByUserName( -// parentId, sessionInfo.getUserId(), userRoleRights); -// -// if(Func.isEmpty(map.get(parentId))) { -// return functionVOList; -// } -// for (FunctionInfo menu : map.get(parentId)) { -// if(!menu.isValid){ -// continue; -// } -// MenuVO functionVO = new MenuVO(); -// functionVO.setId(menu.id); -// functionVO.setSource(menu.image); -// //if(StringUtils.isBlank(menu.resourceB)){ -// // continue; -// //} -// functionVO.setPath(menu.resourceB); -// functionVO.setParentId(menu.parentId); -// functionVO.setCode(menu.aliasName); -// functionVO.setAlias(menu.aliasName); -// functionVO.setName(menu.name); -// functionVO.getMeta().put("keepAlive",false); -// functionVO.setSort((int) menu.seq); -//// try { -//// functionVO.setChildren(findChildAuthFunctionVO(menu.id, map)); -//// } catch (PLException e) { -//// e.printStackTrace(); -//// String errorMsg = "鑿滃崟鏌ヨ鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); -//// logger.error(errorMsg); -//// throw new VciBaseException(errorMsg); -//// } -// if(functionVO.getChildren().size() > 0){ -// functionVO.setHasChildren(true); -// }else { -// functionVO.setHasChildren(false); -// } -// functionVOList.add(functionVO); -// } -// //濡傛灉鏄紑鍙戞垨鑰呮祴璇曠敤鎴凤紝闇�鍝熻幏鍙栫郴缁熸ā鍧楅厤缃彍鍗� -// if(adminOrDeveloperOrRoot){ -// //鑾峰彇棣栭〉绯荤粺妯″潡閰嶇疆鑿滃崟 -// MenuVO menuVO = JsonConfigReader.getSysModuleConf().getSysModuleNode(); -// if(Func.isNotEmpty(menuVO)){ -// functionVOList.add(menuVO); -// } -// } -// return functionVOList.stream().sorted(Comparator.comparing(s -> s.getSort())).collect(Collectors.toList()); - - - - - -// -// -// -// -// boolean isFunctionObject = Func.isNotBlank(modeType) && modeType.equalsIgnoreCase("FunctionObject"); -// if(parentId.equals("systemManagmentNode") || parentId.equals("modelManagmentNode") || isFunctionObject){ -// int childType = this.checkChildObject(parentId); -// if(isFunctionObject){ -// try { -// /**鍒ゆ柇璇ユā鍧椾笅瀛愬璞℃槸妯″潡杩樻槸鎿嶄綔锛�0琛ㄧず鏃犲瓙鑺傜偣锛�1琛ㄧず鏄ā鍧楋紝2琛ㄧず鏄搷浣�**/ -// if(childType == 2){ -// try{ -// FuncOperationInfo[] infos = platformClientUtil.getFrameworkService().getFuncOperationByModule(parentId, "", false); -// if(Func.isNotEmpty(infos.length)){ -// childType = this.checkChildObject(infos[0].id); //閮芥槸鍚屼竴灞傛墍浠ュ彇绗竴涓嵆鍙煡璇㈡槸浠�涔堢被鍨� -// for(int i = 0;i < infos.length ;i++){ -// FuncOperationInfo info = infos[i]; -// MenuVO menuVO = new MenuVO(); -// menuVO.setChildType(childType); -// menuVO.setId(info.id); -// menuVO.setFuncId(info.funcId); -// menuVO.setCode(info.operIndentify); -// menuVO.setOperId(info.operId); -// menuVO.setName(info.operName); -// menuVO.setAlias(info.operAlias); -// menuVO.setRemark(info.operDesc); -// menuVO.setSort((int) info.number); -// menuVO.setModeType("FunctionObject"); -// menuVO.setIsValid(info.isValid); -// menuVO.setHasChildren(false); -// menuVOList.add(menuVO); -// } -// } -// }catch (PLException e) { -// e.printStackTrace(); -// throw new VciBaseException(String.valueOf(e.code), e.messages); -// } -// }else if(childType == 1){ -// try{ -// FunctionInfo[] funcInfos = platformClientUtil.getFrameworkService().getModuleListByParentId(parentId, isAll); -// if(Func.isNotEmpty(funcInfos.length)){ -// childType = this.checkChildObject(funcInfos[0].id); //閮芥槸鍚屼竴灞傛墍浠ュ彇绗竴涓嵆鍙煡璇㈡槸浠�涔堢被鍨� -// for(int i = 0;i < funcInfos.length; i++){ -// FunctionInfo funcInfo = funcInfos[i]; -// MenuVO menuVO = this.functionInfoToMenuVO(funcInfo); -// menuVO.setChildType(childType); -// menuVO.setModeType("FunctionObject"); -// menuVOList.add(menuVO); -// } -// } -// }catch (PLException e) { -// e.printStackTrace(); -// throw new VciBaseException(String.valueOf(e.code),e.messages); -// } -// } -// } catch (Exception e) { -// e.printStackTrace(); -// throw new VciBaseException("妯″潡鏌ヨ鏃跺嚭鐜伴敊璇紝鍘熷洜锛�"+VciBaseUtil.getExceptionMessage(e)); -// } -// }else{ -// try{ -// MenuVO parentNode = null; -// //灏嗚繑鍥炵殑鑺傜偣澶栧眰濂椾笂褰撳墠鐖惰妭鐐� -// if("systemManagmentNode".equals(parentId)){ -// parentNode = JsonConfigReader.getSysModuleConf().getSystemManagmentNode(); -// }else if("modelManagmentNode".equals(parentId)){ -// parentNode = JsonConfigReader.getSysModuleConf().getModelManagmentNode(); -// } -// //濡傛灉鏌ヨ鐨勬槸绗竴灞傝妭鐐瑰氨闇�瑕佺洿鎺ヨ繑鍥瀞ystemManagmentNode鎴杕odelManagmentNode鑺傜偣 -// if(Func.isNotBlank(modeType) && modeType.equals("firstNode")){ -// menuVOList.add(parentNode); -// return menuVOList; -// } -// //鏌ヨ鐨勪笁绾ц妭鐐� -// FunctionInfo[] funcInfos = platformClientUtil.getFrameworkService().getModuleListByParentId(parentId, isAll); -// for(int i = 0;i < funcInfos.length; i++){ -// FunctionInfo funcInfo = funcInfos[i]; -// MenuVO menuVO = this.functionInfoToMenuVO(funcInfo); -// menuVO.setModeType("FunctionObject"); -// menuVO.setChildType(childType); -// menuVOList.add(menuVO); -// } -// return menuVOList; -// }catch (PLException e) { -// e.printStackTrace(); -// throw new VciBaseException(String.valueOf(e.code),e.messages); -// } -// } -// } -// else if(parentId.equals("operateNode")){ -// //鍔犺浇鎵�鏈夋搷浣� -// try{ -// //灏嗚繑鍥炵殑鑺傜偣澶栧眰濂椾笂褰撳墠鐖惰妭鐐� -// MenuVO parentNode = JsonConfigReader.getSysModuleConf().getOperateNode(); -// //濡傛灉鏌ヨ鐨勬槸绗竴灞傝妭鐐瑰氨闇�瑕佺洿鎺ヨ繑鍥瀞ysOptionNode鑺傜偣 -// if(Func.isNotBlank(modeType) && modeType.equals("firstNode")){ -// menuVOList.add(parentNode); -// return menuVOList; -// } -// OperateInfo[] operateInfos = platformClientUtil.getFrameworkService().getOperateTreeList(parentId); -// for(int i = 0; i < operateInfos.length;i++ ){ -// OperateInfo operateInfo = operateInfos[i]; -// MenuVO menuVO = new MenuVO(); -// menuVO.setId(operateInfo.id); -// menuVO.setName(operateInfo.name); -// menuVO.setCode(operateInfo.identify); -// menuVO.setAlias(operateInfo.alias); -// menuVO.setCategory(2); -// menuVO.setChildType(0); -// menuVO.setRemark(operateInfo.desc); -// menuVO.getMeta().put("keepAlive",false); -// menuVO.setSort((int) operateInfo.seq); -// menuVO.setModeType("operateObject"); -// menuVO.setHasChildren(false); -// menuVOList.add(menuVO); -// } -// }catch (PLException e) { -// e.printStackTrace(); -// throw new VciBaseException(String.valueOf(e.code),new String[]{VciBaseUtil.getExceptionMessage(e)}); -// } -// } -// return null; -// return menuVOList.stream().sorted(Comparator.comparing(s -> s.getSort())).collect(Collectors.toList()); } 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 8f42517..858f465 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 @@ -1,8 +1,11 @@ package com.vci.web.controller; import com.vci.constant.FrameWorkLangCodeConstant; +import com.vci.corba.common.PLException; import com.vci.corba.framework.data.FuncOperationInfo; import com.vci.corba.framework.data.OperateInfo; +import com.vci.dto.RoleRightDTO; +import com.vci.dto.RoleRightParamDTO; import com.vci.frameworkcore.compatibility.ISmFunctionQueryService; import com.vci.frameworkcore.compatibility.SmHMSysModConfigServiceI; import com.vci.pagemodel.AppConfigDetailInfoVO; @@ -75,14 +78,12 @@ /** * 鑾峰彇褰撳墠妯″潡涓嬬殑瀛愭ā鍧� - * @param parentId - * @param modeType * @return */ @GetMapping("/getSysModelAuthTreeMenuByPID") - public BaseResult<List<MenuVO>> getSysModelAuthTreeMenuByPID(String parentId, String modeType) { + public BaseResult<List<MenuVO>> getSysModelAuthTreeMenuByPID() { try { - return BaseResult.dataList(functionQueryService.getSysModelAuthTreeMenuByPID(parentId,modeType,true)); + return BaseResult.dataList(functionQueryService.getSysModelAuthTreeMenuByPID(false)); }catch (Exception e){ e.printStackTrace(); String errorMsg = "鏌ヨ瀛愭ā鍧楁椂鍑虹幇閿欒锛屽師鍥狅細"+ VciBaseUtil.getExceptionMessage(e); @@ -92,6 +93,42 @@ } /** + * 鑾峰彇鎵�鎺堟潈鐨勬ā鍧楁潈闄� + * @param roleId 瑙掕壊 + * @return + */ + @GetMapping("/getSysModelAuth") + public BaseResult<List<String>> getSysModelAuth(String roleId) { + try { + return BaseResult.dataList(functionQueryService.getSysModelAuth(roleId)); + }catch (Exception e){ + e.printStackTrace(); + String errorMsg = "鏌ヨ瀛愭ā鍧楁椂鍑虹幇閿欒锛屽師鍥狅細"+ VciBaseUtil.getExceptionMessage(e); + logger.error(errorMsg); + throw new VciBaseException(errorMsg); + } + } + + /** + * 淇濆瓨鎺堟潈鐨勬ā鍧� + * @param roleRightDTOS 鐢ㄦ埛閫夋嫨鎺堟潈妯″潡淇℃伅 + * @param roleId 瑙掕壊涓婚敭 + * @return 鎺堟潈缁撴灉 + * @throws PLException + */ + @PostMapping("/saveRoleRight") + public BaseResult<List<String>> saveRoleRight(@RequestBody List<RoleRightParamDTO> roleRightDTOS, String roleId) { + try { + return functionQueryService.saveRoleRight(roleRightDTOS, roleId); + }catch (Exception e){ + e.printStackTrace(); + String errorMsg = "淇濆瓨妯″潡鏃跺嚭鐜伴敊璇紝鍘熷洜锛�"+ VciBaseUtil.getExceptionMessage(e); + logger.error(errorMsg); + throw new VciBaseException(errorMsg); + } + } + + /** * 娣诲姞妯″潡 * @param menuVO * @return diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java index 2db280d..7ff301c 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java @@ -18,6 +18,7 @@ import java.io.IOException; import java.util.Arrays; import java.util.List; +import java.util.Map; /** * 鏌ヨ妯℃澘鐨勬帶鍒跺櫒 @@ -263,8 +264,8 @@ * @return */ @PostMapping("/expLinkTemplate") - public void expLinkTemplate(@RequestBody List<String> names,HttpServletResponse response) throws PLException, IOException { - quereyTemplateServiceI.expLinkTemplate(names, response); + public void expLinkTemplate(@RequestBody Map qtNames, HttpServletResponse response) throws PLException, IOException { + quereyTemplateServiceI.expLinkTemplate(String.valueOf(qtNames.get("qtNames")), response); } /** diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsQuereyTemplateServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsQuereyTemplateServiceI.java index 7f0b927..c185a90 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsQuereyTemplateServiceI.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsQuereyTemplateServiceI.java @@ -93,7 +93,7 @@ * names 鏌ヨ妯℃澘鍚� * @return */ - void expLinkTemplate(List<String> names, HttpServletResponse response) throws PLException, IOException ; + void expLinkTemplate(String names, HttpServletResponse response) throws PLException, IOException ; /** * 瀵煎叆閾炬帴绫诲瀷鏌ヨ妯℃澘 * @param file 涓婁紶鐨勬枃浠� diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsQueryTemplateImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsQueryTemplateImpl.java index 5b993f0..0161a70 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsQueryTemplateImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsQueryTemplateImpl.java @@ -265,6 +265,9 @@ if(column.contains(".")){ column = StringUtils.substringAfterLast(column, "."); } + if(column.contains(" ")){ + column = StringUtils.substringBefore(column, " "); + } AttributeDef att = platformClientUtil.getAttributeService().getAttributeDefByName(column); if(att == null || "".equals(att.oid)){ att = allSysAttr.get(column.toLowerCase()); @@ -321,6 +324,7 @@ HashMap<String, String> data = new HashMap<>(); data.put("column",child.getText().trim()); data.put("type",att.vtDataType); + childList.add(data); } } treeMap.put("child",childList); @@ -998,34 +1002,6 @@ return qt; } -// /** -// * 缁勮鏌ヨ妯℃澘 -// * @return -// */ -// public QueryTemplate getQT(HashMap<String,Object> dataMap){ -// QueryTemplate qt = new QueryTemplate(); -// qt.setType(QTConstants.TYPE_LINK); -// //TODO String qtId = -// qt.setLinkType((String) dataMap.get("linkTypeName")); -// qt.setDirection( (Boolean)dataMap.get("rdPositive") ? QTConstants.DIRECTION_POSITIVE : QTConstants.DIRECTION_OPPOSITE); -// qt.setBtmType((String) dataMap.get("btmName")); -// if("鎵�鏈夌被鍨�".equals(dataMap.get("combRelaType"))){ -// qt.setBtmType("*"); -// } -// qt.setVersion(getVersion((String) dataMap.get("versionValue"))); -// qt.setQueryISLeaf((Boolean) dataMap.get("isQueryIsLeaf")); -// qt.setLevel(StringUtils.isBlank((CharSequence) dataMap.get("level")) ? 1 : Integer.valueOf(String.valueOf(dataMap.get("level")))); -// List<String> clauseList = new ArrayList<String>(); -// //TODO 鏌ヨ鍒� 鏄剧ず鍒� -// clauseList.add("*"); -// qt.setClauseList(clauseList); -// Condition con = new Condition(); -// qt.setCondition(con); -// HashMap<String, ConditionItem> ciMap = getCIMap(); -// con.setCIMap(ciMap); -// con.setRootCIName(con.getRootCINameByCIMap(ciMap)); -// return qt; -// } /** * 杩斿洖鏌ヨ鐨勭増鏈� @@ -1074,11 +1050,12 @@ * @return */ @Override - public void expLinkTemplate(List<String> names, HttpServletResponse response) throws PLException, IOException { + public void expLinkTemplate(String names, HttpServletResponse response) throws PLException, IOException { String defaultTempFolder = LocalFileUtil.getDefaultTempFolder(); String vciqtmfFileName = defaultTempFolder + File.separator + "LinkTemplateExp" + new Date().getTime() + ".vciqtf"; LinkQTExportData exportData = new LinkQTExportData(); - for (String name : names) { + String[] splits = names.split(","); + for (String name : splits) { QTInfo qt = platformClientUtil.getQTDService().getQT(name); exportData.getAllQTs().put(qt.qtName,qt); LinkType linkType = platformClientUtil.getLinkTypeService().getLinkType(qt.btmName); @@ -1702,12 +1679,14 @@ if(direction != null) { if (direction.equals(QTConstants.DIRECTION_POSITIVE)) { if(att == null ){ - throw new PLException("500",new String[]{"灞炴�у瓧娈�:"+ abName +"鏈煡璇㈠埌锛岃纭锛�"}); + continue; +// throw new PLException("500",new String[]{"灞炴�у瓧娈�:"+ abName +"鏈煡璇㈠埌锛岃纭锛�"}); } att.name = "T_OID." + abName; } else if (direction.equals(QTConstants.DIRECTION_OPPOSITE)) { if(att == null ){ - throw new PLException("500",new String[]{"灞炴�у瓧娈�:"+ abName +"鏈煡璇㈠埌锛岃纭锛�"}); + continue; +// throw new PLException("500",new String[]{"灞炴�у瓧娈�:"+ abName +"鏈煡璇㈠埌锛岃纭锛�"}); } att.name = "F_OID." + abName; } -- Gitblit v1.9.3