From fa5ddaa385b211962add419dd29ae2411e9bb9ba Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: Sat, 14 Dec 2024 19:32:09 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=B0=83=E6=95=B4=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FlwInstanceServiceImpl.java | 23 ++++++++++++++++++- .../dromara/workflow/utils/WorkflowUtils.java | 4 ++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java index c5b110bcb..93bd21494 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.dto.UserDTO; import org.dromara.common.core.enums.BusinessStatusEnum; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.StreamUtils; @@ -248,12 +249,32 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService { if (flowInstance == null) { throw new ServiceException(ExceptionCons.NOT_FOUNT_INSTANCE); } + //运行中的任务 + List list = new ArrayList<>(); + List flowTaskList = flwTaskService.selectByInstId(flowInstance.getId()); + if (CollUtil.isNotEmpty(flowTaskList)) { + List flowHisTaskVos = BeanUtil.copyToList(flowTaskList, FlowHisTaskVo.class); + for (FlowHisTaskVo flowHisTaskVo : flowHisTaskVos) { + flowHisTaskVo.setFlowStatus(TaskStatusEnum.WAITING.getStatus()); + flowHisTaskVo.setUpdateTime(null); + List allUser = flwTaskService.currentTaskAllUser(flowHisTaskVo.getTaskId()); + if (CollUtil.isNotEmpty(allUser)) { + String join = StreamUtils.join(allUser, e -> String.valueOf(e.getUserId())); + flowHisTaskVo.setApprover(join); + } + } + list.addAll(flowHisTaskVos); + } + //历史任务 LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); wrapper.eq(FlowHisTask::getInstanceId, flowInstance.getId()); wrapper.eq(FlowHisTask::getNodeType, NodeType.BETWEEN.getKey()); wrapper.orderByDesc(FlowHisTask::getCreateTime).orderByDesc(FlowHisTask::getUpdateTime); List flowHisTasks = flowHisTaskMapper.selectList(wrapper); - List list = BeanUtil.copyToList(flowHisTasks, FlowHisTaskVo.class); + if (CollUtil.isNotEmpty(flowHisTasks)) { + list.addAll(BeanUtil.copyToList(flowHisTasks, FlowHisTaskVo.class)); + } + map.put("list", list); try { String flowChart = defService.flowChart(flowInstance.getId()); diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java index 1452d82f7..b74bb84d2 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java @@ -44,11 +44,11 @@ public class WorkflowUtils { return Collections.emptyList(); } // 获取所有用户的 UserDTO 列表 - return userList.stream() + return new ArrayList<>(userList.stream() .map(User::getProcessedBy) .filter(Objects::nonNull) .flatMap(processedBy -> taskAssigneeService.fetchUsersByStorageId(processedBy).stream()) - .collect(Collectors.toList()); + .collect(Collectors.toMap(UserDTO::getUserId, user -> user, (ex, rep) -> ex)).values()); } /**