-- 本文件仅用于初始化,不用于升级已有数据库。 USE pigxx_flow; SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; CREATE TABLE `bpm_oa_leave` ( `id` BIGINT NOT NULL COMMENT '主键', `process_instance_id` VARCHAR(64) DEFAULT NULL COMMENT '流程实例编号', `username` VARCHAR(255) NOT NULL COMMENT '申请人', `leave_type` SMALLINT NOT NULL COMMENT '请假类型', `leave_reason` VARCHAR(255) DEFAULT NULL COMMENT '请假原因', `start_time` DATETIME(6) NOT NULL COMMENT '开始时间', `end_time` DATETIME(6) NOT NULL COMMENT '结束时间', `leave_day` SMALLINT NOT NULL COMMENT '请假天数', `leave_status` SMALLINT DEFAULT NULL COMMENT '请假结果', `create_by` VARCHAR(64) DEFAULT '' COMMENT '创建者', `create_time` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT '' COMMENT '更新者', `update_time` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '更新时间', `del_flag` CHAR(1) NOT NULL DEFAULT '0' COMMENT '是否删除', `tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户编号', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='请假申请表'; -- ---------------------------- -- Table structure for process -- ---------------------------- DROP TABLE IF EXISTS `process`; CREATE TABLE `process` ( `id` bigint NOT NULL COMMENT '用户id', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `flow_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '表单ID', `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '表单名称', `logo` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '图标配置', `settings` json DEFAULT NULL COMMENT '设置项', `group_id` bigint NOT NULL COMMENT '分组ID', `form_config` json NOT NULL COMMENT '表单设置信息', `form_items` json NOT NULL COMMENT '表单设置内容', `process` json NOT NULL COMMENT '流程设置内容', `remark` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', `sort` int NOT NULL, `is_hidden` char(1) NOT NULL COMMENT '0 正常 1=隐藏', `is_stop` char(1) NOT NULL COMMENT '0 正常 1=停用 ', `admin_id` bigint DEFAULT NULL COMMENT '流程管理员', `unique_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '唯一性id', `admin_list` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '管理员', `range_show` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '范围描述显示', `print_template` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '打印模板', `tenant_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '所属租户id', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `idx_form_id` (`flow_id`) USING BTREE, KEY `process_idx_id` (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=182 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流程定义数据'; -- ---------------------------- -- Table structure for process_copy -- ---------------------------- DROP TABLE IF EXISTS `process_copy`; CREATE TABLE `process_copy` ( `id` bigint NOT NULL COMMENT '用户id', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', `create_time` datetime COMMENT '创建时间', `update_time` datetime COMMENT '更新时间', `start_time` datetime NOT NULL COMMENT ' 流程发起时间', `node_time` datetime NOT NULL COMMENT '当前节点时间', `start_user_id` bigint NOT NULL COMMENT '发起人', `flow_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程id', `process_instance_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '实例id', `node_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '节点id', `group_id` bigint NOT NULL COMMENT '分组id', `group_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '分组名称', `process_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程名称', `node_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '节点 名称', `form_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '表单数据', `user_id` bigint NOT NULL COMMENT '抄送人id', `tenant_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '所属租户id', PRIMARY KEY (`id`) USING BTREE, KEY `copy_idx_id` (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=74 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流程抄送数据'; -- ---------------------------- -- Table structure for process_group -- ---------------------------- DROP TABLE IF EXISTS `process_group`; CREATE TABLE `process_group` ( `id` bigint NOT NULL COMMENT '用户id', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `group_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '分组名', `sort` int NOT NULL DEFAULT '0' COMMENT '排序', `tenant_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '所属租户id', PRIMARY KEY (`id`) USING BTREE, KEY `group_idx_id` (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流程分组'; -- ---------------------------- -- Table structure for process_instance_record -- ---------------------------- DROP TABLE IF EXISTS `process_instance_record`; CREATE TABLE `process_instance_record` ( `id` bigint NOT NULL COMMENT '用户id', `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程名字', `logo` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '头像', `user_id` bigint NOT NULL COMMENT '用户id', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `flow_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '流程id', `process_instance_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '流程实例id', `form_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '表单数据', `group_id` bigint DEFAULT NULL COMMENT '组id', `group_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '组名称', `status` int DEFAULT '1' COMMENT '状态', `finish_reason` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '结束原因', `end_time` datetime DEFAULT NULL COMMENT '结束时间', `parent_process_instance_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '上级流程实例id', `tenant_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '所属租户id', PRIMARY KEY (`id`) USING BTREE, KEY `record_idx_id` (`id`) USING BTREE, KEY `record_idx_dep_id` (`user_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=366 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='流程记录'; -- ---------------------------- -- Table structure for process_node_data -- ---------------------------- DROP TABLE IF EXISTS `process_node_data`; CREATE TABLE `process_node_data` ( `id` bigint NOT NULL COMMENT '用户id', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', `create_time` datetime COMMENT '创建时间', `update_time` datetime COMMENT '更新时间', `process_definition_id` varchar(64) DEFAULT NULL COMMENT '引擎流程定义ID,发布版本快照', `flow_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程id', `data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '表单数据', `node_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `tenant_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '所属租户id', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_node_definition` (`tenant_id`,`process_definition_id`,`node_id`), KEY `data_idx_id` (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=1195 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='流程节点数据'; -- ---------------------------- -- Table structure for process_node_record -- ---------------------------- DROP TABLE IF EXISTS `process_node_record`; CREATE TABLE `process_node_record` ( `id` bigint NOT NULL COMMENT '用户id', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', `create_time` datetime COMMENT '创建时间', `update_time` datetime COMMENT '更新时间', `flow_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程id', `process_instance_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程实例id', `data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '表单数据', `node_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `node_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '节点类型', `node_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '节点名字', `status` int NOT NULL COMMENT '节点状态', `start_time` datetime NOT NULL COMMENT '开始时间', `end_time` datetime DEFAULT NULL COMMENT '结束时间', `execution_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '执行id', `tenant_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '所属租户id', PRIMARY KEY (`id`) USING BTREE, KEY `node_idx_id` (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=1435 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='流程节点记录'; -- ---------------------------- -- Table structure for process_node_record_assign_user -- ---------------------------- DROP TABLE IF EXISTS `process_node_record_assign_user`; CREATE TABLE `process_node_record_assign_user` ( `id` bigint NOT NULL COMMENT '用户id', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', `create_time` datetime COMMENT '创建时间', `update_time` datetime COMMENT '更新时间', `flow_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程id', `process_instance_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程实例id', `data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '表单数据', `node_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `user_id` bigint NOT NULL COMMENT ' 用户id', `status` int NOT NULL COMMENT '节点状态', `start_time` datetime NOT NULL COMMENT '开始时间', `end_time` datetime DEFAULT NULL COMMENT '结束时间', `execution_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '执行id', `task_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ' 任务id', `approve_desc` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '审批意见', `node_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ' 节点名称', `task_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '任务类型', `local_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '表单本地数据', `node_record_id` bigint NOT NULL COMMENT '本轮节点执行记录id', `assignment_origin` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'ORIGINAL' COMMENT '分配来源 ORIGINAL/ADD_SIGN', `initial_user_id` bigint NOT NULL COMMENT '本份待办最初分配用户id', `add_sign_record_id` bigint DEFAULT NULL COMMENT '动态加签批次记录id', `tenant_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '所属租户id', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_node_record_user` (`tenant_id`,`node_record_id`,`user_id`) USING BTREE, KEY `user_idx_id` (`id`) USING BTREE, KEY `idx_add_sign_record_id` (`add_sign_record_id`) USING BTREE, KEY `idx_assign_tenant_instance_del` (`tenant_id`,`process_instance_id`,`del_flag`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=597 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='流程节点记录-执行人'; -- Flowable 列表查询索引:act_* 表由引擎初始化,不在本脚本中创建。 -- 首次启动完成后,在业务库手动执行以下 SQL 一次;已有同名索引时不要重复执行。 -- 待办:按审批人筛选、创建时间排序。 -- ALTER TABLE `act_ru_task` -- ADD INDEX `idx_task_assignee_create` (`ASSIGNEE_`, `CREATE_TIME_`), -- ALGORITHM=INPLACE, LOCK=NONE; -- 已办:按审批人及结束时间查询、统计。 -- ALTER TABLE `act_hi_actinst` -- ADD INDEX `idx_act_assignee_end` (`ASSIGNEE_`, `END_TIME_`), -- ALGORITHM=INPLACE, LOCK=NONE; -- ---------------------------- -- Table structure for process_task_add_sign_record -- ---------------------------- DROP TABLE IF EXISTS `process_task_add_sign_record`; CREATE TABLE `process_task_add_sign_record` ( `id` bigint NOT NULL COMMENT '主键id', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', `create_time` datetime COMMENT '创建时间', `update_time` datetime COMMENT '更新时间', `flow_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程id', `process_instance_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程实例id', `node_record_id` bigint NOT NULL COMMENT '本轮节点执行记录id', `node_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '节点id', `source_task_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '发起加签的任务id', `added_by_user_id` bigint NOT NULL COMMENT '加签发起人id', `reason` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '加签原因', `target_user_ids` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '本批次目标用户快照', `participant_user_ids_before` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '操作前参与人快照', `participant_user_ids_after` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '操作后参与人快照', `tenant_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '所属租户id', PRIMARY KEY (`id`) USING BTREE, KEY `idx_add_sign_node_record` (`tenant_id`,`node_record_id`) USING BTREE, KEY `idx_add_sign_process_instance` (`tenant_id`,`process_instance_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='流程动态加签批次记录'; -- ---------------------------- -- Table structure for process_starter -- ---------------------------- DROP TABLE IF EXISTS `process_starter`; CREATE TABLE `process_starter` ( `id` bigint NOT NULL COMMENT '用户id', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', `create_time` datetime COMMENT '创建时间', `update_time` datetime COMMENT '更新时间', `type_id` bigint NOT NULL COMMENT '用户id或者部门id', `type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT ' 类型 user dept', `process_id` bigint NOT NULL COMMENT '流程id', `tenant_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '所属租户id', PRIMARY KEY (`id`) USING BTREE, KEY `starter_idx_id` (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=217 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流程发起人'; -- ---------------------------- -- Table structure for bmp_oa_leave -- ---------------------------- DROP TABLE IF EXISTS `bmp_oa_leave`; CREATE TABLE `bmp_oa_leave` ( `id` bigint NOT NULL COMMENT '请假表单主键', `username` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '申请人', `leave_type` int NOT NULL COMMENT '请假类型', `leave_reason` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '请假原因', `start_time` datetime NOT NULL COMMENT '开始时间', `end_time` datetime NOT NULL COMMENT '结束时间', `leave_day` int NOT NULL COMMENT '请假天数', `leave_status` int DEFAULT NULL COMMENT '请假结果', `process_instance_id` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '流程实例的编号', `create_by` varchar(64) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '创建者', `create_time` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT '创建时间', `update_by` varchar(64) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者', `update_time` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '更新时间', `del_flag` char(1) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '是否删除', `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci 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 已投递,REMOVING 待撤销,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`), KEY `idx_notice_task` (`tenant_id`,`task_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流程通知事件'; SET FOREIGN_KEY_CHECKS = 1;