assistant.service.ts
14.9 KB
-
feat(plan): 落人改三趟「专属封顶 → 无主补空 → 有主改派」,做到又满又平 · 39cd460a
主管走查:一批 340 人分布是 248/34/31/2×14,完全不齐。查了数据,根因是 专属关系极度集中 —— 池子 1,081 人里 755 人(70%)挂在同一个客服名下, 而 17 位在岗中有 10 位名下一个患者都没有,自由患者只有 119。 上一版的硬约束(客服不能接别人的专属患者,给不下就 unplaced)让"满"和"平" 不可能同时成立:严格齐平上限是每人 9 条、一批只有 153 人。 按产品意见改成**优先级**而不是禁止: ① 专属:分给他,但**封顶在目标水位**((团队在手+N)/在岗人数,由 N 推出,非新旋钮) ② 无主补空:无主/专属已离岗的患者给最空的人 —— 拿他们填坑零代价 ③ 有主改派:无主的用完还没填平,才把超出水位的专属患者改派出去,标 spread_overflow
⚠ ️ ②③ 的先后不能颠倒:两趟都是水位法、总量一样,但**拆散的专属关系数不一样**。 合成一趟会随机改派某个有主患者,而同时某个无主患者落给了别人。 实测同一批:248/34/31/2×14 → **每人 20 条,17 位完全齐平,340 条一条不丢**。 spread_overflow 枚举复活(硬约束那版里它"不再产生"),别当死枚举清掉。 989 tests green;教条把两条弯路都记了进去。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>luoqi committed