Merge remote-tracking branch 'origin/develop3' into develop3

This commit is contained in:
dengqichen 2025-10-24 16:10:33 +08:00
commit 90b7e9f29c
4 changed files with 80 additions and 49 deletions

View File

@ -5,6 +5,7 @@ import com.qqchen.deploy.backend.workflow.enums.WorkflowInstanceStatusEnums;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.Map;
@Data
public class WorkflowInstanceCreateDTO extends BaseDTO {
@ -24,6 +25,16 @@ public class WorkflowInstanceCreateDTO extends BaseDTO {
*/
private String businessKey;
/**
* 启动表单定义ID可选如果工作流需要启动表单
*/
private Long formDefinitionId;
/**
* 启动表单数据可选如果有启动表单
*/
private Map<String, Object> formData;
/**
* 实例状态
*/

View File

@ -29,6 +29,16 @@ public class WorkflowInstanceDTO extends BaseDTO {
*/
private String businessKey;
/**
* 启动表单数据ID
*/
private Long formDataId;
/**
* 启动表单数据用于展示
*/
private FormDataDTO formData;
/**
* 实例状态
*/

View File

@ -44,6 +44,12 @@ public class WorkflowInstance extends Entity<Long> {
@Column(name = "business_key")
private String businessKey;
/**
* 启动表单数据ID外键关联form_data
*/
@Column(name = "form_data_id")
private Long formDataId;
/**
* 实例状态
*/

View File

@ -547,6 +547,54 @@ CREATE TABLE workflow_node_definition
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci COMMENT ='工作流节点定义表';
-- 表单数据表
CREATE TABLE form_data
(
-- 主键
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
-- 关联表单定义
form_definition_id BIGINT NOT NULL COMMENT '表单定义ID',
form_key VARCHAR(255) NOT NULL COMMENT '表单标识冗余存储避免JOIN',
form_version INT NOT NULL COMMENT '表单版本(冗余存储,用于历史追溯)',
category_id BIGINT NULL COMMENT '表单分类ID冗余存储便于统计和查询',
-- 业务关联(松耦合)
business_key VARCHAR(255) NULL COMMENT '业务标识如工作流实例ID、订单号等',
business_type VARCHAR(50) NULL COMMENT '业务类型WORKFLOW-工作流、ORDER-订单、STANDALONE-独立表单)',
-- 表单数据
data JSON NOT NULL COMMENT '表单填写数据(用户提交的实际数据)',
schema_snapshot JSON NOT NULL COMMENT '表单Schema快照用于历史追溯确保数据可还原',
-- 提交信息
submitter VARCHAR(255) NULL COMMENT '提交人',
submit_time DATETIME(6) NULL COMMENT '提交时间',
-- 状态
status VARCHAR(50) NOT NULL DEFAULT 'SUBMITTED' COMMENT '状态DRAFT-草稿、SUBMITTED-已提交、COMPLETED-已完成、REJECTED-已拒绝)',
-- 审计字段
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 '乐观锁版本号',
-- 索引
INDEX idx_form_definition_id (form_definition_id),
INDEX idx_form_key (form_key),
INDEX idx_category_id (category_id),
INDEX idx_business_key (business_key),
INDEX idx_business_type (business_type),
INDEX idx_submitter (submitter),
INDEX idx_status (status),
INDEX idx_submit_time (submit_time),
INDEX idx_deleted (deleted)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci
COMMENT = '表单数据表';
-- 工作流实例表
CREATE TABLE workflow_instance
(
@ -562,11 +610,15 @@ CREATE TABLE workflow_instance
process_definition_id VARCHAR(64) NOT NULL COMMENT '流程定义ID',
workflow_definition_id BIGINT NOT NULL COMMENT '工作流定义ID',
business_key VARCHAR(64) NULL COMMENT '业务标识',
form_data_id BIGINT NULL COMMENT '启动表单数据ID外键关联form_data',
status VARCHAR(100) NOT NULL COMMENT '实例状态',
variables TEXT NULL COMMENT '流程变量(JSON)',
graph_snapshot JSON NULL COMMENT '流程图数据快照(启动时保存,用于画布还原)',
start_time DATETIME(6) NULL COMMENT '开始时间',
end_time DATETIME(6) NULL COMMENT '结束时间'
end_time DATETIME(6) NULL COMMENT '结束时间',
INDEX idx_form_data_id (form_data_id),
CONSTRAINT fk_workflow_instance_form_data FOREIGN KEY (form_data_id) REFERENCES form_data(id)
-- CONSTRAINT FK_workflow_instance_definition FOREIGN KEY (process_definition_id) REFERENCES workflow_definition(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='工作流实例表';
@ -801,51 +853,3 @@ CREATE TABLE sys_notification_channel (
INDEX idx_deleted (deleted)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='通知渠道配置表';
-- 表单数据表
CREATE TABLE form_data
(
-- 主键
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
-- 关联表单定义
form_definition_id BIGINT NOT NULL COMMENT '表单定义ID',
form_key VARCHAR(255) NOT NULL COMMENT '表单标识冗余存储避免JOIN',
form_version INT NOT NULL COMMENT '表单版本(冗余存储,用于历史追溯)',
category_id BIGINT NULL COMMENT '表单分类ID冗余存储便于统计和查询',
-- 业务关联(松耦合)
business_key VARCHAR(255) NULL COMMENT '业务标识如工作流实例ID、订单号等',
business_type VARCHAR(50) NULL COMMENT '业务类型WORKFLOW-工作流、ORDER-订单、STANDALONE-独立表单)',
-- 表单数据
data JSON NOT NULL COMMENT '表单填写数据(用户提交的实际数据)',
schema_snapshot JSON NOT NULL COMMENT '表单Schema快照用于历史追溯确保数据可还原',
-- 提交信息
submitter VARCHAR(255) NULL COMMENT '提交人',
submit_time DATETIME(6) NULL COMMENT '提交时间',
-- 状态
status VARCHAR(50) NOT NULL DEFAULT 'SUBMITTED' COMMENT '状态DRAFT-草稿、SUBMITTED-已提交、COMPLETED-已完成、REJECTED-已拒绝)',
-- 审计字段
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 '乐观锁版本号',
-- 索引
INDEX idx_form_definition_id (form_definition_id),
INDEX idx_form_key (form_key),
INDEX idx_category_id (category_id),
INDEX idx_business_key (business_key),
INDEX idx_business_type (business_type),
INDEX idx_submitter (submitter),
INDEX idx_status (status),
INDEX idx_submit_time (submit_time),
INDEX idx_deleted (deleted)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci
COMMENT = '表单数据表';