From 31d445c6a14edfe4f74cd60dcb6f8d84a50aaca1 Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: 星期一, 06 五月 2024 22:18:14 +0800 Subject: [PATCH] update 调整用户id翻译,优化审批记录待审批候选人显示问题 --- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowUserServiceImpl.java | 44 +++++++++++++++++++++----------------------- 1 files changed, 21 insertions(+), 23 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowUserServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowUserServiceImpl.java index e30e553..23dd1b6 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowUserServiceImpl.java @@ -1,7 +1,6 @@ package org.dromara.workflow.service.impl; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -12,7 +11,6 @@ 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.tenant.helper.TenantHelper; import org.dromara.system.domain.SysUser; import org.dromara.system.domain.SysUserRole; import org.dromara.system.domain.bo.SysUserBo; @@ -23,9 +21,9 @@ import org.dromara.workflow.domain.vo.MultiInstanceVo; import org.dromara.workflow.domain.vo.TaskVo; import org.dromara.workflow.service.IWorkflowUserService; +import org.dromara.workflow.utils.QueryUtils; import org.dromara.workflow.utils.WorkflowUtils; import org.flowable.engine.RuntimeService; -import org.flowable.engine.TaskService; import org.flowable.engine.impl.bpmn.behavior.ParallelMultiInstanceBehavior; import org.flowable.engine.impl.bpmn.behavior.SequentialMultiInstanceBehavior; import org.flowable.task.api.Task; @@ -46,18 +44,18 @@ private final SysUserMapper sysUserMapper; private final SysUserRoleMapper sysUserRoleMapper; - private final TaskService taskService; private final RuntimeService runtimeService; /** * 鍒嗛〉鏌ヨ宸ヤ綔娴侀�夋嫨鍔犵浜哄憳 * - * @param sysUserMultiBo 鍙傛暟 + * @param bo 鍙傛暟 + * @param pageQuery 鍒嗛〉 */ @Override @SuppressWarnings("unchecked") - public TableDataInfo<SysUserVo> getWorkflowAddMultiInstanceByPage(SysUserMultiBo sysUserMultiBo) { - Task task = taskService.createTaskQuery().taskId(sysUserMultiBo.getTaskId()).singleResult(); + public TableDataInfo<SysUserVo> getPageByAddMultiInstance(SysUserMultiBo bo, PageQuery pageQuery) { + Task task = QueryUtils.taskQuery().taskId(bo.getTaskId()).singleResult(); if (task == null) { throw new ServiceException("浠诲姟涓嶅瓨鍦�"); } @@ -67,19 +65,19 @@ } LambdaQueryWrapper<SysUser> queryWrapper = Wrappers.lambdaQuery(); //妫�绱㈡潯浠� - queryWrapper.eq(StringUtils.isNotEmpty(sysUserMultiBo.getDeptId()), SysUser::getDeptId, sysUserMultiBo.getDeptId()); + queryWrapper.eq(StringUtils.isNotEmpty(bo.getDeptId()), SysUser::getDeptId, bo.getDeptId()); queryWrapper.eq(SysUser::getStatus, UserStatus.OK.getCode()); if (multiInstance.getType() instanceof SequentialMultiInstanceBehavior) { List<Long> assigneeList = (List<Long>) runtimeService.getVariable(task.getExecutionId(), multiInstance.getAssigneeList()); - queryWrapper.notIn(CollectionUtil.isNotEmpty(assigneeList), SysUser::getUserId, assigneeList); + queryWrapper.notIn(CollUtil.isNotEmpty(assigneeList), SysUser::getUserId, assigneeList); } else { - List<Task> list = taskService.createTaskQuery().processInstanceId(task.getProcessInstanceId()).list(); + List<Task> list = QueryUtils.taskQuery(task.getProcessInstanceId()).list(); List<Long> userIds = StreamUtils.toList(list, e -> Long.valueOf(e.getAssignee())); - queryWrapper.notIn(CollectionUtil.isNotEmpty(userIds), SysUser::getUserId, userIds); + queryWrapper.notIn(CollUtil.isNotEmpty(userIds), SysUser::getUserId, userIds); } - queryWrapper.like(StringUtils.isNotEmpty(sysUserMultiBo.getUserName()), SysUser::getUserName, sysUserMultiBo.getUserName()); - queryWrapper.like(StringUtils.isNotEmpty(sysUserMultiBo.getNickName()), SysUser::getNickName, sysUserMultiBo.getNickName()); - Page<SysUser> page = new Page<>(sysUserMultiBo.getPageNum(), sysUserMultiBo.getPageSize()); + queryWrapper.like(StringUtils.isNotEmpty(bo.getUserName()), SysUser::getUserName, bo.getUserName()); + queryWrapper.like(StringUtils.isNotEmpty(bo.getNickName()), SysUser::getNickName, bo.getNickName()); + Page<SysUser> page = new Page<>(pageQuery.getFirstNum(), pageQuery.getPageSize()); Page<SysUserVo> userPage = sysUserMapper.selectVoPage(page, queryWrapper); return TableDataInfo.build(recordPage(userPage)); } @@ -91,9 +89,9 @@ */ @Override @SuppressWarnings("unchecked") - public List<TaskVo> getWorkflowDeleteMultiInstanceList(String taskId) { - Task task = taskService.createTaskQuery().taskTenantId(TenantHelper.getTenantId()).taskId(taskId).singleResult(); - List<Task> taskList = taskService.createTaskQuery().taskTenantId(TenantHelper.getTenantId()).processInstanceId(task.getProcessInstanceId()).list(); + public List<TaskVo> getListByDeleteMultiInstance(String taskId) { + Task task = QueryUtils.taskQuery().taskId(taskId).singleResult(); + List<Task> taskList = QueryUtils.taskQuery(task.getProcessInstanceId()).list(); MultiInstanceVo multiInstance = WorkflowUtils.isMultiInstance(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<TaskVo> taskListVo = new ArrayList<>(); if (multiInstance == null) { @@ -110,7 +108,7 @@ if (multiInstance.getType() instanceof SequentialMultiInstanceBehavior) { List<Long> userIds = StreamUtils.filter(assigneeList, e -> !String.valueOf(e).equals(task.getAssignee())); List<SysUserVo> sysUsers = null; - if (CollectionUtil.isNotEmpty(userIds)) { + if (CollUtil.isNotEmpty(userIds)) { sysUsers = sysUserMapper.selectVoBatchIds(userIds); } for (Long userId : userIds) { @@ -120,7 +118,7 @@ taskVo.setProcessInstanceId(task.getProcessInstanceId()); taskVo.setName(task.getName()); taskVo.setAssignee(userId); - if (CollectionUtil.isNotEmpty(sysUsers)) { + if (CollUtil.isNotEmpty(sysUsers)) { sysUsers.stream().filter(u -> u.getUserId().toString().equals(userId.toString())).findFirst().ifPresent(u -> taskVo.setAssigneeName(u.getNickName())); } taskListVo.add(taskVo); @@ -128,10 +126,10 @@ return taskListVo; } else if (multiInstance.getType() instanceof ParallelMultiInstanceBehavior) { List<Task> tasks = StreamUtils.filter(taskList, e -> StringUtils.isBlank(e.getParentTaskId()) && !e.getExecutionId().equals(task.getExecutionId()) && e.getTaskDefinitionKey().equals(task.getTaskDefinitionKey())); - if (CollectionUtil.isNotEmpty(tasks)) { + if (CollUtil.isNotEmpty(tasks)) { List<Long> userIds = StreamUtils.toList(tasks, e -> Long.valueOf(e.getAssignee())); List<SysUserVo> sysUsers = null; - if (CollectionUtil.isNotEmpty(userIds)) { + if (CollUtil.isNotEmpty(userIds)) { sysUsers = sysUserMapper.selectVoBatchIds(userIds); } for (Task t : tasks) { @@ -141,7 +139,7 @@ taskVo.setProcessInstanceId(t.getProcessInstanceId()); taskVo.setName(t.getName()); taskVo.setAssignee(Long.valueOf(t.getAssignee())); - if (CollectionUtil.isNotEmpty(sysUsers)) { + if (CollUtil.isNotEmpty(sysUsers)) { sysUsers.stream().filter(u -> u.getUserId().toString().equals(t.getAssignee())).findFirst().ifPresent(e -> taskVo.setAssigneeName(e.getNickName())); } taskListVo.add(taskVo); @@ -204,7 +202,7 @@ * @param pageQuery 鍒嗛〉 */ @Override - public TableDataInfo<SysUserVo> getUserListByPage(SysUserBo sysUserBo, PageQuery pageQuery) { + public TableDataInfo<SysUserVo> getPageByUserList(SysUserBo sysUserBo, PageQuery pageQuery) { LambdaQueryWrapper<SysUser> queryWrapper = Wrappers.lambdaQuery(); queryWrapper.eq(sysUserBo.getDeptId() != null, SysUser::getDeptId, sysUserBo.getDeptId()); queryWrapper.eq(SysUser::getStatus, UserStatus.OK.getCode()); -- Gitblit v1.9.3