fix: remove legacy PDA release columns

This commit is contained in:
2026-09-04 12:51:17 +08:00
parent 58bf9a3503
commit d6956d396c
2 changed files with 30 additions and 11 deletions
@@ -10173,8 +10173,22 @@ DELIMITER ;
CALL assert_phase3_final_schema();
DROP PROCEDURE IF EXISTS assert_phase3_final_schema;
-- PDA 部分拣货释放策略:NULL/AUTO 按比例释放,MANUAL + [] 表示人工明确不释放。
-- PDA 整票库位块直接使用 Firstleg 托盘分配快照;旧明细级释放策略字段不再保留。
USE baiyue_firstleg;
SET @phase3_pda_drop_release_locations = IF((SELECT COUNT(*) FROM information_schema.columns
WHERE table_schema=DATABASE() AND table_name='fl_loading_pick_item'
AND column_name='release_location_ids') > 0,
'ALTER TABLE fl_loading_pick_item DROP COLUMN release_location_ids', 'SELECT 1');
PREPARE phase3_pda_drop_release_locations_stmt FROM @phase3_pda_drop_release_locations;
EXECUTE phase3_pda_drop_release_locations_stmt;
DEALLOCATE PREPARE phase3_pda_drop_release_locations_stmt;
SET @phase3_pda_drop_release_mode = IF((SELECT COUNT(*) FROM information_schema.columns
WHERE table_schema=DATABASE() AND table_name='fl_loading_pick_item'
AND column_name='release_mode') > 0,
'ALTER TABLE fl_loading_pick_item DROP COLUMN release_mode', 'SELECT 1');
PREPARE phase3_pda_drop_release_mode_stmt FROM @phase3_pda_drop_release_mode;
EXECUTE phase3_pda_drop_release_mode_stmt;
DEALLOCATE PREPARE phase3_pda_drop_release_mode_stmt;
DROP PROCEDURE IF EXISTS phase3_pda_add_column;
DELIMITER $$
CREATE PROCEDURE phase3_pda_add_column(
@@ -10194,14 +10208,6 @@ BEGIN
END IF;
END$$
DELIMITER ;
CALL phase3_pda_add_column(
'fl_loading_pick_item', 'release_mode',
"VARCHAR(10) NULL COMMENT 'AUTO按比例释放,MANUAL按人工选择释放' AFTER item_status"
);
CALL phase3_pda_add_column(
'fl_loading_pick_item', 'release_location_ids',
"JSON NULL COMMENT '人工选择释放库位ID;空数组表示明确释放0个' AFTER release_mode"
);
CALL phase3_pda_add_column(
'fl_inbound_pallet_allocation', 'block_id',
"BIGINT UNSIGNED NOT NULL COMMENT 'Warehouse整票连续库位块ID' AFTER allocation_no"
@@ -13689,8 +13695,6 @@ CALL queue_column_comment('baiyue_firstleg', 'fl_loading_pick_item', 'loading_pl
CALL queue_column_comment('baiyue_firstleg', 'fl_loading_pick_item', 'pick_task_id', 'PDA拣货任务ID');
CALL queue_column_comment('baiyue_firstleg', 'fl_loading_pick_item', 'picked_package_count', '已拣货箱数');
CALL queue_column_comment('baiyue_firstleg', 'fl_loading_pick_item', 'planned_package_count', '计划拣货箱数;上层拆分按业务规则向上取整');
CALL queue_column_comment('baiyue_firstleg', 'fl_loading_pick_item', 'release_location_ids', '人工选择释放库位ID;空数组表示明确释放0个');
CALL queue_column_comment('baiyue_firstleg', 'fl_loading_pick_item', 'release_mode', 'AUTO按比例释放,MANUAL按人工选择释放');
CALL queue_column_comment('baiyue_firstleg', 'fl_loading_pick_item', 'updated_at', 'PDA拣货明细最后更新时间');
CALL queue_column_comment('baiyue_firstleg', 'fl_loading_pick_item', 'version', '乐观锁版本号');
CALL queue_column_comment('baiyue_firstleg', 'fl_loading_pick_item_assignment', 'assigned_by', '执行领取或分配操作的用户ID');
@@ -223,6 +223,21 @@ class Phase3FinalUnifiedSqlContractTest {
.contains("CREATE PROCEDURE phase3_pda_replace_operation_check");
}
@Test
void unifiedPdaBlockDropsLegacyPerItemReleaseColumns() throws Exception {
String sql = normalise(Files.readString(resolveUnified()));
assertThat(sql)
.contains("column_name='release_location_ids'")
.contains("ALTER TABLE fl_loading_pick_item DROP COLUMN release_location_ids")
.contains("column_name='release_mode'")
.contains("ALTER TABLE fl_loading_pick_item DROP COLUMN release_mode")
.doesNotContain("'fl_loading_pick_item', 'release_mode'")
.doesNotContain("'fl_loading_pick_item', 'release_location_ids'")
.doesNotContain("CALL queue_column_comment('baiyue_firstleg', 'fl_loading_pick_item', 'release_mode'")
.doesNotContain("CALL queue_column_comment('baiyue_firstleg', 'fl_loading_pick_item', 'release_location_ids'");
}
@Test
void legacySplitIndexesAreOnlyDroppedAndNeverRecreated() throws Exception {
String sql = normalise(Files.readString(resolveUnified()));