diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/NodeTypeEnums.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/NodeTypeEnums.java index e2c22696..aeb3d3ca 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/NodeTypeEnums.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/NodeTypeEnums.java @@ -9,31 +9,16 @@ import java.util.Arrays; /** * 工作流节点类型枚举 * 定义了工作流中所有可用的节点类型及其UI配置 - * - * 节点类型说明: - * 1. 事件类节点(Event):用于标记流程的开始和结束 - * 2. 任务类节点(Task):执行具体的业务操作 - * 3. 网关类节点(Gateway):控制流程的流转方向 - * 4. 容器类节点:包含子流程或调用其他流程 */ @Getter public enum NodeTypeEnums { /** - * 开始节点 - 流程的起点 - * 功能: - * - 标记流程的开始位置 - * - 可以定义流程启动条件 - * - 可以初始化流程变量 - * - * 使用场景: - * - 用户手动启动流程 - * - 定时触发流程 - * - 外部系统调用启动 - * - * 限制: - * - 每个流程必须有且仅有一个开始节点 + * 开始节点 + * 工作流的起点,每个流程必须有且仅有一个开始节点 + * 特点: * - 只能有出边,不能有入边 + * - 用于触发工作流的执行 */ START_EVENT("START_EVENT", "开始节点", new NodeUiConfig() .setShape("circle") @@ -42,20 +27,11 @@ public enum NodeTypeEnums { .setPorts(Arrays.asList("out"))), /** - * 结束节点 - 流程的终点 - * 功能: - * - 标记流程的结束位置 - * - 可以定义流程结束时的清理操作 - * - 可以设置流程结果和返回值 - * - * 使用场景: - * - 流程正常结束 - * - 流程异常终止 - * - 需要返回处理结果 - * - * 限制: - * - 每个流程必须有且仅有一个结束节点 + * 结束节点 + * 工作流的终点,每个流程必须有且仅有一个结束节点 + * 特点: * - 只能有入边,不能有出边 + * - 标志着工作流的结束 */ END_EVENT("END_EVENT", "结束节点", new NodeUiConfig() .setShape("circle") @@ -64,24 +40,12 @@ public enum NodeTypeEnums { .setPorts(Arrays.asList("in"))), /** - * 用户任务节点 - 需要人工处理的任务 - * 功能: - * - 分配任务给指定用户或角色 - * - 支持任务表单的填写 - * - 可以设置处理期限和提醒 - * - 支持任务的转办、委托、退回 - * - * 使用场景: - * - 审批流程 - * - 表单填写 - * - 人工审核 - * - 数据确认 - * - * 配置项: - * - 处理人/角色 - * - 表单定义 - * - 处理期限 - * - 催办规则 + * 用户任务节点 + * 需要人工处理的任务节点 + * 特点: + * - 需要用户交互 + * - 可以分配给特定用户或角色 + * - 支持审批、填写表单等操作 */ USER_TASK("USER_TASK", "用户任务", new NodeUiConfig() .setShape("rectangle") @@ -90,24 +54,12 @@ public enum NodeTypeEnums { .setPorts(Arrays.asList("in", "out"))), /** - * 服务任务节点 - 自动执行的系统服务 - * 功能: - * - 调用系统服务或外部接口 - * - 执行自动化操作 - * - 支持异步执行和结果回调 - * - 可以进行数据转换和处理 - * - * 使用场景: - * - 调用外部系统API - * - 发送通知消息 - * - 数据同步处理 - * - 自动化操作 - * - * 配置项: - * - 服务类型 - * - 接口参数 - * - 超时设置 - * - 重试策略 + * 服务任务节点 + * 自动执行的系统服务任务 + * 特点: + * - 自动执行,无需人工干预 + * - 可以调用外部服务或系统API + * - 支持异步执行 */ SERVICE_TASK("SERVICE_TASK", "服务任务", new NodeUiConfig() .setShape("rectangle") @@ -116,24 +68,12 @@ public enum NodeTypeEnums { .setPorts(Arrays.asList("in", "out"))), /** - * 脚本任务节点 - 执行自定义脚本 - * 功能: - * - 执行自定义脚本代码 - * - 支持多种脚本语言 - * - 可以访问流程变量 - * - 支持复杂的业务逻辑 - * - * 使用场景: - * - 数据处理和转换 - * - 条件判断 - * - 自定义业务规则 - * - 系统集成 - * - * 配置项: - * - 脚本语言类型 - * - 脚本内容 - * - 资源限制 - * - 超时设置 + * 脚本任务节点 + * 执行自定义脚本的任务节点 + * 特点: + * - 支持多种脚本语言(如Shell、Python等) + * - 可以执行自定义业务逻辑 + * - 适合复杂的数据处理和计算 */ SCRIPT_TASK("SCRIPT_TASK", "脚本任务", new NodeUiConfig() .setShape("rectangle") @@ -142,25 +82,12 @@ public enum NodeTypeEnums { .setPorts(Arrays.asList("in", "out"))), /** - * 排他网关 - 条件分支 - * 功能: - * - 根据条件选择一个分支执行 - * - 支持复杂的条件表达式 - * - 可以设置默认分支 - * - * 使用场景: - * - 条件判断 - * - 分支选择 - * - 业务规则路由 - * - * 配置项: - * - 分支条件表达式 - * - 默认分支设置 - * - 条件优先级 - * - * 限制: - * - 必须至少有两个出口 - * - 条件必须互斥 + * 排他网关 + * 基于条件的分支控制 + * 特点: + * - 只会选择一个分支执行 + * - 需要设置分支条件 + * - 适合互斥的业务场景 */ EXCLUSIVE_GATEWAY("EXCLUSIVE_GATEWAY", "排他网关", new NodeUiConfig() .setShape("diamond") @@ -169,25 +96,12 @@ public enum NodeTypeEnums { .setPorts(Arrays.asList("in", "out"))), /** - * 并行网关 - 并行分支 - * 功能: - * - 将流程分成多个并行分支 - * - 等待所有分支完成后合并 - * - 支持复杂的并行处理 - * - * 使用场景: - * - 并行审批 - * - 多任务同时处理 - * - 并行数据处理 - * - * 配置项: - * - 分支数量 - * - 合并策略 - * - 超时设置 - * - * 限制: - * - 必须有对应的合并节点 - * - 所有分支都必须完成才能继续 + * 并行网关 + * 并行执行多个分支 + * 特点: + * - 所有分支同时执行 + * - 等待所有分支完成才继续 + * - 适合并行处理的业务场景 */ PARALLEL_GATEWAY("PARALLEL_GATEWAY", "并行网关", new NodeUiConfig() .setShape("diamond") @@ -196,24 +110,12 @@ public enum NodeTypeEnums { .setPorts(Arrays.asList("in", "out"))), /** - * 子流程节点 - 嵌入式子流程 - * 功能: - * - 在当前流程中嵌入子流程 - * - 可以重用流程片段 - * - 支持事务处理 - * - 可以有自己的变量范围 - * - * 使用场景: - * - 流程复用 - * - 模块化处理 - * - 事务管理 - * - 错误处理 - * - * 配置项: - * - 子流程定义 - * - 输入参数映射 - * - 输出参数映射 - * - 错误处理策略 + * 子流程节点 + * 嵌套的子流程 + * 特点: + * - 可以包含完整的子流程 + * - 支持流程的模块化和复用 + * - 可以独立部署和版本控制 */ SUBPROCESS("SUB_PROCESS", "子流程", new NodeUiConfig() .setShape("rectangle") @@ -222,24 +124,12 @@ public enum NodeTypeEnums { .setPorts(Arrays.asList("in", "out"))), /** - * 调用活动节点 - 外部流程调用 - * 功能: - * - 调用外部定义的流程 - * - 支持跨系统流程调用 - * - 可以传递和接收参数 - * - 支持异步调用 - * - * 使用场景: - * - 跨系统流程集成 - * - 公共流程复用 - * - 分布式流程处理 - * - 大型流程解耦 - * - * 配置项: - * - 目标流程定义 - * - 版本控制 - * - 参数映射 - * - 调用方式(同步/异步) + * 调用活动节点 + * 调用外部定义的流程 + * 特点: + * - 可以调用其他已定义的流程 + * - 支持流程的复用 + * - 可以传递参数和接收返回值 */ CALL_ACTIVITY("CALL_ACTIVITY", "调用活动", new NodeUiConfig() .setShape("rectangle") @@ -248,13 +138,13 @@ public enum NodeTypeEnums { .setPorts(Arrays.asList("in", "out"))); @JsonValue - private final String value; - private final String description; + private final String code; + private final String name; private final NodeUiConfig uiConfig; NodeTypeEnums(String value, String description, NodeUiConfig uiConfig) { - this.value = value; - this.description = description; + this.code = value; + this.name = description; this.uiConfig = uiConfig; } @@ -267,7 +157,7 @@ public enum NodeTypeEnums { */ public static NodeTypeEnums fromValue(String value) { for (NodeTypeEnums type : values()) { - if (type.value.equals(value)) { + if (type.code.equals(value)) { return type; } } diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/util/SchemaGenerator.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/util/SchemaGenerator.java index 7142e6f2..382c0044 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/util/SchemaGenerator.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/util/SchemaGenerator.java @@ -71,8 +71,8 @@ public class SchemaGenerator { // 设置基本信息 node.put("code", nodeType.getCode()); - node.put("name", nodeType.getDescription()); - node.put("description", nodeType.getDescription()); + node.put("name", nodeType.getName()); + node.put("description", nodeType.getName()); // 生成配置schema并设置到configSchema字段 ObjectNode configSchema = generateConfigSchema(configClass);