-- 工艺路线产品增加报工产出仓库绑定(可重复执行)
|
SET @ddl := IF(
|
(SELECT COUNT(*) FROM information_schema.COLUMNS
|
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'mes_pro_route_product' AND COLUMN_NAME = 'warehouse_id') = 0,
|
'ALTER TABLE `mes_pro_route_product` ADD COLUMN `warehouse_id` bigint NULL COMMENT ''报工产出仓库ID'' AFTER `item_id`',
|
'SELECT 1'
|
);
|
PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
|
SET @ddl := IF(
|
(SELECT COUNT(*) FROM information_schema.COLUMNS
|
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'mes_pro_route_product' AND COLUMN_NAME = 'location_id') = 0,
|
'ALTER TABLE `mes_pro_route_product` ADD COLUMN `location_id` bigint NULL COMMENT ''报工产出库区ID'' AFTER `warehouse_id`',
|
'SELECT 1'
|
);
|
PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
|
SET @ddl := IF(
|
(SELECT COUNT(*) FROM information_schema.COLUMNS
|
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'mes_pro_route_product' AND COLUMN_NAME = 'area_id') = 0,
|
'ALTER TABLE `mes_pro_route_product` ADD COLUMN `area_id` bigint NULL COMMENT ''报工产出库位ID'' AFTER `location_id`',
|
'SELECT 1'
|
);
|
PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
|
-- 历史路线产品使用虚拟线边库兜底,新建/编辑时由接口强制选择具体仓库、库区、库位。
|
UPDATE `mes_pro_route_product` p
|
JOIN `mes_wm_warehouse` w ON w.`code` = 'WIP_VIRTUAL_WAREHOUSE' AND w.`deleted` = b'0'
|
JOIN `mes_wm_warehouse_location` l ON l.`code` = 'WIP_VIRTUAL_LOCATION' AND l.`deleted` = b'0'
|
JOIN `mes_wm_warehouse_area` a ON a.`code` = 'WIP_VIRTUAL_AREA' AND a.`deleted` = b'0'
|
SET p.`warehouse_id` = COALESCE(p.`warehouse_id`, w.`id`),
|
p.`location_id` = COALESCE(p.`location_id`, l.`id`),
|
p.`area_id` = COALESCE(p.`area_id`, a.`id`),
|
p.`updater` = 'system', p.`update_time` = NOW()
|
WHERE p.`deleted` = b'0'
|
AND (p.`warehouse_id` IS NULL OR p.`location_id` IS NULL OR p.`area_id` IS NULL);
|