暂存提交
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
-- 头程履约服务独占数据库。
|
||||
CREATE DATABASE IF NOT EXISTS baiyue_firstleg
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
|
||||
USE baiyue_firstleg;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS fl_fulfillment_task (
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '履约任务ID(雪花ID)',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
||||
order_id BIGINT UNSIGNED NOT NULL COMMENT '订单服务中的订单逻辑ID,不建立跨库外键',
|
||||
order_no VARCHAR(32) NOT NULL COMMENT '订单号快照',
|
||||
order_snapshot_json JSON NOT NULL COMMENT '创建履约任务时所需的订单业务快照',
|
||||
status VARCHAR(24) NOT NULL DEFAULT 'PENDING_ASSIGNMENT' COMMENT '履约任务当前状态',
|
||||
assignee_id BIGINT UNSIGNED NULL COMMENT '当前负责人ID',
|
||||
assignee_name VARCHAR(64) NULL COMMENT '当前负责人名称快照',
|
||||
assigned_at DATETIME(3) NULL COMMENT '最近指派时间',
|
||||
started_at DATETIME(3) NULL COMMENT '开始履约时间',
|
||||
completed_at DATETIME(3) NULL COMMENT '履约完成时间',
|
||||
created_by BIGINT UNSIGNED NOT NULL COMMENT '创建人或系统主体ID',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||||
updated_by BIGINT UNSIGNED NOT NULL COMMENT '最后修改人ID',
|
||||
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||||
deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标记',
|
||||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_task_tenant_order (tenant_id, order_id),
|
||||
KEY idx_task_assignee_status (tenant_id, assignee_id, status, created_at)
|
||||
) ENGINE=InnoDB COMMENT='头程履约任务表:接收订单事件后形成独立履约任务,管理指派、执行和完成状态';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS fl_assignment_history (
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '指派历史ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
||||
task_id BIGINT UNSIGNED NOT NULL COMMENT '所属履约任务ID',
|
||||
previous_assignee_id BIGINT UNSIGNED NULL COMMENT '原负责人ID',
|
||||
assignee_id BIGINT UNSIGNED NOT NULL COMMENT '新负责人ID',
|
||||
assignee_name VARCHAR(64) NOT NULL COMMENT '新负责人名称快照',
|
||||
reason VARCHAR(500) NULL COMMENT '指派或改派原因',
|
||||
operator_id BIGINT UNSIGNED NOT NULL COMMENT '执行指派的操作人ID',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '指派发生时间',
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_assignment_task_time (tenant_id, task_id, created_at),
|
||||
CONSTRAINT fk_assignment_task FOREIGN KEY (task_id) REFERENCES fl_fulfillment_task (id)
|
||||
) ENGINE=InnoDB COMMENT='头程任务指派历史表:不可变记录每次负责人变更及原因,用于追踪和审计';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS fl_consumed_event (
|
||||
event_id BIGINT UNSIGNED NOT NULL COMMENT '已消费领域事件ID,与生产端Outbox事件ID一致',
|
||||
event_type VARCHAR(64) NOT NULL COMMENT '已消费事件类型',
|
||||
consumed_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '首次成功消费时间',
|
||||
PRIMARY KEY (event_id)
|
||||
) ENGINE=InnoDB COMMENT='头程消息消费幂等表:记录已处理事件并按事件ID去重,防止RocketMQ重复投递造成重复建单;不是消息发布表';
|
||||
Reference in New Issue
Block a user