diff --git a/backend/pom.xml b/backend/pom.xml
index ac48ac2c..4bc6af70 100644
--- a/backend/pom.xml
+++ b/backend/pom.xml
@@ -225,6 +225,11 @@
+
+ com.networknt
+ json-schema-validator
+ 1.0.86
+
diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowDefinition.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowDefinition.java
index e91da303..05549518 100644
--- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowDefinition.java
+++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowDefinition.java
@@ -54,6 +54,18 @@ public class WorkflowDefinition extends Entity {
@Column(name = "graph_json", columnDefinition = "json")
private JsonNode graphJson;
+ /**
+ * 表单配置JSON
+ * 包含:
+ * - 流程级别的表单配置
+ * - 流程变量定义
+ * - 表单验证规则
+ * - 表单布局配置
+ */
+ @Type(JsonType.class)
+ @Column(name = "form_config", columnDefinition = "json")
+ private JsonNode formConfig;
+
@Column(nullable = false)
@Enumerated(EnumType.STRING)
private WorkflowStatusEnums status;
diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowDefinitionServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowDefinitionServiceImpl.java
index 6c02ad7c..5165fbe4 100644
--- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowDefinitionServiceImpl.java
+++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowDefinitionServiceImpl.java
@@ -71,7 +71,7 @@ public class WorkflowDefinitionServiceImpl extends BaseServiceImpl errors = jsonSchema.validate(data);
+
+ if (!errors.isEmpty()) {
+ String errorMessages = errors.stream()
+ .map(ValidationMessage::getMessage)
+ .collect(Collectors.joining(", "));
+ throw new IllegalStateException("JSON Schema validation failed: " + errorMessages);
+ }
+ } catch (Exception e) {
+ log.error("JSON Schema validation error", e);
+ throw new IllegalStateException("JSON Schema validation error: " + e.getMessage());
+ }
+ }
+}
\ No newline at end of file
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 c519ba4f..ea3df333 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
@@ -399,6 +399,7 @@ CREATE TABLE workflow_definition (
graph_json JSON COMMENT 'x6 JSON内容',
status VARCHAR(32) NOT NULL COMMENT '状态',
description VARCHAR(255) NULL COMMENT '流程描述',
+ form_config JSON COMMENT '表单配置JSON',
CONSTRAINT UK_workflow_definition_key_version UNIQUE (`key`, flow_version)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='工作流定义表';