This commit is contained in:
yumoqing 2025-08-27 18:28:22 +08:00
parent 0c4414f61b
commit e09a5664e8
11 changed files with 142 additions and 0 deletions

142
models/ddl.sql Normal file
View File

@ -0,0 +1,142 @@
-- 企业表
CREATE TABLE orgs (
orgid VARCHAR(32) PRIMARY KEY COMMENT '企业ID主键',
name VARCHAR(255) NOT NULL COMMENT '企业名称',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
) COMMENT='企业表';
-- 流程定义表
CREATE TABLE flow_definitions (
id VARCHAR(32) PRIMARY KEY COMMENT '流程定义ID',
orgid VARCHAR(32) NOT NULL COMMENT '企业ID',
code VARCHAR(100) NOT NULL COMMENT '流程编码(企业内唯一)',
name VARCHAR(255) NOT NULL COMMENT '流程名称',
version INT NOT NULL DEFAULT 1 COMMENT '流程版本',
description TEXT COMMENT '流程描述',
status TINYINT NOT NULL DEFAULT 1 COMMENT '流程状态1=启用 0=停用',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
UNIQUE KEY uk_org_code_version (orgid, code, version)
) COMMENT='流程定义表';
-- 流程节点定义表(增加子流程字段)
CREATE TABLE flow_nodes (
id VARCHAR(32) PRIMARY KEY COMMENT '节点ID',
orgid VARCHAR(32) NOT NULL COMMENT '企业ID',
flow_definition_id VARCHAR(32) NOT NULL COMMENT '所属流程定义ID',
node_key VARCHAR(100) NOT NULL COMMENT '节点唯一标识(流程内唯一)',
name VARCHAR(255) NOT NULL COMMENT '节点名称',
type ENUM('start','task','gateway','subflow','end') NOT NULL COMMENT '节点类型',
role_id VARCHAR(32) COMMENT '节点分配角色ID',
assignment_type VARCHAR(50) COMMENT '任务分配类型(轮询/抢占/自动)',
properties JSON COMMENT '节点属性JSON格式自定义扩展',
subflow_definition_id VARCHAR(32) COMMENT '子流程定义IDtype=subflow时使用',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
UNIQUE(flow_definition_id, node_key),
FOREIGN KEY(flow_definition_id) REFERENCES flow_definitions(id) ON DELETE CASCADE,
FOREIGN KEY(subflow_definition_id) REFERENCES flow_definitions(id)
) COMMENT='流程节点定义表';
-- 节点转移表
CREATE TABLE flow_transitions (
id VARCHAR(32) PRIMARY KEY COMMENT '节点转移ID',
orgid VARCHAR(32) NOT NULL COMMENT '企业ID',
flow_definition_id VARCHAR(32) NOT NULL COMMENT '所属流程定义ID',
source_node_id VARCHAR(32) NOT NULL COMMENT '起始节点ID',
target_node_id VARCHAR(32) NOT NULL COMMENT '目标节点ID',
condition_expr VARCHAR(1000) COMMENT '转移条件表达式',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
FOREIGN KEY(source_node_id) REFERENCES flow_nodes(id),
FOREIGN KEY(target_node_id) REFERENCES flow_nodes(id)
) COMMENT='流程节点转移表';
-- 节点表单表
CREATE TABLE flow_node_forms (
id VARCHAR(32) PRIMARY KEY COMMENT '节点表单ID',
orgid VARCHAR(32) NOT NULL COMMENT '企业ID',
flow_node_id VARCHAR(32) NOT NULL COMMENT '节点ID',
schema JSON NOT NULL COMMENT '表单结构定义JSON/JIO',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
FOREIGN KEY(flow_node_id) REFERENCES flow_nodes(id)
) COMMENT='节点表单定义表';
-- 流程实例表
CREATE TABLE flow_instances (
id VARCHAR(32) PRIMARY KEY COMMENT '流程实例ID',
orgid VARCHAR(32) NOT NULL COMMENT '企业ID',
flow_definition_id VARCHAR(32) NOT NULL COMMENT '流程定义ID',
version INT NOT NULL COMMENT '流程版本',
status ENUM('running','completed','terminated') DEFAULT 'running' COMMENT '实例状态',
context JSON COMMENT '运行时上下文数据',
created_by VARCHAR(32) NOT NULL COMMENT '发起人用户ID',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
FOREIGN KEY(flow_definition_id) REFERENCES flow_definitions(id)
) COMMENT='流程实例表';
-- 流程实例节点表(增加 parent_instance_node_id 支持子流程嵌套)
CREATE TABLE flow_instance_nodes (
id VARCHAR(32) PRIMARY KEY COMMENT '流程实例节点ID',
orgid VARCHAR(32) NOT NULL COMMENT '企业ID',
flow_instance_id VARCHAR(32) NOT NULL COMMENT '流程实例ID',
flow_node_id VARCHAR(32) NOT NULL COMMENT '流程节点ID',
parent_instance_node_id VARCHAR(32) COMMENT '父节点实例ID子流程时使用',
status ENUM('pending','in_progress','completed','skipped') DEFAULT 'pending' COMMENT '节点实例状态',
assigned_to VARCHAR(32) COMMENT '指派用户ID当前',
form_data JSON COMMENT '填写的表单数据',
started_at TIMESTAMP COMMENT '节点开始时间',
completed_at TIMESTAMP COMMENT '节点完成时间',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
FOREIGN KEY(flow_instance_id) REFERENCES flow_instances(id),
FOREIGN KEY(flow_node_id) REFERENCES flow_nodes(id),
FOREIGN KEY(parent_instance_node_id) REFERENCES flow_instance_nodes(id)
) COMMENT='流程实例节点表';
-- 节点任务表(人工任务)
CREATE TABLE flow_tasks (
id VARCHAR(32) PRIMARY KEY COMMENT '任务ID',
orgid VARCHAR(32) NOT NULL COMMENT '企业ID',
instance_node_id VARCHAR(32) NOT NULL COMMENT '流程实例节点ID',
assignee_id VARCHAR(32) COMMENT '指派用户ID原始',
candidate_role VARCHAR(128) COMMENT '候选角色',
status ENUM('pending','claimed','completed','failed') DEFAULT 'pending' COMMENT '任务状态',
input JSON COMMENT '任务输入数据',
output JSON COMMENT '任务输出数据',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
FOREIGN KEY(instance_node_id) REFERENCES flow_instance_nodes(id)
) COMMENT='节点任务表';
-- 用户代理表(请假/任务委托)
CREATE TABLE user_delegations (
id VARCHAR(32) PRIMARY KEY COMMENT '委托ID',
orgid VARCHAR(32) NOT NULL COMMENT '企业ID',
user_id VARCHAR(32) NOT NULL COMMENT '原始任务用户ID',
delegate_id VARCHAR(32) NOT NULL COMMENT '代理用户ID',
start_time DATETIME NOT NULL COMMENT '生效开始时间',
end_time DATETIME NOT NULL COMMENT '生效结束时间',
status TINYINT DEFAULT 1 COMMENT '状态1=生效 0=停用',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
) COMMENT='用户代理表';
-- 流程日志表
CREATE TABLE flow_logs (
id VARCHAR(32) PRIMARY KEY COMMENT '日志ID',
orgid VARCHAR(32) NOT NULL COMMENT '企业ID',
flow_instance_id VARCHAR(32) NOT NULL COMMENT '流程实例ID',
flow_node_id VARCHAR(32) COMMENT '节点ID可为空',
parent_instance_node_id VARCHAR(32) COMMENT '父节点实例ID子流程时使用',
action VARCHAR(100) NOT NULL COMMENT '操作动作start, complete, assign, transition, terminate',
operator_id VARCHAR(32) COMMENT '操作人用户ID',
original_assignee_id VARCHAR(32) COMMENT '原始任务指派人(代理场景使用)',
message TEXT COMMENT '日志内容',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
FOREIGN KEY(flow_instance_id) REFERENCES flow_instances(id),
FOREIGN KEY(flow_node_id) REFERENCES flow_nodes(id),
FOREIGN KEY(parent_instance_node_id) REFERENCES flow_instance_nodes(id)
) COMMENT='流程日志表';

Binary file not shown.

Binary file not shown.

BIN
models/flow_instances.xlsx Normal file

Binary file not shown.

BIN
models/flow_logs.xlsx Normal file

Binary file not shown.

BIN
models/flow_node_forms.xlsx Normal file

Binary file not shown.

BIN
models/flow_nodes.xlsx Normal file

Binary file not shown.

BIN
models/flow_tasks.xlsx Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.