@@ -104,8 +104,8 @@ CREATE TABLE IF NOT EXISTS fl_container_event_inbox (
event_id VARCHAR ( 64 ) NOT NULL COMMENT ' 跨区事件全局唯一ID ' ,
event_type VARCHAR ( 64 ) NOT NULL COMMENT ' 事件类型 ' ,
event_version INT UNSIGNED NOT NULL COMMENT ' 事件契约版本 ' ,
aggregate_id VARCHAR ( 64 ) NOT NULL COMMENT ' 货柜 聚合ID' ,
aggregate_version BIGINT UNSIGNED NOT NULL COMMENT ' 货柜 聚合版本' ,
aggregate_id VARCHAR ( 64 ) NOT NULL COMMENT ' 跨区业务 聚合ID' ,
aggregate_version BIGINT UNSIGNED NOT NULL COMMENT ' 跨区业务 聚合版本' ,
payload_hash VARCHAR ( 80 ) NOT NULL COMMENT ' 规范化负载SHA-256摘要 ' ,
payload_json JSON NOT NULL COMMENT ' 原始事件负载 ' ,
status VARCHAR ( 16 ) NOT NULL COMMENT ' RECEIVED或PROCESSED ' ,
@@ -113,7 +113,7 @@ CREATE TABLE IF NOT EXISTS fl_container_event_inbox (
processed_at DATETIME ( 3 ) NULL COMMENT ' 处理完成时间(UTC) ' ,
PRIMARY KEY ( event_id ) ,
KEY idx_container_event_aggregate ( aggregate_id , aggregate_version )
) ENGINE = InnoDB COMMENT = ' 海外货柜 事件消费Inbox ' ;
) ENGINE = InnoDB COMMENT = ' 海外到国内业务 事件消费Inbox ' ;
DROP PROCEDURE IF EXISTS phase3_container_real_unit_columns ;
DELIMITER $ $
@@ -673,6 +673,66 @@ CREATE TABLE IF NOT EXISTS fl_loading_pick_history (
CONSTRAINT fk_loading_pick_history_item FOREIGN KEY ( pick_item_id ) REFERENCES fl_loading_pick_item ( id )
) ENGINE = InnoDB COMMENT = ' PDA拣货幂等和操作审计历史 ' ;
CREATE TABLE IF NOT EXISTS fl_loading_work_pallet (
id BIGINT UNSIGNED NOT NULL COMMENT ' 一件代发现场作业托盘ID ' ,
pick_task_id BIGINT UNSIGNED NOT NULL COMMENT ' PDA装柜拣货任务ID ' ,
loading_plan_id BIGINT UNSIGNED NOT NULL COMMENT ' 装柜计划ID快照 ' ,
warehouse_id BIGINT UNSIGNED NOT NULL COMMENT ' 作业仓库ID ' ,
warehouse_pallet_id BIGINT UNSIGNED NULL COMMENT ' 仓库实物托盘ID;未绑定仓库资源时为空 ' ,
pallet_code VARCHAR ( 64 ) NOT NULL COMMENT ' 现场托盘号 ' ,
open_operation_id VARCHAR ( 128 ) NOT NULL COMMENT ' 开托幂等操作号 ' ,
seal_operation_id VARCHAR ( 128 ) NULL COMMENT ' 封托幂等操作号 ' ,
pallet_status VARCHAR ( 16 ) NOT NULL DEFAULT ' OPEN ' COMMENT ' 托盘状态:OPEN打托中、SEALED已封托、CANCELLED已取消 ' ,
created_by BIGINT UNSIGNED NOT NULL COMMENT ' 创建操作人ID ' ,
created_by_name VARCHAR ( 64 ) NULL COMMENT ' 创建操作人名称快照 ' ,
sealed_by BIGINT UNSIGNED NULL COMMENT ' 封托操作人ID ' ,
sealed_by_name VARCHAR ( 64 ) NULL COMMENT ' 封托操作人名称快照 ' ,
sealed_at DATETIME ( 3 ) NULL COMMENT ' 封托时间 ' ,
version INT UNSIGNED NOT NULL DEFAULT 0 COMMENT ' 乐观锁版本号 ' ,
created_at DATETIME ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT ' 创建时间 ' ,
updated_at DATETIME ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) ON UPDATE CURRENT_TIMESTAMP ( 3 ) COMMENT ' 更新时间 ' ,
PRIMARY KEY ( id ) ,
UNIQUE KEY uk_loading_work_pallet_code ( pick_task_id , pallet_code ) ,
UNIQUE KEY uk_loading_work_pallet_open_operation ( open_operation_id ) ,
UNIQUE KEY uk_loading_work_pallet_seal_operation ( seal_operation_id ) ,
KEY idx_loading_work_pallet_plan ( loading_plan_id , pallet_status , id ) ,
CONSTRAINT fk_loading_work_pallet_task FOREIGN KEY ( pick_task_id ) REFERENCES fl_loading_pick_task ( id ) ,
CONSTRAINT fk_loading_work_pallet_plan FOREIGN KEY ( loading_plan_id ) REFERENCES fl_loading_plan ( id ) ,
CONSTRAINT chk_loading_work_pallet_status CHECK ( pallet_status IN ( ' OPEN ' , ' SEALED ' , ' CANCELLED ' ) )
) ENGINE = InnoDB COMMENT = ' 一件代发PDA现场实际托盘;允许同托盘承载多个客户订单 ' ;
CREATE TABLE IF NOT EXISTS fl_loading_work_pallet_carton (
id BIGINT UNSIGNED NOT NULL COMMENT ' 一件代发现场托盘箱唛绑定ID ' ,
pick_task_id BIGINT UNSIGNED NOT NULL COMMENT ' PDA装柜拣货任务ID ' ,
work_pallet_id BIGINT UNSIGNED NOT NULL COMMENT ' 现场作业托盘ID ' ,
loading_plan_item_id BIGINT UNSIGNED NOT NULL COMMENT ' 装柜计划货物明细ID ' ,
pick_item_id BIGINT UNSIGNED NOT NULL COMMENT ' PDA拣货明细ID ' ,
tenant_id BIGINT UNSIGNED NOT NULL COMMENT ' 箱唛所属客户ID ' ,
inbound_id BIGINT UNSIGNED NOT NULL COMMENT ' 来源入仓单ID ' ,
inbound_detail_id BIGINT UNSIGNED NOT NULL COMMENT ' 来源入仓货物明细ID ' ,
carton_label_id BIGINT UNSIGNED NOT NULL COMMENT ' 稳定箱唛记录ID ' ,
box_code VARCHAR ( 80 ) NOT NULL COMMENT ' 稳定箱唛箱码快照 ' ,
sku_code VARCHAR ( 128 ) NOT NULL COMMENT ' SKU编码快照 ' ,
units_per_carton INT UNSIGNED NULL COMMENT ' 每箱产品数量快照 ' ,
bound_by BIGINT UNSIGNED NOT NULL COMMENT ' 最后绑定操作人ID ' ,
bound_by_name VARCHAR ( 64 ) NULL COMMENT ' 最后绑定操作人名称快照 ' ,
operation_id VARCHAR ( 128 ) NOT NULL COMMENT ' 最近一次绑定或移托幂等操作号 ' ,
version INT UNSIGNED NOT NULL DEFAULT 0 COMMENT ' 乐观锁版本号 ' ,
created_at DATETIME ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT ' 首次上托时间 ' ,
updated_at DATETIME ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) ON UPDATE CURRENT_TIMESTAMP ( 3 ) COMMENT ' 最后移托时间 ' ,
PRIMARY KEY ( id ) ,
UNIQUE KEY uk_loading_work_carton_task_label ( pick_task_id , carton_label_id ) ,
UNIQUE KEY uk_loading_work_carton_operation ( operation_id ) ,
KEY idx_loading_work_carton_pallet ( work_pallet_id , sku_code , id ) ,
KEY idx_loading_work_carton_plan_item ( loading_plan_item_id , id ) ,
CONSTRAINT fk_loading_work_carton_task FOREIGN KEY ( pick_task_id ) REFERENCES fl_loading_pick_task ( id ) ,
CONSTRAINT fk_loading_work_carton_pallet FOREIGN KEY ( work_pallet_id ) REFERENCES fl_loading_work_pallet ( id ) ,
CONSTRAINT fk_loading_work_carton_plan_item FOREIGN KEY ( loading_plan_item_id ) REFERENCES fl_loading_plan_item ( id ) ,
CONSTRAINT fk_loading_work_carton_pick_item FOREIGN KEY ( pick_item_id ) REFERENCES fl_loading_pick_item ( id ) ,
CONSTRAINT fk_loading_work_carton_label FOREIGN KEY ( carton_label_id ) REFERENCES fl_inbound_carton_label ( id ) ,
CONSTRAINT chk_loading_work_carton_units CHECK ( units_per_carton IS NULL OR units_per_carton > 0 )
) ENGINE = InnoDB COMMENT = ' 一件代发PDA逐箱上托事实;客户订单不合并但实际托盘可混托 ' ;
DROP PROCEDURE IF EXISTS repair_phase3_loading_pick_task_foreign_keys ;
DELIMITER $ $
CREATE PROCEDURE repair_phase3_loading_pick_task_foreign_keys ( )