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,27 +29,21 @@ public interface BpmTaskConvert {
29 29
30 BpmTaskConvert INSTANCE = Mappers.getMapper(BpmTaskConvert.class); 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 return CollectionUtils.convertList(tasks, task -> { 34 return CollectionUtils.convertList(tasks, task -> {
  35 + BpmTaskTodoPageItemRespVO respVO = convert1(task);
35 ProcessInstance processInstance = processInstanceMap.get(task.getProcessInstanceId()); 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 @Named("convertSuspendedToSuspensionState") 48 @Named("convertSuspendedToSuspensionState")
55 default Integer convertSuspendedToSuspensionState(boolean suspended) { 49 default Integer convertSuspendedToSuspensionState(boolean suspended) {
@@ -61,29 +55,19 @@ public interface BpmTaskConvert { @@ -61,29 +55,19 @@ public interface BpmTaskConvert {
61 Map<String, HistoricProcessInstance> historicProcessInstanceMap, 55 Map<String, HistoricProcessInstance> historicProcessInstanceMap,
62 Map<Long, SysUserDO> userMap) { 56 Map<Long, SysUserDO> userMap) {
63 return CollectionUtils.convertList(tasks, task -> { 57 return CollectionUtils.convertList(tasks, task -> {
  58 + BpmTaskDonePageItemRespVO respVO = convert2(task);
64 BpmTaskExtDO taskExtDO = bpmTaskExtDOMap.get(task.getId()); 59 BpmTaskExtDO taskExtDO = bpmTaskExtDOMap.get(task.getId());
  60 + copyTo(taskExtDO, respVO);
65 HistoricProcessInstance processInstance = historicProcessInstanceMap.get(task.getProcessInstanceId()); 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 @Mappings({ 72 @Mappings({
89 @Mapping(source = "id", target = "taskId"), 73 @Mapping(source = "id", target = "taskId"),
@@ -98,7 +82,7 @@ public interface BpmTaskConvert { @@ -98,7 +82,7 @@ public interface BpmTaskConvert {
98 return CollectionUtils.convertList(tasks, task -> { 82 return CollectionUtils.convertList(tasks, task -> {
99 BpmTaskRespVO respVO = convert3(task); 83 BpmTaskRespVO respVO = convert3(task);
100 BpmTaskExtDO taskExtDO = bpmTaskExtDOMap.get(task.getId()); 84 BpmTaskExtDO taskExtDO = bpmTaskExtDOMap.get(task.getId());
101 - copyTo3(taskExtDO, respVO); 85 + copyTo(taskExtDO, respVO);
102 if (processInstance != null) { 86 if (processInstance != null) {
103 SysUserDO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId())); 87 SysUserDO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
104 respVO.setProcessInstance(convert(processInstance, startUser)); 88 respVO.setProcessInstance(convert(processInstance, startUser));
@@ -117,7 +101,17 @@ public interface BpmTaskConvert { @@ -117,7 +101,17 @@ public interface BpmTaskConvert {
117 101
118 BpmTaskRespVO convert3(HistoricTaskInstance bean); 102 BpmTaskRespVO convert3(HistoricTaskInstance bean);
119 BpmTaskRespVO.User convert3(SysUserDO bean); 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 @Mappings({ 116 @Mappings({
123 @Mapping(source = "processInstance.id", target = "id"), 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,7 +2,6 @@ package cn.iocoder.yudao.adminserver.modules.bpm.service.task.impl;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.io.IoUtil; 4 import cn.hutool.core.io.IoUtil;
5 -import cn.hutool.core.util.NumberUtil;  
6 import cn.hutool.core.util.StrUtil; 5 import cn.hutool.core.util.StrUtil;
7 import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.*; 6 import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.*;
8 import cn.iocoder.yudao.adminserver.modules.bpm.convert.task.BpmTaskConvert; 7 import cn.iocoder.yudao.adminserver.modules.bpm.convert.task.BpmTaskConvert;
@@ -34,7 +33,6 @@ import org.activiti.engine.history.HistoricTaskInstance; @@ -34,7 +33,6 @@ import org.activiti.engine.history.HistoricTaskInstance;
34 import org.activiti.engine.history.HistoricTaskInstanceQuery; 33 import org.activiti.engine.history.HistoricTaskInstanceQuery;
35 import org.activiti.engine.repository.ProcessDefinition; 34 import org.activiti.engine.repository.ProcessDefinition;
36 import org.activiti.engine.runtime.ProcessInstance; 35 import org.activiti.engine.runtime.ProcessInstance;
37 -import org.activiti.engine.task.Comment;  
38 import org.activiti.engine.task.Task; 36 import org.activiti.engine.task.Task;
39 import org.activiti.engine.task.TaskQuery; 37 import org.activiti.engine.task.TaskQuery;
40 import org.activiti.image.ProcessDiagramGenerator; 38 import org.activiti.image.ProcessDiagramGenerator;
@@ -48,7 +46,6 @@ import javax.validation.Valid; @@ -48,7 +46,6 @@ import javax.validation.Valid;
48 import java.io.IOException; 46 import java.io.IOException;
49 import java.io.InputStream; 47 import java.io.InputStream;
50 import java.util.*; 48 import java.util.*;
51 -import java.util.function.Function;  
52 49
53 import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.*; 50 import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.*;
54 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 51 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -155,7 +152,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -155,7 +152,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
155 Map<Long, SysUserDO> userMap = userService.getUserMap( 152 Map<Long, SysUserDO> userMap = userService.getUserMap(
156 convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId()))); 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 taskQuery.count()); 156 taskQuery.count());
160 } 157 }
161 158