fix: 修复顺运宝采购完成状态与重复采购 (#169)

This commit is contained in:
chengma
2026-08-11 18:05:27 +08:00
parent c61a028d9c
commit 5528b4b874
9 changed files with 160 additions and 26 deletions
+11 -1
View File
@@ -374,7 +374,12 @@ Admin 本地时区,付款状态只是 Client 核单上报时的快照,Admin
5. **价格上限已填且大于 0** —— 默认从当前映射的 PDD 规格价格带出,操作员可改,但不允许为空;
6. 已选择分配的客户端;
7. 所选客户端存在且在当前账号可见范围内;其在线状态和 `purchase_mode` 只影响何时领取,不阻止提前指派;
8. 同一顺运宝明细没有 `pending` / `assigned` / `claimed` 的采购任务。
8. 同一顺运宝明细没有 `pending` / `assigned` / `claimed` 的采购任务;
9. 同一顺运宝明细没有 `succeeded` 的采购任务;成功采购是终态,禁止重复采购;
10. 同一顺运宝明细没有 `manual_review` 的采购任务;该状态可能已经下单,必须先人工核对,禁止重新采购。
`failed` 和 `cancelled` 继续沿用现有人工判断后重新创建策略。本规则必须在服务端校验,
不能只依赖顺运宝列表的复选框和按钮状态。
Admin 新建采购任务固定使用不可变的 `execution_mode=live`,不向采购员提供模式选择:
@@ -421,6 +426,11 @@ Admin 新建采购任务固定使用不可变的 `execution_mode=live`,不向
| `failed` | 失败 | 客户端报告失败 |
| `cancelled` | 已取消 | 人工取消 |
顺运宝页面根据关联采购任务实时推导采购阶段:`succeeded` 显示“采购完成”,
`manual_review` 显示“采购待人工核对”,活动任务显示“已创建采购任务”。优先级按
成功、待人工核对、活动任务、其他处理阶段排列;完成和待核对行都只能查看任务,
不能再次创建采购任务。
`[必须]` **Admin 看不到客户端执行到哪一步**(没有心跳,是有意的)。
`claimed` 之后就只能等结果。想知道细节看 Client 那边的界面。
+10 -4
View File
@@ -527,7 +527,9 @@ HTML 片段,只替换弹窗内部的表格、总数和分页。主货运单表
图片加载失败时显示可读提示。`[必须]` 只存 URL,不代理、缓存或把图片塞进数据库。
- 处理阶段是按当前关联事实**算出来的**,不是存一份容易过期的状态字段。阶段至少区分:
采购数据异常(顺运宝未提供规格)、未关联 PDD、PDD 待采集、采集中、采集中(超时)、
采集失败、规格待匹配、可采购和已创建任务。
采集失败、规格待匹配、可采购、已创建任务、采购完成和采购待人工核对。
- 成功采购任务显示“采购完成”和“查看采购结果”;`manual_review` 显示“采购待人工核对”
和“查看采购任务”,并明确提示可能已经下单、必须先核对。两种状态都不允许勾选或重新采购。
- `collecting` 已超过 15 分钟,或已找不到 `pending/assigned/claimed` 采集任务时,
显示“PDD 采集中(超时)”和“重新创建采集任务”,不能继续伪装成正常进行中。
- 每行显示一个有文字的“下一步”按钮。商品标题是服务端渲染处理弹窗的明确入口,
@@ -605,7 +607,9 @@ grid 样式不得覆盖 `hidden`,关闭后改变勾选再打开也不得残留
`[必须]` 校验不过的**不要静默跳过**,要列出来告诉操作员缺什么:
- 同一批中合法行可以创建,失败行逐条显示明细 ID 和原因;数据库错误则整批回滚。
- 同一明细已有 `pending`、`assigned` 或 `claimed` 的采购任务时拒绝重复创建。
- 同一明细已有 `pending`、`assigned`、`claimed`、`succeeded` 或 `manual_review` 的采购任务时
拒绝重复创建;成功任务是采购终态,待人工核对任务可能已经下单。`failed/cancelled` 的现有
人工判断后重新创建策略不变。
- 顺运宝列表继续显示台币售价,但绝不把它带入人民币价格上限。
```text
@@ -620,8 +624,10 @@ grid 样式不得覆盖 `hidden`,关闭后改变勾选再打开也不得残留
可采购行的“下一步”显示“创建采购任务”。点击后复用同一个确认弹窗并只带入当前明细,
不改变表格复选框状态;顶部批量入口仍按已勾选明细打开。客户端选项显示名称和 Client
ID 和在线状态;所有可见 Client 都可选择且只有一个时自动选中。没有可见 Client 时禁用
提交并说明需要管理员先绑定客户端。已有未
结束任务的行显示“查看采购任务”并进入“采集采购”页,不得再次创建。服务端仍必须重新
提交并说明需要管理员先绑定客户端。已有未结束任务的行显示“查看采购任务”并进入
“采集采购”页,不得再次创建;采购完成行显示
“查看采购结果”,待人工核对行显示“查看采购任务”,两者同样进入按订单号筛选的采集采购页。
服务端仍必须重新
校验映射、数量、人民币价格上限、客户端权限、固定 live 模式、创建审计和重复任务,不能
信任列表页的旧状态。