Commit 074146c99133bcbdb5c72a7c8f39767db0d7a2fa

Authored by YunaiV
1 parent 62a1fa82

【代码评审】BPM:触发器 HTTP 异步

yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmTriggerTypeEnum.java
@@ -16,8 +16,9 @@ import java.util.Arrays; @@ -16,8 +16,9 @@ import java.util.Arrays;
16 @AllArgsConstructor 16 @AllArgsConstructor
17 public enum BpmTriggerTypeEnum implements ArrayValuable<Integer> { 17 public enum BpmTriggerTypeEnum implements ArrayValuable<Integer> {
18 18
19 - HTTP_REQUEST(1, "发起 HTTP 请求"),  
20 - HTTP_CALLBACK(2, "发起 HTTP 回调"), 19 + HTTP_REQUEST(1, "发起 HTTP 请求"), // BPM => 业务,流程继续执行,无需等待业务
  20 + HTTP_CALLBACK(2, "接收 HTTP 回调"), // BPM => 业务 => BPM,流程卡主,等待业务回调
  21 +
21 FORM_UPDATE(10, "更新流程表单数据"), 22 FORM_UPDATE(10, "更新流程表单数据"),
22 FORM_DELETE(11, "删除流程表单数据"), 23 FORM_DELETE(11, "删除流程表单数据"),
23 ; 24 ;
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java
@@ -25,7 +25,6 @@ import org.springframework.util.MultiValueMap; @@ -25,7 +25,6 @@ import org.springframework.util.MultiValueMap;
25 25
26 import java.util.*; 26 import java.util.*;
27 27
28 -import static cn.iocoder.yudao.module.bpm.enums.definition.BpmTriggerTypeEnum.HTTP_CALLBACK;  
29 import static cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmnModelConstants.*; 28 import static cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmnModelConstants.*;
30 import static cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils.*; 29 import static cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils.*;
31 import static java.util.Arrays.asList; 30 import static java.util.Arrays.asList;
@@ -737,13 +736,12 @@ public class SimpleModelUtils { @@ -737,13 +736,12 @@ public class SimpleModelUtils {
737 736
738 public static class TriggerNodeConvert implements NodeConvert { 737 public static class TriggerNodeConvert implements NodeConvert {
739 738
740 - // TODO @芋艿:【回调】在看看  
741 @Override 739 @Override
742 public List<? extends FlowElement> convertList(BpmSimpleModelNodeVO node) { 740 public List<? extends FlowElement> convertList(BpmSimpleModelNodeVO node) {
743 Assert.notNull(node.getTriggerSetting(), "触发器节点设置不能为空"); 741 Assert.notNull(node.getTriggerSetting(), "触发器节点设置不能为空");
744 List<FlowElement> flowElements = new ArrayList<>(2); 742 List<FlowElement> flowElements = new ArrayList<>(2);
745 // HTTP 回调请求。需要附加一个 ReceiveTask、发起请求后、等待回调执行 743 // HTTP 回调请求。需要附加一个 ReceiveTask、发起请求后、等待回调执行
746 - if (HTTP_CALLBACK.getType().equals(node.getTriggerSetting().getType())) { 744 + if (BpmTriggerTypeEnum.HTTP_CALLBACK.getType().equals(node.getTriggerSetting().getType())) {
747 Assert.notNull(node.getTriggerSetting().getHttpRequestSetting(), "触发器 HTTP 回调请求设置不能为空"); 745 Assert.notNull(node.getTriggerSetting().getHttpRequestSetting(), "触发器 HTTP 回调请求设置不能为空");
748 ReceiveTask receiveTask = new ReceiveTask(); 746 ReceiveTask receiveTask = new ReceiveTask();
749 receiveTask.setId("Activity_" + IdUtil.fastUUID()); 747 receiveTask.setId("Activity_" + IdUtil.fastUUID());
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/trigger/http/BpmHttpCallbackTrigger.java
@@ -42,8 +42,8 @@ public class BpmHttpCallbackTrigger extends BpmAbstractHttpRequestTrigger { @@ -42,8 +42,8 @@ public class BpmHttpCallbackTrigger extends BpmAbstractHttpRequestTrigger {
42 MultiValueMap<String, String> headers = buildHttpHeaders(processInstance, setting.getHeader()); 42 MultiValueMap<String, String> headers = buildHttpHeaders(processInstance, setting.getHeader());
43 // 2.2 设置请求体 43 // 2.2 设置请求体
44 MultiValueMap<String, String> body = buildHttpBody(processInstance, setting.getBody()); 44 MultiValueMap<String, String> body = buildHttpBody(processInstance, setting.getBody());
45 - // TODO @芋艿:【回调】在看看  
46 - body.add("callbackId", setting.getCallbackTaskDefineKey()); // 回调请求 callbackId 需要传给被调用方,用于回调执行 45 + // 重要:回调请求 taskDefineKey 需要传给被调用方,用于回调执行
  46 + body.add("taskDefineKey", setting.getCallbackTaskDefineKey());
47 47
48 // 3. 发起请求 48 // 3. 发起请求
49 sendHttpRequest(setting.getUrl(), headers, body); 49 sendHttpRequest(setting.getUrl(), headers, body);