【代码评审】BPM:触发器 HTTP 异步
This commit is contained in:
parent
62a1fa8296
commit
074146c991
|
@ -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, "删除流程表单数据"),
|
||||||
;
|
;
|
||||||
|
|
|
@ -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());
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue