Commit 23eda6b1a90e7688bc804953103b4e2020ec5198
1 parent
a4d31f9c
新增 bpm 基于流程实例查询任务列表
Showing
2 changed files
with
31 additions
and
40 deletions
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 | ... | ... |