增加form表单

This commit is contained in:
dengqichen 2025-10-24 15:21:08 +08:00
parent 42a8609b8c
commit 84bdf69a9f
4 changed files with 92 additions and 109 deletions

View File

@ -1,15 +1,12 @@
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.FormDefinitionDTO;
import com.qqchen.deploy.backend.workflow.dto.definition.workflow.WorkflowDefinitionGraph;
import com.qqchen.deploy.backend.workflow.enums.WorkflowDefinitionStatusEnums;
import com.qqchen.deploy.backend.workflow.enums.WorkflowTriggerTypeEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 工作流定义DTO
*
@ -41,9 +38,14 @@ public class WorkflowDefinitionDTO extends BaseDTO {
private WorkflowCategoryDTO category;
/**
* 触发类型列表
* 启动表单ID
*/
private List<WorkflowTriggerTypeEnum> triggers;
private Long formDefinitionId;
/**
* 启动表单信息用于展示
*/
private FormDefinitionDTO formDefinition;
/**
* 流程版本

View File

@ -1,15 +1,11 @@
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.workflow.dto.definition.workflow.WorkflowDefinitionGraph;
import com.qqchen.deploy.backend.workflow.enums.WorkflowDefinitionStatusEnums;
import com.qqchen.deploy.backend.workflow.enums.WorkflowTriggerTypeEnum;
import com.qqchen.deploy.backend.workflow.entity.converter.WorkflowGraphType;
import com.qqchen.deploy.backend.framework.domain.Entity;
import com.vladmihalcea.hibernate.type.json.JsonType;
import jakarta.persistence.Column;
import jakarta.persistence.Convert;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.Table;
@ -17,8 +13,6 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.annotations.Type;
import java.util.List;
/**
* 工作流定义实体
*/
@ -47,12 +41,13 @@ public class WorkflowDefinition extends Entity<Long> {
@Column(name = "category_id")
private Long categoryId;
/**
* 启动表单ID外键关联form_definition
*/
@Column(name = "form_definition_id")
private Long formDefinitionId;
@Column(name = "triggers", nullable = false)
@Convert(converter = WorkflowTriggerTypeListConverter.class)
private List<WorkflowTriggerTypeEnum> triggers;
@Column(name = "process_definition_id", nullable = false)
@Column(name = "process_definition_id")
private String processDefinitionId;
/**
@ -87,12 +82,4 @@ public class WorkflowDefinition extends Entity<Long> {
*/
@Column(columnDefinition = "TEXT")
private String description;
/**
* 流程标签用于分组和过滤
*/
@Type(JsonType.class)
@Column(name = "tags", columnDefinition = "json")
private JsonNode tags;
}

View File

@ -233,9 +233,9 @@ VALUES
-- 工作流定义测试数据
INSERT INTO workflow_definition (
-- 基础信息
name, `key`, process_definition_id, flow_version, description, category_id, triggers,
name, `key`, process_definition_id, flow_version, description, category_id, form_definition_id,
-- 流程配置
graph, tags,
graph,
-- 流程属性
status,
-- 审计字段
@ -404,7 +404,6 @@ INSERT INTO workflow_definition (
"properties" : null
} ]
}',
'["simple","script","test"]',
'DRAFT',
NOW(), NOW(), NULL, NULL, 0, 0
),
@ -635,7 +634,6 @@ INSERT INTO workflow_definition (
"properties" : null
} ]
}',
'["complex","business","multi-task"]',
'DRAFT',
NOW(), NOW(), NULL, NULL, 0, 0
);

View File

@ -406,6 +406,78 @@ CREATE TABLE workflow_category
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci
COMMENT = '工作流分类表';
CREATE TABLE form_category
(
-- 主键
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
-- 基础信息
name VARCHAR(100) NOT NULL COMMENT '分类名称',
code VARCHAR(50) NOT NULL COMMENT '分类编码(唯一)',
description VARCHAR(500) NULL COMMENT '分类描述',
icon VARCHAR(50) NULL COMMENT '图标',
sort INT NOT NULL DEFAULT 0 COMMENT '排序',
-- 状态
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用',
-- 审计字段
create_by VARCHAR(255) NULL COMMENT '创建人',
create_time DATETIME(6) NULL COMMENT '创建时间',
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
update_by VARCHAR(255) NULL COMMENT '更新人',
update_time DATETIME(6) NULL COMMENT '更新时间',
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
-- 约束和索引
UNIQUE KEY uk_code (code),
INDEX idx_enabled (enabled),
INDEX idx_deleted (deleted),
INDEX idx_sort (sort)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci
COMMENT = '表单分类表';
-- 表单定义表
CREATE TABLE form_definition
(
-- 主键
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
-- 基础信息
name VARCHAR(255) NOT NULL COMMENT '表单名称',
`key` VARCHAR(255) NOT NULL COMMENT '表单标识(业务唯一)',
form_version INT NOT NULL DEFAULT 1 COMMENT '表单版本号',
category_id BIGINT NULL COMMENT '表单分类ID外键关联form_category',
description TEXT NULL COMMENT '表单描述',
-- 表单配置
`schema` JSON NOT NULL COMMENT '表单Schema前端设计器导出的JSON结构',
tags JSON NULL COMMENT '标签(用于分类和搜索)',
-- 表单属性
status VARCHAR(50) NOT NULL DEFAULT 'DRAFT' COMMENT '状态DRAFT-草稿、PUBLISHED-已发布、DISABLED-已禁用)',
is_template BIT NOT NULL DEFAULT 0 COMMENT '是否为模板',
-- 审计字段
create_by VARCHAR(255) NULL COMMENT '创建人',
create_time DATETIME(6) NULL COMMENT '创建时间',
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
update_by VARCHAR(255) NULL COMMENT '更新人',
update_time DATETIME(6) NULL COMMENT '更新时间',
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
-- 约束和索引
UNIQUE KEY uk_key_version (`key`, form_version),
INDEX idx_category_id (category_id),
INDEX idx_status (status),
INDEX idx_is_template (is_template),
INDEX idx_deleted (deleted),
-- 外键约束
CONSTRAINT fk_form_definition_category FOREIGN KEY (category_id) REFERENCES form_category(id)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci
COMMENT = '表单定义表';
-- 工作流定义表
CREATE TABLE workflow_definition
(
@ -416,7 +488,7 @@ CREATE TABLE workflow_definition
name VARCHAR(255) NOT NULL COMMENT '流程名称',
`key` VARCHAR(255) NOT NULL COMMENT '流程标识',
category_id BIGINT NULL COMMENT '流程分类ID外键关联workflow_category',
triggers JSON NULL COMMENT '触发器配置JSON数组',
form_definition_id BIGINT NULL COMMENT '启动表单ID外键关联form_definition',
process_definition_id VARCHAR(100) NULL COMMENT '工作流定义ID',
flow_version INT NOT NULL COMMENT '流程版本',
description TEXT COMMENT '流程描述',
@ -424,7 +496,6 @@ CREATE TABLE workflow_definition
-- 流程配置
bpmn_xml TEXT COMMENT 'BPMN XML内容',
graph JSON COMMENT '流程图数据,包含节点和连线的位置、样式等信息',
tags JSON COMMENT '流程标签',
-- 流程属性
status VARCHAR(50) NOT NULL COMMENT '流程状态DRAFT-草稿、PUBLISHED-已发布、DISABLED-已禁用)',
@ -440,9 +511,11 @@ CREATE TABLE workflow_definition
-- 约束和索引
UNIQUE KEY uk_key_version (`key`, flow_version),
INDEX idx_category_id (category_id),
INDEX idx_form_definition_id (form_definition_id),
INDEX idx_status (status),
INDEX idx_deleted (deleted),
CONSTRAINT fk_workflow_definition_category FOREIGN KEY (category_id) REFERENCES workflow_category(id)
CONSTRAINT fk_workflow_definition_category FOREIGN KEY (category_id) REFERENCES workflow_category(id),
CONSTRAINT fk_workflow_definition_form FOREIGN KEY (form_definition_id) REFERENCES form_definition(id)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci COMMENT ='工作流定义表';
@ -728,83 +801,6 @@ CREATE TABLE sys_notification_channel (
INDEX idx_deleted (deleted)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='通知渠道配置表';
-- =====================================================================================================================
-- 表单管理相关表
-- =====================================================================================================================
-- 表单分类表
CREATE TABLE form_category
(
-- 主键
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
-- 基础信息
name VARCHAR(100) NOT NULL COMMENT '分类名称',
code VARCHAR(50) NOT NULL COMMENT '分类编码(唯一)',
description VARCHAR(500) NULL COMMENT '分类描述',
icon VARCHAR(50) NULL COMMENT '图标',
sort INT NOT NULL DEFAULT 0 COMMENT '排序',
-- 状态
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用',
-- 审计字段
create_by VARCHAR(255) NULL COMMENT '创建人',
create_time DATETIME(6) NULL COMMENT '创建时间',
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
update_by VARCHAR(255) NULL COMMENT '更新人',
update_time DATETIME(6) NULL COMMENT '更新时间',
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
-- 约束和索引
UNIQUE KEY uk_code (code),
INDEX idx_enabled (enabled),
INDEX idx_deleted (deleted),
INDEX idx_sort (sort)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci
COMMENT = '表单分类表';
-- 表单定义表
CREATE TABLE form_definition
(
-- 主键
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
-- 基础信息
name VARCHAR(255) NOT NULL COMMENT '表单名称',
`key` VARCHAR(255) NOT NULL COMMENT '表单标识(业务唯一)',
form_version INT NOT NULL DEFAULT 1 COMMENT '表单版本号',
category_id BIGINT NULL COMMENT '表单分类ID外键关联form_category',
description TEXT NULL COMMENT '表单描述',
-- 表单配置
`schema` JSON NOT NULL COMMENT '表单Schema前端设计器导出的JSON结构',
tags JSON NULL COMMENT '标签(用于分类和搜索)',
-- 表单属性
status VARCHAR(50) NOT NULL DEFAULT 'DRAFT' COMMENT '状态DRAFT-草稿、PUBLISHED-已发布、DISABLED-已禁用)',
is_template BIT NOT NULL DEFAULT 0 COMMENT '是否为模板',
-- 审计字段
create_by VARCHAR(255) NULL COMMENT '创建人',
create_time DATETIME(6) NULL COMMENT '创建时间',
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
update_by VARCHAR(255) NULL COMMENT '更新人',
update_time DATETIME(6) NULL COMMENT '更新时间',
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
-- 约束和索引
UNIQUE KEY uk_key_version (`key`, form_version),
INDEX idx_category_id (category_id),
INDEX idx_status (status),
INDEX idx_is_template (is_template),
INDEX idx_deleted (deleted),
-- 外键约束
CONSTRAINT fk_form_definition_category FOREIGN KEY (category_id) REFERENCES form_category(id)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci
COMMENT = '表单定义表';
-- 表单数据表
CREATE TABLE form_data
(