38 lines
1.5 KiB
SQL
38 lines
1.5 KiB
SQL
-- 生产任务级设备:从步骤/工序/路线迁移并停用步骤级设备
|
|
-- 执行前请备份数据库
|
|
|
|
-- 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;
|