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; } 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; } 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(); // } // //妿æ¥è¯¢çæ¯ç¬¬ä¸å±èç¹å°±éè¦ç´æ¥è¿åsystemManagmentNodeæmodelManagmentNodeèç¹ // 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(); // //妿æ¥è¯¢çæ¯ç¬¬ä¸å±èç¹å°±éè¦ç´æ¥è¿åsysOptionNodeèç¹ // 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()); } 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 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java
@@ -1,18 +1,12 @@ package com.vci.web.controller; import cn.hutool.core.io.FileUtil; import com.vci.corba.common.PLException; import com.vci.corba.omd.qtm.QTD; import com.vci.dto.QTInfoDTO; import com.vci.pagemodel.QtQueryVO; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.BaseResult; 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.OsQuereyTemplateServiceI; import com.vci.web.util.Func; import org.apache.commons.lang3.StringUtils; import org.dom4j.DocumentException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -23,7 +17,9 @@ import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.util.*; import java.util.Arrays; import java.util.List; import java.util.Map; /** * æ¥è¯¢æ¨¡æ¿çæ§å¶å¨ @@ -269,8 +265,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); } /** 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 ä¸ä¼ çæä»¶ 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); @@ -1703,12 +1680,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; } Source/plt-web/plt-web-ui/src/api/queryTemplate/businessTypeQuery.js
@@ -1,9 +1,9 @@ import request from '@/router/axios'; //ä¸å¡ç±»åæ¥è¯¢æ¨¡æ¿ // å建 export function linkSave(params) { export function btmSave(params) { return request({ url: "/api/templateController/linkSave", url: "/api/templateController/btmSave", method: "post", data:params }); @@ -17,9 +17,9 @@ }); } // æ¥è¯¢æ¡ä»¶çæ¥è¯¢æ¥å£ï¼æ¥å£æ¹å¼POSTï¼åæ°ä¸ä¿åæ¥å£ä¼ åä¸è´ export function getCriteria(params) { export function getCriteriaBtm(params) { return request({ url: "/api/templateController/getCriteria", url: "/api/templateController/getCriteriaBtm", method: "post", data:params }); Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formDialog.vue
@@ -60,6 +60,7 @@ :queryCondition="queryCondition" :queryTree="queryTree" :levelFlag.sync="form.levelFlag" @queryHandler="queryHandler" ></form-query-dialog> </fieldset> </el-main> @@ -73,10 +74,10 @@ </template> <script> import {linkSave,getBizTypeQTDs} from "@/api/queryTemplate/businessTypeQuery"; import {btmSave,getBizTypeQTDs,getCriteriaBtm} from "@/api/queryTemplate/businessTypeQuery"; import basicOption from "@/util/basic-option"; import {queryTemplateListByAttr} from "@/api/queryTemplate/queryDefine"; import formQueryDialog from "./formQueryDialog.vue"; import formQueryDialog from "@/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue"; export default { name: "formDialog", components:{formQueryDialog}, @@ -201,9 +202,18 @@ allowDrop: () => { return false; }, allowDrag: () => { return true; allowDrag: (dropNode) => { if (dropNode.data.attrs && dropNode.data.attrs.length>0) { return false; } else { return true; } }, props:{ label:'name', value:'name', children:'attrs' } }, businessQueryDefineForm:'',//ä¸å¡ç±»åæ¥è¯¢æ¨¡æ¿å®ä¹éä¸å¼ businessQueryDefineDic:[],//ä¸å¡ç±»åæ¥è¯¢æ¨¡æ¿å®ä¹ä¸ææ°æ® @@ -227,7 +237,6 @@ if (data.selectData) { this.selectData = data.selectData; this.form.qtName = this.selectData.qtName; this.form.level = this.selectData.queryTemplate.level; if (data.selectData.queryTemplate.orderInfoList && data.selectData.queryTemplate.orderInfoList.length > 0) { this.orderInfoList = JSON.parse(JSON.stringify(data.selectData.queryTemplate.orderInfoList));//å·²ææåº } @@ -244,6 +253,7 @@ }; } this.dialog.showDialog = true; this.treeOption.defaultExpandedKeys=[data.treeData.label] this.getTemp(data.treeData.label) this.getAllAttr(); }, @@ -268,7 +278,7 @@ if (valid) { const formData=this.initFormData(); console.log(formData) linkSave(formData).then(res => { btmSave(formData).then(res => { if (res.data.success) { this.$message.success("ä¿åæå"); this.cancelDialog(); @@ -288,16 +298,7 @@ qtName: this.form.qtName, levelFlag: this.form.levelFlag, queryTemplate: { clauseList: ['*'], direction: this.form.direction, id: this.form.qtName, linkType: this.form.btmName, orderInfoList: this.orderInfoList, recReturnMode: 1,//éå½è¿åæ°æ®æ¨¡å¼:1ï¼RECRETURNMODE_FLAT, 2ï¼RECRETURNMODE_FILTER rightFlag: true, secretFlag: true, type: 'link', version: this.form.version } } if (formData.levelFlag == 1) { @@ -341,7 +342,6 @@ }, // è¡å é¤ rowDeleteHandler(data) { debugger; this.orderInfoList.splice(data.index,1); this.orderFieldList.unshift({ id: data.row.orderField @@ -390,31 +390,22 @@ //è·åæ¥è¯¢æ¨¡æ¿å®ä¹ä¸æ getTemp(btmName) { if (btmName) { queryTemplateListByAttr({btmName: btmName}).then(res => { queryTemplateListByAttr({btmName: btmName,linkFlag:false}).then(res => { const data = res.data.data.map(item => { item.label = item.name + '-' + (item.linkTypeName || item.btmName); item.label = item.name + '-' + item.btmName; item.value = item.name; return item; }); this.businessQueryDefineDic=data; data.length>0 && (this.businessQueryDefineForm= data[0].value); }) } }, businessQueryDefineChange(data) { if (data.value) { const childData = data.item.attrs.map(item => { return { label: item.name, value: item.name, atttributes:item }; }); this.businessTreeData = [{ label: data.value, value: data.value, children: childData name: data.value, attrs: data.item.attrs }] } }, @@ -430,7 +421,25 @@ if(this.form.levelFlag==1) { this.$refs.formQuery.$refs.tree.$emit('tree-node-drag-end', ev); } } }, //æ¥è¯¢ queryHandler(){ this.$refs.form.validate((valid) => { if (valid) { this.$refs.formQuery.queryResultDialog.loading=true; const formData=this.initFormData(); getCriteriaBtm(formData).then(res => { if (res.data.success) { this.resultData=res.data.data; this.$refs.formQuery.queryResultDialog.showDialog=true; this.$refs.formQuery.queryResultDialog.loading=false; } }); } else { return false; } }); }, }, } </script> Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formQueryDialog.vue
ÎļþÒÑɾ³ý Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue
@@ -60,6 +60,7 @@ :queryCondition="queryCondition" :queryTree="queryTree" :levelFlag.sync="form.levelFlag" @queryHandler="queryHandler" ></form-query-dialog> </fieldset> </el-main> @@ -85,7 +86,7 @@ <script> import {getAllOrderbyAttributeByLink} from "@/api/modeling/linkType/api"; import {linkSave} from "@/api/queryTemplate/linkTypeQuery"; import {linkSave,getCriteria} from "@/api/queryTemplate/linkTypeQuery"; import basicOption from "@/util/basic-option"; import {queryTemplateListByAttr} from "@/api/queryTemplate/queryDefine"; import formQueryDialog from "./formQueryDialog.vue"; @@ -268,12 +269,21 @@ addBtn: false, filter:false, draggable: true, allowDrop: () => { allowDrop: (node) => { return false; }, allowDrag: () => { return true; allowDrag: (dropNode) => { if (dropNode.data.attrs && dropNode.data.attrs.length>0) { return false; } else { return true; } }, props:{ label:'name', value:'name', children:'attrs' } }, linkQueryDefineForm:'',//龿¥ç±»åæ¥è¯¢æ¨¡æ¿å®ä¹éä¸å¼ linkQueryDefineDic:[],//龿¥ç±»åæ¥è¯¢æ¨¡æ¿å®ä¹ä¸ææ°æ® @@ -369,7 +379,9 @@ }; } this.dialog.showDialog = true; this.treeOption.defaultExpandedKeys=[data.treeData.label] this.getTemp(data.treeData.label, true) }, cancelDialog() { this.dialog.loading = false; @@ -534,33 +546,17 @@ }, linkQueryDefineChange(data) { if (data.value) { const childData = data.item.attrs.map(item => { return { label: item.name, value: item.name, atttributes:item }; }); this.linkTreeData = [{ label: data.value, value: data.value, children: childData name: data.value, attrs: data.item.attrs }] } }, businessQueryDefineChange(data) { if (data.value) { const childData = data.item.attrs.map(item => { return { label: item.name, value: item.name, atttributes:item }; }); this.businessTreeData = [{ label: data.value, value: data.value, children: childData name: data.value, attrs: data.item.attrs }] } }, @@ -576,7 +572,25 @@ if(this.form.levelFlag==1) { this.$refs.formQuery.$refs.tree.$emit('tree-node-drag-end', ev); } } }, //æ¥è¯¢ queryHandler(){ this.$refs.form.validate((valid) => { if (valid) { this.$refs.formQuery.queryResultDialog.loading=true; const formData=this.initFormData(); getCriteria(formData).then(res => { if (res.data.success) { this.resultData=res.data.data; this.$refs.formQuery.queryResultDialog.showDialog=true; this.$refs.formQuery.queryResultDialog.loading=false; } }); } else { return false; } }); }, }, } </script> Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue
@@ -94,6 +94,7 @@ <el-button size="small" @click="cancleQueryDialog">å æ¶</el-button> </div> </el-dialog> <!--æ¥è¯¢--> <el-dialog v-dialogDrag :title="queryResultDialog.title" :visible.sync="queryResultDialog.showDialog" @@ -102,7 +103,7 @@ class="avue-dialog" :destroy-on-close="true" :close-on-click-modal="false" @close="queryResultDialog.showDialog='false'"> @close="queryResultDialog.showDialog=false"> <div class="el-input--small"> <avue-crud ref="crud" :data="resultData" :option="resultOption" :table-loading="queryResultDialog.loading"> @@ -453,18 +454,18 @@ const data = JSON.parse(event.dataTransfer.getData('item')); if (this.radioForm == 0) { const params = { clause: data.value, clause: data.name, operator: '=', ordinaryValue: '' } if (data.atttributes.vtDataType == 'VTInteger' || data.atttributes.vtDataType == 'VTDouble' || data.atttributes.vtDataType == 'VTLong') { if (data.vtDataType == 'VTInteger' || data.vtDataType == 'VTDouble' || data.vtDataType == 'VTLong') { params.operatorDic =JSON.parse(JSON.stringify(this.operatorIntDic)) ; } else if (data.atttributes.vtDataType == 'VTDateTime' || data.atttributes.vtDataType == 'VTDate' || data.atttributes.vtDataType == 'VTTime') { } else if (data.vtDataType == 'VTDateTime' || data.vtDataType == 'VTDate' || data.vtDataType == 'VTTime') { params.operatorDic = JSON.parse(JSON.stringify(this.operatorDateDic)) } else { params.operatorDic = JSON.parse(JSON.stringify(this.operatorDic)) } params.type=data.atttributes.vtDataType; params.type=data.vtDataType; this.conditionList.push(params) }else { if (this.clickNode.label != 'å¹¶ä¸' && this.clickNode.label != 'æè ') { @@ -477,21 +478,21 @@ initItem(data){ this.treeIndex++; let item={ label: data.value, value: data.value + this.treeIndex, label: data.name, value: data.name + this.treeIndex, valueIndex: 'v' + this.treeIndex, type:data.vtDataType, children: [], inputValue:data.value, inputValue:'', operator:'=', showLabel:data.value showLabel:data.name }; let showLabel=''; if(data.value.indexOf('.')!=-1){ const labels=data.value.split('.') if(data.name.indexOf('.')!=-1){ const labels=data.name.split('.') showLabel=labels[labels.length-1]; }else { showLabel=data.value; showLabel=data.name; } item.showLabel=showLabel; return item @@ -615,21 +616,7 @@ }, //æ¥è¯¢ queryHandler(){ this.$parent.$parent.$parent.$parent.$refs.form.validate((valid) => { if (valid) { this.queryResultDialog.loading=true; const formData=this.$parent.$parent.$parent.$parent.initFormData(); getCriteria(formData).then(res => { if (res.data.success) { this.resultData=res.data.data; this.queryResultDialog.showDialog=true; this.queryResultDialog.loading=false; } }); } else { return false; } }); this.$emit('queryHandler'); }, //éæ©æ¥è¯¢æ¨¡æ¿ checkTemp(index) {