From 8f6576fd595f67a3b17ef2e5e8054e8f194078f7 Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期四, 05 九月 2024 20:35:19 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java | 73 + Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java | 13 Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/QueryTemplateDTO.java | 164 +++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIEngineServiceI.java | 3 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/ISmFunctionQueryService.java | 9 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/HMSysModConfigController.java | 19 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsBtmServiceI.java | 10 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java | 40 Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/MenuVO.java | 7 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java | 10 Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LeafValueDto.java | 35 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java | 136 ++ Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ConditionItemDTO.java | 57 + Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/PLUILayoutCloneVO.java | 38 Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/Tree.java | 41 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebBtmTypeController.java | 1 Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/AttributeDefDTO.java | 39 Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/QTDDTO.java | 46 + Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ConditionDTO.java | 59 + Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsQuereyTemplateServiceI.java | 13 Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/RoleRightVO.java | 137 +++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java | 12 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java | 36 Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/QTInfoDTO.java | 2 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java | 304 ++++++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java | 172 +++ Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/model/RoleRightDO.java | 142 +++ Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LeafInfoDTO.java | 48 + Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java | 24 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsQueryTemplateImpl.java | 324 +++++++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java | 591 +++++++++++++ 31 files changed, 2,537 insertions(+), 68 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/AttributeDefDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/AttributeDefDTO.java new file mode 100644 index 0000000..91427e5 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/AttributeDefDTO.java @@ -0,0 +1,39 @@ +package com.vci.dto; + +import com.vci.corba.omd.atm.AttributeDef; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * 灞炴�т紶杈撳璞� + * @author yuxc + * @date 2024/09/02 10:15 + */ +@Data +public class AttributeDefDTO implements java.io.Serializable { + + /** + * 绂佹淇敼杩欎釜鍊� + */ + private static final long serialVersionUID = 2492852474710986720L; + public String oid; + public String name; + public String label; + public String vtDataType; + public String defValue; + public String ts; + public String creator; + public long createTime; + public String modifier; + public long modifyTime; + public String description; + public String rage; + public String other; + /** + * 灞傛暟 + */ + public int layersNum; + public List<AttributeDefDTO> attrs = new ArrayList<>(); +} diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ConditionDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ConditionDTO.java new file mode 100644 index 0000000..4d5b98e --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ConditionDTO.java @@ -0,0 +1,59 @@ +package com.vci.dto; + +import com.vci.common.qt.object.ConditionItem; +import lombok.Data; + +import java.util.Iterator; +import java.util.Map; + +/** + * 鏉′欢浼犺緭瀵硅薄 + * @author yuxc + * @date 2024/9/4 + */ +@Data +public class ConditionDTO { + private String rootCIName; + private Map<String, ConditionItemDTO> ciMap; + + public ConditionDTO() { + } + + public String getRootCIName() { + return this.rootCIName; + } + + public void setRootCIName(String rootCIName) { + this.rootCIName = rootCIName; + } + + public String getRootCINameByCIMap(Map<String, ConditionItem> ciMap) { + String rootCIName = ""; + if (ciMap != null) { + Iterator<String> i = ciMap.keySet().iterator(); + + while(i.hasNext()) { + String ciName = (String)i.next(); + if (rootCIName.equals("")) { + rootCIName = ciName; + } else { + int rootInt = Integer.valueOf(rootCIName.substring(2)); + int ciInt = Integer.valueOf(ciName.substring(2)); + if (ciInt > rootInt) { + rootCIName = ciName; + } + } + } + } + + return rootCIName; + } + + public Map<String, ConditionItemDTO> getCIMap() { + return this.ciMap; + } + + public void setCIMap(Map<String, ConditionItemDTO> cIMap) { + this.ciMap = cIMap; + } +} diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ConditionItemDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ConditionItemDTO.java new file mode 100644 index 0000000..abe7f32 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ConditionItemDTO.java @@ -0,0 +1,57 @@ +package com.vci.dto; + +import com.vci.common.qt.object.ChildrenInfo; +import com.vci.common.qt.object.ConditionItem; +import com.vci.common.qt.object.LeafInfo; +import lombok.Data; + +import java.util.Iterator; +import java.util.Map; + +/** + * 鏉′欢鍒楄〃浼犺緭瀵硅薄 + * @author yuxc + * @date 2024/9/4 + */ +@Data +public class ConditionItemDTO { + private String id; + private LeafInfoDTO leafInfo; + private ChildrenInfo childrenInfo; + private boolean leafFlag; + + public ConditionItemDTO() { + } + + public String getId() { + return this.id; + } + + public void setId(String id) { + this.id = id; + } + + public LeafInfoDTO getLeafInfo() { + return this.leafInfo; + } + + public void setLeafInfo(LeafInfoDTO leafInfo) { + this.leafInfo = leafInfo; + } + + public ChildrenInfo getChildrenInfo() { + return this.childrenInfo; + } + + public void setChildrenInfo(ChildrenInfo childrenInfo) { + this.childrenInfo = childrenInfo; + } + + public boolean isLeaf() { + return this.leafFlag; + } + + public void setLeafFlag(boolean leafFlag) { + this.leafFlag = leafFlag; + } +} diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LeafInfoDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LeafInfoDTO.java new file mode 100644 index 0000000..5326fb2 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LeafInfoDTO.java @@ -0,0 +1,48 @@ +package com.vci.dto; + +import com.vci.common.qt.object.ConditionItem; +import com.vci.common.qt.object.LeafValue; +import lombok.Data; + +import java.util.Iterator; +import java.util.Map; + +/** + * 鍙跺瓙鏉′欢浼犺緭瀵硅薄 + * @author yuxc + * @date 2024/9/4 + */ +@Data +public class LeafInfoDTO { + private String clause; + private String operator; + private String type; + private LeafValueDto value; + + public LeafInfoDTO() { + } + + public String getClause() { + return this.clause; + } + + public void setClause(String clause) { + this.clause = clause; + } + + public String getOperator() { + return this.operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public LeafValueDto getValue() { + return this.value; + } + + public void setValue(LeafValueDto value) { + this.value = value; + } +} diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LeafValueDto.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LeafValueDto.java new file mode 100644 index 0000000..31e9269 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LeafValueDto.java @@ -0,0 +1,35 @@ +package com.vci.dto; + +import lombok.Data; + +/** + * 鍙跺瓙鍊间紶杈撳璞� + * @author yuxc + * @date 2024/9/4 + */ +@Data +public class LeafValueDto { + private String ordinaryValue; + private QueryTemplateDTO queryTemplate; + + public LeafValueDto() { + } + + public String getOrdinaryValue() { + return this.ordinaryValue; + } + + public void setOrdinaryValue(String ordinaryValue) { + this.ordinaryValue = ordinaryValue; + } + + public QueryTemplateDTO getQueryTemplate() { + return this.queryTemplate; + } + + public void setQueryTemplate(QueryTemplateDTO queryTemplate) { + this.queryTemplate = queryTemplate; + } + + +} diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/QTDDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/QTDDTO.java new file mode 100644 index 0000000..397138a --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/QTDDTO.java @@ -0,0 +1,46 @@ +package com.vci.dto; + +import com.vci.corba.omd.atm.AttributeDef; +import lombok.Data; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 鏌ヨ妯℃澘浼犺緭瀵硅薄 + * @author weidy + * @date 2019/10/14 17:50 + */ +@Data +public class QTDDTO implements java.io.Serializable { + + /** + * 绂佹淇敼杩欎釜鍊� + */ + private static final long serialVersionUID = 2492852474710986720L; + /** + * 妯℃澘鍚嶇О + */ + public String name; + /** + * 鍒涘缓浜� + */ + public String creator; + /** + * 鍒涘缓鏃堕棿 + */ + public long createTime; + /** + * 涓氬姟绫诲瀷 + */ + public String btmName; + /** + * 閾炬帴绫诲瀷 + */ + public String linkTypeName; + /** + * 鎵�閫夋嫨鏌ヨ鐨勫瓧娈靛璞� + */ + public List<AttributeDefDTO> attrs = new ArrayList<>(); +} diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/QTInfoDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/QTInfoDTO.java index 094b3db..485ebeb 100644 --- a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/QTInfoDTO.java +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/QTInfoDTO.java @@ -31,7 +31,7 @@ //鏌ヨ妯℃澘鍚� private String qtText; //鏌ヨ妯℃澘淇℃伅 - private QueryTemplate queryTemplate; + private QueryTemplateDTO queryTemplate; //鏌ヨ鏉′欢锛屽悗绔繘琛岀浉鍏宠В鏋� private List<HashMap<String,String>> condition; private HashMap<String,Object> tree = new HashMap<>(); diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/QueryTemplateDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/QueryTemplateDTO.java new file mode 100644 index 0000000..e0036a1 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/QueryTemplateDTO.java @@ -0,0 +1,164 @@ +package com.vci.dto; + + +import com.vci.common.qt.object.Condition; +import com.vci.common.qt.object.OrderInfo; +import com.vci.common.qt.object.PageInfo; +import lombok.Data; +import java.util.List; + +/** + * 鏌ヨ妯℃澘浼犺緭瀵硅薄 + * @author yuxc + * @date 2024/8/7 + */ +@Data +public class QueryTemplateDTO { + private String id; + private String type; + private List<String> clauseList; + private String linkType; + private String btmType; + private boolean queryChildrenFlag = false; + private boolean queryISLeaf = false; + private boolean rightFlag = true; + private boolean secretFlag = true; + private String direction = "positive"; + private ConditionDTO condition; + private int version = 0; + private PageInfo pageInfo; + private List<OrderInfo> orderInfoList; + private int level = 1; + private int recReturnMode = 1; + + public QueryTemplateDTO() { + } + + public String getLinkType() { + return this.linkType; + } + + public void setLinkType(String linkType) { + this.linkType = linkType; + } + + public String getBtmType() { + return this.btmType; + } + + public void setBtmType(String btmType) { + this.btmType = btmType; + } + + public boolean isQueryChildren() { + return this.queryChildrenFlag; + } + + public void setQueryChildrenFlag(boolean queryChildrenFlag) { + this.queryChildrenFlag = queryChildrenFlag; + } + + public String getId() { + return this.id; + } + + public void setId(String id) { + this.id = id; + } + + public String getType() { + return this.type; + } + + public void setType(String type) { + this.type = type; + } + + public List<String> getClauseList() { + return this.clauseList; + } + + public void setClauseList(List<String> clauseList) { + this.clauseList = clauseList; + } + + public ConditionDTO getCondition() { + return this.condition; + } + + public void setCondition(ConditionDTO condition) { + this.condition = condition; + } + + public int getVersion() { + return this.version; + } + + public void setVersion(int version) { + this.version = version; + } + + public String getDirection() { + return this.direction; + } + + public void setDirection(String direction) { + this.direction = direction; + } + + public PageInfo getPageInfo() { + return this.pageInfo; + } + + public void setPageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + } + + public List<OrderInfo> getOrderInfoList() { + return this.orderInfoList; + } + + public void setOrderInfoList(List<OrderInfo> orderInfoList) { + this.orderInfoList = orderInfoList; + } + + public int getLevel() { + return this.level; + } + + public void setLevel(int level) { + this.level = level; + } + + public int getRecReturnMode() { + return this.recReturnMode; + } + + public void setRecReturnMode(int recReturnMode) { + this.recReturnMode = recReturnMode; + } + + public boolean isQueryISLeaf() { + return this.queryISLeaf; + } + + public void setQueryISLeaf(boolean queryISLeaf) { + this.queryISLeaf = queryISLeaf; + } + + public boolean isRightFlag() { + return this.rightFlag; + } + + public void setRightFlag(boolean rightFlag) { + this.rightFlag = rightFlag; + } + + public boolean isSecretFlag() { + return this.secretFlag; + } + + public void setSecretFlag(boolean secretFlag) { + this.secretFlag = secretFlag; + } +} diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/model/RoleRightDO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/model/RoleRightDO.java new file mode 100644 index 0000000..6c1fb38 --- /dev/null +++ b/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 + + '}'; + } +} diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/MenuVO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/MenuVO.java index 66328b6..06cda7c 100644 --- a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/MenuVO.java +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/MenuVO.java @@ -3,6 +3,7 @@ import java.io.Serializable; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -27,7 +28,7 @@ /** * 瀛愬瓩鑺傜偣 */ - private List<MenuVO> children; + private List<MenuVO> children = new ArrayList<>(); /** * 鏄惁鏈夊瓙瀛欒妭鐐� @@ -143,6 +144,10 @@ * 妯″潡涓嬪叧鑱旂殑鎿嶄綔绫诲瀷id */ private String operId; + /** + * 鏄惁鏈夋潈闄愶紝0娌℃湁锛�1鏈� + */ + private Integer havePermission; /** * 鍓嶇鏄惁闅愯棌 diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/PLUILayoutCloneVO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/PLUILayoutCloneVO.java new file mode 100644 index 0000000..e1c96bc --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/PLUILayoutCloneVO.java @@ -0,0 +1,38 @@ +package com.vci.pagemodel; + +import com.vci.corba.portal.data.PLUILayout; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * ui涓婁笅鏂囧厠闅嗗璞� + * @author ludc + * @date 2024/9/2 12:58 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PLUILayoutCloneVO { + + /** + * 鍏嬮殕鐩爣涓婚敭 + */ + private String cloneTargetOid; + + /** + * 鍏嬮殕鐨勬簮瀵硅薄鐨勪俊鎭� + */ + private PLUILayout sourcePLUILayout; + + /** + * 鍏嬮殕鍚嶇О + */ + private String cloneName; + + /** + * 鍏嬮殕涓婁笅鏂囩紪鐮� + */ + private String cloneContextCode; + +} diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/RoleRightVO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/RoleRightVO.java new file mode 100644 index 0000000..3c6ff70 --- /dev/null +++ b/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 + + '}'; + } +} diff --git a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/Tree.java b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/Tree.java index 53a3ae6..809dc3b 100644 --- a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/Tree.java +++ b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/Tree.java @@ -36,7 +36,19 @@ setOid(oid); setText(text); } - + + /** + * 鏋勯�犲嚱鏁� + * @param oid 涓婚敭 + * @param text 鏍戣妭鐐规枃鏈� + */ + public Tree(String oid, String text,Object o){ + setOid(oid); + setText(text); + setData(o); + } + + /** * 涓婚敭 */ @@ -63,6 +75,10 @@ * 瀛愯妭鐐� */ private List<Tree> children = new ArrayList<Tree>(); + /** + * 灞傜骇 + */ + private int level; /** * 鍥炬爣 */ @@ -99,6 +115,10 @@ * 鎺掑簭绱㈠紩 */ private String index;//鎺掑簭绱㈠紩 + /*** + * 褰撳墠鏁版嵁瀵硅薄 + */ + private Object data; /** * 鍏朵粬鐨勫睘鎬� @@ -383,6 +403,23 @@ } } + + public Object getData() { + return data; + } + + public void setData(Object data) { + this.data = data; + } + + public int getLevel() { + return level; + } + + public void setLevel(int level) { + this.level = level; + } + @Override public String toString() { return "Tree{" + @@ -392,6 +429,7 @@ ", showCheckbox=" + showCheckbox + ", checked=" + checked + ", children=" + children + + ", level=" + level + ", icon='" + icon + '\'' + ", iconCls='" + iconCls + '\'' + ", parentId='" + parentId + '\'' + @@ -400,6 +438,7 @@ ", expanded=" + expanded + ", href='" + href + '\'' + ", index='" + index + '\'' + + ", data=" + data + ", attributes=" + attributes + '}'; } 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 1be0596..9f04b2f 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 @@ -62,6 +62,15 @@ * @throws VciBaseException */ 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; int checkChildObject(String moduleId) throws VciException; 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 8422fbc..daa7f5c 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 @@ -4,13 +4,11 @@ import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONReader; import com.vci.client.ClientSession; +import com.vci.client.common.objects.RoleObject; import com.vci.common.exception.VciException; import com.vci.common.locale.LocaleDisplay; import com.vci.corba.common.PLException; -import com.vci.corba.framework.data.FuncOperationInfo; -import com.vci.corba.framework.data.FunctionInfo; -import com.vci.corba.framework.data.OperateInfo; -import com.vci.corba.framework.data.RoleRightInfo; +import com.vci.corba.framework.data.*; import com.vci.corba.omd.data.BusinessObject; import com.vci.corba.portal.data.PLUILayout; import com.vci.frameworkcore.compatibility.ISmFunctionQueryService; @@ -510,6 +508,49 @@ return functionVOList.stream().sorted(Comparator.comparing(s -> s.getSort())).collect(Collectors.toList()); } + public void findChildAuthFunctionVO(MenuVO functionVO, boolean isAll) throws PLException { + //0琛ㄧず娌℃湁妯″潡涔熸病鏈夋搷浣滐紝1琛ㄧず鏈夋ā鍧楋紝2琛ㄧず鏈夋搷浣� + long type = platformClientUtil.getFrameworkService().checkChildObject(functionVO.getId()); + if(type == 1){ + FunctionInfo[] funcObjs = platformClientUtil.getFrameworkService().getModuleListByParentId(functionVO.getId(), isAll); + for (FunctionInfo funcObj : funcObjs) { + MenuVO menuVO = new MenuVO(); + menuVO.setId(funcObj.id); + menuVO.setSource(funcObj.image); + menuVO.setPath(funcObj.resourceB); + menuVO.setCode(funcObj.aliasName); + menuVO.setAlias(funcObj.aliasName); + menuVO.setParentId(funcObj.parentId); + menuVO.setChildType((int) type); + menuVO.setName(funcObj.name); + menuVO.getMeta().put("keepAlive",false); + menuVO.setSort((int) funcObj.seq); + findChildAuthFunctionVO(menuVO, isAll); + functionVO.getChildren().add(menuVO); + } + }else if(type == 2){ + FuncOperationInfo[] infos = platformClientUtil.getFrameworkService().getFuncOperationByModule(functionVO.getId(), "", true); + for (FuncOperationInfo info : infos) { + MenuVO menuVO = new MenuVO(); + menuVO.setChildType((int) type); + 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); + functionVO.getChildren().add(menuVO); + } + }else{ + functionVO.setHasChildren(false); + } + } + @Override public UIContentVO getUIContentByBtmTypeAndId(TreeQueryObject treeQueryObject, ResourceControlTypeEnum resourceControlTypeEnum) throws PLException { SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfoNotException(); @@ -858,4 +899,259 @@ public void clearCache() { } + + + /** + * 閫氳繃妯″潡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; +// } + 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; + } + List<MenuVO> functionVOList = new ArrayList<>(); + FunctionInfo[] moduleListByParentId = getModuleListByParentId(parentId, false); + for (FunctionInfo menu : moduleListByParentId) { + if(!menu.isValid){ + continue; + } + MenuVO functionVO = new MenuVO(); + functionVO.setId(menu.id); + functionVO.setSource(menu.image); + 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); + 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 { + functionVO.setHasChildren(false); + } + 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()); + } + + + /** + * 閫氳繃妯″潡ID鑾峰彇瀛愮骇鍒楄〃 + * @param parentId + * @param isAll 鏄惁鍖呮嫭鏃犳晥鐨勬ā鍧楋紝true鍒欏寘鎷� + * @return + * @throws VciException + */ + public FunctionInfo[] getModuleListByParentId(String parentId,boolean isAll) throws PLException { + FunctionInfo[] funcInfos = null; + funcInfos = platformClientUtil.getFrameworkService().getModuleListByParentId(parentId, isAll); + return funcInfos; + } } 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 01f81e0..8f42517 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 @@ -72,6 +72,25 @@ } } + + /** + * 鑾峰彇褰撳墠妯″潡涓嬬殑瀛愭ā鍧� + * @param parentId + * @param modeType + * @return + */ + @GetMapping("/getSysModelAuthTreeMenuByPID") + public BaseResult<List<MenuVO>> getSysModelAuthTreeMenuByPID(String parentId, String modeType) { + try { + return BaseResult.dataList(functionQueryService.getSysModelAuthTreeMenuByPID(parentId,modeType,true)); + }catch (Exception e){ + e.printStackTrace(); + String errorMsg = "鏌ヨ瀛愭ā鍧楁椂鍑虹幇閿欒锛屽師鍥狅細"+ VciBaseUtil.getExceptionMessage(e); + logger.error(errorMsg); + throw new VciBaseException(errorMsg); + } + } + /** * 娣诲姞妯″潡 * @param menuVO diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java index e4a6f13..8b982bd 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java @@ -8,6 +8,8 @@ import com.vci.starter.web.pagemodel.BaseQueryObject; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.pagemodel.OsAttributeVO; +import com.vci.starter.web.pagemodel.Tree; +import com.vci.starter.web.pagemodel.TreeQueryObject; import com.vci.starter.web.util.ControllerUtil; import com.vci.starter.web.util.LocalFileUtil; import com.vci.starter.web.util.VciBaseUtil; @@ -46,6 +48,28 @@ */ private Logger logger = LoggerFactory.getLogger(getClass()); + + + /** + * 鑾峰彇鎵�鏈変笟鍔$被鍨嬶紙鏍戝舰缁撴瀯锛� + * @return 鏌ヨ缁撴灉 + */ + @GetMapping( "/getTreeAttributes") + @VciBusinessLog(operateName = "鑾峰彇灞炴�э紙鏍戝舰缁撴瀯锛�") + public BaseResult<List<Tree>> getTreeAttributesByBtmName(TreeQueryObject treeQueryObject){ + try { + List<Tree> trees= attributeService.getTreeAttributesByBtmName(treeQueryObject); + return BaseResult.dataList(trees); + // return BaseResult.tree(trees); + }catch (Throwable e) { + e.printStackTrace(); + String exceptionMessage = "鏌ヨ涓氬姟绫诲瀷鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** * 灞炴�у垪琛� * @param baseQueryObject 鏌ヨ瀵硅薄 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 c2032a4..2db280d 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 @@ -1,37 +1,23 @@ package com.vci.web.controller; import com.vci.corba.common.PLException; -import com.vci.corba.omd.ltm.LinkType; import com.vci.corba.omd.qtm.QTD; import com.vci.dto.QTInfoDTO; -import com.vci.pagemodel.OsBtmTypeAttributeVO; -import com.vci.pagemodel.OsBtmTypeVO; -import com.vci.pagemodel.OsLinkTypeAttributeVO; -import com.vci.pagemodel.OsLinkTypeVO; -import com.vci.starter.web.annotation.controller.VciUnCheckRight; -import com.vci.starter.web.annotation.log.VciBusinessLog; import com.vci.starter.web.exception.VciBaseException; -import com.vci.starter.web.pagemodel.BaseQueryObject; import com.vci.starter.web.pagemodel.BaseResult; -import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.util.VciBaseUtil; -import com.vci.web.service.OsLinkTypeServiceI; import com.vci.web.service.OsQuereyTemplateServiceI; -import org.apache.commons.lang3.StringUtils; import org.dom4j.DocumentException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Arrays; -import java.util.HashMap; import java.util.List; -import java.util.stream.Collectors; /** * 鏌ヨ妯℃澘鐨勬帶鍒跺櫒 @@ -63,6 +49,26 @@ public BaseResult queryTemplateList(String btmName,Boolean linkFlag){ try { return quereyTemplateServiceI.queryTemplateList(btmName,linkFlag); + } catch (PLException e) { + BaseResult objectBaseResult = new BaseResult<>(); + objectBaseResult.setCode(Integer.parseInt(e.code)); + objectBaseResult.setMsg(Arrays.toString(e.messages)); + return objectBaseResult; + } + } + + + /** + * 鏌ヨ妯℃澘鐨勫垪琛ㄦ坊鍔犱簡瀛楁鐨勭浉鍏冲睘鎬� + * @param btmName 绫诲瀷 + * @param linkFlag 鏄惁閾炬帴绫诲瀷 锛歵rue 閾炬帴绫诲瀷 锛宖alse 涓氬姟绫诲瀷 + * @param direction 姝e弽鏂瑰悜 + * @return 鏌ヨ妯℃澘鐨勫垪琛� + */ + @GetMapping("/queryTemplateListByAttr") + public BaseResult queryTemplateListByAttr(String btmName,Boolean linkFlag, String direction){ + try { + return quereyTemplateServiceI.queryTemplateListByAttr(btmName,linkFlag,direction); } catch (PLException e) { BaseResult objectBaseResult = new BaseResult<>(); objectBaseResult.setCode(Integer.parseInt(e.code)); @@ -277,13 +283,13 @@ /** * 鏌ヨ鏂规鍒犻櫎 - * @param templateNames 鏌ヨ鏂规鍚� + * @param names 鏌ヨ鏂规鍚� * @return 鎿嶄綔缁撴灉 */ @DeleteMapping("/deleteLinkTemplate") - public BaseResult deleteLinkTemplate(@RequestBody List<String> templateNames){ + public BaseResult deleteLinkTemplate(String names){ try { - return quereyTemplateServiceI.deleteLinkTemplate(templateNames); + return quereyTemplateServiceI.deleteLinkTemplate(names); } catch (PLException e) { BaseResult objectBaseResult = new BaseResult<>(); objectBaseResult.setCode(Integer.parseInt(e.code)); diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java new file mode 100644 index 0000000..ad4c627 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java @@ -0,0 +1,172 @@ +package com.vci.web.controller; + +import com.vci.corba.common.PLException; +import com.vci.corba.portal.data.PLUILayout; +import com.vci.dto.OsBtmTypeDTO; +import com.vci.pagemodel.PLUILayoutCloneVO; +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; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Arrays; +import java.util.List; + +/** + * UI瀹氫箟鎺у埗灞� + * @author ludc + * @date 2024/8/28 17:09 + */ +@RestController +@RequestMapping("/uiManagerController") +public class UIManagerController { + + /** + * 鏃ュ織 + */ + private Logger logger = LoggerFactory.getLogger(getClass()); + + /** + * 涓氬姟绫诲瀷鐨勬湇鍔� + */ + @Autowired + private OsBtmServiceI btmService; + + /** + * UI瀹氫箟鏈嶅姟 + */ + @Autowired + private UIManagerServiceI uiManagerService; + + /** + * 涓氬姟绫诲瀷鍒楄〃鏌ヨ锛岄潪鏍戠粨鏋勶細鐢ㄤ簬UI瀹氫箟宸︿晶涓氬姟绫诲瀷鏌ヨ + * @param btmName + * @return + * @throws PLException + */ + @GetMapping( "/getBizTree") + @VciBusinessLog(operateName = "涓氬姟绫诲瀷鍒楄〃(涓昏鐢ㄤ簬UI瀹氫箟涓氬姟绫诲瀷鏍戞煡璇娇鐢�)") + public BaseResult getBizTree(String btmName){ + try { + return BaseResult.success(btmService.getBizTree(btmName)); + }catch (Exception e) { + e.printStackTrace(); + String exceptionMessage = "鑾峰彇UI瀹氫箟涓氬姟绫诲瀷鍒楄〃鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * 閫氳繃涓氬姟绫诲瀷name鏌ヨui涓婁笅鏂囷紝鏀寔鍒嗛〉 + * @param baseQueryObject + * @return + * @throws PLException + */ + @GetMapping( "/gridUIContextData") + @VciBusinessLog(operateName = "閫氳繃涓氬姟绫诲瀷name鏌ヨ鍑簎i涓婁笅鏂�") + public BaseResult gridUIContextData(BaseQueryObject baseQueryObject){ + try { + return BaseResult.dataGrid(uiManagerService.gridUIContextData(baseQueryObject)); + }catch (Exception e) { + e.printStackTrace(); + String exceptionMessage = "閫氳繃涓氬姟绫诲瀷name鏌ヨ鍑簎i涓婁笅鏂囨椂鍑虹幇閿欒锛屽師鍥狅細" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * 鍒涘缓UI涓婁笅鏂� + * btmTypeDTO 閾炬帴绫诲瀷鐨勪繚瀛樺璞� + * @return 淇濆瓨缁撴灉 + */ + @PostMapping("/saveUIContextData") + public BaseResult saveUIContextData(@RequestBody PLUILayout pluiLayout){ + try { + return uiManagerService.saveUIContextData(pluiLayout) ? BaseResult.success("UI涓婁笅鏂囧垱寤烘垚鍔燂紒"):BaseResult.fail("UI涓婁笅鏂囧垱寤哄け璐ワ紒"); + } catch (Exception e) { + e.printStackTrace(); + String exceptionMessage = "鍒涘缓UI涓婁笅鏂囨椂鍑虹幇閿欒锛屽師鍥狅細" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * 淇敼UI涓婁笅鏂� + * btmTypeDTO + * @return 淇敼缁撴灉 + */ + @PutMapping("/updateUIContextData") + public BaseResult updateUIContextData(@RequestBody PLUILayout pluiLayout){ + try { + return uiManagerService.updateUIContextData(pluiLayout) ? BaseResult.success("UI涓婁笅鏂囦慨鏀规垚鍔燂紒"):BaseResult.fail("UI涓婁笅鏂囦慨鏀瑰け璐ワ紒"); + } catch (Exception e) { + e.printStackTrace(); + String exceptionMessage = "淇敼UI涓婁笅鏂囨椂鍑虹幇閿欒锛屽師鍥狅細" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * 鍒犻櫎UI涓婁笅鏂囨暟鎹� + * oids 鍒犻櫎鐨刼id淇℃伅 + * @return 鍒犻櫎缁撴灉 + */ + @DeleteMapping("/delUIContextData") + public BaseResult delUIContextData(String[] oids){ + try { + return uiManagerService.delUIContextData(oids) ? BaseResult.success("UI涓婁笅鏂囧垹闄ゆ垚鍔燂紒"):BaseResult.fail("UI涓婁笅鏂囧垹闄ゅけ璐ワ紒"); + } catch (PLException e) { + e.printStackTrace(); + String exceptionMessage = "鍒犻櫎UI涓婁笅鏂囨椂鍑虹幇閿欒锛屽師鍥狅細" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * UI涓婁笅鏂囧厠闅� + * pluiLayoutCloneVO 鍏嬮殕鍙傛暟瀵硅薄 + * @return 鍏嬮殕缁撴瀯 + */ + @PostMapping("/cloneUiContextData") + public BaseResult cloneUiContextData(@RequestBody PLUILayoutCloneVO pluiLayoutCloneVO){ + try { + return uiManagerService.cloneUiContextData(pluiLayoutCloneVO) ? BaseResult.success("UI涓婁笅鏂囧厠闅嗘垚鍔燂紒"):BaseResult.fail("UI涓婁笅鏂囧厠闅嗗け璐ワ紒"); + } catch (PLException e) { + e.printStackTrace(); + String exceptionMessage = "UI涓婁笅鏂囧厠闅嗘椂鍑虹幇閿欒锛屽師鍥狅細" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * 鏍规嵁瑙掕壊鑾峰彇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); + } + } + +} diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebBtmTypeController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebBtmTypeController.java index 10c2d5c..f9490cd 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebBtmTypeController.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebBtmTypeController.java @@ -104,7 +104,6 @@ */ @GetMapping( "/getBizTypes") @VciBusinessLog(operateName = "涓氬姟绫诲瀷鍒楄〃(涓昏鐢ㄤ簬瀵硅瘽妗嗕娇鐢�)") - @VciUnCheckRight public BaseResult getBizTypes(String btmName){ try { return BaseResult.dataList(Arrays.asList(btmService.getBizTypes(btmName))); diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java index c14d6ed..6471de0 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java +++ b/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 = "鍏嬮殕琛ㄥ崟/琛ㄦ牸") diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java index 96ffd58..91400a3 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java @@ -3,9 +3,7 @@ import com.vci.corba.common.PLException; import com.vci.corba.omd.atm.AttributeDef; import com.vci.dto.OsAttributeDTO; -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.*; import com.vci.pagemodel.OsAttributeVO; import org.springframework.web.multipart.MultipartFile; @@ -21,6 +19,12 @@ */ public interface OsAttributeServiceI extends OsBaseServiceI{ + /** + * 鑾峰彇鏍戠姸 + * @param treeQueryObject + * @return + */ + List<Tree> getTreeAttributesByBtmName(TreeQueryObject treeQueryObject); /** * 鑾峰彇榛樿鐨勫睘鎬� * @return 榛樿鐨勫睘鎬у垪琛� @@ -182,8 +186,9 @@ * 鏍规嵁涓氬姟绫诲瀷/閾炬帴绫诲瀷鑾峰彇灞炴�т俊鎭� * @param btName 涓氬姟绫诲瀷/閾炬帴绫诲瀷 * @param typeFlag 0:涓氬姟绫诲瀷,1:閾炬帴绫诲瀷 + * @param isDefault 鏄惁鍖呭惈榛樿灞炴�� true锛氬寘鍚紝false 涓嶅寘鍚� * @return */ - List<OsAttributeVO> getOsAttributeVOSByBtName(String btName,int typeFlag)throws Exception; + List<OsAttributeVO> getOsAttributeVOSByBtName(String btName,int typeFlag,boolean isDefault)throws Exception; } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsBtmServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsBtmServiceI.java index 2d07b7a..8c21a3c 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsBtmServiceI.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsBtmServiceI.java @@ -60,6 +60,14 @@ BizType[] getBizTypes(String btmName) throws PLException; /** + * 涓氬姟绫诲瀷鍒楄〃鏌ヨ锛岄潪鏍戠粨鏋勶細鐢ㄤ簬UI瀹氫箟宸︿晶涓氬姟绫诲瀷鏌ヨ锛屽彧杩斿洖name鍜宭able + * @param btmName + * @return + * @throws PLException + */ + Tree getBizTree(String btmName) throws PLException; + + /** * 鏌ヨ鎵�鏈夌殑涓氬姟绫诲瀷鏄犲皠 * @return key 鏄笟鍔$殑鑻辨枃鍚嶇О鐨勫皬鍐� */ @@ -276,7 +284,7 @@ /** * 瀵煎嚭涓氬姟绫诲瀷 * oid 涓氬姟绫诲瀷鍚嶇О - * @return 鍒涘缓缁撴灉 + * @return */ void expData(String oid, HttpServletResponse response) throws PLException, IOException; 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 4b2f1fa..7f0b927 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 @@ -102,10 +102,10 @@ BaseResult impLinkTemplate(MultipartFile file) throws IOException, ClassNotFoundException; /** * 鏌ヨ鏂规鍒犻櫎 - * @param templateNames 鏌ヨ鏂规鍚� + * @param names 鏌ヨ鏂规鍚� * @return 鎿嶄綔缁撴灉 */ - BaseResult deleteLinkTemplate(List<String> templateNames) throws PLException; + BaseResult deleteLinkTemplate(String names) throws PLException; /** * 鏌ヨ鏉′欢涓嬬殑鏌ヨ鎸夐挳 @@ -153,5 +153,12 @@ * @return 瀵煎叆缁撴灉 */ BaseResult impBtmTemplate(MultipartFile file) throws IOException, ClassNotFoundException; - + /** + * 鏌ヨ妯℃澘鐨勫垪琛ㄦ坊鍔犱簡瀛楁鐨勭浉鍏冲睘鎬� + * @param btmName 绫诲瀷 + * @param linkFlag 鏄惁閾炬帴绫诲瀷 锛歵rue 閾炬帴绫诲瀷 锛宖alse 涓氬姟绫诲瀷 + * @param direction 姝e弽鏂瑰悜 + * @return 鏌ヨ妯℃澘鐨勫垪琛� + */ + BaseResult queryTemplateListByAttr(String btmName, Boolean linkFlag, String direction) throws PLException; } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIEngineServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIEngineServiceI.java index 4e768f8..40b4ec7 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIEngineServiceI.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIEngineServiceI.java @@ -134,7 +134,6 @@ */ UIActionVO actionDO2VO(PLAction action); - /** * 鏌ヨ鎵�鏈夌殑UI涓婁笅鏂� * @return 鏄剧ず瀵硅薄 @@ -209,5 +208,5 @@ // UIContentVO UIContentDO2VO(PLPageLayoutDefination pageLayoutDefination, boolean queryDetail); UIContentVO UIContentDO2VO(PLUILayout pageLayoutDefination, boolean queryDetail); -; + } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java new file mode 100644 index 0000000..0001abd --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java @@ -0,0 +1,73 @@ +package com.vci.web.service; + +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 + * @date 2024/8/28 17:05 + */ +public interface UIManagerServiceI { + + /** + * 閫氳繃涓氬姟绫诲瀷name鏌ヨui涓婁笅鏂囷紝鏀寔鍒嗛〉 + * @param baseQueryObject + * @return + * @throws PLException + */ + DataGrid gridUIContextData(BaseQueryObject baseQueryObject) throws PLException; + + /** + * 缁欎笟鍔$被鍨嬩笅娣诲姞ui涓婁笅鏂� + * @param pluiLayout + * @return + * @throws PLException + */ + boolean saveUIContextData(PLUILayout pluiLayout) throws PLException; + + /** + * 淇敼涓氬姟绫诲瀷涓嬫坊鍔爑i涓婁笅鏂� + * @param pluiLayout + * @return + * @throws PLException + */ + boolean updateUIContextData(PLUILayout pluiLayout) throws PLException; + + /** + * 鏍规嵁涓婚敭鍜屼笟鍔$被鍨媜id鍒犻櫎ui涓婁笅鏂囨暟鎹� + * @return + */ + boolean delUIContextData(String[] oids) throws PLException; + + /** + * 鍏嬮殕ui涓婁笅鏂� + * @param pluiLayoutCloneVO + * @return + */ + boolean cloneUiContextData(PLUILayoutCloneVO pluiLayoutCloneVO) throws PLException; + + /** + * 瀵煎嚭ui涓婁笅鏂�(鍕鹃�夌殑瑕佸鍑虹殑鎺у埗鍖虹殑鏁版嵁) + * oids + * @return + */ + void expUiContextData(String[] oids, HttpServletResponse response) throws PLException, IOException; + + /** + * 鑾峰彇UI鏉冮檺鏍� + * @param baseQueryObject + * @return + * @throws VciBaseException + */ + List<Tree> getUIAuthor(BaseQueryObject baseQueryObject)throws Exception; +} diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java index c8facba..ec96cc5 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java @@ -7,14 +7,14 @@ import com.vci.client.mw.ClientSessionUtility; import com.vci.corba.common.PLException; import com.vci.corba.omd.atm.AttributeDef; +import com.vci.corba.omd.ltm.LinkType; import com.vci.corba.omd.vrm.VersionRule; import com.vci.dto.OsAttributeDTO; import com.vci.dto.OsEnumDTO; import com.vci.dto.OsEnumItemDTO; import com.vci.omd.dataType.VTDataType; -import com.vci.pagemodel.OsEnumItemVO; -import com.vci.pagemodel.OsEnumVO; -import com.vci.pagemodel.OsUsedAttributeVO; +import com.vci.omd.objects.OtherInfo; +import com.vci.pagemodel.*; import com.vci.po.OsAttributePO; import com.vci.po.OsEnumPO; import com.vci.starter.poi.bo.ReadExcelOption; @@ -25,12 +25,10 @@ import com.vci.starter.web.annotation.log.VciUnLog; import com.vci.starter.web.enumpck.VciFieldTypeEnum; 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.*; import com.vci.starter.web.util.*; import com.vci.model.OsAttributeDO; -import com.vci.pagemodel.OsAttributeVO; +import com.vci.web.enumpck.PortalVITypeFlag; import com.vci.web.properties.UsedNames; import com.vci.web.service.OsAttributeServiceI; import com.vci.web.service.OsBaseServiceI; @@ -135,6 +133,101 @@ * 榛樿灞炴�х殑鏄犲皠锛宬ey鏄皬鍐� */ private static Map<String,OsAttributeVO> defaultAttributeVOMap = new HashMap<>(); + + @Override + public List<Tree> getTreeAttributesByBtmName(TreeQueryObject treeQueryObject) { + List<Tree> rootTreeList=new ArrayList<>(); + + Map<String, String> conditionMap = treeQueryObject.getConditionMap(); + if (conditionMap == null) { + conditionMap = new HashMap<>(); + } + String typeName = StringUtils.isBlank(conditionMap.get("typeName")) ? "" : conditionMap.get("typeName"); + if (StringUtils.isBlank(typeName)) { + VciBaseUtil.alertNotNull(typeName,"涓氬姟绫诲瀷鍚嶇О"); + } + try { + String typeFlag=StringUtils.isBlank(conditionMap.get("typeFlag"))?"":conditionMap.get("typeFlag"); + PortalVITypeFlag portalVITypeFlag= PortalVITypeFlag.getByName(typeFlag); + Short viTypeFlag=-1; + if(portalVITypeFlag!=null){ + viTypeFlag=portalVITypeFlag.getIntVal(); + } + boolean isDefault =Boolean.parseBoolean(conditionMap.get("isDefault")); + Tree tree = new Tree("root", "銆�" + typeName + "銆戝睘鎬т俊鎭�", "root"); + tree.setLevel(0); + rootTreeList.add(tree); + getChildTree(rootTreeList,typeName, viTypeFlag,isDefault); + }catch (Throwable e){ + e.printStackTrace(); + } + return rootTreeList; + } + + /** + * 澶熺潃灞炴�ф爲鑺傜偣 + * @param parentTreeList + * @param refTypeName + * @param refFlag + * @param isDefault + * @throws Exception + */ + private void getChildTree(List<Tree> parentTreeList,String refTypeName,int refFlag,boolean isDefault) throws Exception { + for (Tree pTree : parentTreeList) { + if (pTree.getLevel()>= 3) { + continue; + } + Object o= pTree.getData(); + String pName=pTree.getText(); + boolean isOsAttributeVO=false; + if(o instanceof OsAttributeVO){ + isOsAttributeVO=true; + OsAttributeVO osAttributeVO=(OsAttributeVO)o; + String other = osAttributeVO.getOther(); + OtherInfo otherInfo = OtherInfo.getOtherInfoByText(other); + refFlag = otherInfo.getRefFlag(); + refTypeName = otherInfo.getRefTypeName(); + } + List<OsAttributeVO> childOsAttributeVOList=new ArrayList<>(); + if (refFlag != -1) { + // pName: 涓哄弬鐓у睘鎬у悕鍔犱笂璺緞 + childOsAttributeVOList=getOsAttributeVOSByBtName(refTypeName,refFlag,isDefault); + if(!CollectionUtils.isEmpty(childOsAttributeVOList)) { + List<Tree> childTreeList= new ArrayList<>(); + boolean finalIsOsAttributeVO = isOsAttributeVO; + childOsAttributeVOList.stream().forEach(childOsAttributeVO->{ + Tree childTree = new Tree(childOsAttributeVO.getOid(), childOsAttributeVO.getId(), childOsAttributeVO); + childTree.setOid(childOsAttributeVO.getOid()); + childTree.setParentName(pTree.getText()); + childTree.setParentId(pTree.getOid()); + childTree.setLevel(pTree.getLevel()+1); + childTree.setLeaf(true); + if(finalIsOsAttributeVO) { + childTree.setText(pName + "." + childOsAttributeVO.getId()); + }else{ + childTree.setText(childOsAttributeVO.getId()); + } + if (childTree.getLevel()>= 3) { + childTree.setLeaf(true); + } + childTreeList.add(childTree); + }); + if(childTreeList.size()>0){ + pTree.setChildren(childTreeList); + pTree.setExpanded(false); + getChildTree(childTreeList,refTypeName,refFlag,isDefault); + }else{ + pTree.setLeaf(true); + pTree.setExpanded(true); + } + + } + }else{ + pTree.setExpanded(true); + } + } + + } /** * 鑾峰彇榛樿鐨勫睘鎬� @@ -1142,17 +1235,36 @@ * @return */ @Override - public List<OsAttributeVO> getOsAttributeVOSByBtName(String btName, int typeFlag) throws Exception{ + public List<OsAttributeVO> getOsAttributeVOSByBtName(String btName, int typeFlag,boolean isDefault) throws Exception{ VciBaseUtil.alertNotNull(btName,"鍙傛暟涓嶅厑璁镐负绌�",typeFlag,"鍙傛暟涓嶅厑璁镐负绌�"); List<OsAttributeVO> attributeVOS=new ArrayList<>(); + try { - AttributeDef[] attributeDefs=new AttributeDef[]{}; + List<AttributeDef> attributeDefList=new ArrayList<>(); if(typeFlag==0){ - attributeDefs= platformClientUtil.getBtmService().getAttributeDefs(btName); + AttributeDef [] attributeDefs= platformClientUtil.getBtmService().getAttributeDefs(btName); + if(attributeDefs!=null){ + attributeDefList.addAll(Arrays.stream(attributeDefs).collect(Collectors.toList())); + } + if(isDefault){ + AttributeDef [] sysAttributeDefs=platformClientUtil.getBtmService().getSysAttributeDefs(); + if(sysAttributeDefs!=null){ + attributeDefList.addAll(Arrays.stream(sysAttributeDefs).collect(Collectors.toList())); + } + } }else{ - attributeDefs=platformClientUtil.getLinkTypeService().getAttributes(btName); + AttributeDef [] attributeDefs=platformClientUtil.getLinkTypeService().getAttributes(btName); + if(attributeDefs!=null){ + attributeDefList.addAll(Arrays.stream(attributeDefs).collect(Collectors.toList())); + } + if(isDefault){ + AttributeDef[] sysAbItems = platformClientUtil.getLinkTypeService().getSysAttributeDefs(); + if(sysAbItems!=null){ + attributeDefList.addAll(Arrays.stream(sysAbItems).collect(Collectors.toList())); + } + } } - attributeVOS=attributeDO2VOs(Arrays.asList(attributeDefs)); + attributeVOS=attributeDO2VOs(attributeDefList); }catch (PLException e){ throw new Exception("鏍规嵁涓氬姟绫诲瀷鑾峰彇灞炴�у紓甯�"+e.getMessage()); } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java index e46d9c8..f573031 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java @@ -493,6 +493,42 @@ } /** + * 涓氬姟绫诲瀷鍒楄〃鏌ヨ锛岄潪鏍戠粨鏋勶細鐢ㄤ簬UI瀹氫箟宸︿晶涓氬姟绫诲瀷鏌ヨ锛屽彧杩斿洖name鍜宭able + * @param btmName + * @return + * @throws PLException + */ + @Override + public Tree getBizTree(String btmName) throws PLException { + if(null == btmName){ + btmName = ""; + } + Tree returnTree = new Tree(); + BizType[] bizTypes = platformClientUtil.getBtmService().getBizTypes(btmName); + if(Func.isEmpty(bizTypes)){ + return returnTree; + } + returnTree.setOid(""); + returnTree.setText("涓氬姟绫诲瀷"); + returnTree.setLeaf(false); + List<Tree> trees = new ArrayList<>(); + Arrays.stream(bizTypes).forEach(bizType -> { + Tree tree = new Tree(); + tree.setText(bizType.name + " " +bizType.label); + tree.setOid(bizType.oid); + tree.setLeaf(true); + tree.setParentName(bizType.fName); + Map<String, String> atrrMap = new HashMap<>(); + atrrMap.put("name",bizType.name); + atrrMap.put("lable",bizType.label); + tree.setAttributes(atrrMap); + trees.add(tree); + }); + returnTree.setChildren(trees); + return returnTree; + } + + /** * 鍙傜収涓氬姟绫诲瀷 * * @param conditionMap 鏌ヨ鏉′欢 diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java index 45abd95..5db621e 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java +++ b/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; } @@ -381,7 +384,7 @@ } String attributeStr=""; try { - List<OsAttributeVO> osAttributeVOList=osAttributeService.getOsAttributeVOSByBtName(portalVIDTO.getTypeName(),portalVIDTO.getTypeFlag()); + List<OsAttributeVO> osAttributeVOList=osAttributeService.getOsAttributeVOSByBtName(portalVIDTO.getTypeName(),portalVIDTO.getTypeFlag(),false); if(!CollectionUtils.isEmpty(osAttributeVOList)){ List<String> filedList= osAttributeVOList.stream().map(OsAttributeVO::getId).collect(Collectors.toList()); attributeStr=VciBaseUtil.array2String(filedList.toArray(new String[]{})); @@ -521,7 +524,7 @@ }); } //鏍¢獙灞炴�ф槸鍚︽纭� - List<OsAttributeVO> osAttributeVOList = osAttributeService.getOsAttributeVOSByBtName(portalVI.typeName, portalVI.typeFlag); + List<OsAttributeVO> osAttributeVOList = osAttributeService.getOsAttributeVOSByBtName(portalVI.typeName, portalVI.typeFlag,false); if (!CollectionUtils.isEmpty(osAttributeVOList)) { List<String> filedList = osAttributeVOList.stream().map(OsAttributeVO::getId).collect(Collectors.toList()); List<String> attributeList = VciBaseUtil.str2List(portalVIPO.getAttributeKey()); @@ -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){ 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 83fd63d..5b993f0 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 @@ -16,7 +16,8 @@ import com.vci.corba.omd.ltm.LinkType; import com.vci.corba.omd.qtm.QTD; import com.vci.corba.omd.qtm.QTInfo; -import com.vci.dto.QTInfoDTO; +import com.vci.dto.*; +import com.vci.omd.constants.SystemAttribute; import com.vci.omd.objects.OtherInfo; import com.vci.po.OsLinkTypePO; import com.vci.starter.poi.bo.ReadExcelOption; @@ -193,6 +194,9 @@ VciBaseUtil.alertNotNull(btName,"绫诲瀷鍚�"); QTInfo[] objTypeQTs = platformClientUtil.getQTDService().getObjTypeQTs(btName); List<QTInfoDTO> dtos = new ArrayList<>(); + Map<String, AttributeDef> allSysAttr = Arrays.stream(platformClientUtil.getBtmService().getSysAttributeDefs()).collect(Collectors.toMap(e -> e.name, e -> e)); + allSysAttr.putAll(Arrays.stream(platformClientUtil.getLinkTypeService().getSysAttributeDefs()).collect(Collectors.toMap(e -> e.name, e -> e))); + for (QTInfo obj : objTypeQTs) { QTInfoDTO qtInfoDTO = new QTInfoDTO(); qtInfoDTO.setCreator(obj.creator); @@ -203,13 +207,84 @@ qtInfoDTO.setQtUIText(obj.qtUIText); if(StringUtils.isNotBlank(obj.qtUIText)){ //灏嗙粰瀹氱殑String鏂囨湰瑙f瀽涓篨ML鏂囨。骞惰繑鍥炴柊鍒涘缓鐨刣ocument - qtInfoDTO.setTree(analysisXml(obj)); + qtInfoDTO.setTree(analysisXml(obj, allSysAttr)); } - qtInfoDTO.setQueryTemplate(OQTool.getQTByDoc(DocumentHelper.parseText(obj.qtText), obj.qtName)); + QueryTemplate qtByDoc = OQTool.getQTByDoc(DocumentHelper.parseText(obj.qtText), obj.qtName); + qtInfoDTO.setQueryTemplate(queryTemplateToDto(qtByDoc, allSysAttr)); qtInfoDTO.setCreateTimeText(DateFormatUtils.format(new Date(obj.createTime), DateUtil.PATTERN_DATETIME)); dtos.add(qtInfoDTO); } return BaseResult.dataList(dtos); + } + + /** + * 瀵硅薄杞崲 + * @param qtByDoc 妯℃澘瀵硅薄 + * @param allSysAttr 鎵�鏈夌郴缁熷睘鎬� + * @return 妯℃澘浼犺緭瀵硅薄 + * @throws PLException + */ + private QueryTemplateDTO queryTemplateToDto(QueryTemplate qtByDoc, Map<String, AttributeDef> allSysAttr) throws PLException { + QueryTemplateDTO dto = new QueryTemplateDTO(); + dto.setId(qtByDoc.getId()); + dto.setBtmType(qtByDoc.getBtmType()); + dto.setDirection(qtByDoc.getDirection()); + dto.setLevel(qtByDoc.getLevel()); + dto.setQueryChildrenFlag(qtByDoc.isQueryChildren()); + dto.setQueryISLeaf(qtByDoc.isQueryISLeaf()); + dto.setClauseList(qtByDoc.getClauseList()); + dto.setPageInfo(qtByDoc.getPageInfo()); + dto.setLinkType(qtByDoc.getLinkType()); + dto.setVersion(qtByDoc.getVersion()); + dto.setType(qtByDoc.getType()); + dto.setSecretFlag(qtByDoc.isSecretFlag()); + dto.setRightFlag(qtByDoc.isRightFlag()); + dto.setOrderInfoList(qtByDoc.getOrderInfoList()); + dto.setRecReturnMode(qtByDoc.getRecReturnMode()); + Condition con = qtByDoc.getCondition(); + if(con != null){ + ConditionDTO conDto = new ConditionDTO(); + conDto.setRootCIName(con.getRootCIName()); + Map<String, ConditionItem> ciMap = con.getCIMap(); + Map<String, ConditionItemDTO> ciMapDto = new HashMap<>(); + for (String key : ciMap.keySet()) { + ConditionItem item = ciMap.get(key); + LeafInfo leafInfo = item.getLeafInfo(); + ConditionItemDTO itemDTO = new ConditionItemDTO(); + itemDTO.setChildrenInfo(item.getChildrenInfo()); + itemDTO.setId(item.getId()); + itemDTO.setLeafFlag(item.isLeaf()); + ciMapDto.put(key, itemDTO); + if(leafInfo == null){ + continue; + } + LeafInfoDTO leafInfoDTO = new LeafInfoDTO(); + itemDTO.setLeafInfo(leafInfoDTO); + //澶勭悊鏌ヨ瀛楁绫诲瀷 + String column = leafInfo.getClause(); + if(column.contains(".")){ + column = StringUtils.substringAfterLast(column, "."); + } + AttributeDef att = platformClientUtil.getAttributeService().getAttributeDefByName(column); + if(att == null || "".equals(att.oid)){ + att = allSysAttr.get(column.toLowerCase()); + } + leafInfoDTO.setClause(leafInfo.getClause()); + + leafInfoDTO.setOperator(leafInfo.getOperator()); + leafInfoDTO.setType(att.vtDataType); + if(leafInfo.getValue() != null ){ + LeafValueDto valueDto = new LeafValueDto(); + valueDto.setOrdinaryValue(leafInfo.getValue().getOrdinaryValue()); + valueDto.setQueryTemplate(leafInfo.getValue().getQueryTemplate() != null ? queryTemplateToDto(leafInfo.getValue().getQueryTemplate(),allSysAttr) : null); + leafInfoDTO.setValue(valueDto); + } + + } + conDto.setCIMap(ciMapDto); + dto.setCondition(conDto); + } + return dto; } /** @@ -218,14 +293,13 @@ * @return * @throws DocumentException */ - private HashMap<String,Object> analysisXml(QTInfo obj) throws DocumentException { + private HashMap<String,Object> analysisXml(QTInfo obj, Map<String, AttributeDef> allSysAttr) throws DocumentException, PLException { org.dom4j.Document document = DocumentHelper.parseText(obj.qtUIText); if(document == null){ return null; } //鑾峰彇鏍硅妭鐐�,鍦ㄤ緥瀛愪腑灏辨槸responsedata鑺傜偣 Element root = document.getRootElement(); - List<HashMap<String,Object>> treeList = new ArrayList<>(); HashMap<String,Object> treeMap = new HashMap<>(); treeMap.put("connector",root.getText()); List<Element> children = root.elements(); @@ -233,9 +307,20 @@ for(Iterator<Element> i = children.iterator(); i.hasNext();){ Element child = i.next(); if(AND.equals(child.getText()) || OR.equals(child.getText())){ - childList.add(addDefaultMutableTree(child)); + childList.add(addDefaultMutableTree(child, allSysAttr)); }else { - childList.add(child.getText().trim()); + String column = StringUtils.substringBefore(child.getText().trim(), " "); + + if(column.contains(".")){ + column = StringUtils.substringAfterLast(column, "."); + } + AttributeDef att = platformClientUtil.getAttributeService().getAttributeDefByName(column); + if(att == null || "".equals(att.oid)){ + att = allSysAttr.get(column.toLowerCase()); + } + HashMap<String, String> data = new HashMap<>(); + data.put("column",child.getText().trim()); + data.put("type",att.vtDataType); } } treeMap.put("child",childList); @@ -246,7 +331,7 @@ * 灏嗗瓙鑺傜偣杞负map缁撴瀯 * @param element */ - public Map<String, Object> addDefaultMutableTree(Element element){ + public Map<String, Object> addDefaultMutableTree(Element element, Map<String, AttributeDef> allSysAttr) throws PLException { List<Object> childList = new ArrayList<>(); List<Element> children = element.elements(); HashMap<String,Object> treeMap = new HashMap<>(); @@ -254,9 +339,21 @@ for(Iterator<Element> i = children.iterator(); i.hasNext();){ Element child = i.next(); if(AND.equals(child.getText()) || OR.equals(child.getText())){ - childList.add(addDefaultMutableTree(child)); + childList.add(addDefaultMutableTree(child, allSysAttr)); }else { - childList.add(child.getText().trim()); + String column = StringUtils.substringBefore(child.getText().trim(), " "); + + if(column.contains(".")){ + column = StringUtils.substringAfterLast(column, "."); + } + AttributeDef att = platformClientUtil.getAttributeService().getAttributeDefByName(column); + if(att == null || "".equals(att.oid)){ + att = allSysAttr.get(column.toLowerCase()); + } + HashMap<String, String> data = new HashMap<>(); + data.put("column",child.getText().trim()); + data.put("type",att.vtDataType); + childList.add(data); } } treeMap.put("child",childList); @@ -1332,12 +1429,16 @@ } /** * 鏌ヨ鏂规鍒犻櫎 - * @param templateNames 鏌ヨ鏂规鍚� + * @param names 鏌ヨ鏂规鍚� * @return 鎿嶄綔缁撴灉 */ @Override - public BaseResult deleteLinkTemplate(List<String> templateNames) throws PLException { - boolean b = platformClientUtil.getQTDService().deleteQTs(templateNames.toArray(new String[0])); + public BaseResult deleteLinkTemplate(String names) throws PLException { + if(StringUtils.isBlank(names)){ + return BaseResult.fail("璇烽�夋嫨鏌ヨ鏂规锛�"); + } + String[] nameSplit = names.split(","); + boolean b = platformClientUtil.getQTDService().deleteQTs(nameSplit); if(!b){ return BaseResult.fail("鍒犻櫎澶辫触锛侊紒锛�"); } @@ -1564,7 +1665,204 @@ tree.put("children", childList); return BaseResult.success(tree); } + /** + * 鏌ヨ妯℃澘鐨勫垪琛ㄦ坊鍔犱簡瀛楁鐨勭浉鍏冲睘鎬� + * @param btmName 绫诲瀷 + * @param linkFlag 鏄惁閾炬帴绫诲瀷 锛歵rue 閾炬帴绫诲瀷 锛宖alse 涓氬姟绫诲瀷 + * @param direction 姝e弽鏂瑰悜 + * @return 鏌ヨ妯℃澘鐨勫垪琛� + */ + @Override + public BaseResult queryTemplateListByAttr(String btmName, Boolean linkFlag, String direction) throws PLException { + //杩斿洖鐨勭晫闈笅鎷夋鏄剧ず鏍� + List<QTDDTO> qtddtos = new ArrayList<>(); + //灏嗛摼鎺ョ被鍨嬩笌涓氬姟绫诲瀷鐨勬墍鏈夐粯璁ゅ瓧娈垫煡璇㈠嚭鏉ユ斁鍒癿ap閲岄潰鏂逛究鍚庣画璋冪敤 + Map<String, AttributeDef> allSysAttr = Arrays.stream(platformClientUtil.getBtmService().getSysAttributeDefs()).collect(Collectors.toMap(e -> e.name, e -> e)); + allSysAttr.putAll(Arrays.stream(platformClientUtil.getLinkTypeService().getSysAttributeDefs()).collect(Collectors.toMap(e -> e.name, e -> e))); + QTD[] qtdArray = null; + //鏌ヨ鐩稿叧绫诲瀷鐨勬煡璇㈡ā鏉胯繘琛屽鐞� + if(linkFlag){ + qtdArray = platformClientUtil.getQTDService().getLinkTypeQTDs(btmName); + }else { + qtdArray = platformClientUtil.getQTDService().getBizTypeQTDs(btmName); + } + for (QTD qtd : qtdArray) { + QTDDTO qtddto = new QTDDTO(); + qtddto.setName(qtd.name); + qtddto.setCreateTime(qtd.createTime); + qtddto.setLinkTypeName(qtd.linkTypeName); + qtddto.setBtmName(qtd.btmName); + qtddto.setCreator(qtd.creator); + for (String abName : qtd.abNames) { + AttributeDef att = platformClientUtil.getAttributeService().getAttributeDefByName(abName); + //濡傛灉鍦ㄥ睘鎬ф帴鍙d腑娌℃湁鏌ュ埌鐩稿叧瀛楁搴旇灏卞湪榛樿瀛楁涓� + if(att == null || "".equals(att.oid)){ + att = allSysAttr.get(abName.toLowerCase()); + } + if(direction != null) { + if (direction.equals(QTConstants.DIRECTION_POSITIVE)) { + if(att == null ){ + 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 +"鏈煡璇㈠埌锛岃纭锛�"}); + } + att.name = "F_OID." + abName; + } + }else{ + att.name = abName; + } + AttributeDefDTO attrDto = new AttributeDefDTO(); + attrDto.setDescription(att.description); + attrDto.setLabel(att.label); + attrDto.setOid(att.oid); + attrDto.setCreator(att.creator); + attrDto.setName(att.name); + attrDto.setDefValue(att.defValue); + attrDto.setLayersNum(1); + attrDto.setRage(att.rage); + attrDto.setVtDataType(att.vtDataType); + attrDto.setOther(att.other); + qtddto.getAttrs().add(attrDto); + addNode(attrDto, allSysAttr); + } + qtddtos.add(qtddto); + } + return BaseResult.dataList(qtddtos); + } + /** + * 瀛愯妭鐐瑰鐞� + * @param attributeDefByName 鐖惰妭鐐圭殑灞炴�т俊鎭� + * @param allSysAttr 鎵�鏈夐粯璁ゅ瓧娈� + */ + private void addNode(AttributeDefDTO attributeDefByName, Map<String, AttributeDef> allSysAttr){ + + if(attributeDefByName.getLayersNum() >= 3){ + return; + } + String abName = attributeDefByName.name; + //鍙杗ode涓婄殑鏈�鍚庝竴涓睘鎬у悕 + if(abName.contains(".")){ + abName = abName.substring(abName.lastIndexOf(".") + 1); + } + if(SystemAttribute.sysAttList().contains(abName.toUpperCase())){ + return; + } + AttributeDef abItem = null; + try { + abItem = platformClientUtil.getAttributeService().getAttributeDefByName(abName); + String other = abItem.other; +// String btmName = ApProvider.getInstance().getOtherValueByType(other, BTM); + OtherInfo otherInfo = OtherInfo.getOtherInfoByText(other); + int refFlag = otherInfo.getRefFlag(); + String refTypeName = otherInfo.getRefTypeName(); + if(refFlag != -1){ + //鍙傜収涓氬姟绫诲瀷 + if(refFlag == 0){ + //pName: 涓哄弬鐓у睘鎬у悕鍔犱笂璺緞 + String pName = attributeDefByName.name + "."; + String[] abNames = platformClientUtil.getBtmService().getAttributeNames(refTypeName); + for(int i = 0; i < abNames.length; i++){ + String abName_ = abNames[i]; + AttributeDef att = platformClientUtil.getAttributeService().getAttributeDefByName(abName_); + if(att == null || "".equals(att.oid)){ + att = allSysAttr.get(abName_.toLowerCase()); + } + att.name = pName + abName_ ; + AttributeDefDTO attrDto = new AttributeDefDTO(); + attrDto.setDescription(att.description); + attrDto.setLabel(att.label); + attrDto.setOid(att.oid); + attrDto.setLayersNum(attributeDefByName.getLayersNum() + 1); + attrDto.setCreator(att.creator); + attrDto.setName(att.name); + attrDto.setDefValue(att.defValue); + attrDto.setRage(att.rage); + attrDto.setVtDataType(att.vtDataType); + attrDto.setOther(att.other); + attributeDefByName.getAttrs().add(attrDto); + addNode(attrDto, allSysAttr); + } + //绯荤粺灞炴�D,NAME,DESCRIPTION + for (int i = 0; i < SystemAttribute.bosysAttList().size(); i++) { + AttributeDef attributeDef = allSysAttr.get(SystemAttribute.bosysAttList().get(i).toLowerCase()); + AttributeDefDTO attrDto = new AttributeDefDTO(); + attrDto.setDescription(attributeDef.description); + attrDto.setLabel(attributeDef.label); + attrDto.setOid(attributeDef.oid); + attrDto.setLayersNum(attributeDefByName.getLayersNum() + 1); + attrDto.setCreator(attributeDef.creator); + attrDto.setName(pName + SystemAttribute.bosysAttList().get(i)); + attrDto.setDefValue(attributeDef.defValue); + attrDto.setRage(attributeDef.rage); + attrDto.setVtDataType(attributeDef.vtDataType); + attrDto.setOther(attributeDef.other); + attributeDefByName.getAttrs().add(attrDto); + addNode(attrDto, allSysAttr); + } + //鍙傜収閾炬帴绫诲瀷 + }else if(refFlag == 1){ + //pName: 涓哄弬鐓у睘鎬у悕鍔犱笂璺緞 + String pName = attributeDefByName.name + "."; + LinkType link = null; + try { + link = platformClientUtil.getLinkTypeService().getLinkType(refTypeName); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Throwable e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + if(link != null){ + String[] abNames = link.attributes; + for(int i = 0; i < abNames.length; i++){ + String abName_ = abNames[i]; + AttributeDef att = platformClientUtil.getAttributeService().getAttributeDefByName(abName_); + if(att == null || att.oid.equals("")){ + att = allSysAttr.get(abName_.toLowerCase()); + } + AttributeDefDTO attrDto = new AttributeDefDTO(); + attrDto.setDescription(att.description); + attrDto.setLabel(att.label); + attrDto.setOid(att.oid); + attrDto.setLayersNum(attributeDefByName.getLayersNum() + 1); + attrDto.setCreator(att.creator); + attrDto.setName(pName + abName_); + attrDto.setDefValue(att.defValue); + attrDto.setRage(att.rage); + attrDto.setVtDataType(att.vtDataType); + attrDto.setOther(att.other); + attributeDefByName.getAttrs().add(attrDto); + addNode(attrDto, allSysAttr); + } + //绯荤粺灞炴�D,NAME,DESCRIPTION + for (int i = 0; i < SystemAttribute.losysAttList().size(); i++) { + AttributeDef sysAttributeDefs = allSysAttr.get(SystemAttribute.losysAttList().get(i).toLowerCase()); + AttributeDefDTO attrDto = new AttributeDefDTO(); + attrDto.setDescription(sysAttributeDefs.description); + attrDto.setLabel(sysAttributeDefs.label); + attrDto.setOid(sysAttributeDefs.oid); + attrDto.setLayersNum(attributeDefByName.getLayersNum() + 1); + attrDto.setCreator(sysAttributeDefs.creator); + attrDto.setName(pName + SystemAttribute.losysAttList().get(i)); + attrDto.setDefValue(sysAttributeDefs.defValue); + attrDto.setRage(sysAttributeDefs.rage); + attrDto.setVtDataType(sysAttributeDefs.vtDataType); + attrDto.setOther(sysAttributeDefs.other); + attributeDefByName.getAttrs().add(attrDto); + addNode(attrDto, allSysAttr); + } + } + } + } + } catch (PLException e) { + e.printStackTrace(); + } + } // 鏁版嵁杩囨护 private void addImportBtmData(BtmQTExportData qtExportData, List<BizType> ltsNew, List<QTInfo> qTWrapperNew, Map<String/* 绫诲瀷鍚嶇О */, QTD[]/* 鏌ヨ妯℃澘瀹氫箟 */> norepQTDs) { diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java new file mode 100644 index 0000000..98d2f58 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java @@ -0,0 +1,591 @@ +package com.vci.web.service.impl; + +import com.sun.jnlp.ApiDialog; +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.*; +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; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * UI瀹氫箟鏈嶅姟鐣岄潰鐩稿叧鎺ュ彛 + * @author ludc + * @date 2024/8/28 17:05 + */ +@Service +public class UIManagerServiceImpl implements UIManagerServiceI { + + /** + * 骞冲彴鐨勮皟鐢ㄥ伐鍏风被 + */ + @Resource + private PlatformClientUtil platformClientUtil; + /** + * 瑙掕壊 + */ + @Resource + private SmRoleQueryServiceI smRoleQueryServiceI; + + /** + * 涓氬姟绫诲瀷 + */ + @Resource + private OsBtmServiceI osBtmServiceI; + + /** + * 鏃ュ織 + */ + private Logger logger = LoggerFactory.getLogger(getClass()); + + /** + * 鎺掑簭姣旇緝鍣� + */ + private Comparator<PLUILayout> pageLayoutComparator = new Comparator<PLUILayout>() { + @Override + public int compare(PLUILayout o1, PLUILayout o2) { + return o1.plCode.compareTo(o2.plCode); + } + }; + + /** + * 鏍规嵁涓氬姟绫诲瀷鍚嶆煡璇i涓婁笅鏂囨暟鎹� + * @param baseQueryObject + * @return + * @throws PLException + */ + @Override + public DataGrid gridUIContextData(BaseQueryObject baseQueryObject) throws PLException { + VciBaseUtil.alertNotNull(baseQueryObject,"鏉′欢瀵硅薄"); + int page = baseQueryObject.getPage(); + int limit = baseQueryObject.getLimit(); + Map<String, String> conditionMap = baseQueryObject.getConditionMap(); + String btmName = conditionMap.getOrDefault("btmName",""); + if(Func.isEmpty(conditionMap) || Func.isBlank(btmName)){ + throw new PLException("500",new String[]{"鏈幏鍙栧埌涓氬姟绫诲瀷鍚嶇О锛�"}); + } + String txtName = conditionMap.getOrDefault("txtName","").trim(); + String txtCode = conditionMap.getOrDefault("txtCode","").trim(); + PortalService.GetPLUILayoutsByRelatedTypeAndQueryInfoResult result = platformClientUtil.getUIService() + .getPLUILayoutsByRelatedTypeAndQueryInfo(btmName, txtName, txtCode, page, limit); + DataGrid<PLUILayout> dataGrid = new DataGrid<>(); + int total = (int)result.total; + dataGrid.setTotal(total); + dataGrid.setLimit(limit); + dataGrid.setPage(page); + PLUILayout[] res = result.returnValue; + Arrays.sort(res,pageLayoutComparator); + 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; + } + + /** + * 缁欎笟鍔$被鍨嬩笅娣诲姞ui涓婁笅鏂� + * @param pluiLayout + * @return + * @throws PLException + */ + @Override + public boolean saveUIContextData(PLUILayout pluiLayout) throws VciBaseException { + try { + //ui涓婁笅鏂囧璞℃牎楠� + canContinue(pluiLayout); + + String code = pluiLayout.plCode; + String name = pluiLayout.plName; + boolean isExist = nameOrCodeIsExist(pluiLayout, false); + //鏄惁瀛樺湪鏍¢獙 + if (isExist){ + throw new VciBaseException("涓婁笅鏂囩紪鐮佹垨鍚嶇О宸茬粡瀛樺湪锛岃妫�鏌ワ紒"); + } + + PLUILayout pld = new PLUILayout(); + pld.plOId = ObjectUtility.getNewObjectID36(); + pld.plCode = code; + pld.plName = name; + pld.plRelatedType = pluiLayout.plRelatedType; + pld.plDesc = pluiLayout.plDesc; + SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread(); + pld.plCreateUser = sessionInfo.getUserId(); + pld.plModifyUser = sessionInfo.getUserId(); + //瀵艰埅鍖� + pld.plIsShowForm = pluiLayout.plIsShowForm; + //鎺у埗鍖� + pld.plIsShowNavigator = pluiLayout.plIsShowNavigator; + //鎿嶄綔鍖� + pld.plIsShowTab = pluiLayout.plIsShowTab; + //鎵ц淇濆瓨 + return platformClientUtil.getUIService().savePLUILayout(pld); + } catch (PLException e) { + e.printStackTrace(); + String exceptionMessage = VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + throw new VciBaseException(exceptionMessage); + } + } + + /** + * 淇敼ui涓婁笅鏂� + * @param pluiLayout + * @return + * @throws PLException + */ + @Override + public boolean updateUIContextData(PLUILayout pluiLayout) throws VciBaseException { + this.canContinue(pluiLayout); + try { + String code = pluiLayout.plCode; + String name = pluiLayout.plName; + boolean isExist = nameOrCodeIsExist(pluiLayout, true); + if (isExist){ + throw new VciBaseException("涓婁笅鏂囩紪鐮佹垨鍚嶇О宸茬粡瀛樺湪锛岃妫�鏌ワ紒"); + } + + PLUILayout pld = new PLUILayout(); + pld.plOId = pluiLayout.plOId; + pld.plCode = code; + pld.plName = name; + pld.plRelatedType = pluiLayout.plRelatedType; + pld.plDesc = pluiLayout.plDesc; + pld.plCreateUser = pluiLayout.plCreateUser; + pld.plModifyUser = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); + + //瀵艰埅鍖� + pld.plIsShowForm = pluiLayout.plIsShowForm; + //鎺у埗鍖� + pld.plIsShowNavigator = pluiLayout.plIsShowNavigator; + //鎿嶄綔鍖� + pld.plIsShowTab = pluiLayout.plIsShowTab; + //鎵ц淇敼 + return platformClientUtil.getUIService().updatePLUILayout(pld); + } catch (PLException e) { + e.printStackTrace(); + String exceptionMessage = VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + throw new VciBaseException(exceptionMessage); + } + } + + /** + * 鏍规嵁涓婚敭鍜屼笟鍔$被鍨媜id鍒犻櫎ui涓婁笅鏂囨暟鎹� + * @return + */ + @Override + public boolean delUIContextData(String[] oids) throws PLException { + VciBaseUtil.alertNotNull(oids,"寰呭垹闄ょ殑瀵硅薄鍒楄〃"); + //鍒犻櫎鏂规硶涓湁鍏宠仈鏁版嵁鍒犻櫎鐨勬搷浣滈�昏緫 + return platformClientUtil.getUIService().deletePLUILayoutByOidsForCascade(oids); + } + + /** + * 鍏嬮殕ui涓婁笅鏂囷紙鍏峰鍏宠仈鏁版嵁鐨勫厠闅嗭級 + * @param pluiLayoutCloneVO + * @return + */ + @Override + public boolean cloneUiContextData(PLUILayoutCloneVO pluiLayoutCloneVO) throws PLException { + VciBaseUtil.alertNotNull( + pluiLayoutCloneVO,"鍏嬮殕鍙傛暟瀵硅薄", + pluiLayoutCloneVO.getSourcePLUILayout(),"鍏嬮殕鐨勬簮瀵硅薄淇℃伅", + pluiLayoutCloneVO.getCloneName(),"鍏嬮殕鐨勫璞″悕绉�", + pluiLayoutCloneVO.getCloneContextCode(),"鍏嬮殕鐨勫璞′笂涓嬫枃缂栫爜" + ); + PLUILayout pluiLayout = new PLUILayout(); + PLUILayout sourcePLUILayout = pluiLayoutCloneVO.getSourcePLUILayout(); + //濡傛灉閫夋嫨鍏嬮殕鐩爣锛屽垯鍏嬮殕鍒伴�夋嫨鐨勭被鍨嬩笅锛屽鏋滄病鏈夐�夋嫨鍏嬮殕鐩爣锛屽垯鍏嬮殕鍒板綋鍓嶇被鍨嬩笅 + if(Func.isBlank(pluiLayoutCloneVO.getCloneTargetOid())){ + pluiLayout.plRelatedType = sourcePLUILayout.plRelatedType; + } + //鍏嬮殕鐨勫悕绉板拰ui涓婁笅鏂囩紪鍙锋煡閲� + String cloneName = pluiLayoutCloneVO.getCloneName(); + String cloneContextCode = pluiLayoutCloneVO.getCloneContextCode(); + pluiLayout.plOId = ObjectUtility.getNewObjectID36(); + pluiLayout.plName = cloneName; + pluiLayout.plCode = cloneContextCode; + pluiLayout.plIsShowTab = sourcePLUILayout.plIsShowTab; + pluiLayout.plIsShowNavigator = sourcePLUILayout.plIsShowNavigator; + pluiLayout.plIsShowForm = sourcePLUILayout.plIsShowForm; + pluiLayout.plDesc = sourcePLUILayout.plDesc; + SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread(); + pluiLayout.plCreateUser = sessionInfo.getUserId(); + pluiLayout.plModifyUser = sessionInfo.getUserId(); + //鍏嬮殕鐩爣涓媢i鍚嶇О鍜岀紪鍙锋煡閲� + this.checkCodeName(pluiLayout); + //1銆佸厛淇濆瓨ui涓婁笅鏂� + boolean res = platformClientUtil.getUIService().savePLUILayout(pluiLayout); + //2銆佸啀鑰冭檻瀛愯妭鐐圭殑鍏嬮殕 + PLTabPage[] pages = platformClientUtil.getUIService().getPLTabPagesByPageDefinationOId(sourcePLUILayout.plOId); //鎺у埗鍖鸿妭鐐瑰強鍏跺瓙鑺傜偣鐨勫厠闅� + if(pages == null){ + return true; + } + try { + for (PLTabPage page : pages) { + savePlpageLayoutDefinationRelation(page,pluiLayout.plOId); + } + return true; + }catch (Exception e){ + e.printStackTrace(); + String exceptionMessage = VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + throw new VciBaseException(exceptionMessage); + } + } + + @Override + public void expUiContextData(String[] oids, HttpServletResponse response) throws PLException, IOException { + + } + + /** + * 鑾峰彇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 + */ + private void savePlpageLayoutDefinationRelation(Object obj,String plUILayoutId) { + PLTabPage tabPage = (PLTabPage)obj; + try { + + PLPageDefination[] pLPageDefinations = platformClientUtil.getUIService().getPLPageDefinationsByPageContextOId(tabPage.plOId); + + tabPage.plOId = ObjectUtility.getNewObjectID36(); + tabPage.plContextOId = plUILayoutId; + //add by caill start 2016.8.15 瀵艰埅鍖恒�佹帶鍒跺尯銆佹搷浣滃尯鍦ㄦ病鏈夊瓙鑺傜偣鐨勬儏鍐典笅鐨勫厠闅� + if(pLPageDefinations.length==0){ + platformClientUtil.getUIService().savePLTabPage(tabPage); + } + //add by caill end + for(int j=0;j<pLPageDefinations.length;j++){ + PLPageDefination plPageDef = pLPageDefinations[j]; + + platformClientUtil.getUIService().savePLTabPage(tabPage); + PLTabButton[] pLTabButtons = platformClientUtil.getUIService().getPLTabButtonsByTableOId(plPageDef.plOId); + + plPageDef.plOId = ObjectUtility.getNewObjectID36(); + plPageDef.plTabPageOId = tabPage.plOId; + platformClientUtil.getUIService().savePLPageDefination(plPageDef); + + for(int b=0;b<pLTabButtons.length;b++){ + PLTabButton plTabButton = pLTabButtons[b]; + PLCommandParameter[] pLCommandParameters = platformClientUtil.getUIService().getPLCommandParametersByCommandOId(plTabButton.plOId); + + plTabButton.plOId = ObjectUtility.getNewObjectID36(); + plTabButton.plTableOId = plPageDef.plOId; + platformClientUtil.getUIService().savePLTabButton(plTabButton); + + for(int c=0;c<pLCommandParameters.length;c++){ + final PLCommandParameter plCommandParameter = pLCommandParameters[c]; + plCommandParameter.plOId = ObjectUtility.getNewObjectID36(); + plCommandParameter.plCommandOId = plTabButton.plOId; + platformClientUtil.getUIService().savePLCommandParameter(plCommandParameter); + } + } + } + } catch (PLException e) { + e.printStackTrace(); + } + } + + /** + * 鏈仛鍒ょ┖澶勭悊锛岃皟鐢ㄥ墠璇蜂繚璇乷bj涓嶄负绌� + * @param obj + * @throws PLException + */ + public void checkCodeName(PLUILayout obj) throws PLException { + PLUILayout[] plUILayouts = platformClientUtil.getUIService().getPLUILayoutsByRelatedType(obj.plRelatedType); + int length = plUILayouts.length; + String code = obj.plCode; + String name = obj.plName; + + if (Func.isNotBlank(name) || Func.isNotBlank(code)){ + for (int i =0;i<length;i++){//寰幆鑺傜偣鐨刄I涓婃枃鍜屽悕绉� + if (plUILayouts[i].plCode.equalsIgnoreCase(code) || plUILayouts[i].plName.equals(name)){ + throw new VciBaseException("涓氬姟绫诲瀷涓婾I鍚嶇О鎴朥I涓婁笅鏂囩紪鐮佸凡瀛樺湪锛�"); + } + } + } + } + + /** + * ui涓婁笅鏂囨柊澧炰慨鏀瑰墠妫�鏌� + * @param pluiLayout + */ + private void canContinue(PLUILayout pluiLayout){ + String code = pluiLayout.plCode; + String name = pluiLayout.plName; + if(Func.isBlank(code)){ + throw new VciBaseException("涓婁笅鏂囩紪鐮佷笉鑳戒负绌猴紒"); + } + if(Func.isBlank(name)){ + throw new VciBaseException("鍚嶇О涓嶈兘涓虹┖锛�"); + } + if((pluiLayout.plIsShowNavigator == 0) && (pluiLayout.plIsShowForm == 0) && (pluiLayout.plIsShowTab == 0)){ + throw new VciBaseException("涓婁笅鏂囪嚦灏戣鍖呭惈涓�涓尯鍩燂紒"); + } + } + + /** + * 妫�鏌ュ悕绉版垨鑰呯紪鐮佹槸鍚﹀凡瀛樺湪 + * @param pluiLayout + * @param isEdit + * @return + * @throws VciBaseException + */ + private boolean nameOrCodeIsExist(PLUILayout pluiLayout, boolean isEdit) throws PLException { + boolean res = false; + //鏌ヨ鍚屼竴涓氬姟绫诲瀷涓嬬殑ui涓婁笅鏂囷紝鐒跺悗鏌ラ噸 + PLUILayout[] plpagelayoutdefinations = platformClientUtil.getUIService().getPLUILayoutsByRelatedType(pluiLayout.plRelatedType); + int length = plpagelayoutdefinations.length; + for (int i =0;i<length;i++){ + String code = plpagelayoutdefinations[i].plCode; + String name = plpagelayoutdefinations[i].plName; + String ids = plpagelayoutdefinations[i].plOId; + if(isEdit){ + if(!ids.equals(pluiLayout.plOId)){ + if (pluiLayout.plCode.equalsIgnoreCase(code) || pluiLayout.plName.equals(name)){ + res = true; + break; + } + } + } + else { + if (code.equalsIgnoreCase(code) || name.equals(name)){ + res = true; + break; + } + } + } + return res; + } + +} -- Gitblit v1.9.3