Files
baiyue-firstleg/lastleg-service/src/main/resources/db/appointment-work.sql
T

60 lines
4.4 KiB
SQL

-- DDL proposal only. The coordinator must integrate the approved baseline; do not execute from this task.
CREATE TABLE IF NOT EXISTS ll_dispatch_appointment_allocation (
dispatch_id BIGINT NOT NULL COMMENT '排车单标识',
dispatch_item_id BIGINT NOT NULL COMMENT '排车明细标识',
plan_pallet_id BIGINT NOT NULL COMMENT '入仓计划托盘标识',
batch_key VARCHAR(96) NOT NULL COMMENT '预约稳定批次键',
customer_id VARCHAR(64) NOT NULL COMMENT '所属客户标识',
source_key VARCHAR(160) NOT NULL COMMENT '货物来源稳定键',
destination_key VARCHAR(160) NOT NULL COMMENT '目的地稳定键',
package_count INT NOT NULL COMMENT '本票分配实物箱数',
PRIMARY KEY(dispatch_item_id,batch_key,source_key,destination_key),
KEY idx_dispatch_appointment_batch(batch_key,customer_id),
KEY idx_dispatch_appointment_dispatch(dispatch_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='排车实物与预约批次逐票分配,原执行域事实';
CREATE TABLE IF NOT EXISTS ll_appointment_work_commitment (
entity_key VARCHAR(160) NOT NULL COMMENT '原业务实体稳定键',
state_json LONGTEXT NOT NULL COMMENT '原业务命令产生的只读语义影响基线,不是第二份可编辑计划',
impact_version BIGINT NOT NULL DEFAULT 0 COMMENT '承诺影响单调递增版本',
PRIMARY KEY (entity_key)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='工作事项承诺影响审计基线';
CREATE TABLE IF NOT EXISTS ll_appointment_work_guard (
id INT NOT NULL COMMENT '工作事项协调锁,固定1',
scan_cursor VARCHAR(128) NULL COMMENT '已开船来源同步游标',
initialized BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否完成首次完整来源扫描',
scope_version VARCHAR(128) NULL COMMENT '完整同步已确认的权威来源集合版本',
scan_scope_version VARCHAR(128) NULL COMMENT '当前扫描来源集合版本,防跨页漂移',
completed_at DATETIME(3) NULL COMMENT '最近完整同步UTC时间',
requirement_version BIGINT NOT NULL DEFAULT 0 COMMENT '原域命令在同一事务推进的需求版本',
synchronized_requirement_version BIGINT NOT NULL DEFAULT 0 COMMENT '完整扫描已消费需求版本',
scan_requirement_version BIGINT NOT NULL DEFAULT 0 COMMENT '当前扫描需求版本,防跨页漂移',
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='预约工作事项同步与命令串行守卫';
INSERT INTO ll_appointment_work_guard(id,initialized) SELECT 1,FALSE WHERE NOT EXISTS(SELECT 1 FROM ll_appointment_work_guard WHERE id=1);
CREATE TABLE IF NOT EXISTS ll_appointment_work (
work_item_key VARCHAR(96) NOT NULL COMMENT '不可变事项键,业务身份确定性生成',
container_booking_id VARCHAR(64) NOT NULL COMMENT '来源柜次内部关联标识,不作展示编号',
version INT NOT NULL DEFAULT 0 COMMENT '工作命令乐观锁版本',
retired BOOLEAN NOT NULL DEFAULT FALSE COMMENT '已替代或已完成路线需求,不计活动工作',
state_json LONGTEXT NOT NULL COMMENT '工作关系责任跟进及影响基线,不保存可编辑业务执行事实',
PRIMARY KEY (work_item_key),
KEY idx_appointment_work_container (container_booking_id,retired)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='预约工作事项需求与关系';
CREATE TABLE IF NOT EXISTS ll_appointment_work_history (
id VARCHAR(36) NOT NULL COMMENT '历史记录标识',
work_item_key VARCHAR(96) NOT NULL COMMENT '事项稳定键',
operator_id VARCHAR(64) NOT NULL COMMENT '真实操作人员标识',
operator_name VARCHAR(128) NULL COMMENT '操作人显示名称',
action VARCHAR(48) NOT NULL COMMENT '工作命令或观察动作',
summary VARCHAR(2000) NOT NULL COMMENT '处理或责任变更依据',
command_key VARCHAR(64) NULL COMMENT '请求幂等键,观察记录为空',
request_hash VARCHAR(64) NULL COMMENT '包含操作者的规范请求摘要',
response_json LONGTEXT NULL COMMENT '原命令响应快照,重放不随当前状态改变',
occurred_at DATETIME(3) NOT NULL COMMENT '历史发生UTC时间',
PRIMARY KEY (id),
UNIQUE KEY uk_appointment_work_command (work_item_key,command_key),
KEY idx_appointment_work_history (work_item_key,occurred_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='预约工作事项历史与幂等命令';