Commit 76d8906748839807cc50261bcb79b09a73aadca8
1 parent
97cec289
fix: [BPM 工作流] 获取下个审批任务节点问题修复。
Showing
1 changed file
with
5 additions
and
1 deletions
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java
| ... | ... | @@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil; |
| 6 | 6 | import cn.hutool.core.lang.Assert; |
| 7 | 7 | import cn.hutool.core.util.*; |
| 8 | 8 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 9 | +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | |
| 9 | 10 | import cn.iocoder.yudao.framework.common.util.date.DateUtils; |
| 10 | 11 | import cn.iocoder.yudao.framework.common.util.json.JsonUtils; |
| 11 | 12 | import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; |
| ... | ... | @@ -66,6 +67,7 @@ import java.util.*; |
| 66 | 67 | |
| 67 | 68 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 68 | 69 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*; |
| 70 | +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; | |
| 69 | 71 | import static cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmApprovalDetailRespVO.ActivityNode; |
| 70 | 72 | import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*; |
| 71 | 73 | import static cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmnModelConstants.START_USER_NODE_ID; |
| ... | ... | @@ -263,7 +265,9 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService |
| 263 | 265 | // 3. 获取下一个将要执行的节点集合 |
| 264 | 266 | FlowElement flowElement = bpmnModel.getFlowElement(task.getTaskDefinitionKey()); |
| 265 | 267 | List<FlowNode> nextFlowNodes = BpmnModelUtils.getNextFlowNodes(flowElement, bpmnModel, processVariables); |
| 266 | - List<ActivityNode> nextActivityNodes = convertList(nextFlowNodes, node -> new ActivityNode().setId(node.getId()) | |
| 268 | + // 仅仅获取 UserTask 节点 TODO:如果网关节点和网关节点相连,获取下个 UserTask. 貌似有点不准。 | |
| 269 | + List<FlowNode> nextUserTaskList = CollectionUtils.filterList(nextFlowNodes, node -> node instanceof UserTask); | |
| 270 | + List<ActivityNode> nextActivityNodes = convertList(nextUserTaskList, node -> new ActivityNode().setId(node.getId()) | |
| 267 | 271 | .setName(node.getName()).setNodeType(BpmSimpleModelNodeTypeEnum.APPROVE_NODE.getType()) |
| 268 | 272 | .setStatus(BpmTaskStatusEnum.RUNNING.getStatus()) |
| 269 | 273 | .setCandidateStrategy(BpmnModelUtils.parseCandidateStrategy(node)) | ... | ... |