From d6956d396cf9a5897adaf2e1b0bb97c21a581e35 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Fri, 4 Sep 2026 12:51:17 +0800 Subject: [PATCH] fix: remove legacy PDA release columns --- deploy/sql/头程数据库统一增量-MySQL8.sql | 26 +++++++++++-------- .../Phase3FinalUnifiedSqlContractTest.java | 15 +++++++++++ 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/deploy/sql/头程数据库统一增量-MySQL8.sql b/deploy/sql/头程数据库统一增量-MySQL8.sql index b5c45f229..5c72c4995 100644 --- a/deploy/sql/头程数据库统一增量-MySQL8.sql +++ b/deploy/sql/头程数据库统一增量-MySQL8.sql @@ -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'); diff --git a/firstleg/src/test/java/com/baiyue/firstleg/repository/Phase3FinalUnifiedSqlContractTest.java b/firstleg/src/test/java/com/baiyue/firstleg/repository/Phase3FinalUnifiedSqlContractTest.java index cd70df2b6..d35c3ce9f 100644 --- a/firstleg/src/test/java/com/baiyue/firstleg/repository/Phase3FinalUnifiedSqlContractTest.java +++ b/firstleg/src/test/java/com/baiyue/firstleg/repository/Phase3FinalUnifiedSqlContractTest.java @@ -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()));