Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/OsBtmTypeDTO.java
@@ -46,16 +46,6 @@ private String revisionRuleId; /** * 版本规则的名称 */ private String revisionRuleName; /** * 分隔符 */ private String revisionSep; /** * 是否手动输入版本 */ private boolean inputRevisionFlag; @@ -148,7 +138,7 @@ /** * 添加或者移除的属性信息 */ private List<OsBtmTypeLinkAttributesDTO> attributesDTOList; private List<OsBtmTypeLinkAttributesDTO> attributes; /** * 添加或移除的属性 @@ -284,22 +274,6 @@ this.revisionRuleId = revisionRuleId; } public String getRevisionRuleName() { return revisionRuleName; } public void setRevisionRuleName(String revisionRuleName) { this.revisionRuleName = revisionRuleName; } public String getRevisionSep() { return revisionSep; } public void setRevisionSep(String revisionSep) { this.revisionSep = revisionSep; } public boolean isInputRevisionFlag() { return inputRevisionFlag; } @@ -364,12 +338,12 @@ this.versionRule = versionRule; } public List<OsBtmTypeLinkAttributesDTO> getAttributesDTOList() { return attributesDTOList; public List<OsBtmTypeLinkAttributesDTO> getAttributes() { return attributes; } public void setAttributesDTOList(List<OsBtmTypeLinkAttributesDTO> attributesDTOList) { this.attributesDTOList = attributesDTOList; public void setAttributes(List<OsBtmTypeLinkAttributesDTO> attributes) { this.attributes = attributes; } public Date getTs() { @@ -453,8 +427,7 @@ ", tableName='" + tableName + '\'' + ", description='" + description + '\'' + ", revisionRuleId='" + revisionRuleId + '\'' + ", revisionRuleName='" + revisionRuleName + '\'' + ", revisionSep='" + revisionSep + '\'' + ", delimiter='" + delimiter + '\'' + ", inputRevisionFlag=" + inputRevisionFlag + ", abstractFlag=" + abstractFlag + ", revisionFlag=" + revisionFlag + @@ -470,7 +443,7 @@ ", viewFlag=" + viewFlag + ", viewCreateSql='" + viewCreateSql + '\'' + ", classFullName='" + classFullName + '\'' + ", attributesDTOList=" + attributesDTOList + ", attributes=" + attributes + ", ts=" + ts + '}'; } Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/OsBtmTypeVO.java
@@ -56,11 +56,6 @@ private String revisionRuleName; /** * 分隔符 */ private String revisionSep; /** * 是否手动输入版本 */ private boolean inputRevisionFlag; @@ -123,7 +118,7 @@ /** * 备用生命周期英文名称 */ private String subLifeCycleId; private String lifeCycleIds; /** * 备用生命周期中文名称 @@ -268,14 +263,6 @@ public void setRevisionRuleName(String revisionRuleName) { this.revisionRuleName = revisionRuleName; } public String getRevisionSep() { return revisionSep; } public void setRevisionSep(String revisionSep) { this.revisionSep = revisionSep; } public boolean isInputRevisionFlag() { @@ -423,12 +410,12 @@ this.lifeCycleName = lifeCycleName; } public String getSubLifeCycleId() { return subLifeCycleId; public String getLifeCycleIds() { return lifeCycleIds; } public void setSubLifeCycleId(String subLifeCycleId) { this.subLifeCycleId = subLifeCycleId; public void setLifeCycleIds(String lifeCycleIds) { this.lifeCycleIds = lifeCycleIds; } public String getSubLifeCycleName() { @@ -481,7 +468,7 @@ ", description='" + description + '\'' + ", revisionRuleId='" + revisionRuleId + '\'' + ", revisionRuleName='" + revisionRuleName + '\'' + ", revisionSep='" + revisionSep + '\'' + ", delimiter='" + delimiter + '\'' + ", inputRevisionFlag=" + inputRevisionFlag + ", revisionRuleVO=" + revisionRuleVO + ", abstractFlag=" + abstractFlag + @@ -493,7 +480,7 @@ ", lifeCycleId='" + lifeCycleId + '\'' + ", lifeCycleName='" + lifeCycleName + '\'' + ", versionRule='" + versionRule + '\'' + ", subLifeCycleId='" + subLifeCycleId + '\'' + ", lifeCycleIds='" + lifeCycleIds + '\'' + ", subLifeCycleName='" + subLifeCycleName + '\'' + ", viewFlag=" + viewFlag + ", viewCreateSql='" + viewCreateSql + '\'' + Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java
@@ -1,5 +1,6 @@ package com.vci.frameworkcore.compatibility.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.vci.corba.common.PLException; import com.vci.corba.framework.data.FunctionInfo; @@ -17,10 +18,12 @@ import com.vci.starter.web.constant.QueryOptionConstant; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.*; import com.vci.starter.web.util.VciBaseUtil; import com.vci.starter.web.wrapper.VciQueryWrapperForDO; import com.vci.pagemodel.UIContentVO; import com.vci.web.service.UIEngineServiceI; import com.vci.web.service.WebBoServiceI; import com.vci.web.util.Func; import com.vci.web.util.PlatformClientUtil; import com.vci.web.util.RightControlUtil; import com.vci.web.util.WebUtil; @@ -51,9 +54,17 @@ /** * 菜单的根节点主键,这个是平台定义的 */ private final String ROOT_MENU_Id = "modelManagmentNode"; private final String ROOT_MENU_ID = "modelManagmentNode"; /** * 管理功能模块菜单根节点 */ private final String SYSTEMMANAGMENTNODE = "systemManagmentNode"; /** * 操作类型管理菜单根节点 */ private final String OPERATENODE = "operateNode"; /** * 使用用户查询 @@ -81,6 +92,7 @@ @Autowired RightControlUtil rightControlUtil; /** * 查询所有的功能 * @@ -216,20 +228,23 @@ public List<MenuVO> treeCurrentUserMenu(TreeQueryObject treeQueryObject, ResourceControlTypeEnum resourceControlTypeEnum) throws PLException { SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfoNotException(); String parentId; if (rightControlUtil.isAdminOrDeveloperOrRoot(sessionInfo.getUserId())) { boolean adminOrDeveloperOrRoot = rightControlUtil.isAdminOrDeveloperOrRoot(sessionInfo.getUserId()); if (adminOrDeveloperOrRoot) { // 系统菜单 parentId = "systemManagmentNode" ; parentId = SYSTEMMANAGMENTNODE; } else if (rightControlUtil.isThreeAdminCurUser()) { parentId = "systemManagmentNode" ; //三员返回管理功能模块相关的菜单 parentId = SYSTEMMANAGMENTNODE; } else { parentId = "modelManagmentNode" ; //普通用户只返回业务功能模块相关的菜单 parentId = ROOT_MENU_ID; } RoleRightInfo[] userRoleRights = rightControlUtil.getRoleRightByUserName(sessionInfo.getUserId()); Map<String, List<FunctionInfo>> map = rightControlUtil.getAllChildrenFunctionsByUserName( parentId, sessionInfo.getUserId(), userRoleRights); List<MenuVO> functionVOList = new ArrayList<>(); if(CollectionUtils.isEmpty(map.get(parentId))){ if(Func.isEmpty(map.get(parentId))) { return functionVOList; } for (FunctionInfo menu : map.get(parentId)) { @@ -249,7 +264,14 @@ functionVO.setName(menu.name); functionVO.getMeta().put("keepAlive",false); functionVO.setSort((int) menu.seq); try { functionVO.setChildren(findChildFunctionVO(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 { @@ -257,7 +279,107 @@ } functionVOList.add(functionVO); } if(adminOrDeveloperOrRoot){ functionVOList.addAll(this.getSystemMenu()); } return functionVOList.stream().sorted(Comparator.comparing(s -> s.getSort())).collect(Collectors.toList()); } /** * 获取首页系统模块配置菜单 * @return */ private List<MenuVO> getSystemMenu(){ /*如果是测试账号或者开发账号,处理返回systemManagmentNode和modelManagmentNode以外, 还需要返回操作类型管理菜单节点(operateNode)和系统配置、系统运行监控节点*/ List<MenuVO> functionVOList = new ArrayList<>(); String menuJson = "{\n" + " \"hasChildren\": true,\n" + " \"children\": [\n" + " {\n" + " \"hasChildren\": true,\n" + " \"children\": [],\n" + " \"id\": \"systemManagmentNode\",\n" + " \"name\": \"管理功能模块\",\n" + " \"parentId\": \"VCIBaseTreeNode\",\n" + " \"code\": \"systemManagmentNode\",\n" + " \"alias\": \"system\",\n" + " \"meta\": {\n" + " \"keepAlive\": false\n" + " },\n" + " \"sort\": 2,\n" + " \"soruce\": \"\"\n" + " },\n" + " {\n" + " \"hasChildren\": true,\n" + " \"children\": [],\n" + " \"id\": \"modelManagmentNode\",\n" + " \"name\": \"业务功能模块\",\n" + " \"parentId\": \"VCIBaseTreeNode\",\n" + " \"code\": \"modelManagmentNode\",\n" + " \"alias\": \"model\",\n" + " \"meta\": {\n" + " \"keepAlive\": false\n" + " },\n" + " \"sort\": 3,\n" + " \"soruce\": \"\"\n" + " },\n" + " {\n" + " \"hasChildren\": true,\n" + " \"children\": [],\n" + " \"id\": \"operateNode\",\n" + " \"name\": \"操作类型管理\",\n" + " \"parentId\": \"VCIBaseTreeNode\",\n" + " \"code\": \"operateNode\",\n" + " \"alias\": \"operate\",\n" + " \"meta\": {\n" + " \"keepAlive\": false\n" + " },\n" + " \"sort\": 4,\n" + " \"soruce\": \"\"\n" + " },\n" + " {\n" + " \"hasChildren\": false,\n" + " \"children\": [],\n" + " \"id\": \"sysOptionNode\",\n" + " \"name\": \"系统配置\",\n" + " \"parentId\": \"VCIBaseTreeNode\",\n" + " \"code\": \"sysOptionNode\",\n" + " \"alias\": \"sysOption\",\n" + " \"meta\": {\n" + " \"keepAlive\": false\n" + " },\n" + " \"sort\": 5,\n" + " \"soruce\": \"\"\n" + " },\n" + " {\n" + " \"hasChildren\": false,\n" + " \"children\": [],\n" + " \"id\": \"sysMonitorNode\",\n" + " \"name\": \"系统运行监控\",\n" + " \"parentId\": \"VCIBaseTreeNode\",\n" + " \"code\": \"sysMonitorNode\",\n" + " \"alias\": \"sysMonitor\",\n" + " \"meta\": {\n" + " \"keepAlive\": false\n" + " },\n" + " \"sort\": 5,\n" + " \"soruce\": \"\"\n" + " }\n" + " ],\n" + " \"id\": \"VCIBaseTreeNode\",\n" + " \"name\": \"系统模块配置\",\n" + " \"parentId\": \"\",\n" + " \"code\": \"rootNode\",\n" + " \"alias\": \"root\",\n" + " \"meta\": {\n" + " \"keepAlive\": false\n" + " },\n" + " \"sort\": 1,\n" + " \"soruce\": \"\"\n" + "}"; functionVOList.add(JSON.parseObject(menuJson, MenuVO.class)); return functionVOList; } public List<MenuVO> findChildFunctionVO(String parentOid,Map<String, List<FunctionInfo>> map) throws PLException { @@ -294,7 +416,6 @@ return functionVOList.stream().sorted(Comparator.comparing(s -> s.getSort())).collect(Collectors.toList()); } @Override public UIContentVO getUIContentByBtmTypeAndId(TreeQueryObject treeQueryObject, ResourceControlTypeEnum resourceControlTypeEnum) throws PLException { SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfoNotException(); @@ -309,9 +430,6 @@ } return null; } /** * 获取所有的功能菜单 @@ -341,7 +459,7 @@ List<Tree> childList = new ArrayList<>(); functionVOList.stream().forEach(s -> { Tree tree = DO2Tree(s); if (tree.getParentId() == null || tree.getParentId().equals(rootId) || ROOT_MENU_Id.equalsIgnoreCase(tree.getParentId())) { if (tree.getParentId() == null || tree.getParentId().equals(rootId) || ROOT_MENU_ID.equalsIgnoreCase(tree.getParentId())) { rootList.add(tree); } else { childList.add(tree); Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java
@@ -202,7 +202,7 @@ //vo.setCreateTime(VciDateUtil.str2Date(String.valueOf(btmItem.createTime),VciDateUtil.DateTimeFormat)); vo.setCreateTime(Func.parse(btmItem.createTime, ConcurrentDateFormat.of(VciDateUtil.DateTimeFormat))); vo.setLastModifyTime( Func.parse(btmItem.modifyTime, ConcurrentDateFormat.of(VciDateUtil.DateTimeFormat))); vo.setTs(Func.parse(btmItem.ts, ConcurrentDateFormat.of(VciDateUtil.DateTimeFormat))); vo.setTs(Func.parse(btmItem.ts, ConcurrentDateFormat.of(VciDateUtil.DateTimeMillFormat))); } catch (Exception e) { e.printStackTrace(); } @@ -219,11 +219,11 @@ vo.setInputRevisionFlag(btmItem.revInput); vo.setDelimiter(btmItem.delimiter); vo.setfName(btmItem.fName); if(StringUtils.isNotBlank(vo.getRevisionRuleId()) || vo.isInputRevisionFlag()){ vo.setVersionRule(String.valueOf(btmItem.verRuleName)); if(StringUtils.isNotBlank(vo.getRevisionRuleName()) || vo.isInputRevisionFlag()){ vo.setRevisionFlag(true); } vo.setVersionRule(String.valueOf(btmItem.verRuleName)); vo.setSubLifeCycleId(Arrays.stream(btmItem.lifeCycles).collect(Collectors.joining(","))); vo.setLifeCycleIds(Arrays.stream(btmItem.lifeCycles).collect(Collectors.joining(","))); vo.setApNameArray(btmItem.apNameArray); List<OsAttributeVO> attributeVOS = attributeService.listAttrByIds(Arrays.stream(btmItem.apNameArray).collect(Collectors.toList())); List<OsBtmTypeAttributeVO> btmTypeAttributeVOS = new ArrayList<>(); @@ -711,12 +711,12 @@ bizType.description = dto.getDescription(); bizType.revLevel = dto.getRevLevel(); bizType.revRuleName = dto.getRevisionRuleName(); bizType.revRuleName = dto.getRevisionRuleId(); bizType.revInput = dto.isInputRevisionFlag(); bizType.delimiter = (dto.getDelimiter() == null ? "" : dto.getDelimiter()); bizType.verRuleName = Short.parseShort(dto.getRevisionRuleName()); bizType.verRuleName = Short.parseShort(dto.getVersionRule()); //bizType.imageName = dto.get; //List<String> attrIdList = dto.getAttributesDTOList().stream().map(OsBtmTypeLinkAttributesDTO::getId).collect(Collectors.toList()); @@ -811,11 +811,13 @@ * @return */ private void checkVersionInfo(OsBtmTypeDTO dto) throws PLException { //需要手动输入版本时revisionRuleName不能为空 if (dto.isInputRevisionFlag() && Func.isBlank(dto.getRevisionRuleName())) { //需要手动输入版本时revisionRuleId不能为空 if (dto.getRevLevel() == 1 || dto.getRevLevel() == 2) { if (Func.isBlank(dto.getRevisionRuleId()) && !dto.isInputRevisionFlag()) { throw new PLException("500",new String[]{"版本号规则不能为空"}); } } } /** * 版本机制修改: 仅允许类型从"不可修订"变更至"一级版本管理机制","二级版本管理机制进行调整"; "一级版本管理机制"变更至"二级版本管理机制"; Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebBtmIOServiceImpl.java
@@ -1195,7 +1195,7 @@ btmItem.verRuleName = 0; } //包含的属性的数组 List<OsBtmTypeLinkAttributesDTO> attributesDTOList = btmTypeDTO.getAttributesDTOList(); List<OsBtmTypeLinkAttributesDTO> attributesDTOList = btmTypeDTO.getAttributes(); List<String> attrIdList = new ArrayList<String>(); if (!CollectionUtils.isEmpty(attributesDTOList)) { for (OsBtmTypeLinkAttributesDTO attr : attributesDTOList) { Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/OsScanAnnotationTool.java
@@ -465,7 +465,7 @@ Collections.addAll(fields,btmTypeClass.getDeclaredFields()); List<OsBtmTypeLinkAttributesDTO> btmTypeLinkAttributesDTOList = new ArrayList<OsBtmTypeLinkAttributesDTO>(); scanAttributes(fields,attributeDTOMap,btmTypeLinkAttributesDTOList,processAttributeInfo); btmTypeDTO.setAttributesDTOList(btmTypeLinkAttributesDTOList); btmTypeDTO.setAttributes(btmTypeLinkAttributesDTOList); btmTypeDTOMap.put(btmTypeDTO.getId().toLowerCase().trim(),btmTypeDTO); } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/RightControlUtil.java
@@ -153,7 +153,6 @@ return roleRightByUserName; } /** * 获取当前用户具有权限的所有模块 * @param parentId, 父模块id @@ -231,7 +230,6 @@ public FunctionInfo[] getFunctionsByParentId(String parentId, String userName) { FunctionInfo[] funcObjs = null; try { if(isDeveloper(userName)){