-- 生产任务级设备:从步骤/工序/路线迁移并停用步骤级设备 -- 执行前请备份数据库 -- 1. 生产任务表新增设备字段 ALTER TABLE `biz_production_task` ADD COLUMN `equipment_ids` varchar(1000) DEFAULT NULL COMMENT '关联设备ID(逗号分隔)' AFTER `attachments`, ADD COLUMN `equipment_name` varchar(1000) DEFAULT NULL COMMENT '设备名称快照(逗号分隔)' AFTER `equipment_ids`; -- 2. 将任务步骤上的设备汇总到任务(按 task_id 合并,读取端会 parse 去重) UPDATE `biz_production_task` t INNER JOIN ( SELECT `task_id`, GROUP_CONCAT(DISTINCT `equipment_ids` ORDER BY `step_order` SEPARATOR ',') AS `eq_ids`, GROUP_CONCAT(DISTINCT `equipment_name` ORDER BY `step_order` SEPARATOR ',') AS `eq_names` FROM `biz_production_task_step` WHERE `del_flag` = 0 AND `equipment_ids` IS NOT NULL AND TRIM(`equipment_ids`) != '' GROUP BY `task_id` ) s ON s.`task_id` = t.`id` SET t.`equipment_ids` = s.`eq_ids`, t.`equipment_name` = s.`eq_names`; -- 3. 清空步骤/路线/工序上的设备(设备仅保留在生产任务级) UPDATE `biz_production_task_step` SET `equipment_ids` = NULL, `equipment_name` = NULL WHERE `equipment_ids` IS NOT NULL OR `equipment_name` IS NOT NULL; UPDATE `biz_process_route_step` SET `equipment_ids` = NULL, `equipment_name` = NULL WHERE `equipment_ids` IS NOT NULL OR `equipment_name` IS NOT NULL; UPDATE `biz_process` SET `equipment_ids` = NULL, `equipment_name` = NULL WHERE `equipment_ids` IS NOT NULL OR `equipment_name` IS NOT NULL;