fix: order dropship schema convergence before assertions
This commit is contained in:
@@ -8000,6 +8000,57 @@ SELECT role.id, permission.id, role.tenant_id
|
||||
)
|
||||
WHERE role.tenant_id = 0 AND role.role_code IN ('PLATFORM_ADMIN', 'ORDER_OPERATOR');
|
||||
|
||||
-- 已存在库必须先把装柜分配唯一键收敛到“普通明细或封托托盘”,再执行三期断言。
|
||||
USE baiyue_firstleg;
|
||||
DROP PROCEDURE IF EXISTS converge_loading_assignment_schema;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE converge_loading_assignment_schema()
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM information_schema.columns
|
||||
WHERE table_schema='baiyue_firstleg' AND table_name='fl_loading_plan_item'
|
||||
AND column_name='unit_type') THEN
|
||||
ALTER TABLE fl_loading_plan_item
|
||||
ADD COLUMN unit_type VARCHAR(24) NOT NULL DEFAULT 'PACKAGE'
|
||||
COMMENT '分配单元:PACKAGE普通箱、SEALED_PALLET一件代发封托' AFTER product_quantity,
|
||||
ADD COLUMN pallet_id BIGINT UNSIGNED NULL COMMENT '一件代发封托ID;普通箱为空' AFTER unit_type,
|
||||
ADD COLUMN pallet_no VARCHAR(32) NULL COMMENT '一件代发系统托盘码快照' AFTER pallet_id,
|
||||
ADD COLUMN indivisible TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否为不可拆整托单元' AFTER pallet_no;
|
||||
END IF;
|
||||
ALTER TABLE fl_loading_plan_item
|
||||
MODIFY COLUMN unit_type VARCHAR(24) NOT NULL DEFAULT 'PACKAGE'
|
||||
COMMENT '分配单元:PACKAGE普通箱、SEALED_PALLET一件代发封托',
|
||||
MODIFY COLUMN pallet_id BIGINT UNSIGNED NULL COMMENT '一件代发封托ID;普通箱为空',
|
||||
MODIFY COLUMN pallet_no VARCHAR(32) NULL COMMENT '一件代发系统托盘码快照',
|
||||
MODIFY COLUMN indivisible TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否为不可拆整托单元';
|
||||
IF NOT EXISTS (SELECT 1 FROM information_schema.columns
|
||||
WHERE table_schema='baiyue_firstleg' AND table_name='fl_loading_plan_item'
|
||||
AND column_name='active_assignment_key') THEN
|
||||
ALTER TABLE fl_loading_plan_item
|
||||
ADD COLUMN active_assignment_key VARCHAR(96)
|
||||
GENERATED ALWAYS AS (CASE WHEN deleted=0 THEN CONCAT(CASE WHEN pallet_id IS NULL THEN 'D:0' ELSE CONCAT('P:',pallet_id) END,':',inbound_detail_id) ELSE NULL END) STORED
|
||||
COMMENT '普通明细或已封托托盘明细的有效唯一锁' AFTER active_inbound_detail_id;
|
||||
END IF;
|
||||
IF EXISTS (SELECT 1 FROM information_schema.statistics
|
||||
WHERE table_schema='baiyue_firstleg' AND table_name='fl_loading_plan_item'
|
||||
AND index_name='uk_loading_item_plan_detail') THEN
|
||||
ALTER TABLE fl_loading_plan_item DROP INDEX uk_loading_item_plan_detail;
|
||||
END IF;
|
||||
IF NOT EXISTS (SELECT 1 FROM information_schema.statistics
|
||||
WHERE table_schema='baiyue_firstleg' AND table_name='fl_loading_plan_item'
|
||||
AND index_name='uk_loading_item_plan_assignment') THEN
|
||||
ALTER TABLE fl_loading_plan_item
|
||||
ADD UNIQUE KEY uk_loading_item_plan_assignment (loading_plan_id,active_assignment_key);
|
||||
END IF;
|
||||
IF NOT EXISTS (SELECT 1 FROM information_schema.statistics
|
||||
WHERE table_schema='baiyue_firstleg' AND table_name='fl_loading_plan_item'
|
||||
AND index_name='idx_loading_item_pallet') THEN
|
||||
ALTER TABLE fl_loading_plan_item ADD KEY idx_loading_item_pallet (pallet_id,deleted);
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
CALL converge_loading_assignment_schema();
|
||||
DROP PROCEDURE IF EXISTS converge_loading_assignment_schema;
|
||||
|
||||
-- 污染存量库必须先完成旧入库权限搬迁和两类授权恢复,再校验智能装柜权限。
|
||||
USE baiyue_firstleg;
|
||||
CALL assert_phase3_smart_loading_schema();
|
||||
@@ -17572,8 +17623,11 @@ BEGIN
|
||||
MODIFY COLUMN expected_sku_quantity INT UNSIGNED NOT NULL COMMENT '箱唛冻结的应收SKU数量',
|
||||
MODIFY COLUMN actual_sku_quantity INT UNSIGNED NOT NULL COMMENT 'PDA确认的实收SKU数量',
|
||||
MODIFY COLUMN discrepancy_status VARCHAR(24) NOT NULL COMMENT '差异状态:MATCH或ACCEPTED_VARIANCE',
|
||||
MODIFY COLUMN discrepancy_remark VARCHAR(500) NULL COMMENT '差异接受说明',
|
||||
MODIFY COLUMN bind_operation_id VARCHAR(128) NULL COMMENT '批量绑托幂等操作ID',
|
||||
MODIFY COLUMN last_operation_id VARCHAR(128) NOT NULL COMMENT '最后一次绑托或换托操作幂等号',
|
||||
MODIFY COLUMN counted_by BIGINT UNSIGNED NOT NULL COMMENT '清点操作人ID',
|
||||
MODIFY COLUMN counted_by_name VARCHAR(64) NULL COMMENT '清点操作人姓名快照',
|
||||
MODIFY COLUMN counted_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '清点时间',
|
||||
MODIFY COLUMN bound_by BIGINT UNSIGNED NULL COMMENT '上托操作人ID',
|
||||
MODIFY COLUMN bound_at DATETIME(3) NULL COMMENT '上托时间';
|
||||
@@ -17594,11 +17648,18 @@ BEGIN
|
||||
WHERE table_schema='baiyue_firstleg' AND table_name='fl_loading_plan_item'
|
||||
AND column_name='unit_type') THEN
|
||||
ALTER TABLE fl_loading_plan_item
|
||||
ADD COLUMN unit_type VARCHAR(24) NOT NULL DEFAULT 'PACKAGE' AFTER product_quantity,
|
||||
ADD COLUMN pallet_id BIGINT UNSIGNED NULL AFTER unit_type,
|
||||
ADD COLUMN pallet_no VARCHAR(32) NULL AFTER pallet_id,
|
||||
ADD COLUMN indivisible TINYINT(1) NOT NULL DEFAULT 0 AFTER pallet_no;
|
||||
ADD COLUMN unit_type VARCHAR(24) NOT NULL DEFAULT 'PACKAGE'
|
||||
COMMENT '分配单元:PACKAGE普通箱、SEALED_PALLET一件代发封托' AFTER product_quantity,
|
||||
ADD COLUMN pallet_id BIGINT UNSIGNED NULL COMMENT '一件代发封托ID;普通箱为空' AFTER unit_type,
|
||||
ADD COLUMN pallet_no VARCHAR(32) NULL COMMENT '一件代发系统托盘码快照' AFTER pallet_id,
|
||||
ADD COLUMN indivisible TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否为不可拆整托单元' AFTER pallet_no;
|
||||
END IF;
|
||||
ALTER TABLE fl_loading_plan_item
|
||||
MODIFY COLUMN unit_type VARCHAR(24) NOT NULL DEFAULT 'PACKAGE'
|
||||
COMMENT '分配单元:PACKAGE普通箱、SEALED_PALLET一件代发封托',
|
||||
MODIFY COLUMN pallet_id BIGINT UNSIGNED NULL COMMENT '一件代发封托ID;普通箱为空',
|
||||
MODIFY COLUMN pallet_no VARCHAR(32) NULL COMMENT '一件代发系统托盘码快照',
|
||||
MODIFY COLUMN indivisible TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否为不可拆整托单元';
|
||||
IF NOT EXISTS (SELECT 1 FROM information_schema.columns
|
||||
WHERE table_schema='baiyue_firstleg' AND table_name='fl_loading_plan_item'
|
||||
AND column_name='active_assignment_key') THEN
|
||||
|
||||
+1
@@ -39,6 +39,7 @@ class DropshipPalletizationSqlContractTest {
|
||||
.doesNotContain("CREATE TABLE IF NOT EXISTS fl_loading_work_pallet_carton (");
|
||||
}
|
||||
assertThat(unified)
|
||||
.contains("CREATE PROCEDURE converge_loading_assignment_schema()")
|
||||
.contains("CREATE PROCEDURE converge_dropship_palletization_schema()")
|
||||
.contains("CHANGE COLUMN operation_id count_operation_id")
|
||||
.contains("DROP INDEX uk_loading_item_plan_detail")
|
||||
|
||||
Reference in New Issue
Block a user