1
0
forked from erp-dev/erp

feat: mission replied calling task

This commit is contained in:
2026-04-17 23:26:33 +08:00
parent e109c00837
commit 8b1afc64c5
22 changed files with 1056 additions and 95 deletions

View File

@@ -13,6 +13,9 @@
- 该接口只负责修改 `Shipment.status`
- 业务字段修改仍然使用 `/api/v1/shipment/shipments/{id}/`
- `PATCH``PUT` 当前行为一致,都是按请求体中的 `status` 执行状态流转
- 当前驳回逻辑有额外副作用:会解绑该出货单当前绑定的销售品,使其重新回到待分配池
- 驳回时后端会把解绑前的销售品 ID 保存到内部审计字段 `rejected_sales_item_ids`
- `rejected_sales_item_ids` 当前仅用于后端审计,暂不在 API 响应中返回
## 请求体
@@ -35,7 +38,7 @@
- `草稿(未发布)` 只能流转到 `已发布`
- `已发布` 可以流转到 `已审核` / `已驳回` / `已取消`
- `已驳回` 可以流转到 `已审核` / `已取消`
- `已驳回` 目前只能流转到 `已取消`
- `已审核` 可以流转到 `已取消`
- `已取消` 不可再流转
- 重复设置同一状态时保持幂等
@@ -44,8 +47,14 @@
- 进入 `已审核` 时,接口会自动将当前 `request.user` 写入 `approved_by`
- 进入 `已取消` 时,接口会自动将当前 `request.user` 写入 `cancelled_by`
- 进入 `已驳回` 时,接口会先记录当前绑定销售品 ID 的审计快照,再解除这些销售品与当前出货单的绑定
- 驳回完成后,这些销售品会重新出现在默认的“待出货/待分配”查询结果中
- 每次成功状态流转都会更新 `status_modified_at`
说明:
- 由于驳回现在会解绑销售品,`已驳回 -> 已审核` 已暂时关闭,避免出现“空出货单被审核”的状态语义冲突
## 请求示例
### 1. 草稿发布
@@ -70,6 +79,17 @@ Content-Type: application/json
}
```
### 3. 已发布驳回
```http
PATCH /api/v1/shipment/shipments/12/status/
Content-Type: application/json
{
"status": 4
}
```
## 成功响应示例
```json
@@ -113,7 +133,15 @@ Content-Type: application/json
}
```
### 2. 越权或对象不存在
### 2. 已驳回后再次审核
```json
{
"detail": "不允许将出货单状态从 已驳回 修改为 已审核"
}
```
### 3. 越权或对象不存在
```json
{
@@ -121,7 +149,7 @@ Content-Type: application/json
}
```
### 3. 请求体不合法
### 4. 请求体不合法
```json
{