feat(pigx-flow-biz): 实现触发器节点功能

- 在 NodeFormatUtil 中新增 TRIGGER 节点类型处理逻辑
- 重构 ModelUtil 中的 buildSimpleServiceTaskNode 通用方法,支持构建服务任务节点
- 新增 buildTriggerNode 方法,使用 TriggerServiceTask 处理触发器逻辑
- 新增 TriggerServiceTask 组件,支持调用外部 HTTP 接口并处理返回值映射
- 支持配置请求头、请求体和返回值映射到表单字段
- 提供异常处理机制,支持抛出异常或终止流程两种策略
This commit is contained in:
PIGCLOUD committed 2026-03-08 15:06:36 +08:00
1 parent b28d86cb59
commit 325f58996d
8 files changed
+307 -15

No files matched your search

@@ -36,7 +36,12 @@ public enum NodeTypeEnum {
* 抄送节点 - 仅用于通知,不阻塞流程执行,抄送人只需查看无需审批
*/
CC("抄送节点", 2, false),
/**
* 触发器节点 - 调用外部HTTP接口,支持传递表单数据并将返回值映射回流程变量
*/
TRIGGER("触发器", 11, false),
/**
* 条件分支 - 根据表单数据或表达式判断流程走向,只会选择一条分支执行
*/
@@ -160,4 +160,9 @@ public class Node {
*/
private TimerConfig timerConfig;
/**
* 触发器配置
*/
private TriggerConfig triggerConfig;
}
@@ -0,0 +1,28 @@
package com.pig4cloud.pigx.flow.dto;
import lombok.Data;
import java.util.List;
/**
* 触发器节点配置
*
* @author pigx
*/
@Data
public class TriggerConfig {
private String url;
private List<TriggerParam> headers;
private List<TriggerParam> body;
private List<TriggerReturnMapping> returnMapping;
/**
* 异常处理方式: THROW(抛出异常) | TERMINATE(终止流程)
*/
private String errorHandler;
}
@@ -0,0 +1,23 @@
package com.pig4cloud.pigx.flow.dto;
import lombok.Data;
/**
* 触发器请求参数
*
* @author pigx
*/
@Data
public class TriggerParam {
private String key;
private Boolean useForm;
private String formFieldId;
private String formFieldName;
private String value;
}
@@ -0,0 +1,19 @@
package com.pig4cloud.pigx.flow.dto;
import lombok.Data;
/**
* 触发器返回值映射
*
* @author pigx
*/
@Data
public class TriggerReturnMapping {
private String formFieldId;
private String formFieldName;
private String responseKey;
}