Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/model/RoleRightDO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,142 @@ package com.vci.model; import com.vci.starter.web.annotation.Transient; import com.vci.starter.web.annotation.VciBtmType; import com.vci.starter.web.constant.FrameWorkLcStatusConstant; import java.io.Serializable; import java.util.Date; /** * ç¶ææ± * @author weidy * @date 2022-2-15 */ @VciBtmType(name = "UIAuthor",text = "UIæé",tableName = "PLROLERIGHT",lifeCycle = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE) @Transient public class RoleRightDO implements Serializable { private static final long serialVersionUID = -5073244242126466800L; /** * ID */ private String id = ""; /** *è§è²ID */ private String roleId = ""; /** * 模åID */ private String funcId = ""; /** * æéå¼ */ private long rightValue = -1; /** * æéç±»åï¼è¶ 级管çåç»ç®¡çåææä¸º1ï¼ç®¡çåç»æ®éç¨æ·ææä¸º2 */ private short rightType = -1; /**æ°å¢æ°æ®å建è ï¼ä¿®æ¹è ï¼å建æ¶é´ï¼ä¿®æ¹æ¶é´ï¼ææè ***/ private String createUser = ""; private Date createTime = new Date(); private String licensor = ""; private String modifyUser = ""; private Date modifyTime = new Date(); public String getId() { return id; } public void setId(String id) { this.id = id; } public String getRoleId() { return roleId; } public void setRoleId(String roleId) { this.roleId = roleId; } public String getFuncId() { return funcId; } public void setFuncId(String funcId) { this.funcId = funcId; } public long getRightValue() { return rightValue; } public void setRightValue(long rightValue) { this.rightValue = rightValue; } public short getRightType() { return rightType; } public void setRightType(short rightType) { this.rightType = rightType; } public String getCreateUser() { return createUser; } public void setCreateUser(String createUser) { this.createUser = createUser; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public String getLicensor() { return licensor; } public void setLicensor(String licensor) { this.licensor = licensor; } public String getModifyUser() { return modifyUser; } public void setModifyUser(String modifyUser) { this.modifyUser = modifyUser; } public Date getModifyTime() { return modifyTime; } public void setModifyTime(Date modifyTime) { this.modifyTime = modifyTime; } @Override public String toString() { return "RoleRightDTO{" + "id='" + id + '\'' + ", roleId='" + roleId + '\'' + ", funcId='" + funcId + '\'' + ", rightValue=" + rightValue + ", rightType=" + rightType + ", createUser='" + createUser + '\'' + ", createTime=" + createTime + ", licensor='" + licensor + '\'' + ", modifyUser='" + modifyUser + '\'' + ", modifyTime=" + modifyTime + '}'; } } Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/RoleRightVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,137 @@ package com.vci.pagemodel; import java.io.Serializable; import java.util.Date; public class RoleRightVO implements Serializable { private static final long serialVersionUID = 2030418807220108229L; /** * ID */ private String id = ""; /** *è§è²ID */ private String roleId = ""; /** * 模åID */ private String funcId = ""; /** * æéå¼ */ private long rightValue = -1; /** * æéç±»åï¼è¶ 级管çåç»ç®¡çåææä¸º1ï¼ç®¡çåç»æ®éç¨æ·ææä¸º2 */ private short rightType = -1; /** * æéç±»å */ private String rigthTypeText=""; /**æ°å¢æ°æ®å建è ï¼ä¿®æ¹è ï¼å建æ¶é´ï¼ä¿®æ¹æ¶é´ï¼ææè ***/ private String createUser = ""; private String createTime = ""; private String licensor = ""; private String modifyUser = ""; private String modifyTime =""; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getRoleId() { return roleId; } public void setRoleId(String roleId) { this.roleId = roleId; } public String getFuncId() { return funcId; } public void setFuncId(String funcId) { this.funcId = funcId; } public long getRightValue() { return rightValue; } public void setRightValue(long rightValue) { this.rightValue = rightValue; } public short getRightType() { return rightType; } public void setRightType(short rightType) { this.rightType = rightType; } public String getCreateUser() { return createUser; } public void setCreateUser(String createUser) { this.createUser = createUser; } public String getCreateTime() { return createTime; } public void setCreateTime(String createTime) { this.createTime = createTime; } public String getLicensor() { return licensor; } public void setLicensor(String licensor) { this.licensor = licensor; } public String getModifyUser() { return modifyUser; } public void setModifyUser(String modifyUser) { this.modifyUser = modifyUser; } public String getModifyTime() { return modifyTime; } public void setModifyTime(String modifyTime) { this.modifyTime = modifyTime; } @Override public String toString() { return "RoleRightVO{" + "id='" + id + '\'' + ", roleId='" + roleId + '\'' + ", funcId='" + funcId + '\'' + ", rightValue=" + rightValue + ", rightType=" + rightType + ", createUser='" + createUser + '\'' + ", createTime=" + createTime + ", licensor='" + licensor + '\'' + ", modifyUser='" + modifyUser + '\'' + ", modifyTime=" + modifyTime + '}'; } } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java
@@ -7,6 +7,7 @@ import com.vci.starter.web.annotation.log.VciBusinessLog; import com.vci.starter.web.pagemodel.BaseQueryObject; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.starter.web.pagemodel.Tree; import com.vci.starter.web.util.VciBaseUtil; import com.vci.web.service.OsBtmServiceI; import com.vci.web.service.UIManagerServiceI; @@ -16,6 +17,7 @@ import org.springframework.web.bind.annotation.*; import java.util.Arrays; import java.util.List; /** * UIå®ä¹æ§å¶å± @@ -149,6 +151,22 @@ } } /** * æ ¹æ®è§è²è·åUI/表å/æé®çæé. * @param baseQueryObject * @return */ @GetMapping( "/getUIAuthor") @VciBusinessLog(operateName = "UIææï¼æ å½¢ç»æï¼") public BaseResult getUIAuthor(BaseQueryObject baseQueryObject){ try { return BaseResult.dataList( uiManagerService.getUIAuthor(baseQueryObject)); }catch (Throwable e) { e.printStackTrace(); String exceptionMessage = "UIææå è½½åºç°é误ï¼åå ï¼" + VciBaseUtil.getExceptionMessage(e); logger.error(exceptionMessage); return BaseResult.fail(exceptionMessage); } } } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java
@@ -32,10 +32,11 @@ import java.util.List; /** * å ¬å¼æ§å¶å¨ * 表å/è¡¨æ ¼æ§å¶å¨ * @author weidy * @date 2022-2-11 */ @VciBusinessLog(modelName="表å/è¡¨æ ¼æ§å¶å¨",notStore=true) @RestController @RequestMapping("/portalVIController") public class WebPortalVIController { @@ -95,7 +96,7 @@ } /** * ä¸å¡ç±»åå é¤ * 表å/tableå é¤ * btmTypeDTO ä¸å¡ç±»å对象 * @return å é¤ç»æ */ @@ -112,7 +113,7 @@ } } /** * ä¸å¡ç±»åå é¤ * 表å/tableå é¤ * btmTypeDTO ä¸å¡ç±»å对象 * @return å é¤ç»æ */ @@ -128,8 +129,11 @@ return BaseResult.fail(exceptionMessage); } } /** * * 表å/tableå é * @param portalVIDTOList clong对象 * @return */ @PostMapping("/clone") @VciBusinessLog(operateName = "å é表å/è¡¨æ ¼") Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java
@@ -3,11 +3,15 @@ import com.vci.corba.common.PLException; import com.vci.corba.portal.data.PLUILayout; import com.vci.pagemodel.PLUILayoutCloneVO; 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.pagemodel.Tree; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; /** * @author ludc @@ -59,4 +63,11 @@ */ void expUiContextData(String[] oids, HttpServletResponse response) throws PLException, IOException; /** * è·åUIæéæ * @param baseQueryObject * @return * @throws VciBaseException */ List<Tree> getUIAuthor(BaseQueryObject baseQueryObject)throws Exception; } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java
@@ -168,6 +168,9 @@ } PortalVIVO portalVIVO=new PortalVIVO(); PortalVI portalVI= platformClientUtil.getPortalService().getPortalVIById(id); if(portalVI==null||StringUtils.isBlank(portalVI.id)){ throw new VciBaseException("æ ¹æ®ä¸»é®æªæ¥è¯¢å°æ°æ®"); } portalVIVO=portalVIDOO2VO(portalVI); return portalVIVO; } @@ -640,7 +643,7 @@ boolean flag = false; String labelName=PortalVIType.Form.getName(); try { VciBaseUtil.alertNotNull(portalVIDTO.getViName(),"åç§°ä¸è½ä¸ºç©ºï¼"); VciBaseUtil.alertNotNull(portalVIDTO.getViName(),"åç§°"); if(portalVIDTO.getPrm()==null||portalVIDTO.getPrm().getPrmItemList()==null||portalVIDTO.getPrm().getPrmItemList().size()==0){ throw new Throwable(labelName+"ï¼æªè®¾ç½®"); } @@ -1258,7 +1261,6 @@ private List<String> getRefFormVIName(String refFormOid){ List<String> keyList=new ArrayList<>(); try { PortalVI refFormVI = UITools.getService().getPortalVIById(refFormOid); PortalVIVO portalVIVO= portalVIDOO2VO(refFormVI); if(portalVIVO!=null&&portalVIVO.getPrm().getPrmItemList().size()>0){ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java
@@ -4,19 +4,27 @@ import com.vci.client.mw.ClientContextVariable; import com.vci.common.utility.ObjectUtility; import com.vci.corba.common.PLException; 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.frameworkcore.compatibility.SmRoleQueryServiceI; import com.vci.pagemodel.OsBtmTypeVO; import com.vci.pagemodel.PLUILayoutCloneVO; import com.vci.pagemodel.RoleRightVO; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.BaseQueryObject; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.pagemodel.SessionInfo; import com.vci.starter.web.pagemodel.Tree; import com.vci.starter.web.util.VciBaseUtil; import com.vci.starter.web.util.VciDateUtil; import com.vci.starter.web.util.WebThreadLocalUtil; import com.vci.web.service.OsBtmServiceI; import com.vci.web.service.UIManagerServiceI; import com.vci.web.util.Func; import com.vci.web.util.PlatformClientUtil; import com.vci.web.util.UITools; import com.vci.web.util.*; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.formula.functions.T; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; @@ -24,10 +32,9 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; /** * UIå®ä¹æå¡çé¢ç¸å ³æ¥å£ @@ -42,6 +49,18 @@ */ @Resource private PlatformClientUtil platformClientUtil; /** * è§è² */ @Resource private SmRoleQueryServiceI smRoleQueryServiceI; /** * ä¸å¡ç±»å */ @Resource private OsBtmServiceI osBtmServiceI; /** * æ¥å¿ */ @@ -87,6 +106,22 @@ List<PLUILayout> pluiLayouts = Arrays.asList(res); dataGrid.setData(pluiLayouts); return dataGrid; } /** * tonéè¿ä¸å¡ç±»åååç§°æ¥è¯¢ * @param btemName * @param code * @return * @throws PLException */ public List<PLUILayout> getUIContextDataByBtName(String btemName,String code) throws PLException { List<PLUILayout> pluiLayoutList=new ArrayList<>(); PLUILayout[] pluiLayouts= platformClientUtil.getUIService().getPLUILayoutEntityByTypeAndCode(btemName,code); if(pluiLayouts!=null&&pluiLayouts.length>0){ pluiLayoutList= Stream.of(pluiLayouts).collect(Collectors.toList()); } return pluiLayoutList; } /** @@ -247,6 +282,193 @@ } /** * è·åUIæææ * @param treeQueryObject * @return * @throws Exception */ @Override public List<Tree> getUIAuthor(BaseQueryObject treeQueryObject) throws Exception { Map<String, String> conditionMap = treeQueryObject.getConditionMap(); if (conditionMap == null) { conditionMap = new HashMap<>(); } String roleId = StringUtils.isBlank(conditionMap.get("roleId")) ? "" : conditionMap.get("roleId"); String type = StringUtils.isBlank(conditionMap.get("type")) ? "" : conditionMap.get("type"); String context = StringUtils.isBlank(conditionMap.get("context")) ? "" : conditionMap.get("context"); boolean showCheckBox = Boolean.parseBoolean(conditionMap.get("showCheckBox")); Map<String,RoleRightVO> roleRightVOMap=new HashMap<>(); if(StringUtils.isNotBlank(roleId)){ 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)); } BizType[] bizTypes=osBtmServiceI.getBizTypes(type); List<Tree> treeList=new ArrayList<>(); Tree rootNode =new Tree("root","åè½æ¨¡å","root"); rootNode.setLevel(0); rootNode.setShowCheckbox(true); rootNode.setExpanded(true); List<Tree> childList=new ArrayList<>(); for (int i = 0; i < bizTypes.length; i++) { Tree bizTypeTree = new Tree(bizTypes[i].oid,bizTypes[i].name,bizTypes[i]);//(btmItems[i].label+" ["+ btmItems[i].name+"]", btmItems[i]); bizTypeTree.setLevel(1); bizTypeTree.setShowCheckbox(true); bizTypeTree.setParentId(rootNode.getOid()); bizTypeTree.setParentName(rootNode.getText()); bizTypeTree.setShowCheckbox(true); childList.add(bizTypeTree); 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); return treeList; } 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(); List<Tree> chiledTreeList=new ArrayList<>(); if (funcObj instanceof BizType) {//ä¸å¡ç±»å BizType bizType = (BizType) funcObj; if(!CollectionUtil.isEmpty(contextList)) { contextList.stream().forEach(context->{ Tree childTree=new Tree(context.plOId,context.plName+"("+context.plCode+")",context); childTree.setParentName(pTree.getText()); childTree.setParentId(pTree.getOid()); childTree.setLevel(pTree.getLevel()+1); childTree.setShowCheckbox(isShowCheckBox); chiledTreeList.add(childTree); }); pTree.setChildren(chiledTreeList); } if(!CollectionUtil.isEmpty(chiledTreeList)) { setChildNode(chiledTreeList, contextList, roleRightVOMap, isShowCheckBox); } }else if (funcObj instanceof PLUILayout){//UI PLUILayout context = (PLUILayout) funcObj; PLTabPage[] pages = new PLTabPage[0]; try { pages = platformClientUtil.getUIService().getPLTabPagesByPageDefinationOId(context.plOId); } catch (PLException e) { e.printStackTrace(); } if(pages!=null&&pages.length>0){ List<PLTabPage> plTabPageList= Arrays.stream(pages).collect(Collectors.toList()); plTabPageList.stream().forEach(plTabPage -> { Tree childTree=new Tree(plTabPage.plOId,plTabPage.plName,plTabPage); childTree.setParentName(pTree.getText()); childTree.setParentId(pTree.getOid()); childTree.setLevel(pTree.getLevel()+1); childTree.setShowCheckbox(isShowCheckBox); chiledTreeList.add(childTree); }); pTree.setChildren(chiledTreeList); } if(!CollectionUtil.isEmpty(chiledTreeList)) { setChildNode(chiledTreeList, contextList, roleRightVOMap, isShowCheckBox); } }else if (funcObj instanceof PLTabPage) {//ä¸ä¸æ PLTabPage plTabPage = (PLTabPage) funcObj; List<PLPageDefination>plPageDefinationList=new ArrayList<>(); try { PLPageDefination[] pLPageDefinations = platformClientUtil.getUIService().getPLPageDefinationsByPageContextOId(plTabPage.plOId); if(pLPageDefinations!=null&&pLPageDefinations.length>0){ plPageDefinationList= Arrays.stream(pLPageDefinations).collect(Collectors.toList()); plPageDefinationList.stream().forEach(plPageDefination -> { Tree childTree=new Tree(plPageDefination.plOId,plPageDefination.name,plPageDefination); childTree.setParentName(pTree.getText()); childTree.setParentId(pTree.getOid()); childTree.setLevel(pTree.getLevel()+1); childTree.setShowCheckbox(isShowCheckBox); chiledTreeList.add(childTree); }); pTree.setChildren(chiledTreeList); } if(!CollectionUtil.isEmpty(chiledTreeList)) { setChildNode(chiledTreeList, contextList, roleRightVOMap, isShowCheckBox); } } catch (PLException e) { e.printStackTrace(); } }else if (funcObj instanceof PLPageDefination) {// PLPageDefination plPageDefination = (PLPageDefination) funcObj; try { List<PLTabButton>plTabButtonList=new ArrayList<>(); PLTabButton[] pLTabButtons = platformClientUtil.getUIService().getPLTabButtonsByTableOId(plPageDefination.plOId); if(pLTabButtons!=null&&pLTabButtons.length>0){ plTabButtonList= Arrays.stream(pLTabButtons).collect(Collectors.toList()); plTabButtonList.stream().forEach(plTabButton -> { Tree childTree=new Tree(plTabButton.plOId,plTabButton.plLabel,plTabButton); childTree.setParentName(pTree.getText()); childTree.setParentId(pTree.getOid()); childTree.setLevel(pTree.getLevel()+1); childTree.setShowCheckbox(isShowCheckBox); childTree.setLeaf(true); chiledTreeList.add(childTree); }); pTree.setChildren(chiledTreeList); } if(!CollectionUtil.isEmpty(chiledTreeList)) { setChildNode(chiledTreeList, contextList, roleRightVOMap, isShowCheckBox); } } catch (PLException e) { e.printStackTrace(); } }else if (funcObj instanceof PLTabButton) {//æé® String id = ((PLTabButton) funcObj).plTableOId; if(roleRightVOMap.containsKey(id)){ pTree.setChecked(true); }else{ pTree.setChecked(false); } } }); } /** * UIè§è²å¯¹è±¡è½¬æ¢ * @param infos * @return */ private List<RoleRightVO> roleRightDOO2VOS(List<RoleRightInfo> infos){ List<RoleRightVO> roleRightVOS=new ArrayList<>(); Optional.ofNullable(infos).orElseGet(()->new ArrayList<>()).stream().forEach(info -> { RoleRightVO vo=roleRightDOO2VO(info); roleRightVOS.add(vo); }); return roleRightVOS; } /** * UIè§è²å¯¹è±¡è½¬æ¢ * @param info * @return */ private RoleRightVO roleRightDOO2VO(RoleRightInfo info){ RoleRightVO vo=new RoleRightVO(); vo.setId(info.id); vo.setCreateTime(VciDateUtil.date2Str(VciDateUtil.long2Date(info.createTime),"")); vo.setCreateUser(info.createUser); vo.setRoleId(info.roleId); vo.setRightType(info.rightType); vo.setLicensor(info.licensor); vo.setRightValue(info.rightValue); vo.setFuncId(info.funcId); vo.setModifyTime(VciDateUtil.date2Str(VciDateUtil.long2Date(info.modifyTime),"")); vo.setModifyUser(info.modifyUser); return vo; } /** * æ§å¶åºèç¹åå ¶åèç¹çå é * @param obj */