From 6d2bff6de34ddfee75b555107f183d295f33b138 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E5=B1=95=E8=88=AA?= <2426745133@qq.com> Date: Mon, 22 Dec 2025 11:54:12 +0800 Subject: [PATCH] =?UTF-8?q?12-22-=E7=94=A8=E6=88=B7=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SysRoleWorkServiceImpl.java | 69 +++++++++---------- 1 file changed, 34 insertions(+), 35 deletions(-) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/service/impl/SysRoleWorkServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/service/impl/SysRoleWorkServiceImpl.java index 3e0d2901..423729fa 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/service/impl/SysRoleWorkServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/service/impl/SysRoleWorkServiceImpl.java @@ -24,7 +24,10 @@ import org.dromara.system.service.impl.SysRoleServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; /** * 角色流程对应Service业务层处理 @@ -242,33 +245,46 @@ public class SysRoleWorkServiceImpl extends ServiceImpl allRoleList = baseMapper.getAllRoleList(userId); - // 获取项目 + List busProjectVoList = new ArrayList<>(); - //维护一个该用户的 项目ID:角色ID map - Map map = new HashMap<>(); + //获取到该用户所有有流程的项目 说明在该项目下该用户有角色有所属流程 for (SysUserRole sysUserRole : allRoleList) { - BusProjectQueryReq req = new BusProjectQueryReq(); - req.setId(sysUserRole.getProjectId()); - List vos = projectService.queryList(req); - if (vos != null && !vos.isEmpty()){ - if(!busProjectVoList.contains(vos.getFirst())){ - busProjectVoList.add(vos.getFirst()); - map.put(sysUserRole.getProjectId(),sysUserRole.getRoleId()); + // 检查该项目下该角色是否有流程配置 + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(SysRoleWork::getRoleId, sysUserRole.getRoleId()); + lqw.eq(SysRoleWork::getProjectId, sysUserRole.getProjectId()); + List list = list(lqw); + + // 只有当存在流程配置时才添加项目 + if (list != null && !list.isEmpty()) { + //这个用户的项目 有流程的角色 才会进入这里 + BusProjectQueryReq req = new BusProjectQueryReq(); + req.setId(sysUserRole.getProjectId()); + List vos = projectService.queryList(req); + //把这个用户有角色并且有流程的项目添加到列表中 + if (vos != null && !vos.isEmpty()){ + if(!busProjectVoList.contains(vos.getFirst())){ + busProjectVoList.add(vos.getFirst()); + } } } } - - List roleWorks = this.list(); + //遍历反查 List roleVos; for (BusProjectVo projectVo : busProjectVoList) { roleVos = new ArrayList<>(); - for (SysRoleWork roleWork : roleWorks) { - if (map.containsKey(projectVo.getId()) && roleWork.getRoleId().equals(map.get(projectVo.getId()))){ - SysRoleVo sysRoleVo = roleService.selectRoleById(roleWork.getRoleId()); - if (sysRoleVo != null){ - roleVos.add(sysRoleVo); + List roleList = baseMapper.getRoleList(userId, projectVo.getId()); + for (SysUserRole userRole : roleList) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(SysRoleWork::getRoleId, userRole.getRoleId()); + lqw.eq(SysRoleWork::getProjectId,projectVo.getId()); + List list = list(lqw); + for (SysRoleWork roleWork : list) { + SysRoleVo roleVo = roleService.selectRoleById(roleWork.getRoleId()); + if (roleVo != null){ + roleVos.add(roleVo); } } } @@ -276,23 +292,6 @@ public class SysRoleWorkServiceImpl extends ServiceImpl(); -// //通过项目查找所有角色 -// LambdaQueryWrapper lqw1 = new LambdaQueryWrapper<>(); -// lqw1.eq(SysRoleWork::getProjectId,projectVo.getId()); -// List roleWorkList = list(lqw1); -// //遍历 -// for (SysRoleWork sysRoleWork : roleWorkList) { -// SysRoleVo sysRoleVo = roleService.selectRoleById(sysRoleWork.getRoleId()); -// if (sysRoleVo != null){ -// roleVos.add(sysRoleVo); -// } -// } -// projectVo.setRoleVos(roleVos); -// } - return busProjectVoList; }