Commit 23eda6b1a90e7688bc804953103b4e2020ec5198

Authored by YunaiV
1 parent a4d31f9c

新增 bpm 基于流程实例查询任务列表

yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/task/BpmTaskConvert.java
... ... @@ -29,27 +29,21 @@ public interface BpmTaskConvert {
29 29  
30 30 BpmTaskConvert INSTANCE = Mappers.getMapper(BpmTaskConvert.class);
31 31  
32   - default List<BpmTaskTodoPageItemRespVO> convertList(List<Task> tasks, Map<String, ProcessInstance> processInstanceMap,
33   - Map<Long, SysUserDO> userMap) {
  32 + default List<BpmTaskTodoPageItemRespVO> convertList1(List<Task> tasks, Map<String, ProcessInstance> processInstanceMap,
  33 + Map<Long, SysUserDO> userMap) {
34 34 return CollectionUtils.convertList(tasks, task -> {
  35 + BpmTaskTodoPageItemRespVO respVO = convert1(task);
35 36 ProcessInstance processInstance = processInstanceMap.get(task.getProcessInstanceId());
36   - return convert(task, processInstance, userMap.get(Long.valueOf(processInstance.getStartUserId())));
  37 + if (processInstance != null) {
  38 + SysUserDO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
  39 + respVO.setProcessInstance(convert(processInstance, startUser));
  40 + }
  41 + return respVO;
37 42 });
38 43 }
39 44  
40   - @Mappings({
41   - @Mapping(source = "task.id", target = "id"),
42   - @Mapping(source = "task.name", target = "name"),
43   - @Mapping(source = "task.claimTime", target = "claimTime"),
44   - @Mapping(source = "task.createTime", target = "createTime"),
45   - @Mapping(source = "task.suspended", target = "suspensionState", qualifiedByName = "convertSuspendedToSuspensionState"),
46   - @Mapping(source = "processInstance.id", target = "processInstance.id"),
47   - @Mapping(source = "processInstance.name", target = "processInstance.name"),
48   - @Mapping(source = "processInstance.startUserId", target = "processInstance.startUserId"),
49   - @Mapping(source = "processInstance.processDefinitionId", target = "processInstance.processDefinitionId"),
50   - @Mapping(source = "user.nickname", target = "processInstance.startUserNickname")
51   - })
52   - BpmTaskTodoPageItemRespVO convert(Task task, ProcessInstance processInstance, SysUserDO user);
  45 + @Mapping(source = "suspended", target = "suspensionState", qualifiedByName = "convertSuspendedToSuspensionState")
  46 + BpmTaskTodoPageItemRespVO convert1(Task bean);
53 47  
54 48 @Named("convertSuspendedToSuspensionState")
55 49 default Integer convertSuspendedToSuspensionState(boolean suspended) {
... ... @@ -61,29 +55,19 @@ public interface BpmTaskConvert {
61 55 Map<String, HistoricProcessInstance> historicProcessInstanceMap,
62 56 Map<Long, SysUserDO> userMap) {
63 57 return CollectionUtils.convertList(tasks, task -> {
  58 + BpmTaskDonePageItemRespVO respVO = convert2(task);
64 59 BpmTaskExtDO taskExtDO = bpmTaskExtDOMap.get(task.getId());
  60 + copyTo(taskExtDO, respVO);
65 61 HistoricProcessInstance processInstance = historicProcessInstanceMap.get(task.getProcessInstanceId());
66   - SysUserDO userDO = userMap.get(Long.valueOf(processInstance.getStartUserId()));
67   - return convert(task, taskExtDO, processInstance, userDO);
  62 + if (processInstance != null) {
  63 + SysUserDO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
  64 + respVO.setProcessInstance(convert(processInstance, startUser));
  65 + }
  66 + return respVO;
68 67 });
69 68 }
70 69  
71   - @Mappings({
72   - @Mapping(source = "task.id", target = "id"),
73   - @Mapping(source = "task.name", target = "name"),
74   - @Mapping(source = "task.claimTime", target = "claimTime"),
75   - @Mapping(source = "task.createTime", target = "createTime"),
76   - @Mapping(source = "task.endTime", target = "endTime"),
77   - @Mapping(source = "task.durationInMillis", target = "durationInMillis"),
78   - @Mapping(source = "taskExtDO.result", target = "result"),
79   - @Mapping(source = "taskExtDO.comment", target = "comment"),
80   - @Mapping(source = "processInstance.id", target = "processInstance.id"),
81   - @Mapping(source = "processInstance.name", target = "processInstance.name"),
82   - @Mapping(source = "processInstance.startUserId", target = "processInstance.startUserId"),
83   - @Mapping(source = "processInstance.processDefinitionId", target = "processInstance.processDefinitionId"),
84   - @Mapping(source = "startUser.nickname", target = "processInstance.startUserNickname")
85   - })
86   - BpmTaskDonePageItemRespVO convert(HistoricTaskInstance task, BpmTaskExtDO taskExtDO, HistoricProcessInstance processInstance, SysUserDO startUser);
  70 + BpmTaskDonePageItemRespVO convert2(HistoricTaskInstance bean);
87 71  
88 72 @Mappings({
89 73 @Mapping(source = "id", target = "taskId"),
... ... @@ -98,7 +82,7 @@ public interface BpmTaskConvert {
98 82 return CollectionUtils.convertList(tasks, task -> {
99 83 BpmTaskRespVO respVO = convert3(task);
100 84 BpmTaskExtDO taskExtDO = bpmTaskExtDOMap.get(task.getId());
101   - copyTo3(taskExtDO, respVO);
  85 + copyTo(taskExtDO, respVO);
102 86 if (processInstance != null) {
103 87 SysUserDO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
104 88 respVO.setProcessInstance(convert(processInstance, startUser));
... ... @@ -117,7 +101,17 @@ public interface BpmTaskConvert {
117 101  
118 102 BpmTaskRespVO convert3(HistoricTaskInstance bean);
119 103 BpmTaskRespVO.User convert3(SysUserDO bean);
120   - void copyTo3(BpmTaskExtDO from, @MappingTarget BpmTaskRespVO to);
  104 +
  105 + void copyTo(BpmTaskExtDO from, @MappingTarget BpmTaskDonePageItemRespVO to);
  106 +
  107 + @Mappings({
  108 + @Mapping(source = "processInstance.id", target = "id"),
  109 + @Mapping(source = "processInstance.name", target = "name"),
  110 + @Mapping(source = "processInstance.startUserId", target = "startUserId"),
  111 + @Mapping(source = "processInstance.processDefinitionId", target = "processDefinitionId"),
  112 + @Mapping(source = "startUser.nickname", target = "startUserNickname")
  113 + })
  114 + BpmTaskTodoPageItemRespVO.ProcessInstance convert(ProcessInstance processInstance, SysUserDO startUser);
121 115  
122 116 @Mappings({
123 117 @Mapping(source = "processInstance.id", target = "id"),
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/impl/BpmTaskServiceImpl.java
... ... @@ -2,7 +2,6 @@ package cn.iocoder.yudao.adminserver.modules.bpm.service.task.impl;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.io.IoUtil;
5   -import cn.hutool.core.util.NumberUtil;
6 5 import cn.hutool.core.util.StrUtil;
7 6 import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.*;
8 7 import cn.iocoder.yudao.adminserver.modules.bpm.convert.task.BpmTaskConvert;
... ... @@ -34,7 +33,6 @@ import org.activiti.engine.history.HistoricTaskInstance;
34 33 import org.activiti.engine.history.HistoricTaskInstanceQuery;
35 34 import org.activiti.engine.repository.ProcessDefinition;
36 35 import org.activiti.engine.runtime.ProcessInstance;
37   -import org.activiti.engine.task.Comment;
38 36 import org.activiti.engine.task.Task;
39 37 import org.activiti.engine.task.TaskQuery;
40 38 import org.activiti.image.ProcessDiagramGenerator;
... ... @@ -48,7 +46,6 @@ import javax.validation.Valid;
48 46 import java.io.IOException;
49 47 import java.io.InputStream;
50 48 import java.util.*;
51   -import java.util.function.Function;
52 49  
53 50 import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.*;
54 51 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
... ... @@ -155,7 +152,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
155 152 Map<Long, SysUserDO> userMap = userService.getUserMap(
156 153 convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId())));
157 154 // 拼接结果
158   - return new PageResult<>(BpmTaskConvert.INSTANCE.convertList(tasks, processInstanceMap, userMap),
  155 + return new PageResult<>(BpmTaskConvert.INSTANCE.convertList1(tasks, processInstanceMap, userMap),
159 156 taskQuery.count());
160 157 }
161 158  
... ...