Files
zkxw/docs/sql/2026-08-25-sync-sop-cc-001-content-to-routes-tasks.sql
T
2026-08-25 16:47:43 +08:00

79 lines
3.1 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 将工艺库 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';