38 lines
1.8 KiB
SQL
38 lines
1.8 KiB
SQL
-- 三期 PDA 部分拣货释放策略与 A0 共享资源唯一标识。
|
||
SET NAMES utf8mb4;
|
||
|
||
DROP PROCEDURE IF EXISTS phase3_pda_add_column;
|
||
DELIMITER $$
|
||
CREATE PROCEDURE phase3_pda_add_column(IN p_table VARCHAR(64), IN p_column VARCHAR(64), IN p_ddl TEXT)
|
||
BEGIN
|
||
IF NOT EXISTS (
|
||
SELECT 1 FROM information_schema.columns
|
||
WHERE table_schema = DATABASE() AND table_name = p_table AND column_name = p_column
|
||
) THEN
|
||
SET @phase3_pda_ddl = CONCAT('ALTER TABLE `', p_table, '` ADD COLUMN ', p_ddl);
|
||
PREPARE phase3_pda_stmt FROM @phase3_pda_ddl;
|
||
EXECUTE phase3_pda_stmt;
|
||
DEALLOCATE PREPARE phase3_pda_stmt;
|
||
END IF;
|
||
END$$
|
||
DELIMITER ;
|
||
|
||
CALL phase3_pda_add_column('fl_loading_pick_item', 'release_mode',
|
||
'`release_mode` VARCHAR(10) NULL COMMENT ''AUTO按比例释放,MANUAL按人工选择释放'' AFTER `item_status`');
|
||
CALL phase3_pda_add_column('fl_loading_pick_item', 'release_location_ids',
|
||
'`release_location_ids` JSON NULL COMMENT ''人工选择释放库位ID;空数组表示明确释放0个'' AFTER `release_mode`');
|
||
CALL phase3_pda_add_column('fl_inbound_pallet_allocation', 'reservation_id',
|
||
'`reservation_id` BIGINT UNSIGNED NULL COMMENT ''仓库预占资源唯一ID,A0共享场景用于区分托盘'' AFTER `location_code`');
|
||
|
||
SET @phase3_pda_index_ddl = IF(
|
||
EXISTS (SELECT 1 FROM information_schema.statistics
|
||
WHERE table_schema = DATABASE() AND table_name = 'fl_inbound_pallet_allocation'
|
||
AND index_name = 'idx_allocation_reservation'),
|
||
'SELECT 1',
|
||
'ALTER TABLE fl_inbound_pallet_allocation ADD INDEX idx_allocation_reservation (reservation_id)');
|
||
PREPARE phase3_pda_index_stmt FROM @phase3_pda_index_ddl;
|
||
EXECUTE phase3_pda_index_stmt;
|
||
DEALLOCATE PREPARE phase3_pda_index_stmt;
|
||
|
||
DROP PROCEDURE IF EXISTS phase3_pda_add_column;
|