-- 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;