diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java index fee44262..1401f768 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java @@ -1,7 +1,6 @@ package cn.iocoder.yudao.module.bpm.controller.admin.task; import cn.hutool.core.collection.CollUtil; -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; @@ -13,7 +12,7 @@ import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; -import org.flowable.task.api.Task; +import org.flowable.task.api.history.HistoricTaskInstance; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -22,6 +21,7 @@ import javax.annotation.Resource; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -167,17 +167,15 @@ public class BpmTaskController { List userRespDTO = new ArrayList<>(); - List tasks = taskService.getTasksByProcessInstanceId(processInstanceId); + List tasks = taskService.getListTasksByProcessInstanceId(processInstanceId); // 获取用户信息 - List userIds = convertList(tasks, Task::getAssignee); + List userIds = convertList(tasks, HistoricTaskInstance::getAssignee); if (CollUtil.isEmpty(userIds)) { return success(userRespDTO); } + Map userMap = userApi.getUserMap(userIds.stream().map(Long::parseLong).collect(Collectors.toList())); - userRespDTO = userApi.getUserList(userIds.stream().map(Long::parseLong).collect(Collectors.toList())).getCheckedData(); - userRespDTO = userRespDTO.stream().filter(user -> user.getStatus().equals(CommonStatusEnum.ENABLE.getStatus())).collect(Collectors.toList()); - - return success(userRespDTO); + return success(convertList(userIds, id -> userMap.get(Long.valueOf(id)))); } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java index 59b7fa63..62b9fcdf 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java @@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*; import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO; import org.flowable.task.api.Task; +import org.flowable.task.api.history.HistoricTaskInstance; import javax.validation.Valid; import java.util.List; @@ -65,13 +66,21 @@ public interface BpmTaskService { List getTasksByProcessInstanceIds(List processInstanceIds); /** - * 获得流程任务列表 + * 获得指定流程的 当前审核中的任务列表 * * @param processInstanceId 流程实例的编号 * @return 流程任务列表 */ List getTasksByProcessInstanceId(String processInstanceId); + /** + * 获得指定流程的 已审核过的任务列表 + * + * @param processInstanceId 流程实例的编号 + * @return 流程任务列表 + */ + List getListTasksByProcessInstanceId(String processInstanceId); + /** * 获得指令流程实例的流程任务列表,包括所有状态的 * diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java index 16ebc133..75fb5b8e 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java @@ -299,6 +299,13 @@ public class BpmTaskServiceImpl implements BpmTaskService { return taskService.createTaskQuery().processInstanceId(processInstanceId).orderByTaskCreateTime().desc().list(); } + @Override + public List getListTasksByProcessInstanceId(String processInstanceId) { + + return historyService.createHistoricTaskInstanceQuery().processInstanceId(processInstanceId) + .orderByTaskCreateTime().desc().finished().list(); + } + @Override public List getTaskListByProcessInstanceId(String processInstanceId) { // 获得任务列表