Commit 84bf1c3b904f19658e7984ec018dff02e187fde0
1 parent
2bc25223
【功能调整】工作流:工作流程的流转记录,不区分父子任务
Showing
2 changed files
with
8 additions
and
29 deletions
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java
| @@ -8,7 +8,6 @@ import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*; | @@ -8,7 +8,6 @@ import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*; | ||
| 8 | import cn.iocoder.yudao.module.bpm.convert.task.BpmTaskConvert; | 8 | import cn.iocoder.yudao.module.bpm.convert.task.BpmTaskConvert; |
| 9 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; | 9 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; |
| 10 | import cn.iocoder.yudao.module.bpm.service.definition.BpmFormService; | 10 | import cn.iocoder.yudao.module.bpm.service.definition.BpmFormService; |
| 11 | -import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService; | ||
| 12 | import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; | 11 | import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; |
| 13 | import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService; | 12 | import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService; |
| 14 | import cn.iocoder.yudao.module.system.api.dept.DeptApi; | 13 | import cn.iocoder.yudao.module.system.api.dept.DeptApi; |
| @@ -20,7 +19,6 @@ import io.swagger.v3.oas.annotations.Parameter; | @@ -20,7 +19,6 @@ import io.swagger.v3.oas.annotations.Parameter; | ||
| 20 | import io.swagger.v3.oas.annotations.tags.Tag; | 19 | import io.swagger.v3.oas.annotations.tags.Tag; |
| 21 | import jakarta.annotation.Resource; | 20 | import jakarta.annotation.Resource; |
| 22 | import jakarta.validation.Valid; | 21 | import jakarta.validation.Valid; |
| 23 | -import org.flowable.bpmn.model.BpmnModel; | ||
| 24 | import org.flowable.bpmn.model.UserTask; | 22 | import org.flowable.bpmn.model.UserTask; |
| 25 | import org.flowable.engine.history.HistoricProcessInstance; | 23 | import org.flowable.engine.history.HistoricProcessInstance; |
| 26 | import org.flowable.engine.runtime.ProcessInstance; | 24 | import org.flowable.engine.runtime.ProcessInstance; |
| @@ -30,7 +28,10 @@ import org.springframework.security.access.prepost.PreAuthorize; | @@ -30,7 +28,10 @@ import org.springframework.security.access.prepost.PreAuthorize; | ||
| 30 | import org.springframework.validation.annotation.Validated; | 28 | import org.springframework.validation.annotation.Validated; |
| 31 | import org.springframework.web.bind.annotation.*; | 29 | import org.springframework.web.bind.annotation.*; |
| 32 | 30 | ||
| 33 | -import java.util.*; | 31 | +import java.util.Collections; |
| 32 | +import java.util.List; | ||
| 33 | +import java.util.Map; | ||
| 34 | +import java.util.Set; | ||
| 34 | import java.util.stream.Stream; | 35 | import java.util.stream.Stream; |
| 35 | 36 | ||
| 36 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 37 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| @@ -49,8 +50,6 @@ public class BpmTaskController { | @@ -49,8 +50,6 @@ public class BpmTaskController { | ||
| 49 | private BpmProcessInstanceService processInstanceService; | 50 | private BpmProcessInstanceService processInstanceService; |
| 50 | @Resource | 51 | @Resource |
| 51 | private BpmFormService formService; | 52 | private BpmFormService formService; |
| 52 | - @Resource | ||
| 53 | - private BpmProcessDefinitionService bpmProcessDefinitionService; | ||
| 54 | 53 | ||
| 55 | @Resource | 54 | @Resource |
| 56 | private AdminUserApi adminUserApi; | 55 | private AdminUserApi adminUserApi; |
| @@ -135,10 +134,8 @@ public class BpmTaskController { | @@ -135,10 +134,8 @@ public class BpmTaskController { | ||
| 135 | // 获得 Form Map | 134 | // 获得 Form Map |
| 136 | Map<Long, BpmFormDO> formMap = formService.getFormMap( | 135 | Map<Long, BpmFormDO> formMap = formService.getFormMap( |
| 137 | convertSet(taskList, task -> NumberUtils.parseLong(task.getFormKey()))); | 136 | convertSet(taskList, task -> NumberUtils.parseLong(task.getFormKey()))); |
| 138 | - // 获得 BpmnModel | ||
| 139 | - BpmnModel bpmnModel = bpmProcessDefinitionService.getProcessDefinitionBpmnModel(processInstance.getProcessDefinitionId()); | ||
| 140 | return success(BpmTaskConvert.INSTANCE.buildTaskListByProcessInstanceId(taskList, processInstance, | 137 | return success(BpmTaskConvert.INSTANCE.buildTaskListByProcessInstanceId(taskList, processInstance, |
| 141 | - formMap, userMap, deptMap, bpmnModel)); | 138 | + formMap, userMap, deptMap)); |
| 142 | } | 139 | } |
| 143 | 140 | ||
| 144 | @PutMapping("/approve") | 141 | @PutMapping("/approve") |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmTaskConvert.java
| @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.bpm.convert.task; | @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.bpm.convert.task; | ||
| 2 | 2 | ||
| 3 | import cn.hutool.core.collection.CollUtil; | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | import cn.hutool.core.map.MapUtil; | 4 | import cn.hutool.core.map.MapUtil; |
| 5 | -import cn.hutool.core.util.StrUtil; | ||
| 6 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 7 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | 6 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| 8 | import cn.iocoder.yudao.framework.common.util.number.NumberUtils; | 7 | import cn.iocoder.yudao.framework.common.util.number.NumberUtils; |
| @@ -10,13 +9,10 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | @@ -10,13 +9,10 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||
| 10 | import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceRespVO; | 9 | import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceRespVO; |
| 11 | import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO; | 10 | import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO; |
| 12 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; | 11 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; |
| 13 | -import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; | ||
| 14 | -import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils; | ||
| 15 | import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.FlowableUtils; | 12 | import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.FlowableUtils; |
| 16 | import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO; | 13 | import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO; |
| 17 | import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; | 14 | import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; |
| 18 | import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; | 15 | import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; |
| 19 | -import org.flowable.bpmn.model.BpmnModel; | ||
| 20 | import org.flowable.engine.history.HistoricProcessInstance; | 16 | import org.flowable.engine.history.HistoricProcessInstance; |
| 21 | import org.flowable.engine.runtime.ProcessInstance; | 17 | import org.flowable.engine.runtime.ProcessInstance; |
| 22 | import org.flowable.task.api.Task; | 18 | import org.flowable.task.api.Task; |
| @@ -29,7 +25,7 @@ import java.util.Date; | @@ -29,7 +25,7 @@ import java.util.Date; | ||
| 29 | import java.util.List; | 25 | import java.util.List; |
| 30 | import java.util.Map; | 26 | import java.util.Map; |
| 31 | 27 | ||
| 32 | -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*; | 28 | +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; |
| 33 | import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen; | 29 | import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen; |
| 34 | 30 | ||
| 35 | /** | 31 | /** |
| @@ -85,9 +81,8 @@ public interface BpmTaskConvert { | @@ -85,9 +81,8 @@ public interface BpmTaskConvert { | ||
| 85 | HistoricProcessInstance processInstance, | 81 | HistoricProcessInstance processInstance, |
| 86 | Map<Long, BpmFormDO> formMap, | 82 | Map<Long, BpmFormDO> formMap, |
| 87 | Map<Long, AdminUserRespDTO> userMap, | 83 | Map<Long, AdminUserRespDTO> userMap, |
| 88 | - Map<Long, DeptRespDTO> deptMap, | ||
| 89 | - BpmnModel bpmnModel) { | ||
| 90 | - List<BpmTaskRespVO> taskVOList = CollectionUtils.convertList(taskList, task -> { | 84 | + Map<Long, DeptRespDTO> deptMap) { |
| 85 | + return CollectionUtils.convertList(taskList, task -> { | ||
| 91 | BpmTaskRespVO taskVO = BeanUtils.toBean(task, BpmTaskRespVO.class); | 86 | BpmTaskRespVO taskVO = BeanUtils.toBean(task, BpmTaskRespVO.class); |
| 92 | Integer taskStatus = FlowableUtils.getTaskStatus(task); | 87 | Integer taskStatus = FlowableUtils.getTaskStatus(task); |
| 93 | taskVO.setStatus(taskStatus).setReason(FlowableUtils.getTaskReason(task)); | 88 | taskVO.setStatus(taskStatus).setReason(FlowableUtils.getTaskReason(task)); |
| @@ -104,21 +99,8 @@ public interface BpmTaskConvert { | @@ -104,21 +99,8 @@ public interface BpmTaskConvert { | ||
| 104 | // 用户信息 | 99 | // 用户信息 |
| 105 | buildTaskAssignee(taskVO, task.getAssignee(), userMap, deptMap); | 100 | buildTaskAssignee(taskVO, task.getAssignee(), userMap, deptMap); |
| 106 | buildTaskOwner(taskVO, task.getOwner(), userMap, deptMap); | 101 | buildTaskOwner(taskVO, task.getOwner(), userMap, deptMap); |
| 107 | - if (BpmTaskStatusEnum.RUNNING.getStatus().equals(taskStatus)) { | ||
| 108 | - // 操作按钮设置 | ||
| 109 | - taskVO.setButtonsSetting(BpmnModelUtils.parseButtonsSetting(bpmnModel, task.getTaskDefinitionKey())); | ||
| 110 | - } | ||
| 111 | return taskVO; | 102 | return taskVO; |
| 112 | }); | 103 | }); |
| 113 | - | ||
| 114 | - // 拼接父子关系 | ||
| 115 | - Map<String, List<BpmTaskRespVO>> childrenTaskMap = convertMultiMap( | ||
| 116 | - filterList(taskVOList, r -> StrUtil.isNotEmpty(r.getParentTaskId())), | ||
| 117 | - BpmTaskRespVO::getParentTaskId); | ||
| 118 | - for (BpmTaskRespVO taskVO : taskVOList) { | ||
| 119 | - taskVO.setChildren(childrenTaskMap.get(taskVO.getId())); | ||
| 120 | - } | ||
| 121 | - return filterList(taskVOList, r -> StrUtil.isEmpty(r.getParentTaskId())); | ||
| 122 | } | 104 | } |
| 123 | 105 | ||
| 124 | default List<BpmTaskRespVO> buildTaskListByParentTaskId(List<Task> taskList, | 106 | default List<BpmTaskRespVO> buildTaskListByParentTaskId(List<Task> taskList, |