yanhui
dd58364593
fix(wle): 转仓代发(转x00005)不再计入原仓发货量
业务 2026-10-24 补充口径:转仓单的货不是从记账仓(原仓)走的,
原仓的发货量也不该算 —— 记在原仓分母里只会把分母做大、把异常率稀释。
## 改了什么
原先 PR #84 把转仓代发当「只摘异常、保留分母」(与现场拦截同类)。
这次把判定从「异常判定之后」**提到发货分母计数之前**,改成**整单不计**:
| | 改前(PR #84) | 改后 |
|---|---|---|
| 算异常 | ❌ | ❌ |
| 进原仓发货分母 | ✅ | ❌ |
| 归类 | 独立一行「另有 N 单」 | 并入「本批已剔除 N 单」 |
判定逻辑只挪了位置,`matchTransferWarehouse()` 本身没变
(`/转\s*[xX]\s*\d{3,}/`,仍不写死 `转x00005`)。
## 三处文案同步
- 前端页脚:删掉原来「仍计入发货分母、只是不再报异常」的独立段落,
改为并入「本批已剔除 N 单(……转仓代发 N 单)」,口径句也改成
「不算本仓异常,也不算本仓发货量」。
- 钉钉正文:转仓代发并入「已剔除 N 个包裹(承运商 / 已终止 / 刷单·信誉单 / 转仓代发)」,
删掉「另有 N 个包裹属转仓代发」那一行。
- registry 注释同步更新,明确写清**与现场拦截的区别**:
现场拦截是本仓发的货(留分母),转仓代发不是(不留分母)。
## 验证
- 后端单测 50/50。`转仓代发整单不计` 用例改为断言:
`exceptionPackages=1`、**`packageCount=1`**(不是 2)、`shippedOrders=1`,
崔桥仓 `shippedOrders=1 / exceptionOrders=1`。
- 全量 `npm run check` 474 项 / 472 过(2 项为既有环境失败:Windows 权限位、负缓存需隧道故障态)
- 前端 eslint 0;`npm run build` 通过
- **真实库(10-23 批)**:发货包裹 5337 → **5332**(扣掉 5 个转仓包裹),
异常 15 单不变,异常率 0.3%;转仓剔除 `packages=5 orders=5 {"转x00005":5}`;
崔桥工厂仓 发货单 2824 / 异常 6 / 0.2%。
## 影响面
- 分母会略微变小(10-23 批 -5 个包裹,约 0.09%),异常率理论上有微幅上升,
但剔掉的本来就是「必然异常」的假单,整体更准。
- 与现场拦截的口径现在明确分家:**现场拦截留分母,转仓代发不留**。
2026-10-24 12:25:29 +08:00
..
2026-09-12 11:51:44 +08:00
2026-09-12 11:51:44 +08:00
2026-09-12 11:51:44 +08:00
2026-10-07 16:59:56 +08:00
2026-09-15 16:53:12 +08:00
2026-10-24 12:25:29 +08:00
2026-10-24 12:25:29 +08:00
2026-09-12 16:53:18 +08:00
2026-09-12 17:13:59 +08:00
2026-09-12 11:51:44 +08:00
2026-09-24 11:59:36 +08:00
2026-09-12 11:51:44 +08:00
2026-09-12 11:51:44 +08:00
2026-09-12 21:34:07 +08:00
2026-09-27 14:16:06 +08:00
2026-09-12 11:51:44 +08:00