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

This commit is contained in:
YunaiV 2025-02-27 09:56:34 +08:00
parent 62a1fa8296
commit 074146c991
3 changed files with 6 additions and 7 deletions

View File

@ -16,8 +16,9 @@ import java.util.Arrays;
@AllArgsConstructor @AllArgsConstructor
public enum BpmTriggerTypeEnum implements ArrayValuable<Integer> { public enum BpmTriggerTypeEnum implements ArrayValuable<Integer> {
HTTP_REQUEST(1, "发起 HTTP 请求"), HTTP_REQUEST(1, "发起 HTTP 请求"), // BPM => 业务流程继续执行无需等待业务
HTTP_CALLBACK(2, "发起 HTTP 回调"), HTTP_CALLBACK(2, "接收 HTTP 回调"), // BPM => 业务 => BPM流程卡主等待业务回调
FORM_UPDATE(10, "更新流程表单数据"), FORM_UPDATE(10, "更新流程表单数据"),
FORM_DELETE(11, "删除流程表单数据"), FORM_DELETE(11, "删除流程表单数据"),
; ;

View File

@ -25,7 +25,6 @@ import org.springframework.util.MultiValueMap;
import java.util.*; import java.util.*;
import static cn.iocoder.yudao.module.bpm.enums.definition.BpmTriggerTypeEnum.HTTP_CALLBACK;
import static cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmnModelConstants.*; import static cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmnModelConstants.*;
import static cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils.*; import static cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils.*;
import static java.util.Arrays.asList; import static java.util.Arrays.asList;
@ -737,13 +736,12 @@ public class SimpleModelUtils {
public static class TriggerNodeConvert implements NodeConvert { public static class TriggerNodeConvert implements NodeConvert {
// TODO @芋艿回调在看看
@Override @Override
public List<? extends FlowElement> convertList(BpmSimpleModelNodeVO node) { public List<? extends FlowElement> convertList(BpmSimpleModelNodeVO node) {
Assert.notNull(node.getTriggerSetting(), "触发器节点设置不能为空"); Assert.notNull(node.getTriggerSetting(), "触发器节点设置不能为空");
List<FlowElement> flowElements = new ArrayList<>(2); List<FlowElement> flowElements = new ArrayList<>(2);
// HTTP 回调请求需要附加一个 ReceiveTask发起请求后等待回调执行 // HTTP 回调请求需要附加一个 ReceiveTask发起请求后等待回调执行
if (HTTP_CALLBACK.getType().equals(node.getTriggerSetting().getType())) { if (BpmTriggerTypeEnum.HTTP_CALLBACK.getType().equals(node.getTriggerSetting().getType())) {
Assert.notNull(node.getTriggerSetting().getHttpRequestSetting(), "触发器 HTTP 回调请求设置不能为空"); Assert.notNull(node.getTriggerSetting().getHttpRequestSetting(), "触发器 HTTP 回调请求设置不能为空");
ReceiveTask receiveTask = new ReceiveTask(); ReceiveTask receiveTask = new ReceiveTask();
receiveTask.setId("Activity_" + IdUtil.fastUUID()); receiveTask.setId("Activity_" + IdUtil.fastUUID());

View File

@ -42,8 +42,8 @@ public class BpmHttpCallbackTrigger extends BpmAbstractHttpRequestTrigger {
MultiValueMap<String, String> headers = buildHttpHeaders(processInstance, setting.getHeader()); MultiValueMap<String, String> headers = buildHttpHeaders(processInstance, setting.getHeader());
// 2.2 设置请求体 // 2.2 设置请求体
MultiValueMap<String, String> body = buildHttpBody(processInstance, setting.getBody()); MultiValueMap<String, String> body = buildHttpBody(processInstance, setting.getBody());
// TODO @芋艿回调在看看 // 重要回调请求 taskDefineKey 需要传给被调用方用于回调执行
body.add("callbackId", setting.getCallbackTaskDefineKey()); // 回调请求 callbackId 需要传给被调用方用于回调执行 body.add("taskDefineKey", setting.getCallbackTaskDefineKey());
// 3. 发起请求 // 3. 发起请求
sendHttpRequest(setting.getUrl(), headers, body); sendHttpRequest(setting.getUrl(), headers, body);