From a358eb77f76aab25196a489c641d1687f2756cef Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期四, 19 十月 2023 16:15:30 +0800
Subject: [PATCH] 代码提交

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateController.java  |    1 
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java                   |    5 +
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/feign/SysClient.java                        |    4 
 Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClient.java               |    2 
 Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClientFallback.java       |    2 
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/MybatisParameterUtil.java       |    1 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java           |   13 ++--
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IRoleMenuService.java               |    9 +++
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/RoleMenuServiceImpl.java       |   53 +++++++++++++++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java    |    3 +
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MdmCountConfigServiceImpl.java |    2 
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java           |   30 +++++++++
 12 files changed, 109 insertions(+), 16 deletions(-)

diff --git a/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClient.java b/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClient.java
index 78d93a2..fd445bf 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClient.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClient.java
@@ -94,7 +94,7 @@
 	 * @return
 	 */
 	@GetMapping(MENU_BY_CODES)
-	R<List<Menu>> getMenuByCodes(@RequestParam("codes") List<String> codes);
+	R<List<Menu>> getMenuByCodes(@RequestParam("codes") List<String> codes,@RequestParam("userId") Long userId);
 
 	/**
 	 * 鑾峰彇鐢ㄩ厤缃殑涓绘暟鎹粺璁�
diff --git a/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClientFallback.java b/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClientFallback.java
index 2f24bdf..eef6674 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClientFallback.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/feign/ISysClientFallback.java
@@ -38,7 +38,7 @@
 	}
 
 	@Override
-	public R<List<Menu>> getMenuByCodes(List<String> codes) {
+	public R<List<Menu>> getMenuByCodes(List<String> codes,Long userId) {
 		return R.fail("鑾峰彇鏁版嵁澶辫触");
 	}
 
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/MybatisParameterUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/MybatisParameterUtil.java
index 4931b1e..4c644ef 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/MybatisParameterUtil.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/MybatisParameterUtil.java
@@ -148,5 +148,4 @@
 		return newList;
 	}
 
-
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateController.java
index 57972e7..b48a09e 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateController.java
@@ -100,7 +100,6 @@
 	 */
 	@PostMapping( "/copy")
 	public R copyTemplate(@RequestBody CodeClassifyTemplateDTO codeClassifyDTO) {
-
 		return plCodeClstemplateService.copyTemplate(codeClassifyDTO);
 	}
 
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java
index 887bc5c..c720d35 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java
@@ -31,6 +31,7 @@
 import com.vci.ubcs.code.service.ICodeClstemplateService;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
+import com.vci.ubcs.common.constant.CommonConstant;
 import com.vci.ubcs.flow.core.entity.ProcessTemplate;
 import com.vci.ubcs.flow.core.feign.IFlowClient;
 import com.vci.ubcs.starter.exception.VciBaseException;
@@ -627,6 +628,8 @@
 		codeClassifyTemplateDO_old.setTs(new Date());
 		codeClassifyTemplateDO_old.setCreateTime(new Date());
 		codeClassifyTemplateDO_old.setLastModifyTime(new Date());
+		// 澶嶅埗鐨勬ā鏉跨敓鍛藉懆鏈熸敼涓虹紪杈戜腑
+		codeClassifyDO_old.setLcStatus(FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_EDITING);
 		List<CodeClassifyTemplate> codeClassifyTemplateDOList = new ArrayList<>();
 		codeClassifyTemplateDOList.add(codeClassifyTemplateDO_old);
 
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java
index ef4c97a..9fbee7b 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java
@@ -12,6 +12,7 @@
 import com.vci.ubcs.system.feign.ISysClient;
 import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springframework.stereotype.Service;
@@ -54,7 +55,7 @@
 	 */
 	@Override
 	public List<MdmCount> getMdmCounts(String userId) throws ServiceException{
-		if(Func.isBlank(userId)){
+		if(Func.isBlank(userId) && Func.isBlank(AuthUtil.getUserId().toString())){
 			throw new ServiceException("蹇呬紶鍙傛暟鐢ㄦ埛id涓嶈兘涓虹┖");
 		}
 		/** 1銆佸厛鏌ヨ鍑哄悇鍒嗙被椤跺眰鑺傜偣鏈夊摢浜涗富鏁版嵁,鎷垮埌涓氬姟绫诲瀷鍚嶇О锛岀浉褰撲簬鎷垮埌涓绘暟鎹〃鍚�
@@ -66,15 +67,15 @@
 			.isNull(CodeClassify::getParentCodeClassifyOid).select(CodeClassify::getBtmTypeId)
 			.orderByAsc(CodeClassify::getBtmTypeId);
 		List<CodeClassify> codeClassifies = codeClassifyService.list(wrapper);
-		List<String> btyTypeIds = codeClassifies.stream().map(CodeClassify::getBtmTypeId).collect(Collectors.toList());
+		List<String> btmTypeIds = codeClassifies.stream().map(CodeClassify::getBtmTypeId).collect(Collectors.toList());
 		// 2銆佺劧鍚巉eign璋冪敤闇�瑕佹煡璇㈠嚭鑿滃崟璺敱鍜屽浘鏍�
-		R<List<Menu>> menuList = sysClient.getMenuByCodes(btyTypeIds);
-		if(!menuList.isSuccess() && menuList.getData().isEmpty()){
-			throw new ServiceException("鑾峰彇涓绘暟鎹粺璁℃椂锛屼富鏁版嵁鑿滃崟鏌ヨ涓虹┖锛屽師鍥狅細"+menuList.getMsg());
+		R<List<Menu>> menuList = sysClient.getMenuByCodes(btmTypeIds,Func.toLong(userId));
+		if(!menuList.isSuccess()){
+			throw new ServiceException("鑾峰彇涓绘暟鎹粺璁℃椂锛屼富鏁版嵁鑿滃崟鏌ヨ澶辫触锛屽師鍥狅細"+menuList.getMsg());
 		}
 		List<MdmCount> mdmCountList = new ArrayList<>();
 		// 3銆佹煡璇㈠綋鍓嶇櫥褰曠殑鐢ㄦ埛閰嶇疆浜嗛偅浜涗富鏁版嵁缁熻椤�
-		R<MdmCountConfig> mdmCountConfig = sysClient.getMdmCountConfig(userId);
+		R<MdmCountConfig> mdmCountConfig = sysClient.getMdmCountConfig(Func.isBlank(userId) ? AuthUtil.getUserId().toString():userId);
 		if(!mdmCountConfig.isSuccess()){
 			throw new ServiceException("鑾峰彇涓绘暟鎹粺璁¢」閰嶇疆鏃跺嚭鐜伴敊璇紝鍘熷洜锛�"+mdmCountConfig.getMsg());
 		}
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/feign/SysClient.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/feign/SysClient.java
index 1816a69..3d7742b 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/feign/SysClient.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/feign/SysClient.java
@@ -74,8 +74,8 @@
 	 */
 	@Override
 	@GetMapping(MENU_BY_CODES)
-	public R<List<Menu>> getMenuByCodes(List<String> codes) {
-		return R.data(menuService.getMenuByCodes(codes));
+	public R<List<Menu>> getMenuByCodes(List<String> codes,Long userId) {
+		return R.data(menuService.getMenuByCodes(codes,userId));
 	}
 
 	@Override
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java
index c4d6ba8..215d399 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java
@@ -175,11 +175,12 @@
 	List<Menu> getMenuButtonByType(String btmType);
 
 	/**
-	 * 鏍规嵁code鏌ヨ鑿滃崟淇℃伅
+	 * 鏍规嵁code鍜岀敤鎴穒d鏌ヨ鑿滃崟淇℃伅
 	 * @param codes
+	 * @param userId
 	 * @return
 	 */
-	List<Menu> getMenuByCodes(List<String> codes);
+	List<Menu> getMenuByCodes(List<String> codes,Long userId);
 
 	/**
 	 * 瀵筀eepAlive鍊艰浆鎹㈡垚甯冨皵绫诲瀷杩涜灏佽
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IRoleMenuService.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IRoleMenuService.java
index 00ce0e1..271371b 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IRoleMenuService.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IRoleMenuService.java
@@ -19,6 +19,8 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.vci.ubcs.system.entity.RoleMenu;
 
+import java.util.List;
+
 /**
  * 鏈嶅姟绫�
  *
@@ -26,4 +28,11 @@
  */
 public interface IRoleMenuService extends IService<RoleMenu> {
 
+	/**
+	 * 鏍规嵁鐢ㄦ埛id鏌ヨ锛岃鎺堟潈鐨勮彍鍗昳d
+	 * @param userId
+	 * @return
+	 */
+	List<Long> getMenuIdByUserId(Long userId);
+
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MdmCountConfigServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MdmCountConfigServiceImpl.java
index 3ebe012..2c5ed6a 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MdmCountConfigServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MdmCountConfigServiceImpl.java
@@ -39,7 +39,7 @@
 		if(mdmCountConfigVO.getMdmNameList().isEmpty()) {
 			return R.status(false);
 		}
-		if(mdmCountConfigVO.getMdmNameList().size() > 7){
+		if(mdmCountConfigVO.getMdmNameList().size() > 8){
 			return R.fail("鏄剧ず鐨勪富鏁版嵁閰嶇疆椤规渶澶氫负8椤�");
 		}
 		boolean res = false;
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java
index cc258f7..1846607 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java
@@ -20,10 +20,15 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.vci.ubcs.starter.enumpack.CodeTableNameEnum;
+import com.vci.ubcs.starter.util.MybatisParameterUtil;
 import com.vci.ubcs.system.cache.NacosConfigCache;
 import com.vci.ubcs.system.cache.SysCache;
 import com.vci.ubcs.system.dto.MenuDTO;
 import com.vci.ubcs.system.entity.*;
+import com.vci.ubcs.system.user.entity.User;
+import com.vci.ubcs.system.user.feign.IUserClient;
 import com.vci.ubcs.system.vo.MenuVO;
 import com.vci.ubcs.system.mapper.MenuMapper;
 import com.vci.ubcs.system.service.IMenuService;
@@ -47,6 +52,7 @@
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 
+import javax.management.relation.Role;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -314,16 +320,38 @@
 	/**
 	 * 鏍规嵁code鏌ヨ鑿滃崟淇℃伅
 	 * @param codes
+	 * @param userId
 	 * @return
 	 */
 	@Override
-	public List<Menu> getMenuByCodes(List<String> codes) {
+	public List<Menu> getMenuByCodes(List<String> codes,Long userId) {
+		if(codes.isEmpty()){
+			return new ArrayList<>();
+		}
+		// 鏌ヨ鑿滃崟淇℃伅
 		LambdaQueryWrapper<Menu> wrapper = Wrappers.<Menu>query()
 			.lambda()
 			.in(Menu::getCode, codes)
 			.eq(Menu::getIsDeleted,0) /*鏈鍒犻櫎*/
 			.eq(Menu::getCategory,1) /*鑿滃崟绫诲瀷涓嶈兘涓烘寜閽�*/
 			.orderByAsc(Menu::getCode);  /*鏍规嵁code鎺掑簭涓巆lassify鐨刡tmtypeid瀵瑰簲*/
+		// 瓒呯涓嶇敤鏍规嵁瑙掕壊鏉ユ煡璇�
+		if(!AuthUtil.getTenantId().equals(NacosConfigCache.getAdminUserInfo().getTenantId())
+			&& !AuthUtil.getUserId().equals(NacosConfigCache.getAdminUserInfo().getUserId())
+		){
+			if(Func.isBlank(userId.toString()) && Func.isBlank(AuthUtil.getUserId().toString())){
+				throw new ServiceException("鑾峰彇鐢ㄦ埛id澶辫触");
+			}
+			List<Long> menuIds = roleMenuService.getMenuIdByUserId(userId);
+			if(menuIds.isEmpty()){
+				return new ArrayList<>();
+			}
+			if(menuIds.size()>=1000){
+				MybatisParameterUtil.cutInParameter(wrapper,Menu::getId,menuIds);
+			}else {
+				wrapper.in(Menu::getId,menuIds);
+			}
+		}
 		return this.list(wrapper);
 	}
 
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/RoleMenuServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/RoleMenuServiceImpl.java
index a29ea7c..d596d8e 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/RoleMenuServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/RoleMenuServiceImpl.java
@@ -16,11 +16,27 @@
  */
 package com.vci.ubcs.system.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vci.ubcs.starter.util.MybatisParameterUtil;
 import com.vci.ubcs.system.entity.RoleMenu;
 import com.vci.ubcs.system.mapper.RoleMenuMapper;
 import com.vci.ubcs.system.service.IRoleMenuService;
+import com.vci.ubcs.system.service.IRoleService;
+import com.vci.ubcs.system.user.entity.User;
+import com.vci.ubcs.system.user.feign.IUserClient;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 鏈嶅姟瀹炵幇绫�
@@ -30,4 +46,41 @@
 @Service
 public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> implements IRoleMenuService {
 
+	@Resource
+	private RoleMenuMapper roleMenuMapper;
+
+	@Resource
+	private IUserClient userClient;
+
+	/**
+	 * 鏍规嵁鐢ㄦ埛id鏌ヨ锛岃鎺堟潈鐨勮彍鍗昳d
+	 * @param userId
+	 * @return
+	 */
+	@Override
+	public List<Long> getMenuIdByUserId(Long userId) {
+		// 鏍规嵁鐢ㄦ埛id鏌ヨ鑿滃崟id
+		R<User> userR = userClient.userInfoById((Func.isEmpty(userId) ? AuthUtil.getUserId():userId));
+		if (!userR.isSuccess() || Func.isEmpty(userR.getData())) {
+			throw new ServiceException("鐢ㄦ埛淇℃伅鏌ヨ澶辫触,鍘熷洜锛�"+userR.getMsg());
+		}
+
+		// 褰撴煡璇㈡潯浠秈n澶т簬涓�鍗冩潯鏃�
+		List<String> roleIdList = Func.toStrList(userR.getData().getRoleId());
+		//鏋勫缓鏌ヨ鑿滃崟id鐨勬煡璇㈡潯浠�
+		LambdaQueryWrapper<RoleMenu> roleMenuWrapper = Wrappers.<RoleMenu>query()
+			.lambda().select(RoleMenu::getMenuId);
+		if(roleIdList.size()>=1000){
+			MybatisParameterUtil.cutInParameter(roleMenuWrapper,RoleMenu::getRoleId,roleIdList);
+		}else {
+			roleMenuWrapper.in(RoleMenu::getRoleId,roleIdList);
+		}
+		List<RoleMenu> roleMenus = roleMenuMapper.selectList(roleMenuWrapper);
+		if(roleMenus.isEmpty()){
+			return new ArrayList<>();
+		}
+		return roleMenus.stream().map(RoleMenu::getMenuId).collect(Collectors.toList());
+	}
+
+
 }

--
Gitblit v1.9.3