Commit 3c0b9262d7498891d8934d1c347219661936f597
1 parent
35f0d689
【代码评审】BPM:触发器 HTTP 异步
Showing
8 changed files
with
12 additions
and
8 deletions
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessTaskApi.java
| ... | ... | @@ -9,7 +9,6 @@ import jakarta.validation.constraints.NotEmpty; |
| 9 | 9 | */ |
| 10 | 10 | public interface BpmProcessTaskApi { |
| 11 | 11 | |
| 12 | - | |
| 13 | 12 | /** |
| 14 | 13 | * 触发流程任务的执行 |
| 15 | 14 | * |
| ... | ... | @@ -18,4 +17,5 @@ public interface BpmProcessTaskApi { |
| 18 | 17 | */ |
| 19 | 18 | void triggerTask(@NotEmpty(message = "流程实例的编号不能为空") String processInstanceId, |
| 20 | 19 | @NotEmpty(message = "任务 Key 不能为空") String taskDefineKey); |
| 20 | + | |
| 21 | 21 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmTriggerTypeEnum.java
| ... | ... | @@ -19,7 +19,7 @@ public enum BpmTriggerTypeEnum implements ArrayValuable<Integer> { |
| 19 | 19 | HTTP_REQUEST(1, "发起 HTTP 请求"), |
| 20 | 20 | FORM_UPDATE(2, "更新流程表单数据"), |
| 21 | 21 | FORM_DELETE(3, "删除流程表单数据"), |
| 22 | - HTTP_REQUEST_ASYNC(4, "发起异步 HTTP 请求"); | |
| 22 | + HTTP_REQUEST_ASYNC(4, "发起异步 HTTP 请求"); // TODO @jason:发起 HTTP 回调 | |
| 23 | 23 | |
| 24 | 24 | /** |
| 25 | 25 | * 触发器执行动作类型 | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessInstanceApiImpl.java
| ... | ... | @@ -24,4 +24,5 @@ public class BpmProcessInstanceApiImpl implements BpmProcessInstanceApi { |
| 24 | 24 | public String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqDTO reqDTO) { |
| 25 | 25 | return processInstanceService.createProcessInstance(userId, reqDTO); |
| 26 | 26 | } |
| 27 | + | |
| 27 | 28 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessTaskApiImpl.java
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java
| ... | ... | @@ -743,14 +743,15 @@ public class SimpleModelUtils { |
| 743 | 743 | // 异步 HTTP 请求。需要附加一个 ReceiveTask、发起请求后、等待回调执行 |
| 744 | 744 | if (HTTP_REQUEST_ASYNC.getType().equals(node.getTriggerSetting().getType())) { |
| 745 | 745 | Assert.notNull(node.getTriggerSetting().getHttpRequestSetting(), "触发器 HTTP 请求设置不能为空"); |
| 746 | - String attachNodeId = "Activity_" + IdUtil.fastUUID(); | |
| 747 | 746 | ReceiveTask receiveTask = new ReceiveTask(); |
| 748 | - receiveTask.setId(attachNodeId); | |
| 747 | + receiveTask.setId("Activity_" + IdUtil.fastUUID()); | |
| 749 | 748 | receiveTask.setName("异步 HTTP 请求"); |
| 750 | - node.setAttachNodeId(attachNodeId); | |
| 751 | - node.getTriggerSetting().getHttpRequestSetting().setCallbackTaskDefineKey(attachNodeId); // 设置 callbackTaskDefineKey | |
| 749 | + node.setAttachNodeId(receiveTask.getId()); | |
| 752 | 750 | flowElements.add(receiveTask); |
| 751 | + // 重要:设置 callbackTaskDefineKey,用于 HTTP 回调 | |
| 752 | + node.getTriggerSetting().getHttpRequestSetting().setCallbackTaskDefineKey(receiveTask.getId()); | |
| 753 | 753 | } |
| 754 | + | |
| 754 | 755 | // 触发器使用 ServiceTask 来实现 |
| 755 | 756 | ServiceTask serviceTask = new ServiceTask(); |
| 756 | 757 | serviceTask.setId(node.getId()); | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java
| ... | ... | @@ -1340,8 +1340,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { |
| 1340 | 1340 | .activityId(taskDefineKey) |
| 1341 | 1341 | .singleResult(); |
| 1342 | 1342 | if (execution == null) { |
| 1343 | - log.error("[triggerReceiveTask][processInstanceId({}) activityId({}) 没有找到执行活动]", | |
| 1344 | - processInstanceId, taskDefineKey); | |
| 1343 | + log.error("[triggerTask][processInstanceId({}) activityId({}) 没有找到执行活动]", processInstanceId, taskDefineKey); | |
| 1345 | 1344 | return; |
| 1346 | 1345 | } |
| 1347 | 1346 | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/trigger/http/BpmAsyncHttpRequestTrigger.java