From 370b26066c560f15f6a84caca2be149e48e86556 Mon Sep 17 00:00:00 2001
From: 田源 <tianyuan@vci-tech.com>
Date: 星期二, 07 一月 2025 15:52:05 +0800
Subject: [PATCH] 系统菜单 默认显示&&系统配置、对象建模按钮权限以及按钮图标
---
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java | 109 +++++++++++++++++++++++-------------------------------
1 files changed, 47 insertions(+), 62 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 093939e..9991f8b 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
@@ -1,7 +1,5 @@
package com.vci.web.service.impl;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
import com.vci.common.utility.ObjectUtility;
import com.vci.corba.common.PLException;
import com.vci.corba.common.data.UserEntityInfo;
@@ -19,39 +17,35 @@
import com.vci.starter.poi.util.ExcelUtil;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
-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.SessionInfo;
-import com.vci.starter.web.util.*;
import com.vci.starter.web.redis.RedisService;
+import com.vci.starter.web.util.*;
+import com.vci.starter.web.util.Lcm.BeanUtil;
+import com.vci.starter.web.util.Lcm.CollectionUtil;
+import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.service.OsBtmServiceI;
import com.vci.web.service.UIManagerServiceI;
-import com.vci.web.util.*;
-import com.vci.web.util.BeanUtil;
-import com.vci.web.utility.UIDataFetcher;
-import org.apache.commons.lang3.StringUtils;
-import com.vci.web.util.Func;
import com.vci.web.util.PlatformClientUtil;
+import com.vci.web.util.RightControlUtil;
import com.vci.web.util.UITools;
+import com.vci.web.utility.UIDataFetcher;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+
import javax.annotation.Resource;
-import javax.swing.tree.TreePath;
import java.io.File;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
-import java.util.stream.Collectors;
import java.util.regex.Pattern;
-import java.util.stream.Stream;
+import java.util.stream.Collectors;
/**
- * UI瀹氫箟鏈嶅姟鐣岄潰鐩稿叧鎺ュ彛
+ * UI瀹氫箟绠$悊鏈嶅姟鐣岄潰鐩稿叧鎺ュ彛
* @author ludc
* @date 2024/8/28 17:05
*/
@@ -849,15 +843,17 @@
}
/**
- * 鏍规嵁涓婁笅鏂嘔D鍜屽尯鍩熺被鍨嬶紝鎸夐『搴忚幏鍙栧綋鍓嶅尯鍩熺殑tab椤�
+ * 鏍规嵁涓婁笅鏂嘔D鍜屽尯鍩燂紙椤电锛夌被鍨嬶紝鎸夐『搴忚幏鍙栧綋鍓嶅尯鍩熺殑tab椤�
*/
@Override
public DataGrid getTabByContextIdAndType(String contextId, int areaType) throws PLException {
VciBaseUtil.alertNotNull(contextId,"涓婁笅鏂囦富閿�",areaType,"鍖哄煙绫诲瀷");
PLTabPage[] plTabPages = platformClientUtil.getUIService().getTabPagesByContextIdAndType(contextId, (short) areaType);
+ List<PLTabPage> tabPageList = Arrays.stream(plTabPages).sorted(((o1, o2) -> Math.toIntExact(o1.plSeq - o2.plSeq)))
+ .collect(Collectors.toList());
DataGrid dataGrid = new DataGrid();
dataGrid.setTotal(plTabPages.length);
- dataGrid.setData(Arrays.asList(plTabPages));
+ dataGrid.setData(tabPageList);
return dataGrid;
}
@@ -880,7 +876,7 @@
}
/**
- * 淇敼鍖哄煙鏁版嵁
+ * 淇敼鍖哄煙锛堥〉绛撅級鏁版嵁
* @param plTabPage
* @return
*/
@@ -897,7 +893,7 @@
}
/**
- * 鍒犻櫎鍖哄煙鏁版嵁
+ * 鍒犻櫎鍖哄煙锛堥〉绛撅級鏁版嵁
* @param oids
* @return
*/
@@ -1077,6 +1073,7 @@
break;
}
+ d.setNavigatorType(pdVO.getNavigatorType());
d = setEventDataToPLDefination(d,pdVO);
//杞瑇ml璧嬪�煎埌plDefination涓�
pd.plDefination = UITools.getPLDefinationText(d);
@@ -1193,7 +1190,7 @@
d = ulci.getNewPLDefination(d);
break;
}
-
+ d.setNavigatorType(pdVO.getNavigatorType());
d = setEventDataToPLDefination(d,pdVO);
pd.plDefination = UITools.getPLDefinationText(d);
@@ -1368,7 +1365,7 @@
*/
@Override
public BaseResult addTabButton(PLTabButtonVO tabButtonVO) {
- boolean res = this.saveOrUpdateTapButton(tabButtonVO, true);
+ boolean res = this.saveOrUpdateTabButton(tabButtonVO, true);
return res ? BaseResult.success("鎸夐挳閰嶇疆娣诲姞鎴愬姛锛�"):BaseResult.success("鎸夐挳閰嶇疆娣诲姞澶辫触锛�");
}
@@ -1379,7 +1376,7 @@
*/
@Override
public BaseResult updateTabButton(PLTabButtonVO tabButtonVO) {
- boolean res = this.saveOrUpdateTapButton(tabButtonVO, false);
+ boolean res = this.saveOrUpdateTabButton(tabButtonVO, false);
return res ? BaseResult.success("鎸夐挳閰嶇疆淇敼鎴愬姛锛�"):BaseResult.success("鎸夐挳閰嶇疆淇敼澶辫触锛�");
}
@@ -1389,11 +1386,10 @@
* @return
*/
@Override
- public boolean saveOrUpdateTapButton(PLTabButtonVO tabButtonVO,boolean isAdd){
- VciBaseUtil.alertNotNull(tabButtonVO,"鎸夐挳閰嶇疆瀵硅薄",tabButtonVO.getLabel(),"鍙傛暟鍚嶇О");
+ public boolean saveOrUpdateTabButton(PLTabButtonVO tabButtonVO,boolean isAdd){
+ VciBaseUtil.alertNotNull(tabButtonVO,"鎸夐挳閰嶇疆瀵硅薄",tabButtonVO.getLabel(),"鍙傛暟鍚嶇О",tabButtonVO.getTableOId(),"椤甸潰瀹氫箟涓婚敭");
//妫�鏌ュ綋鍓嶆坊鍔犵殑鍒楄〃鏄惁閲嶅锛屼絾鏄繖鍎垮彧鏀寔鍗曟潯鏁版嵁淇濆瓨锛屾墍鏈夊綋鍓嶅垪琛ㄥ垽閲嶅彲浠ュ墠绔潵鍋�
//String btnParamValidate = this.geCheckRes();
-
if (tabButtonVO.getSeq() < 1 || tabButtonVO.getSeq() > 63) {
throw new VciBaseException("鎸夊簭鍙疯秴鍑鸿寖鍥达紝璇蜂慨鏀癸紝鎸夐挳銆愮紪鍙枫�戝彧鑳藉湪銆�1-63銆戣寖鍥村唴銆�");
}
@@ -1469,7 +1465,7 @@
platformClientUtil.getUIService().savePLCommandParameter(plCommandParameter);
} catch (PLException e) {
e.printStackTrace();
- throw new VciBaseException("淇濆瓨鎸夐挳淇℃伅鏃跺彂鐢熷紓甯革細"+ e.getMessage());
+ throw new VciBaseException("淇濆瓨鎸夐挳鍙傛暟鏃跺彂鐢熷紓甯革細"+ e.getMessage());
}
}
}
@@ -1702,10 +1698,7 @@
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,(oldValue,newOldValue)->oldValue));
+ roleRightVOMap = this.getRoleRightMap(roleId);
}
BizType[] bizTypes = osBtmServiceI.getBizTypes(type);
List<Tree> treeList=new ArrayList<>();
@@ -1715,7 +1708,6 @@
rootNode.setExpanded(true);
List<Tree> childList=new ArrayList<>();
- //long startTime = System.currentTimeMillis();
uiDataFetcher = new UIDataFetcher();
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]);
@@ -1724,18 +1716,12 @@
bizTypeTree.setParentId(rootNode.getOid());
bizTypeTree.setParentName(rootNode.getText());
bizTypeTree.setParentBtmName(bizTypes[i].name);
- //long startTime1 = System.currentTimeMillis();
List<PLUILayout> contextList = uiDataFetcher.getContext(bizTypes[i].name/*+context*/);
- //long endTime1 = System.currentTimeMillis();
- //System.out.println("============================================鑾峰彇UI瀹氫箟鏁版嵁寮曟搸鑰楁椂锛�"+((endTime1-startTime1)/1000)+"s");
-
List<Tree> btmChildList = new ArrayList<>();
btmChildList.add(bizTypeTree);
setChildNode(btmChildList,contextList,roleRightVOMap,showCheckBox);
childList.add(bizTypeTree);
}
- //long endTime = System.currentTimeMillis();
- //System.out.println("============================================UI瀹氫箟鏍戣绠楀畬姣曡�楁椂锛�"+((endTime-startTime)/1000)+"s");
rootNode.setChildren(childList);
treeList.add(rootNode);
return treeList;
@@ -1743,21 +1729,25 @@
/**
* 鏍规嵁瑙掕壊涓婚敭鑾峰彇宸叉巿鏉冪殑淇℃伅
- * @param roleId
+ * @param roleId 濡傛灉roleId涓嶄紶锛屽氨浼氳幏鍙栧綋鍓嶇櫥褰曠殑鐢ㄦ埛鐨勫悕绉版煡璇㈡潈闄�
* @return
* @throws PLException
*/
- /* @Override
- public Map<String,RoleRightVO> getRightListByRoleId(String roleId) throws PLException {
- VciBaseUtil.alertNotNull(roleId,"鏌ヨ鏉′欢瑙掕壊涓婚敭");
- String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
- RoleRightInfo[] rightInfos= platformClientUtil.getFrameworkService().getRoleRightList(roleId,userName);
- List<RoleRightVO> roleRightVOList = roleRightDOO2VOS(Arrays.asList(rightInfos));
- Map<String,RoleRightVO> roleRightVOMap = roleRightVOList.stream().collect(Collectors.toMap(RoleRightVO::getFuncId,roleRightVO ->roleRightVO,(oldValue,newOldValue)->oldValue));
- return roleRightVOMap;
- }*/
+ @Override
+ public Map<String,RoleRightVO> getRoleRightMap(String roleId) throws PLException {
+ RoleRightInfo[] rightInfos = null;
+ String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
+ if(Func.isBlank(roleId)){
+ rightInfos = platformClientUtil.getFrameworkService().getRoleRightByUserName(userName);
+ }else{
+ rightInfos = platformClientUtil.getFrameworkService().getRoleRightList(roleId,userName);
+ }
+ List<RoleRightVO> roleRightVOList = roleRightDOO2VOS(Arrays.asList(rightInfos));
+ Map<String,RoleRightVO> roleRightVOMap = roleRightVOList.stream().collect(Collectors.toMap(RoleRightVO::getFuncId,roleRightVO ->roleRightVO,(oldValue,newOldValue)->oldValue));
+ return roleRightVOMap;
+ }
- /***
+ /**
* UI鎺堟潈
* @param uiAuthorDTO
* @return
@@ -1766,7 +1756,7 @@
@Override
public boolean authorizedUI(UIAuthorDTO uiAuthorDTO) throws Exception {
boolean res=false;
- if(uiAuthorDTO==null||CollectionUtil.isEmpty(uiAuthorDTO.getSelectTreeList())){
+ if(uiAuthorDTO==null|| CollectionUtil.isEmpty(uiAuthorDTO.getSelectTreeList())){
throw new VciBaseException("璇烽�夋嫨鑺傜偣杩涜鎺堟潈!");
}
BaseQueryObject treeQueryObject=new BaseQueryObject();
@@ -1792,13 +1782,9 @@
List<Tree> selectTreeList = uiAuthorDTO.getSelectTreeList();
List<Tree> filterSelectTreeList = this.authTreeListConvert(selectTreeList);
//杩囨护鍑洪�夋嫨鐨勬寜閽�
- List<String> checkButtonList = new ArrayList<>();
- selectTreeList.stream().forEach(item->{
- Object data = item.getData();
- if(data instanceof PLTabButton || item.isLeaf()){
- checkButtonList.add(item.getOid());
- }
- });
+ List<String> checkButtonList = selectTreeList.stream()
+ .filter(item -> item.getData() instanceof PLTabButton || item.isLeaf())
+ .map(item -> item.getOid()).collect(Collectors.toList());
getSelectedRoleRightObjs(uiAuthorDTO.getRoleId(),filterSelectTreeList,checkButtonList,allTreeMap,roleRightDTOList);
SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread();
@@ -2239,7 +2225,7 @@
String id = plTabButton.plTableOId;
if(roleRightVOMap.containsKey(id)){
RoleRightVO roleRightVO = roleRightVOMap.get(id);
- Long rightValue = roleRightVO.getRightValue();
+ Long rightValue = roleRightVO.getRightValue();
int nodeValue = plTabButton.plSeq;
if (nodeValue >= 0 && nodeValue <= 63) {
long preValue = (rightValue >> nodeValue) & 1;
@@ -3355,11 +3341,10 @@
*/
protected boolean checkQTIsExist(String tip, String txtQTName, String txtType) throws PLException {
boolean res = false;
-
String sql = "select count(1) count_ from PL_QTEMPLATE qt " +
"where qt.btmname ='" + txtType.trim() + "' " +
"and qt.qtname='" + txtQTName.trim() + "'";
-
+ res = checkCountNotEqualZero(sql);
if(!res){
throw new PLException("500",
new String[]{String.format("%s %s 鏃犳晥锛�", tip, txtQTName)});
@@ -3544,7 +3529,7 @@
*/
private boolean checkLinkTypeInputIsOk(String txtVIName/*閫夋嫨鐨勬ā鏉�*/,String txtQTName/*鏌ヨ妯℃澘*/,String btmType) throws PLException {
boolean res = false;
- if(!(this.checkBtmTypeTxtIsOk("鐩爣瀵硅薄", linkType,true))){
+ if(!(this.checkLinkTypeTxtIsOk("鐩爣瀵硅薄", linkType,true))){
res = false;
} else if(!(this.checkPortalVITxtIsOk("閫夋嫨妯℃澘", txtVIName, linkType,true))){
res = false;
@@ -3729,7 +3714,7 @@
return res;
}
// 閾炬帴绫诲瀷涓嶄负绌烘椂锛岄渶瑕佸悓鏃舵鏌ラ摼鎺ョ被鍨嬪強閾炬帴绫诲瀷涓嬬殑鏌ヨ妯℃澘鏄惁鏈夋晥
- if(Func.isBlank(linkType)){
+ if(Func.isNotBlank(linkType)){
if(!(super.checkLinkTypeTxtIsOk("閾炬帴绫诲瀷", linkType,false))){
res = false;
return res;
--
Gitblit v1.9.3