-- =============================================
|
-- 任务状态变更历史记录表
|
-- 专门记录任务状态的每一次流转,便于审计与追溯
|
-- =============================================
|
|
DROP TABLE IF EXISTS `sys_task_status_history`;
|
CREATE TABLE `sys_task_status_history` (
|
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
`task_id` BIGINT NOT NULL COMMENT '任务ID',
|
`task_code` VARCHAR(64) DEFAULT NULL COMMENT '任务编号(冗余,方便查询)',
|
`from_status` VARCHAR(32) DEFAULT NULL COMMENT '变更前状态码(NULL表示初始创建)',
|
`from_status_name` VARCHAR(64) DEFAULT NULL COMMENT '变更前状态名称',
|
`to_status` VARCHAR(32) NOT NULL COMMENT '变更后状态码',
|
`to_status_name` VARCHAR(64) DEFAULT NULL COMMENT '变更后状态名称',
|
`change_reason` VARCHAR(500) DEFAULT NULL COMMENT '变更原因/备注',
|
`change_source` VARCHAR(32) DEFAULT 'APP' COMMENT '触发来源:APP-移动端,ADMIN-管理后台,SYSTEM-系统自动,LEGACY-旧系统同步',
|
`operator_id` BIGINT DEFAULT NULL COMMENT '操作人ID',
|
`operator_name` VARCHAR(64) DEFAULT NULL COMMENT '操作人姓名',
|
`change_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '变更时间',
|
`longitude` DOUBLE DEFAULT NULL COMMENT '操作时的经度(GPS定位)',
|
`latitude` DOUBLE DEFAULT NULL COMMENT '操作时的纬度(GPS定位)',
|
`location_address` VARCHAR(255) DEFAULT NULL COMMENT '操作时的位置地址',
|
`ip_address` VARCHAR(128) DEFAULT NULL COMMENT '操作IP地址',
|
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
|
PRIMARY KEY (`id`),
|
INDEX `idx_task_id` (`task_id`),
|
INDEX `idx_task_code` (`task_code`),
|
INDEX `idx_to_status` (`to_status`),
|
INDEX `idx_change_time`(`change_time`),
|
INDEX `idx_operator_id`(`operator_id`),
|
CONSTRAINT `fk_status_history_task` FOREIGN KEY (`task_id`) REFERENCES `sys_task`(`task_id`) ON DELETE CASCADE
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='任务状态变更历史记录表';
|