79 lines
3.1 KiB
SQL
79 lines
3.1 KiB
SQL
-- 将工艺库 SOP-CC-001-E01-01 的 sop_content 同步到关联的工艺路线步骤、生产任务步骤
|
||
--
|
||
-- 前置条件(按顺序执行):
|
||
-- 1. docs/sql/2026-08-25-biz-process-sop-content.sql (sop_content 字段)
|
||
-- 2. docs/sql/2026-08-25-seed-sop-cc-001-content.sql (工艺库富文本已写入 biz_process)
|
||
--
|
||
-- 匹配规则:
|
||
-- - 工艺路线步骤 biz_process_route_step:process_code = SOP-CC-001-E01-01
|
||
-- 或 process_id 指向该工艺;同租户 tenant_no;del_flag = 0
|
||
-- - 生产任务步骤 biz_production_task_step:process_code = SOP-CC-001-E01-01;
|
||
-- 同租户 tenant_no;del_flag = 0
|
||
--
|
||
-- 说明:路线/任务步骤的 sop_content 为快照;本脚本用工艺库当前内容覆盖关联步骤字段。
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 1. 工艺路线步骤
|
||
-- ---------------------------------------------------------------------------
|
||
UPDATE `biz_process_route_step` AS `rs`
|
||
INNER JOIN `biz_process` AS `p`
|
||
ON `p`.`process_code` = 'SOP-CC-001-E01-01'
|
||
AND `p`.`del_flag` = 0
|
||
AND `rs`.`tenant_no` = `p`.`tenant_no`
|
||
SET `rs`.`sop_content` = `p`.`sop_content`,
|
||
`rs`.`update_time` = NOW()
|
||
WHERE `rs`.`del_flag` = 0
|
||
AND (
|
||
`rs`.`process_code` = 'SOP-CC-001-E01-01'
|
||
OR `rs`.`process_id` = `p`.`id`
|
||
)
|
||
AND `p`.`sop_content` IS NOT NULL
|
||
AND CHAR_LENGTH(TRIM(`p`.`sop_content`)) > 0;
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 2. 生产任务步骤
|
||
-- ---------------------------------------------------------------------------
|
||
UPDATE `biz_production_task_step` AS `ts`
|
||
INNER JOIN `biz_process` AS `p`
|
||
ON `p`.`process_code` COLLATE utf8mb4_general_ci = 'SOP-CC-001-E01-01'
|
||
AND `p`.`del_flag` = 0
|
||
AND `ts`.`tenant_no` = `p`.`tenant_no` COLLATE utf8mb4_general_ci
|
||
SET `ts`.`sop_content` = `p`.`sop_content`,
|
||
`ts`.`update_time` = NOW()
|
||
WHERE `ts`.`del_flag` = 0
|
||
AND `ts`.`process_code` = 'SOP-CC-001-E01-01'
|
||
AND `p`.`sop_content` IS NOT NULL
|
||
AND CHAR_LENGTH(TRIM(`p`.`sop_content`)) > 0;
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 3. 校验(可选,执行后查看受影响行数与内容长度)
|
||
-- ---------------------------------------------------------------------------
|
||
SELECT 'biz_process' AS `table_name`,
|
||
COUNT(*) AS `row_count`,
|
||
MAX(CHAR_LENGTH(`sop_content`)) AS `max_sop_content_len`
|
||
FROM `biz_process`
|
||
WHERE `process_code` = 'SOP-CC-001-E01-01'
|
||
AND `del_flag` = 0;
|
||
|
||
SELECT 'biz_process_route_step' AS `table_name`,
|
||
COUNT(*) AS `row_count`,
|
||
MAX(CHAR_LENGTH(`sop_content`)) AS `max_sop_content_len`
|
||
FROM `biz_process_route_step`
|
||
WHERE `del_flag` = 0
|
||
AND (
|
||
`process_code` = 'SOP-CC-001-E01-01'
|
||
OR `process_id` IN (
|
||
SELECT `id`
|
||
FROM `biz_process`
|
||
WHERE `process_code` = 'SOP-CC-001-E01-01'
|
||
AND `del_flag` = 0
|
||
)
|
||
);
|
||
|
||
SELECT 'biz_production_task_step' AS `table_name`,
|
||
COUNT(*) AS `row_count`,
|
||
MAX(CHAR_LENGTH(`sop_content`)) AS `max_sop_content_len`
|
||
FROM `biz_production_task_step`
|
||
WHERE `del_flag` = 0
|
||
AND `process_code` = 'SOP-CC-001-E01-01';
|