From 90b0eb82f41d7dc874d5cb3b4fbf690f8a21209d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E5=B1=95=E8=88=AA?= <2426745133@qq.com> Date: Thu, 13 Nov 2025 20:49:58 +0800 Subject: [PATCH] =?UTF-8?q?11-13-=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PersonalHomeController.java | 11 ++- .../controller/SysRoleWorkController.java | 22 ++++- .../bigscreen/domain/dto/TaskInfoDto.java | 12 +++ .../bigscreen/mapper/SysRoleWorkMapper.java | 9 +- .../service/impl/SysRoleWorkServiceImpl.java | 88 ++++++++++++++++--- .../domain/vo/project/BusProjectVo.java | 6 ++ 6 files changed, 129 insertions(+), 19 deletions(-) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/PersonalHomeController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/PersonalHomeController.java index 0ab09b9c..c481c94b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/PersonalHomeController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/PersonalHomeController.java @@ -20,10 +20,7 @@ import org.dromara.bigscreen.domain.dto.BusBwlBo; import org.dromara.bigscreen.domain.dto.BusSygjBo; import org.dromara.bigscreen.domain.dto.BusWjzxBo; import org.dromara.bigscreen.domain.dto.TaskInfoDto; -import org.dromara.bigscreen.domain.vo.BusBwlVo; -import org.dromara.bigscreen.domain.vo.BusSygjVo; -import org.dromara.bigscreen.domain.vo.BusWjzxVo; -import org.dromara.bigscreen.domain.vo.MyProjectInfoVo; +import org.dromara.bigscreen.domain.vo.*; import org.dromara.bigscreen.service.IBusBwlService; import org.dromara.bigscreen.service.IBusSygjService; import org.dromara.bigscreen.service.IBusWjzxService; @@ -234,6 +231,12 @@ public class PersonalHomeController extends BaseController { taskInfoDto.setTotal((long) page.size()); taskInfoDto.setWeekCount((long) weeklyTasks.size()); + BusPdSjVo busPdSjVo = pdMasterService.queryPageListByDate(); + BusWjzxSjDateVo busWjzxSjDateVo = busWjzxService.queryWjzx(); + + taskInfoDto.setBusWjzxSjDateVo(busWjzxSjDateVo); + taskInfoDto.setBusPdSjVo(busPdSjVo); + return R.ok(taskInfoDto); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/SysRoleWorkController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/SysRoleWorkController.java index d49dfbd8..069367aa 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/SysRoleWorkController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/SysRoleWorkController.java @@ -18,7 +18,9 @@ import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.web.core.BaseController; +import org.dromara.project.domain.vo.project.BusProjectVo; import org.dromara.system.domain.vo.SysRoleVo; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -107,7 +109,7 @@ public class SysRoleWorkController extends BaseController { } /** - * 获取当前用户角色列表 + * 获取当前用户在制定项目下有流程的角色列表 */ @GetMapping("/getRoleList/{projectId}") public R> getRoleList(@PathVariable("projectId") Long projectId) { @@ -115,11 +117,27 @@ public class SysRoleWorkController extends BaseController { } /** - * 获取角色对应流程 + * 判断当前用户在所有项目下所有角色是否有角色流程 + */ + @GetMapping("/isHaveValue") + public R isHaveValue() { + return R.ok(sysRoleWorkService.isHaveValue(LoginHelper.getUserId())); + } + + /** + * 获取角色对应流程 弃用 */ @GetMapping("/getRoleToWork/{projectId}") public R getRoleWork(@PathVariable("projectId") Long projectId) { return R.ok(sysRoleWorkService.getRoleWork(projectId)); } + /** + * 获取有对应流程并且包含角色列表的项目列表 + */ + @GetMapping("/getProjectRoles") + public R> getProjectRoles() { + return R.ok(sysRoleWorkService.getProjectRoles()); + } + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/dto/TaskInfoDto.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/dto/TaskInfoDto.java index 3624d8fd..9ef5f1d1 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/dto/TaskInfoDto.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/dto/TaskInfoDto.java @@ -1,6 +1,8 @@ package org.dromara.bigscreen.domain.dto; import lombok.Data; +import org.dromara.bigscreen.domain.vo.BusPdSjVo; +import org.dromara.bigscreen.domain.vo.BusWjzxSjDateVo; import org.dromara.workflow.domain.vo.FlowTaskVo; import java.io.Serializable; @@ -24,4 +26,14 @@ public class TaskInfoDto implements Serializable { */ private Long weekCount; + /** + *知识库上传数据 + */ + private BusWjzxSjDateVo busWjzxSjDateVo; + + /** + * 派单数据 + */ + private BusPdSjVo busPdSjVo; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/mapper/SysRoleWorkMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/mapper/SysRoleWorkMapper.java index fa4e4a5f..303985a3 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/mapper/SysRoleWorkMapper.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/mapper/SysRoleWorkMapper.java @@ -17,8 +17,15 @@ import java.util.List; public interface SysRoleWorkMapper extends BaseMapperPlus { /** - * 根据登录人id获取对应角色 + * 根据登录人id和项目ID获取对应角色 */ @Select("select * from sys_user_role where user_id = #{userId} and project_id = #{projectId}") List getRoleList(Long userId,Long projectId); + + /** + * 根据登录人id获取所有项目下所有角色 + */ + @Select("select * from sys_user_role where user_id = #{userId}") + List getAllRoleList(Long userId); + } 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 7f3a6e8e..1235338a 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 @@ -15,6 +15,9 @@ import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.project.domain.dto.project.BusProjectQueryReq; +import org.dromara.project.domain.vo.project.BusProjectVo; +import org.dromara.project.service.impl.BusProjectServiceImpl; import org.dromara.system.domain.SysUserRole; import org.dromara.system.domain.vo.SysRoleVo; import org.dromara.system.service.impl.SysRoleServiceImpl; @@ -39,6 +42,8 @@ public class SysRoleWorkServiceImpl extends ServiceImpl allRoleList = baseMapper.getAllRoleList(userId); + for (SysUserRole sysUserRole : allRoleList) { + 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()){ + return true; + } + } + return false; + } + /** * 根据当前登录人获取角色流程对应 */ @@ -210,18 +232,60 @@ public class SysRoleWorkServiceImpl extends ServiceImpl list = queryList(sysRoleWorkBo); -// -// if (list.size() >1){ -// throw new RuntimeException("此角色绑定了多条流程!"); -// } -// if (!list.isEmpty()){ -// setValue( list); -// } -// return list.getFirst(); + /** + * 获取当前登录人在所有项目下有流程的角色列表 + * @return + */ + public List getProjectRoles(){ + Long userId = LoginHelper.getUserId(); + // 获取当前登录用户的所有项目及对应所有角色 + List allRoleList = baseMapper.getAllRoleList(userId); + + //初始化 + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + + List busProjectVoList = new ArrayList<>(); + + //获取到该用户所有有流程的项目 说明在该项目下该用户有角色有所属流程 + for (SysUserRole sysUserRole : allRoleList) { + lqw.clear(); + lqw.eq(SysRoleWork::getProjectId,sysUserRole.getProjectId()); + lqw.eq(SysRoleWork::getRoleId, sysUserRole.getRoleId()); + SysRoleWork one = getOne(lqw); + if (one != null){ + //先拿到该项目 + 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 roleVos; + for (BusProjectVo projectVo : busProjectVoList) { + roleVos = new ArrayList<>(); + //通过项目查找所有角色 + 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; } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/project/BusProjectVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/project/BusProjectVo.java index 4e8d060e..8334204f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/project/BusProjectVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/vo/project/BusProjectVo.java @@ -8,6 +8,7 @@ import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.convert.ExcelDictConvert; import org.dromara.project.domain.BusProject; import org.dromara.project.domain.bo.Punchrange; +import org.dromara.system.domain.vo.SysRoleVo; import java.io.Serial; import java.io.Serializable; @@ -217,4 +218,9 @@ public class BusProjectVo implements Serializable { */ private List deptIds; + /** + * 某个用户在此项目下的所有角色 + */ + private List roleVos; + }