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


-- ─── 责任人按全表全局序号 (id - IdBase - 1) MOD 6 重写为 6 设计师轮转 ───
UPDATE ado_s8_order_flow_product_design_drawing
   SET responsible_person = CASE ((id - 1329909130000 - 1) MOD 6)
       WHEN 0 THEN '李海峰'
       WHEN 1 THEN '陈思远'
       WHEN 2 THEN '王明华'
       WHEN 3 THEN '赵建国'
       WHEN 4 THEN '刘振宇'
       WHEN 5 THEN '周启明'
   END
 WHERE is_deleted = 0;
