# 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. `已驳回 -> 已审核` 已临时关闭,前端如有对应按钮请隐藏或禁用。 ```