From 0565db2f2d5b09edc4dcf935db7ec384a5d363c4 Mon Sep 17 00:00:00 2001 From: jason <2667446@qq.com> Date: Thu, 27 Feb 2025 06:40:02 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BB=A3=E7=A0=81=E8=AF=84=E5=AE=A1?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E3=80=91=20=E5=BC=82=E6=AD=A5=20http=20?= =?UTF-8?q?=E8=A7=A6=E5=8F=91=E5=99=A8=E4=BF=AE=E6=94=B9=E4=B8=BA=20Http?= =?UTF-8?q?=20=E5=9B=9E=E8=B0=83=E8=A7=A6=E5=8F=91=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bpm/enums/definition/BpmTriggerTypeEnum.java | 7 ++++--- .../vo/model/simple/BpmSimpleModelNodeVO.java | 4 ++-- .../flowable/core/util/SimpleModelUtils.java | 14 +++++++------- .../module/bpm/service/task/BpmTaskService.java | 3 ++- ...estTrigger.java => BpmHttpCallbackTrigger.java} | 13 ++++++------- 5 files changed, 21 insertions(+), 20 deletions(-) rename yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/trigger/http/{BpmAsyncHttpRequestTrigger.java => BpmHttpCallbackTrigger.java} (79%) diff --git a/yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmTriggerTypeEnum.java b/yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmTriggerTypeEnum.java index 78e7079c86..c1aaae3437 100644 --- a/yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmTriggerTypeEnum.java +++ b/yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmTriggerTypeEnum.java @@ -17,9 +17,10 @@ import java.util.Arrays; public enum BpmTriggerTypeEnum implements ArrayValuable { HTTP_REQUEST(1, "发起 HTTP 请求"), - FORM_UPDATE(2, "更新流程表单数据"), - FORM_DELETE(3, "删除流程表单数据"), - HTTP_REQUEST_ASYNC(4, "发起异步 HTTP 请求"); // TODO @jason:发起 HTTP 回调 + HTTP_CALLBACK(2, "发起 HTTP 回调"), + FORM_UPDATE(10, "更新流程表单数据"), + FORM_DELETE(11, "删除流程表单数据"), + ; /** * 触发器执行动作类型 diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java index 5dab8309d4..5c3950d19a 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java @@ -128,7 +128,7 @@ public class BpmSimpleModelNodeVO { @Schema(description = "附加节点 Id", example = "UserTask_xxx", hidden = true) // 由后端生成(不从前端传递),所以 hidden = true @JsonIgnore - private String attachNodeId; // 目前用于触发器节点(异步)。需要 UserTask 和 ReceiveTask(附加节点) 来完成 + private String attachNodeId; // 目前用于触发器节点(HTTP 回调)。需要 UserTask 和 ReceiveTask(附加节点) 来完成 /** * 子流程设置 @@ -390,7 +390,7 @@ public class BpmSimpleModelNodeVO { private List> response; /** - * 异步 Http 请求,需要指定回调任务 Key,用于回调执行 + * Http 回调请求,需要指定回调任务 Key,用于回调执行 */ @Schema(description = "回调任务 Key", example = "xxx", hidden = true) private String callbackTaskDefineKey; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java index d505cedf98..0c22dba334 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java @@ -25,7 +25,7 @@ import org.springframework.util.MultiValueMap; import java.util.*; -import static cn.iocoder.yudao.module.bpm.enums.definition.BpmTriggerTypeEnum.HTTP_REQUEST_ASYNC; +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.util.BpmnModelUtils.*; import static java.util.Arrays.asList; @@ -175,7 +175,7 @@ public class SimpleModelUtils { SequenceFlow sequenceFlow = buildBpmnSequenceFlow(node.getId(), finalTargetNodeId); process.addFlowElement(sequenceFlow); } else { - // 如果有附加节点:需要先建立和附加节点的连线,再建立附加节点和目标节点的连线。例如说,触发器节点(异步) + // 如果有附加节点:需要先建立和附加节点的连线,再建立附加节点和目标节点的连线。例如说,触发器节点(HTTP 回调) List sequenceFlows = buildAttachNodeSequenceFlow(node.getId(), node.getAttachNodeId(), finalTargetNodeId); sequenceFlows.forEach(process::addFlowElement); } @@ -735,17 +735,17 @@ public class SimpleModelUtils { public static class TriggerNodeConvert implements NodeConvert { - // TODO @芋艿:【异步】在看看 + // TODO @芋艿:【回调】在看看 @Override public List convertList(BpmSimpleModelNodeVO node) { Assert.notNull(node.getTriggerSetting(), "触发器节点设置不能为空"); List flowElements = new ArrayList<>(2); - // 异步 HTTP 请求。需要附加一个 ReceiveTask、发起请求后、等待回调执行 - if (HTTP_REQUEST_ASYNC.getType().equals(node.getTriggerSetting().getType())) { - Assert.notNull(node.getTriggerSetting().getHttpRequestSetting(), "触发器 HTTP 请求设置不能为空"); + // HTTP 回调请求。需要附加一个 ReceiveTask、发起请求后、等待回调执行 + if (HTTP_CALLBACK.getType().equals(node.getTriggerSetting().getType())) { + Assert.notNull(node.getTriggerSetting().getHttpRequestSetting(), "触发器 HTTP 回调请求设置不能为空"); ReceiveTask receiveTask = new ReceiveTask(); receiveTask.setId("Activity_" + IdUtil.fastUUID()); - receiveTask.setName("异步 HTTP 请求"); + receiveTask.setName("HTTP 回调"); node.setAttachNodeId(receiveTask.getId()); flowElements.add(receiveTask); // 重要:设置 callbackTaskDefineKey,用于 HTTP 回调 diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java index c38771df43..a40fadba75 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java @@ -287,11 +287,12 @@ public interface BpmTaskService { /** * 触发流程任务 (ReceiveTask) 的执行 *

- * 1. Simple 模型异步 HTTP 请求触发器节点的回调,触发流程继续执行 + * 1. Simple 模型 HTTP 回调请求触发器节点的回调,触发流程继续执行 * 2. Simple 模型延迟器节点,到时触发流程继续执行 * * @param processInstanceId 流程示例编号 * @param taskDefineKey 任务 Key */ void triggerTask(String processInstanceId, String taskDefineKey); + } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/trigger/http/BpmAsyncHttpRequestTrigger.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/trigger/http/BpmHttpCallbackTrigger.java similarity index 79% rename from yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/trigger/http/BpmAsyncHttpRequestTrigger.java rename to yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/trigger/http/BpmHttpCallbackTrigger.java index 404f7d24d7..f081ff82d3 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/trigger/http/BpmAsyncHttpRequestTrigger.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/trigger/http/BpmHttpCallbackTrigger.java @@ -10,22 +10,21 @@ import org.flowable.engine.runtime.ProcessInstance; import org.springframework.stereotype.Component; import org.springframework.util.MultiValueMap; -// TODO @jason:BpmHttpCallbackTrigger /** - * BPM 发送异步 HTTP 请求触发器 + * BPM HTTP 回调触发器 * * @author jason */ @Component @Slf4j -public class BpmAsyncHttpRequestTrigger extends BpmAbstractHttpRequestTrigger { +public class BpmHttpCallbackTrigger extends BpmAbstractHttpRequestTrigger { @Resource private BpmProcessInstanceService processInstanceService; @Override public BpmTriggerTypeEnum getType() { - return BpmTriggerTypeEnum.HTTP_REQUEST_ASYNC; + return BpmTriggerTypeEnum.HTTP_CALLBACK; } @Override @@ -34,7 +33,7 @@ public class BpmAsyncHttpRequestTrigger extends BpmAbstractHttpRequestTrigger { BpmSimpleModelNodeVO.TriggerSetting.HttpRequestTriggerSetting setting = JsonUtils.parseObject(param, BpmSimpleModelNodeVO.TriggerSetting.HttpRequestTriggerSetting.class); if (setting == null) { - log.error("[execute][流程({}) HTTP 异步触发器请求配置为空]", processInstanceId); + log.error("[execute][流程({}) HTTP 回调触发器配置为空]", processInstanceId); return; } @@ -43,8 +42,8 @@ public class BpmAsyncHttpRequestTrigger extends BpmAbstractHttpRequestTrigger { MultiValueMap headers = buildHttpHeaders(processInstance, setting.getHeader()); // 2.2 设置请求体 MultiValueMap body = buildHttpBody(processInstance, setting.getBody()); - // TODO @芋艿:【异步】在看看 - body.add("callbackId", setting.getCallbackTaskDefineKey()); // 异步请求 callbackId 需要传给被调用方,用于回调执行 + // TODO @芋艿:【回调】在看看 + body.add("callbackId", setting.getCallbackTaskDefineKey()); // 回调请求 callbackId 需要传给被调用方,用于回调执行 // 3. 发起请求 sendHttpRequest(setting.getUrl(), headers, body);