2026-08-25-sync-sop-cc-002-content-to-routes-tasks.sql 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. -- 将工艺库 SOP-CC-002-E01-01 的 sop_content 同步到关联的工艺路线步骤、生产任务步骤
  2. --
  3. -- 前置条件(按顺序执行):
  4. -- 1. docs/sql/2026-08-25-biz-process-sop-content.sql
  5. -- 2. docs/sql/2026-08-25-seed-sop-cc-002-content.sql
  6. --
  7. -- 匹配规则同 CC-001 同步脚本;任务步骤 JOIN 需 COLLATE 兼容。
  8. UPDATE `biz_process_route_step` AS `rs`
  9. INNER JOIN `biz_process` AS `p`
  10. ON `p`.`process_code` = 'SOP-CC-002-E01-01'
  11. AND `p`.`del_flag` = 0
  12. AND `rs`.`tenant_no` = `p`.`tenant_no`
  13. SET `rs`.`sop_content` = `p`.`sop_content`,
  14. `rs`.`update_time` = NOW()
  15. WHERE `rs`.`del_flag` = 0
  16. AND (
  17. `rs`.`process_code` = 'SOP-CC-002-E01-01'
  18. OR `rs`.`process_id` = `p`.`id`
  19. )
  20. AND `p`.`sop_content` IS NOT NULL
  21. AND CHAR_LENGTH(TRIM(`p`.`sop_content`)) > 0;
  22. UPDATE `biz_production_task_step` AS `ts`
  23. INNER JOIN `biz_process` AS `p`
  24. ON `p`.`process_code` COLLATE utf8mb4_general_ci = 'SOP-CC-002-E01-01'
  25. AND `p`.`del_flag` = 0
  26. AND `ts`.`tenant_no` = `p`.`tenant_no` COLLATE utf8mb4_general_ci
  27. SET `ts`.`sop_content` = `p`.`sop_content`,
  28. `ts`.`update_time` = NOW()
  29. WHERE `ts`.`del_flag` = 0
  30. AND `ts`.`process_code` = 'SOP-CC-002-E01-01'
  31. AND `p`.`sop_content` IS NOT NULL
  32. AND CHAR_LENGTH(TRIM(`p`.`sop_content`)) > 0;
  33. SELECT 'biz_process' AS `table_name`,
  34. COUNT(*) AS `row_count`,
  35. MAX(CHAR_LENGTH(`sop_content`)) AS `max_sop_content_len`
  36. FROM `biz_process`
  37. WHERE `process_code` = 'SOP-CC-002-E01-01'
  38. AND `del_flag` = 0;
  39. SELECT 'biz_process_route_step' AS `table_name`,
  40. COUNT(*) AS `row_count`,
  41. MAX(CHAR_LENGTH(`sop_content`)) AS `max_sop_content_len`
  42. FROM `biz_process_route_step`
  43. WHERE `del_flag` = 0
  44. AND (
  45. `process_code` = 'SOP-CC-002-E01-01'
  46. OR `process_id` IN (
  47. SELECT `id` FROM `biz_process`
  48. WHERE `process_code` = 'SOP-CC-002-E01-01' AND `del_flag` = 0
  49. )
  50. );
  51. SELECT 'biz_production_task_step' AS `table_name`,
  52. COUNT(*) AS `row_count`,
  53. MAX(CHAR_LENGTH(`sop_content`)) AS `max_sop_content_len`
  54. FROM `biz_production_task_step`
  55. WHERE `del_flag` = 0
  56. AND `process_code` = 'SOP-CC-002-E01-01';