feat(appointments): support scoped receiving and stable trip continuation

This commit is contained in:
2026-10-16 15:43:04 +08:00
parent 4e2ea89403
commit 30f48bd926
84 changed files with 4879 additions and 136 deletions
@@ -1649,6 +1649,57 @@ CREATE TABLE IF NOT EXISTS ll_appointment_followup (
CONSTRAINT chk_appointment_followup_stage CHECK (stage IN ('DRAYAGE_CONTACT','TERMINAL_APPOINTMENT','WAREHOUSE_RECEIVING','FBA_RECEIVING'))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='真实在途货源的预约筹划联系记录,追加留痕';
-- V13 receiving coverage and pending changes; baseline only, no test data migration.
CREATE TABLE IF NOT EXISTS ll_fba_receiving_agreement (
agreement_key VARCHAR(64) NOT NULL COMMENT '收货预约独立业务键',
version INT NOT NULL COMMENT '预约覆盖范围与确认资料版本',
status VARCHAR(24) NOT NULL COMMENT '有效、取消或已替代状态',
destination_key VARCHAR(128) NOT NULL COMMENT '权威目的仓关联键',
confirmation_no VARCHAR(128) NULL COMMENT '当前有效外部约号,失效后清空以释放覆盖',
snapshot_json LONGTEXT NOT NULL COMMENT '客户逐来源覆盖、确认时区及仓库依据快照',
PRIMARY KEY (agreement_key),
UNIQUE KEY uk_fba_receiving_confirmation (destination_key, confirmation_no)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='独立于送货批次的收货预约';
CREATE TABLE IF NOT EXISTS ll_fba_receiving_member (
agreement_key VARCHAR(64) NOT NULL COMMENT '所属收货预约业务键',
batch_key VARCHAR(128) NOT NULL COMMENT '稳定送货批次键',
customer_id VARCHAR(128) NOT NULL COMMENT '货物所属客户标识',
active_ref VARCHAR(260) NULL COMMENT '有效批次与客户唯一引用,退出后清空且历史保留',
PRIMARY KEY (agreement_key,batch_key,customer_id),
UNIQUE KEY uk_fba_receiving_active_member (active_ref),
KEY idx_fba_receiving_batch (batch_key,customer_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='收货预约当前覆盖关联及退出历史';
CREATE TABLE IF NOT EXISTS ll_fba_receiving_change (
change_key VARCHAR(64) NOT NULL COMMENT '客户预约变化业务键',
version INT NOT NULL COMMENT '变化续办版本',
status VARCHAR(24) NOT NULL COMMENT '待仓库确认、已应用或已撤回状态',
batch_key VARCHAR(128) NOT NULL COMMENT '受影响原送货批次键',
customer_id VARCHAR(128) NOT NULL COMMENT '本次变化所属客户',
snapshot_json LONGTEXT NOT NULL COMMENT '原覆盖快照、逐来源拟保留量、负责人及跟进资料',
result_json LONGTEXT NULL COMMENT '确认后的实际批次去向及逐步骤结果',
active_ref VARCHAR(260) NULL COMMENT '同批同客户唯一未解决变化引用',
PRIMARY KEY (change_key),
UNIQUE KEY uk_fba_receiving_pending (active_ref),
KEY idx_fba_receiving_pending_batch (batch_key,status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='保留原安排且阻止误发车的客户变化';
CREATE TABLE IF NOT EXISTS ll_fba_receiving_revision (
agreement_key VARCHAR(64) NOT NULL COMMENT '收货预约业务键',
version INT NOT NULL COMMENT '不可变覆盖与确认版本',
snapshot_json LONGTEXT NOT NULL COMMENT '该版本完整客户覆盖、确认时段及回复依据',
PRIMARY KEY (agreement_key,version)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='收货预约覆盖与确认不可变历史';
CREATE TABLE IF NOT EXISTS ll_fba_receiving_plan (
batch_key VARCHAR(128) NOT NULL COMMENT '稳定送货批次键',
customer_id VARCHAR(128) NOT NULL COMMENT '计划所属客户标识',
snapshot_json LONGTEXT NOT NULL COMMENT '本客户未确认计划、目标窗口及业务时区,不含有效预约确认',
PRIMARY KEY (batch_key,customer_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='按批次及客户保存的未确认收货计划';
CREATE TABLE IF NOT EXISTS ll_inbound_fba_appointment (
id BIGINT NOT NULL COMMENT '主键ID',
appointment_no VARCHAR(64) NOT NULL COMMENT '系统预约业务单号,不是外部约号',
@@ -1675,7 +1726,6 @@ CREATE TABLE IF NOT EXISTS ll_inbound_fba_appointment (
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '更新UTC时间',
PRIMARY KEY (id),
UNIQUE KEY uk_ll_fba_appointment_no (appointment_no),
UNIQUE KEY uk_ll_fba_external_confirmation (fba_warehouse_code,confirmation_no),
KEY idx_ll_fba_appointment_list (appointment_at,appointment_status,fba_warehouse_code),
KEY idx_ll_fba_appointment_planned (planned_at,appointment_status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='FBA预约安排与正式确认唯一主记录';
@@ -1692,7 +1742,7 @@ CREATE TABLE IF NOT EXISTS ll_inbound_fba_appointment_item (
package_count INT NULL COMMENT '本批分配箱数,未知保持空;同一原来源总量守恒',
cargo_verification_version INT NULL COMMENT '采用的预约货物核实版本,未核实时为空',
shipment_references_json LONGTEXT NULL COMMENT '本次采用的货件或追踪号核实快照',
active TINYINT(1) NOT NULL DEFAULT 1 COMMENT '取消或失败后释放货源占用',
active TINYINT(1) NOT NULL DEFAULT 1 COMMENT '当前批次数量分配有效;取消、未约成和完成均保留,仅替代时释放',
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建UTC时间',
PRIMARY KEY (id),
UNIQUE KEY uk_ll_fba_item_source (appointment_id,source_key),