1.0.124.sql 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. -- 1.0.124.sql
  2. -- S8-ORDER-CHAIN-PRODUCT-DESIGN-PPT-STATIC-AND-SINGLE-ORDER-ALIGN-1
  3. -- 阶段 4 重演 fix:阶段 4 第 6 项重演时发现 1.0.123.sql 用 (sort_no-1)%6 做责任人分桶,
  4. -- 但 sort_no 是订单内序号(每订单最多 4 张图),分桶基数天然不足 → DB 实际只覆盖
  5. -- 4 桶(李海峰/陈思远/王明华/赵建国),刘振宇/周启明从未被分配,业务硬需求 6 人不达标。
  6. --
  7. -- 修正范围:
  8. -- ado_s8_order_flow_product_design_drawing:
  9. -- 按全表全局递增序号 (id - 1329909130000 - 1) MOD 6 重写 responsible_person,6 桶严格全覆盖。
  10. -- id 基址来自 SeedData 类 IdBase=1329909130000,63 行 id 连续区间 [IdBase+1, IdBase+63]。
  11. --
  12. -- 安全边界:
  13. -- * 仅 UPDATE,禁 DELETE / TRUNCATE / DROP;product_design_drawing 仍 63 行
  14. -- * 不动 kpi_days / is_achieved / status / actual_days / product_quantity 等字段
  15. -- * 不动 ado_s8_order_flow_snapshot(PPT 基线 2.5/98 已通过,不重写)
  16. -- * 不动 ado_s8_order_flow_order / stage / substep / substep_unit
  17. -- * 不动 S0 / .vscode / Database.json / SysMenu
  18. -- * 仅触发本表 responsible_person 列
  19. --
  20. -- 幂等性:
  21. -- * AutoVersionUpdate 按版本号是否已执行决定是否跑,1.0.124 执行一次即完成
  22. -- * SQL 自身:CASE 全分支无条件 UPDATE,二次执行得到同样结果,对响应结果幂等
  23. -- * 不依赖 WHERE responsible_person NOT IN (...),避免 1.0.123 阶段那种"已被分到 4 人之一就停"的副作用
  24. --
  25. -- 兼容性:
  26. -- * 仅使用 UPDATE / CASE / MOD 运算符,MySQL 5.x / 8.x 通用
  27. --
  28. -- 验证(重演后必查):
  29. -- SELECT DISTINCT responsible_person FROM ado_s8_order_flow_product_design_drawing;
  30. -- → 恰 6 行:李海峰 / 陈思远 / 王明华 / 赵建国 / 刘振宇 / 周启明
  31. -- 2026-05-22
  32. -- ─── 责任人按全表全局序号 (id - IdBase - 1) MOD 6 重写为 6 设计师轮转 ───
  33. UPDATE ado_s8_order_flow_product_design_drawing
  34. SET responsible_person = CASE ((id - 1329909130000 - 1) MOD 6)
  35. WHEN 0 THEN '李海峰'
  36. WHEN 1 THEN '陈思远'
  37. WHEN 2 THEN '王明华'
  38. WHEN 3 THEN '赵建国'
  39. WHEN 4 THEN '刘振宇'
  40. WHEN 5 THEN '周启明'
  41. END
  42. WHERE is_deleted = 0;