diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowNodeDefinitionDTO.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowNodeDefinitionDTO.java index 8b254b54..0ce79e2d 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowNodeDefinitionDTO.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowNodeDefinitionDTO.java @@ -2,6 +2,7 @@ package com.qqchen.deploy.backend.workflow.dto; import com.fasterxml.jackson.databind.JsonNode; import com.qqchen.deploy.backend.framework.dto.BaseDTO; +import com.qqchen.deploy.backend.workflow.dto.definition.node.uiVariables.NodeUiVariables; import com.qqchen.deploy.backend.workflow.dto.definition.workflow.WorkflowNodeGraph; import com.qqchen.deploy.backend.workflow.enums.NodeCategoryEnums; import com.qqchen.deploy.backend.workflow.enums.NodeTypeEnums; @@ -33,13 +34,16 @@ public class WorkflowNodeDefinitionDTO extends BaseDTO { private NodeCategoryEnums category; @Schema(description = "节点UI") - private WorkflowNodeGraph graphVariables; + private NodeUiVariables uiVariables; - @Schema(description = "节点属性d") - private JsonNode localVariables; + @Schema(description = "节点属性") + private JsonNode panelVariablesSchema; + + @Schema(description = "节点环境变量") + private JsonNode localVariablesSchema; @Schema(description = "节点表单") - private JsonNode fromVariables; + private JsonNode fromVariablesSchema; @Schema(description = "是否启用") private Boolean enabled; diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/localVariables/BaseNodeLocalVariables.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/localVariables/BaseNodeLocalVariables.java index 8b5a06d8..01fc9073 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/localVariables/BaseNodeLocalVariables.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/localVariables/BaseNodeLocalVariables.java @@ -12,6 +12,7 @@ public class BaseNodeLocalVariables { @SchemaProperty( title = "委派者", description = "委派者", + defaultValue = "com.qqchen.deploy.backend.workflow.delegate.ShellTaskDelegate", required = true ) private String delegate; diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowNodeDefinition.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowNodeDefinition.java index 22be89ba..931c0ceb 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowNodeDefinition.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowNodeDefinition.java @@ -3,6 +3,7 @@ package com.qqchen.deploy.backend.workflow.entity; import com.fasterxml.jackson.databind.JsonNode; import com.qqchen.deploy.backend.framework.annotation.LogicDelete; import com.qqchen.deploy.backend.framework.domain.Entity; +import com.qqchen.deploy.backend.workflow.dto.definition.node.uiVariables.NodeUiVariables; import com.qqchen.deploy.backend.workflow.dto.definition.workflow.WorkflowNodeGraph; import com.qqchen.deploy.backend.workflow.enums.NodeCategoryEnums; import com.vladmihalcea.hibernate.type.json.JsonType; @@ -14,11 +15,6 @@ import jakarta.persistence.Table; import lombok.Data; import lombok.EqualsAndHashCode; import org.hibernate.annotations.Type; - -/** - * 工作流节点定义 - * 用于定义工作流中可用的节点类型,包含 Flowable 引擎配置和前端 X6 图形配置 - */ @Data @jakarta.persistence.Entity @EqualsAndHashCode(callSuper = true) @@ -43,17 +39,20 @@ public class WorkflowNodeDefinition extends Entity { @Type(JsonType.class) - @Column(name = "graph_variables", columnDefinition = "text", nullable = false) - private WorkflowNodeGraph graphVariables; - + @Column(name = "ui_variables", columnDefinition = "text", nullable = false) + private NodeUiVariables uiVariables; @Type(JsonType.class) - @Column(name = "local_variables", columnDefinition = "text", nullable = false) - private JsonNode localVariables; + @Column(name = "panel_variables_schema", columnDefinition = "text", nullable = false) + private JsonNode panelVariablesSchema; @Type(JsonType.class) - @Column(name = "from_variables", columnDefinition = "text", nullable = false) - private JsonNode fromVariables; + @Column(name = "local_variables_schema", columnDefinition = "text", nullable = false) + private JsonNode localVariablesSchema; + + @Type(JsonType.class) + @Column(name = "from_variables_schema", columnDefinition = "text", nullable = false) + private JsonNode fromVariablesSchema; @Column(nullable = false) private Boolean enabled = true; diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowNodeDefinitionServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowNodeDefinitionServiceImpl.java index 17238425..ebf72410 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowNodeDefinitionServiceImpl.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowNodeDefinitionServiceImpl.java @@ -118,7 +118,7 @@ public class WorkflowNodeDefinitionServiceImpl extends BaseServiceImpl uiVariables = nodeType.getUiVariables(); - if (formVariables != null) { + if (uiVariables != null) { definedDTO.setUiVariables(generateSchema(uiVariables)); } @@ -167,7 +167,13 @@ public class WorkflowNodeDefinitionServiceImpl extends BaseServiceImpl 0) { - property.put("default", annotation.defaultValue()); + if (jsonType.equals("integer")) { + property.put("default", Integer.parseInt(annotation.defaultValue())); + } else if (jsonType.equals("number")) { + property.put("default", Double.parseDouble(annotation.defaultValue())); + } else { + property.put("default", annotation.defaultValue()); + } } // 处理枚举 diff --git a/backend/src/main/resources/db/migration/V1.0.0__init_schema.sql b/backend/src/main/resources/db/migration/V1.0.0__init_schema.sql index 7ce374b3..37d2ce25 100644 --- a/backend/src/main/resources/db/migration/V1.0.0__init_schema.sql +++ b/backend/src/main/resources/db/migration/V1.0.0__init_schema.sql @@ -440,23 +440,24 @@ CREATE TABLE workflow_definition -- 创建工作流节点定义表 CREATE TABLE workflow_node_definition ( - id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', - node_type VARCHAR(50) NOT NULL COMMENT '节点类型', - node_code VARCHAR(50) NOT NULL COMMENT '节点编码', - node_name VARCHAR(100) NOT NULL COMMENT '节点名称', - description VARCHAR(500) COMMENT '节点描述', - category VARCHAR(50) NOT NULL COMMENT '节点分类', - graph_variables JSON NOT NULL COMMENT '节点UI', - local_variables JSON NOT NULL COMMENT '节点属性', - from_variables JSON COMMENT '节点表单', - enabled BOOLEAN NOT NULL DEFAULT TRUE COMMENT '是否启用', + id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', + node_type VARCHAR(50) NOT NULL COMMENT '节点类型', + node_code VARCHAR(50) NOT NULL COMMENT '节点编码', + node_name VARCHAR(100) NOT NULL COMMENT '节点名称', + description VARCHAR(500) COMMENT '节点描述', + category VARCHAR(50) NOT NULL COMMENT '节点分类', + ui_variables JSON NOT NULL COMMENT '节点UI', + panel_variables_schema JSON NOT NULL COMMENT '节点属性', + local_variables_schema JSON NOT NULL COMMENT '节点环境变量', + from_variables_schema JSON COMMENT '节点表单', + enabled BOOLEAN NOT NULL DEFAULT TRUE COMMENT '是否启用', - create_time DATETIME NOT NULL COMMENT '创建时间', - create_by VARCHAR(50) NOT NULL COMMENT '创建人', - update_time DATETIME NOT NULL COMMENT '更新时间', - update_by VARCHAR(50) NOT NULL COMMENT '更新人', - version INT NOT NULL DEFAULT 1 COMMENT '版本号', - deleted BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否删除', + create_time DATETIME NOT NULL COMMENT '创建时间', + create_by VARCHAR(50) NOT NULL COMMENT '创建人', + update_time DATETIME NOT NULL COMMENT '更新时间', + update_by VARCHAR(50) NOT NULL COMMENT '更新人', + version INT NOT NULL DEFAULT 1 COMMENT '版本号', + deleted BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否删除', PRIMARY KEY (id), UNIQUE KEY uk_node_type (node_type) ) ENGINE = InnoDB