feat: freeze and propagate first-leg pallet labels

This commit is contained in:
2026-09-09 17:27:00 +08:00
parent 83e95d764e
commit de1f7e8ddd
24 changed files with 560 additions and 21 deletions
@@ -112,6 +112,22 @@ CREATE TABLE IF NOT EXISTS ll_order (
KEY idx_ll_order_container_progress(source_container_booking_id,estimated_warehouse_at,created_at,id)
) ENGINE=InnoDB COMMENT='尾程订单主表';
CREATE TABLE IF NOT EXISTS ll_order_source_pallet (
id BIGINT NOT NULL COMMENT '来源托盘快照ID',
customer_id VARCHAR(128) NOT NULL COMMENT '客户隔离键',
order_id BIGINT NOT NULL COMMENT '尾程订单ID',
source_pallet_no VARCHAR(128) NOT NULL COMMENT '头程冻结托盘码',
sequence_no INT NOT NULL COMMENT '订单内稳定顺序',
source_event_id VARCHAR(128) NOT NULL COMMENT '来源装柜完成事件ID',
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
PRIMARY KEY(id),
UNIQUE KEY uk_ll_source_pallet_no(source_pallet_no),
UNIQUE KEY uk_ll_source_pallet_sequence(customer_id,order_id,sequence_no),
KEY idx_ll_source_pallet_order(customer_id,order_id),
CONSTRAINT fk_ll_source_pallet_order FOREIGN KEY(order_id) REFERENCES ll_order(id)
) ENGINE=InnoDB COMMENT='头程交接的不可变托盘码快照';
SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_order' AND column_name='pallet_merge_batch_id'), 'SELECT 1', 'ALTER TABLE ll_order ADD COLUMN pallet_merge_batch_id VARCHAR(64) NULL COMMENT ''平台预标记合托分组号'' AFTER pallet_merge_flag'));
PREPARE ll_order_merge_batch_ddl FROM @ddl; EXECUTE ll_order_merge_batch_ddl; DEALLOCATE PREPARE ll_order_merge_batch_ddl;
SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_order' AND column_name='hold_chargeable'), 'SELECT 1', 'ALTER TABLE ll_order ADD COLUMN hold_chargeable TINYINT NOT NULL DEFAULT 0 COMMENT ''当前暂扣是否计费:0否1是'' AFTER detained'));