forked from erp-dev/erp
58 lines
2.5 KiB
Markdown
58 lines
2.5 KiB
Markdown
# Shipment 驳回逻辑更新说明(给前端)
|
||
|
||
本文档用于同步 2026-04-17 起 `Shipment` 驳回逻辑的最新行为。
|
||
|
||
## 结论
|
||
|
||
- 出货单状态从 `已发布` 改为 `已驳回` 时,系统会自动解绑该出货单当前绑定的所有销售品
|
||
- 被解绑的销售品会重新回到“待分配/待出货”池
|
||
- 因此这些销售品会重新出现在默认的销售品查询接口中
|
||
- 后端会保留一份驳回前销售品 ID 快照用于审计,但这个字段当前不对前端返回
|
||
|
||
## 对前端的影响
|
||
|
||
### 1. 出货单详情页
|
||
|
||
- 如果一个出货单被驳回,再次查询该出货单详情时,`sales_items` 通常会变成空数组
|
||
- `items_count` 也会随之变为 `0`
|
||
- 这不是数据丢失,而是因为销售品已经被退回待分配池
|
||
|
||
### 2. 销售品选择页 / 待分配列表
|
||
|
||
- 原先属于该出货单的销售品,在驳回后会重新出现在默认查询结果里
|
||
- 包括这些接口的默认结果:
|
||
- `GET /api/v1/shipment/sales-items/customers/`
|
||
- `GET /api/v1/shipment/sales-items/by-customer/{customer_id}/`
|
||
- `GET /api/v1/shipment/sales-items/by-printing-order/{printing_order_id}/`
|
||
|
||
### 3. 状态流转按钮
|
||
|
||
- `已驳回 -> 已审核` 这条路径已临时关闭
|
||
- 前端如果有“驳回后再次审核”的按钮或操作入口,需要先隐藏或禁用
|
||
- 当前 `已驳回` 状态只允许继续走 `已取消`
|
||
|
||
## 当前不变的地方
|
||
|
||
- 驳回接口本身没有新增请求参数
|
||
- 驳回接口当前也没有新增响应字段
|
||
- 审计字段 `rejected_sales_item_ids` 仅在后端内部使用,前端暂时拿不到
|
||
|
||
## 建议前端处理方式
|
||
|
||
- 当用户把出货单驳回成功后,前端应刷新:
|
||
- 当前出货单详情
|
||
- 销售品待分配列表
|
||
- 客户待出货统计
|
||
- 如果页面存在“已驳回后继续审核”的操作,需要立即下线或禁用
|
||
|
||
## 可直接复制的简版说明
|
||
|
||
```md
|
||
出货单驳回逻辑已更新:
|
||
|
||
1. 出货单从“已发布”改成“已驳回”后,系统会自动解绑该出货单当前绑定的所有销售品。
|
||
2. 被解绑的销售品会重新回到待分配池,所以会重新出现在默认的销售品查询结果里。
|
||
3. 驳回后的出货单详情中,`sales_items` 通常会变成空数组,`items_count` 也会变成 0,这是预期行为。
|
||
4. 后端会保留一份驳回前绑定销售品 ID 的审计快照,但这个字段当前不对前端返回。
|
||
5. `已驳回 -> 已审核` 已临时关闭,前端如有对应按钮请隐藏或禁用。
|
||
``` |