From e937d0111a52e2c13c50bbc3386d20a12d125899 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期五, 06 九月 2024 10:54:54 +0800
Subject: [PATCH] 链接类型查询模板
---
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java | 236 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 229 insertions(+), 7 deletions(-)
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
index 9a1b63a..98d2f58 100644
--- 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
@@ -4,19 +4,27 @@
import com.vci.client.mw.ClientContextVariable;
import com.vci.common.utility.ObjectUtility;
import com.vci.corba.common.PLException;
+import com.vci.corba.framework.data.RoleRightInfo;
+import com.vci.corba.omd.btm.BizType;
import com.vci.corba.portal.PortalService;
import com.vci.corba.portal.data.*;
+import com.vci.frameworkcore.compatibility.SmRoleQueryServiceI;
+import com.vci.pagemodel.OsBtmTypeVO;
import com.vci.pagemodel.PLUILayoutCloneVO;
+import com.vci.pagemodel.RoleRightVO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseQueryObject;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.SessionInfo;
+import com.vci.starter.web.pagemodel.Tree;
import com.vci.starter.web.util.VciBaseUtil;
+import com.vci.starter.web.util.VciDateUtil;
import com.vci.starter.web.util.WebThreadLocalUtil;
+import com.vci.web.service.OsBtmServiceI;
import com.vci.web.service.UIManagerServiceI;
-import com.vci.web.util.Func;
-import com.vci.web.util.PlatformClientUtil;
-import com.vci.web.util.UITools;
+import com.vci.web.util.*;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.formula.functions.T;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
@@ -24,10 +32,9 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
/**
* UI瀹氫箟鏈嶅姟鐣岄潰鐩稿叧鎺ュ彛
@@ -42,6 +49,18 @@
*/
@Resource
private PlatformClientUtil platformClientUtil;
+ /**
+ * 瑙掕壊
+ */
+ @Resource
+ private SmRoleQueryServiceI smRoleQueryServiceI;
+
+ /**
+ * 涓氬姟绫诲瀷
+ */
+ @Resource
+ private OsBtmServiceI osBtmServiceI;
+
/**
* 鏃ュ織
*/
@@ -87,6 +106,22 @@
List<PLUILayout> pluiLayouts = Arrays.asList(res);
dataGrid.setData(pluiLayouts);
return dataGrid;
+ }
+
+ /**
+ * ton閫氳繃涓氬姟绫诲瀷鍜屽悕绉版煡璇�
+ * @param btemName
+ * @param code
+ * @return
+ * @throws PLException
+ */
+ public List<PLUILayout> getUIContextDataByBtName(String btemName,String code) throws PLException {
+ List<PLUILayout> pluiLayoutList=new ArrayList<>();
+ PLUILayout[] pluiLayouts= platformClientUtil.getUIService().getPLUILayoutEntityByTypeAndCode(btemName,code);
+ if(pluiLayouts!=null&&pluiLayouts.length>0){
+ pluiLayoutList= Stream.of(pluiLayouts).collect(Collectors.toList());
+ }
+ return pluiLayoutList;
}
/**
@@ -247,6 +282,193 @@
}
/**
+ * 鑾峰彇UI鎺堟潈鏍�
+ * @param treeQueryObject
+ * @return
+ * @throws Exception
+ */
+ @Override
+ public List<Tree> getUIAuthor(BaseQueryObject treeQueryObject) throws Exception {
+
+ Map<String, String> conditionMap = treeQueryObject.getConditionMap();
+ if (conditionMap == null) {
+ conditionMap = new HashMap<>();
+ }
+ String roleId = StringUtils.isBlank(conditionMap.get("roleId")) ? "" : conditionMap.get("roleId");
+ String type = StringUtils.isBlank(conditionMap.get("type")) ? "" : conditionMap.get("type");
+ String context = StringUtils.isBlank(conditionMap.get("context")) ? "" : conditionMap.get("context");
+ boolean showCheckBox = Boolean.parseBoolean(conditionMap.get("showCheckBox"));
+ Map<String,RoleRightVO> roleRightVOMap=new HashMap<>();
+ if(StringUtils.isNotBlank(roleId)){
+ String userName= WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
+ RoleRightInfo[] rightInfos= platformClientUtil.getFrameworkService().getRoleRightList(roleId,userName);
+ List<RoleRightVO> roleRightVOList=roleRightDOO2VOS(Arrays.asList(rightInfos));
+ roleRightVOMap=roleRightVOList.stream().collect(Collectors.toMap(RoleRightVO::getFuncId,roleRightVO ->roleRightVO));
+ }
+ BizType[] bizTypes=osBtmServiceI.getBizTypes(type);
+ List<Tree> treeList=new ArrayList<>();
+ Tree rootNode =new Tree("root","鍔熻兘妯″潡","root");
+ rootNode.setLevel(0);
+ rootNode.setShowCheckbox(true);
+ rootNode.setExpanded(true);
+ List<Tree> childList=new ArrayList<>();
+ for (int i = 0; i < bizTypes.length; i++) {
+ Tree bizTypeTree = new Tree(bizTypes[i].oid,bizTypes[i].name,bizTypes[i]);//(btmItems[i].label+" ["+ btmItems[i].name+"]", btmItems[i]);
+ bizTypeTree.setLevel(1);
+ bizTypeTree.setShowCheckbox(true);
+ bizTypeTree.setParentId(rootNode.getOid());
+ bizTypeTree.setParentName(rootNode.getText());
+ bizTypeTree.setShowCheckbox(true);
+ childList.add(bizTypeTree);
+ List<PLUILayout>contextList=getUIContextDataByBtName(bizTypes[i].name,context);
+ List<Tree> btmChildList=new ArrayList<>();
+ btmChildList.add(bizTypeTree);
+ setChildNode(btmChildList,contextList,roleRightVOMap,showCheckBox);
+ }
+ rootNode.setChildren(childList);
+ treeList.add(rootNode);
+ return treeList;
+ }
+
+ private void setChildNode(List<Tree> parentTree, List<PLUILayout>contextList,Map<String,RoleRightVO> roleRightVOMap,boolean isShowCheckBox){
+ Optional.ofNullable(parentTree).orElseGet(()->new ArrayList<Tree>()).stream().forEach(pTree -> {
+ Object funcObj= pTree.getData();
+ List<Tree> chiledTreeList=new ArrayList<>();
+ if (funcObj instanceof BizType) {//涓氬姟绫诲瀷
+ BizType bizType = (BizType) funcObj;
+ if(!CollectionUtil.isEmpty(contextList)) {
+ contextList.stream().forEach(context->{
+ Tree childTree=new Tree(context.plOId,context.plName+"("+context.plCode+")",context);
+ childTree.setParentName(pTree.getText());
+ childTree.setParentId(pTree.getOid());
+ childTree.setLevel(pTree.getLevel()+1);
+ childTree.setShowCheckbox(isShowCheckBox);
+ chiledTreeList.add(childTree);
+ });
+ pTree.setChildren(chiledTreeList);
+ }
+ if(!CollectionUtil.isEmpty(chiledTreeList)) {
+ setChildNode(chiledTreeList, contextList, roleRightVOMap, isShowCheckBox);
+ }
+ }else if (funcObj instanceof PLUILayout){//UI
+ PLUILayout context = (PLUILayout) funcObj;
+ PLTabPage[] pages = new PLTabPage[0];
+ try {
+ pages = platformClientUtil.getUIService().getPLTabPagesByPageDefinationOId(context.plOId);
+ } catch (PLException e) {
+ e.printStackTrace();
+ }
+ if(pages!=null&&pages.length>0){
+ List<PLTabPage> plTabPageList= Arrays.stream(pages).collect(Collectors.toList());
+ plTabPageList.stream().forEach(plTabPage -> {
+ Tree childTree=new Tree(plTabPage.plOId,plTabPage.plName,plTabPage);
+ childTree.setParentName(pTree.getText());
+ childTree.setParentId(pTree.getOid());
+ childTree.setLevel(pTree.getLevel()+1);
+ childTree.setShowCheckbox(isShowCheckBox);
+ chiledTreeList.add(childTree);
+ });
+ pTree.setChildren(chiledTreeList);
+ }
+ if(!CollectionUtil.isEmpty(chiledTreeList)) {
+ setChildNode(chiledTreeList, contextList, roleRightVOMap, isShowCheckBox);
+ }
+
+ }else if (funcObj instanceof PLTabPage) {//涓婁笅鏂�
+ PLTabPage plTabPage = (PLTabPage) funcObj;
+ List<PLPageDefination>plPageDefinationList=new ArrayList<>();
+ try {
+ PLPageDefination[] pLPageDefinations = platformClientUtil.getUIService().getPLPageDefinationsByPageContextOId(plTabPage.plOId);
+ if(pLPageDefinations!=null&&pLPageDefinations.length>0){
+ plPageDefinationList= Arrays.stream(pLPageDefinations).collect(Collectors.toList());
+ plPageDefinationList.stream().forEach(plPageDefination -> {
+ Tree childTree=new Tree(plPageDefination.plOId,plPageDefination.name,plPageDefination);
+ childTree.setParentName(pTree.getText());
+ childTree.setParentId(pTree.getOid());
+ childTree.setLevel(pTree.getLevel()+1);
+ childTree.setShowCheckbox(isShowCheckBox);
+ chiledTreeList.add(childTree);
+ });
+ pTree.setChildren(chiledTreeList);
+ }
+ if(!CollectionUtil.isEmpty(chiledTreeList)) {
+ setChildNode(chiledTreeList, contextList, roleRightVOMap, isShowCheckBox);
+ }
+ } catch (PLException e) {
+ e.printStackTrace();
+ }
+
+ }else if (funcObj instanceof PLPageDefination) {//
+ PLPageDefination plPageDefination = (PLPageDefination) funcObj;
+ try {
+ List<PLTabButton>plTabButtonList=new ArrayList<>();
+ PLTabButton[] pLTabButtons = platformClientUtil.getUIService().getPLTabButtonsByTableOId(plPageDefination.plOId);
+ if(pLTabButtons!=null&&pLTabButtons.length>0){
+ plTabButtonList= Arrays.stream(pLTabButtons).collect(Collectors.toList());
+ plTabButtonList.stream().forEach(plTabButton -> {
+ Tree childTree=new Tree(plTabButton.plOId,plTabButton.plLabel,plTabButton);
+ childTree.setParentName(pTree.getText());
+ childTree.setParentId(pTree.getOid());
+ childTree.setLevel(pTree.getLevel()+1);
+ childTree.setShowCheckbox(isShowCheckBox);
+ childTree.setLeaf(true);
+ chiledTreeList.add(childTree);
+ });
+ pTree.setChildren(chiledTreeList);
+ }
+ if(!CollectionUtil.isEmpty(chiledTreeList)) {
+ setChildNode(chiledTreeList, contextList, roleRightVOMap, isShowCheckBox);
+ }
+ } catch (PLException e) {
+ e.printStackTrace();
+ }
+
+ }else if (funcObj instanceof PLTabButton) {//鎸夐挳
+ String id = ((PLTabButton) funcObj).plTableOId;
+ if(roleRightVOMap.containsKey(id)){
+ pTree.setChecked(true);
+ }else{
+ pTree.setChecked(false);
+ }
+ }
+ });
+ }
+ /**
+ * UI瑙掕壊瀵硅薄杞崲
+ * @param infos
+ * @return
+ */
+ private List<RoleRightVO> roleRightDOO2VOS(List<RoleRightInfo> infos){
+ List<RoleRightVO> roleRightVOS=new ArrayList<>();
+ Optional.ofNullable(infos).orElseGet(()->new ArrayList<>()).stream().forEach(info -> {
+ RoleRightVO vo=roleRightDOO2VO(info);
+ roleRightVOS.add(vo);
+ });
+
+ return roleRightVOS;
+ }
+
+ /**
+ * UI瑙掕壊瀵硅薄杞崲
+ * @param info
+ * @return
+ */
+ private RoleRightVO roleRightDOO2VO(RoleRightInfo info){
+ RoleRightVO vo=new RoleRightVO();
+ vo.setId(info.id);
+ vo.setCreateTime(VciDateUtil.date2Str(VciDateUtil.long2Date(info.createTime),""));
+ vo.setCreateUser(info.createUser);
+ vo.setRoleId(info.roleId);
+ vo.setRightType(info.rightType);
+ vo.setLicensor(info.licensor);
+ vo.setRightValue(info.rightValue);
+ vo.setFuncId(info.funcId);
+ vo.setModifyTime(VciDateUtil.date2Str(VciDateUtil.long2Date(info.modifyTime),""));
+ vo.setModifyUser(info.modifyUser);
+ return vo;
+ }
+
+ /**
* 鎺у埗鍖鸿妭鐐瑰強鍏跺瓙鑺傜偣鐨勫厠闅�
* @param obj
*/
--
Gitblit v1.9.3