Commit 074146c99133bcbdb5c72a7c8f39767db0d7a2fa
1 parent
62a1fa82
【代码评审】BPM:触发器 HTTP 异步
Showing
3 changed files
with
6 additions
and
7 deletions
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); |