Files
jsowell-charger-web/docs/sql/sys_todo_task.sql

40 lines
2.8 KiB
MySQL
Raw Normal View History

-- 待办事项中心任务表
-- 说明active_idempotent_key 仅在非终态任务中保留,终态时置空,
-- 用于同时满足“有效任务唯一”和“终态后允许重新创建”的要求。
CREATE TABLE `sys_todo_task` (
`todo_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '待办任务主键',
`task_type` varchar(64) NOT NULL COMMENT '待办类型编码',
`title` varchar(200) NOT NULL COMMENT '待办标题',
`summary` varchar(500) DEFAULT NULL COMMENT '待办摘要',
`content` text COMMENT '待办详细内容(纯文本)',
`business_type` varchar(64) NOT NULL COMMENT '业务类型编码',
`business_id` varchar(64) NOT NULL COMMENT '业务主键或单号',
`route_name` varchar(100) NOT NULL COMMENT '前端白名单路由名称',
`route_params` varchar(1000) DEFAULT NULL COMMENT '前端路由参数 JSON',
`assignee_user_id` bigint(20) NOT NULL COMMENT '接收用户 ID',
`assignee_merchant_id` varchar(64) DEFAULT NULL COMMENT '接收运营商 ID',
`priority` tinyint(3) NOT NULL DEFAULT '1' COMMENT '优先级1普通 2重要 3紧急',
`task_status` varchar(20) NOT NULL DEFAULT 'PENDING' COMMENT '任务状态PENDING PROCESSING COMPLETED CANCELLED EXPIRED',
`read_status` char(1) NOT NULL DEFAULT '0' COMMENT '阅读状态0未读 1已读',
`read_time` datetime DEFAULT NULL COMMENT '阅读时间',
`due_time` datetime DEFAULT NULL COMMENT '截止时间',
`completed_time` datetime DEFAULT NULL COMMENT '完成时间',
`completed_by` bigint(20) DEFAULT NULL COMMENT '完成人用户 ID',
`cancel_reason` varchar(500) DEFAULT NULL COMMENT '取消原因',
`idempotent_key` varchar(200) NOT NULL COMMENT '业务原始幂等键',
`active_idempotent_key` varchar(200) DEFAULT NULL COMMENT '有效任务幂等键,终态置空',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除0正常 2删除',
PRIMARY KEY (`todo_id`) USING BTREE,
UNIQUE KEY `uk_todo_active_idempotent` (`active_idempotent_key`) USING BTREE,
KEY `idx_todo_user_status` (`assignee_user_id`, `task_status`, `read_status`, `priority`, `create_time`) USING BTREE,
KEY `idx_todo_merchant_status` (`assignee_merchant_id`, `task_status`, `create_time`) USING BTREE,
KEY `idx_todo_business` (`business_type`, `business_id`) USING BTREE,
KEY `idx_todo_history_cleanup` (`del_flag`, `task_status`, `completed_time`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='用户待办任务表';