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;
|