| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- -- 将工艺库 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';
|