mirror of
http://git.pig4cloud.com/pig/pigx.git
synced 2026-11-13 14:09:00 +08:00
refactor(flow): migrate durable workspace services to MyBatis Plus
(cherry picked from commit 1b0f4b664cb310fe236dfb046bef9c8248543d71)
This commit is contained in:
1 parent
b04588ffae
commit
e0d43f41a1
30 files changed
+1235
-657
No files matched your search
+69
-27
@@ -1814,6 +1814,75 @@ CREATE TABLE `process_task_add_sign_record` (
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='流程动态加签批次记录';
|
||||
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for flow_draft
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `flow_draft`;
|
||||
CREATE TABLE `flow_draft` (
|
||||
`id` varchar(36) COLLATE utf8mb4_general_ci NOT NULL COMMENT '草稿ID',
|
||||
`tenant_id` bigint NOT NULL COMMENT '所属租户ID',
|
||||
`user_id` bigint NOT NULL COMMENT '草稿所属用户ID',
|
||||
`kind` varchar(16) COLLATE utf8mb4_general_ci NOT NULL COMMENT '草稿类型:DESIGN 流程设计,APPLICATION 申请',
|
||||
`flow_id` varchar(64) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '关联流程ID,未建立流程时为空串',
|
||||
`title` varchar(200) COLLATE utf8mb4_general_ci NOT NULL COMMENT '草稿标题',
|
||||
`payload` longtext COLLATE utf8mb4_general_ci NOT NULL COMMENT '草稿内容 JSON,最多 1 MB',
|
||||
`revision` bigint NOT NULL COMMENT '乐观锁版本号',
|
||||
`updated_at` timestamp(3) NOT NULL COMMENT '最后保存时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_draft_owner` (`tenant_id`,`user_id`,`kind`,`updated_at`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='个人流程草稿';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for flow_notice
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `flow_notice`;
|
||||
CREATE TABLE `flow_notice` (
|
||||
`id` varchar(36) COLLATE utf8mb4_general_ci NOT NULL COMMENT '通知事件ID',
|
||||
`tenant_id` bigint NOT NULL COMMENT '所属租户ID',
|
||||
`user_id` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '接收人ID,超时提醒到期前为空串',
|
||||
`event_key` varchar(180) COLLATE utf8mb4_general_ci NOT NULL COMMENT '事件去重键',
|
||||
`kind` varchar(16) COLLATE utf8mb4_general_ci NOT NULL COMMENT '通知类型:TODO 待办,URGE 催办,OVERDUE 超时提醒',
|
||||
`title` varchar(200) COLLATE utf8mb4_general_ci NOT NULL COMMENT '通知标题',
|
||||
`task_id` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '引擎任务ID',
|
||||
`instance_id` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '引擎流程实例ID',
|
||||
`created_at` timestamp(3) NOT NULL COMMENT '创建时间',
|
||||
`status` varchar(16) COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'SENT' COMMENT '状态:PENDING 待到期,READY 待投递,SENT 已投递,CANCELLED 已取消,DISABLED 已停用',
|
||||
`scheduled_at` timestamp(3) NULL DEFAULT NULL COMMENT '计划投递或到期时间',
|
||||
`sent_at` timestamp(3) NULL DEFAULT NULL COMMENT '投递到统一站内信的时间',
|
||||
`reminder_key` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '超时提醒任务ID,每个任务最多一条',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_notice_event` (`tenant_id`,`user_id`,`event_key`),
|
||||
UNIQUE KEY `uk_notice_reminder` (`tenant_id`,`reminder_key`),
|
||||
KEY `idx_notice_owner` (`tenant_id`,`user_id`,`created_at`),
|
||||
KEY `idx_notice_due` (`status`,`scheduled_at`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流程通知事件';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for flow_callback
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `flow_callback`;
|
||||
CREATE TABLE `flow_callback` (
|
||||
`id` varchar(36) COLLATE utf8mb4_general_ci NOT NULL COMMENT '回调事件ID,同时作为接收方幂等键',
|
||||
`tenant_id` bigint NOT NULL COMMENT '所属租户ID',
|
||||
`task_id` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '引擎任务ID',
|
||||
`instance_id` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '引擎流程实例ID',
|
||||
`target_url` varchar(2000) COLLATE utf8mb4_general_ci NOT NULL COMMENT '回调目标地址',
|
||||
`payload` longtext COLLATE utf8mb4_general_ci NOT NULL COMMENT '回调请求体 JSON',
|
||||
`status` varchar(16) COLLATE utf8mb4_general_ci NOT NULL COMMENT '状态:PENDING 待投递,SENDING 投递中,DELIVERED 已送达,FAILED 失败',
|
||||
`attempts` int NOT NULL DEFAULT '0' COMMENT '已尝试次数',
|
||||
`max_attempts` int NOT NULL DEFAULT '5' COMMENT '最大尝试次数',
|
||||
`next_at` timestamp(3) NOT NULL COMMENT '下次投递时间',
|
||||
`history` longtext COLLATE utf8mb4_general_ci COMMENT '投递历史 JSON',
|
||||
`lease_token` varchar(36) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '投递租约令牌',
|
||||
`lease_until` timestamp(3) NULL DEFAULT NULL COMMENT '租约到期时间',
|
||||
`last_error` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近一次失败原因',
|
||||
`created_at` timestamp(3) NOT NULL COMMENT '创建时间',
|
||||
`updated_at` timestamp(3) NOT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_callback_task` (`tenant_id`,`task_id`),
|
||||
KEY `idx_callback_due` (`status`,`next_at`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流程节点 HTTP 回调';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for process_starter
|
||||
-- ----------------------------
|
||||
@@ -3240,30 +3309,3 @@ COMMIT;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
-- 第一批持久化能力:三张业务表。已安装旧五表版本时,建表后另执行 20261014_flow_merge_tables.sql。
|
||||
-- 升级前备份并停写,先执行 DDL 再部署应用;不自动迁移运行中的任务。
|
||||
CREATE TABLE IF NOT EXISTS flow_draft (
|
||||
id varchar(36) NOT NULL, tenant_id bigint NOT NULL, user_id bigint NOT NULL,
|
||||
kind varchar(16) NOT NULL, flow_id varchar(64) NOT NULL DEFAULT '', title varchar(200) NOT NULL,
|
||||
payload longtext NOT NULL, revision bigint NOT NULL, updated_at timestamp(3) NOT NULL,
|
||||
PRIMARY KEY(id), KEY idx_draft_owner(tenant_id,user_id,kind,updated_at)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
CREATE TABLE IF NOT EXISTS flow_notice (
|
||||
id varchar(36) NOT NULL, tenant_id bigint NOT NULL, user_id varchar(64) NOT NULL,
|
||||
event_key varchar(180) NOT NULL, kind varchar(16) NOT NULL, title varchar(200) NOT NULL,
|
||||
task_id varchar(64) NOT NULL, instance_id varchar(64) NOT NULL,
|
||||
created_at timestamp(3) NOT NULL, read_at timestamp(3) NULL,
|
||||
status varchar(16) NOT NULL DEFAULT 'SENT', scheduled_at timestamp(3) NULL, sent_at timestamp(3) NULL,
|
||||
reminder_key varchar(64) NULL,
|
||||
PRIMARY KEY(id), UNIQUE KEY uk_notice_event(tenant_id,user_id,event_key), KEY idx_notice_owner(tenant_id,user_id,created_at),
|
||||
UNIQUE KEY uk_notice_reminder(tenant_id,reminder_key), KEY idx_notice_due(status,scheduled_at)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
CREATE TABLE IF NOT EXISTS flow_callback (
|
||||
id varchar(36) NOT NULL, tenant_id bigint NOT NULL, task_id varchar(64) NOT NULL,
|
||||
instance_id varchar(64) NOT NULL, target_url varchar(2000) NOT NULL, payload longtext NOT NULL,
|
||||
status varchar(16) NOT NULL, attempts int NOT NULL DEFAULT 0, max_attempts int NOT NULL DEFAULT 5, next_at timestamp(3) NOT NULL,
|
||||
history longtext NULL,
|
||||
lease_token varchar(36) NULL, lease_until timestamp(3) NULL, last_error varchar(500) NULL,
|
||||
created_at timestamp(3) NOT NULL, updated_at timestamp(3) NOT NULL,
|
||||
PRIMARY KEY(id), UNIQUE KEY uk_callback_task(tenant_id,task_id), KEY idx_callback_due(status,next_at)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
Reference in new issue
Block a user