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');
|
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;
|
USE baiyue_firstleg;
|
||||||
CALL assert_phase3_smart_loading_schema();
|
CALL assert_phase3_smart_loading_schema();
|
||||||
@@ -17572,8 +17623,11 @@ BEGIN
|
|||||||
MODIFY COLUMN expected_sku_quantity INT UNSIGNED NOT NULL COMMENT '箱唛冻结的应收SKU数量',
|
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 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_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 last_operation_id VARCHAR(128) NOT NULL COMMENT '最后一次绑托或换托操作幂等号',
|
||||||
MODIFY COLUMN counted_by BIGINT UNSIGNED NOT NULL COMMENT '清点操作人ID',
|
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 counted_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '清点时间',
|
||||||
MODIFY COLUMN bound_by BIGINT UNSIGNED NULL COMMENT '上托操作人ID',
|
MODIFY COLUMN bound_by BIGINT UNSIGNED NULL COMMENT '上托操作人ID',
|
||||||
MODIFY COLUMN bound_at DATETIME(3) NULL COMMENT '上托时间';
|
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'
|
WHERE table_schema='baiyue_firstleg' AND table_name='fl_loading_plan_item'
|
||||||
AND column_name='unit_type') THEN
|
AND column_name='unit_type') THEN
|
||||||
ALTER TABLE fl_loading_plan_item
|
ALTER TABLE fl_loading_plan_item
|
||||||
ADD COLUMN unit_type VARCHAR(24) NOT NULL DEFAULT 'PACKAGE' AFTER product_quantity,
|
ADD COLUMN unit_type VARCHAR(24) NOT NULL DEFAULT 'PACKAGE'
|
||||||
ADD COLUMN pallet_id BIGINT UNSIGNED NULL AFTER unit_type,
|
COMMENT '分配单元:PACKAGE普通箱、SEALED_PALLET一件代发封托' AFTER product_quantity,
|
||||||
ADD COLUMN pallet_no VARCHAR(32) NULL AFTER pallet_id,
|
ADD COLUMN pallet_id BIGINT UNSIGNED NULL COMMENT '一件代发封托ID;普通箱为空' AFTER unit_type,
|
||||||
ADD COLUMN indivisible TINYINT(1) NOT NULL DEFAULT 0 AFTER pallet_no;
|
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;
|
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
|
IF NOT EXISTS (SELECT 1 FROM information_schema.columns
|
||||||
WHERE table_schema='baiyue_firstleg' AND table_name='fl_loading_plan_item'
|
WHERE table_schema='baiyue_firstleg' AND table_name='fl_loading_plan_item'
|
||||||
AND column_name='active_assignment_key') THEN
|
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 (");
|
.doesNotContain("CREATE TABLE IF NOT EXISTS fl_loading_work_pallet_carton (");
|
||||||
}
|
}
|
||||||
assertThat(unified)
|
assertThat(unified)
|
||||||
|
.contains("CREATE PROCEDURE converge_loading_assignment_schema()")
|
||||||
.contains("CREATE PROCEDURE converge_dropship_palletization_schema()")
|
.contains("CREATE PROCEDURE converge_dropship_palletization_schema()")
|
||||||
.contains("CHANGE COLUMN operation_id count_operation_id")
|
.contains("CHANGE COLUMN operation_id count_operation_id")
|
||||||
.contains("DROP INDEX uk_loading_item_plan_detail")
|
.contains("DROP INDEX uk_loading_item_plan_detail")
|
||||||
|
|||||||
Reference in New Issue
Block a user