forked from erp-dev/erp
fix: little bugs, feat: woodpecker settings
This commit is contained in:
@@ -75,6 +75,8 @@ GET /api/v1/plate-orders/
|
||||
"required_completion_date": "2025-11-20",
|
||||
"completion_date": null,
|
||||
"is_ordered": false,
|
||||
"process": 1,
|
||||
"process_name": "开版流程",
|
||||
"status": "进行中",
|
||||
"progress_percentage": 50,
|
||||
"created_at": "2025-11-10T09:00:00Z",
|
||||
@@ -138,6 +140,8 @@ GET /api/v1/plate-orders/{id}/
|
||||
"approval_result": "通过",
|
||||
"is_ordered": false,
|
||||
"customer_feedback": "满意",
|
||||
"process": 1,
|
||||
"process_name": "开版流程",
|
||||
"status": "进行中",
|
||||
"status_id": 2,
|
||||
"is_completed": false,
|
||||
@@ -174,7 +178,8 @@ Content-Type: application/json
|
||||
"required_completion_date": "2025-11-25",
|
||||
"is_mark_frame": false,
|
||||
"plate_method": "机器",
|
||||
"production_method": "小批量"
|
||||
"production_method": "小批量",
|
||||
"process": 1
|
||||
}
|
||||
```
|
||||
|
||||
@@ -210,6 +215,7 @@ Content-Type: application/json
|
||||
- `approval_result`: 审批结果
|
||||
- `is_ordered`: 是否已下单
|
||||
- `customer_feedback`: 客户反馈
|
||||
- `process`: 流程ID(如果不传递则使用默认流程)
|
||||
|
||||
**响应**
|
||||
- 状态码: `201 Created`
|
||||
@@ -366,6 +372,191 @@ POST /api/v1/plate-orders/{id}/activate/
|
||||
|
||||
---
|
||||
|
||||
### 9. 推进到下一个状态
|
||||
|
||||
**请求**
|
||||
```
|
||||
POST /api/v1/plate-orders/{id}/advance-to-next-state/
|
||||
```
|
||||
|
||||
**权限要求**: 需要登录和相应权限
|
||||
|
||||
**响应示例**
|
||||
```json
|
||||
{
|
||||
"detail": "已推进到下一个状态",
|
||||
"data": {
|
||||
"id": 1,
|
||||
"status": "调色",
|
||||
"status_id": 2,
|
||||
"progress_percentage": 33,
|
||||
// ... 其他字段
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**错误响应**
|
||||
|
||||
1. 没有流程实例
|
||||
```json
|
||||
{
|
||||
"detail": "该开版订单没有关联的流程实例"
|
||||
}
|
||||
```
|
||||
- 状态码: `400 Bad Request`
|
||||
|
||||
2. 流程已完成或其他错误
|
||||
```json
|
||||
{
|
||||
"detail": "流程已完成,无法继续推进"
|
||||
}
|
||||
```
|
||||
- 状态码: `400 Bad Request`
|
||||
|
||||
---
|
||||
|
||||
### 10. 回退一步
|
||||
|
||||
**请求**
|
||||
```
|
||||
POST /api/v1/plate-orders/{id}/step-back-one-state/
|
||||
```
|
||||
|
||||
**权限要求**: 需要登录和相应权限
|
||||
|
||||
**响应示例**
|
||||
```json
|
||||
{
|
||||
"detail": "已回退到上一个状态",
|
||||
"data": {
|
||||
"id": 1,
|
||||
"status": "画图",
|
||||
"status_id": 1,
|
||||
"progress_percentage": 0,
|
||||
// ... 其他字段
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**错误响应**
|
||||
|
||||
1. 没有流程实例
|
||||
```json
|
||||
{
|
||||
"detail": "该开版订单没有关联的流程实例"
|
||||
}
|
||||
```
|
||||
- 状态码: `400 Bad Request`
|
||||
|
||||
2. 没有可回退的状态
|
||||
```json
|
||||
{
|
||||
"detail": "没有可回退的状态"
|
||||
}
|
||||
```
|
||||
- 状态码: `400 Bad Request`
|
||||
|
||||
---
|
||||
|
||||
### 11. 查询已完成的流程列表
|
||||
|
||||
**请求**
|
||||
```
|
||||
GET /api/v1/plate-orders/{id}/completed-states/
|
||||
```
|
||||
|
||||
**查询参数**
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| include_cancelled | boolean | 否 | 是否包含已撤销的流程(true/false),默认 false |
|
||||
|
||||
**响应示例**
|
||||
```json
|
||||
{
|
||||
"count": 2,
|
||||
"results": [
|
||||
{
|
||||
"id": 1,
|
||||
"state_id": 1,
|
||||
"state_name": "画图",
|
||||
"completed_at": "2025-11-11T10:00:00Z",
|
||||
"completed_by": "user123",
|
||||
"completed_by_name": "张三",
|
||||
"is_cancelled": false,
|
||||
"cancelled_at": null
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"state_id": 2,
|
||||
"state_name": "调色",
|
||||
"completed_at": "2025-11-12T15:30:00Z",
|
||||
"completed_by": "user456",
|
||||
"completed_by_name": "李四",
|
||||
"is_cancelled": false,
|
||||
"cancelled_at": null
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 12. 获取流程时间线
|
||||
|
||||
**请求**
|
||||
```
|
||||
GET /api/v1/plate-orders/{id}/timeline/
|
||||
```
|
||||
|
||||
**说明**: 返回完整的流程时间线,包括未开始、进行中和已完成的状态,不包含已撤销的记录
|
||||
|
||||
**响应示例**
|
||||
```json
|
||||
{
|
||||
"count": 3,
|
||||
"results": [
|
||||
{
|
||||
"state_id": 1,
|
||||
"state_name": "画图",
|
||||
"state_description": "设计图纸绘制",
|
||||
"order": 0,
|
||||
"status": "completed",
|
||||
"completed_at": "2025-11-11T10:00:00Z",
|
||||
"completed_by": "user123",
|
||||
"completed_by_name": "张三"
|
||||
},
|
||||
{
|
||||
"state_id": 2,
|
||||
"state_name": "调色",
|
||||
"state_description": "颜色调配",
|
||||
"order": 1,
|
||||
"status": "in_progress",
|
||||
"completed_at": null,
|
||||
"completed_by": null,
|
||||
"completed_by_name": null
|
||||
},
|
||||
{
|
||||
"state_id": 3,
|
||||
"state_name": "套样",
|
||||
"state_description": "样品套制",
|
||||
"order": 2,
|
||||
"status": "not_started",
|
||||
"completed_at": null,
|
||||
"completed_by": null,
|
||||
"completed_by_name": null
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
**状态说明**
|
||||
- `not_started`: 未开始
|
||||
- `in_progress`: 进行中
|
||||
- `completed`: 已完成
|
||||
|
||||
---
|
||||
|
||||
## 数据模型
|
||||
|
||||
### PlateOrder(开版订单)
|
||||
@@ -387,6 +578,7 @@ POST /api/v1/plate-orders/{id}/activate/
|
||||
| default_address | string | 默认地址 |
|
||||
| salesperson | FK | 业务员(外键) |
|
||||
| merchandiser | FK | 跟单员(外键) |
|
||||
| process | integer | 流程ID(无外键约束) |
|
||||
| style_name | string | 款式名称 |
|
||||
| fabric | string | 面料 |
|
||||
| width | string | 幅宽 |
|
||||
@@ -446,7 +638,8 @@ curl -X POST "http://api.example.com/api/v1/plate-orders/" \
|
||||
"style_name": "新款印染",
|
||||
"fabric": "纯棉",
|
||||
"urgency_level": "加急",
|
||||
"required_completion_date": "2025-11-20"
|
||||
"required_completion_date": "2025-11-20",
|
||||
"process": 1
|
||||
}'
|
||||
```
|
||||
|
||||
@@ -464,6 +657,27 @@ curl -X GET "http://api.example.com/api/v1/plate-orders/?plate_date_from=2025-11
|
||||
-H "Authorization: Token your-auth-token"
|
||||
```
|
||||
|
||||
### 示例5: 推进流程状态
|
||||
|
||||
```bash
|
||||
curl -X POST "http://api.example.com/api/v1/plate-orders/1/advance-to-next-state/" \
|
||||
-H "Authorization: Token your-auth-token"
|
||||
```
|
||||
|
||||
### 示例6: 回退流程状态
|
||||
|
||||
```bash
|
||||
curl -X POST "http://api.example.com/api/v1/plate-orders/1/step-back-one-state/" \
|
||||
-H "Authorization: Token your-auth-token"
|
||||
```
|
||||
|
||||
### 示例7: 获取流程时间线
|
||||
|
||||
```bash
|
||||
curl -X GET "http://api.example.com/api/v1/plate-orders/1/timeline/" \
|
||||
-H "Authorization: Token your-auth-token"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 错误代码
|
||||
@@ -487,11 +701,30 @@ curl -X GET "http://api.example.com/api/v1/plate-orders/?plate_date_from=2025-11
|
||||
3. **日期格式**: 所有日期字段使用 ISO 8601 格式(YYYY-MM-DD 或 YYYY-MM-DDTHH:MM:SSZ)
|
||||
4. **分页**: 列表接口默认支持分页,使用 `limit` 和 `offset` 参数控制
|
||||
5. **文件上传**: `plate_image` 字段需要使用 multipart/form-data 格式上传
|
||||
6. **自动创建流程实例**: 创建开版订单时,如果提供了 `process` 字段,系统会自动创建对应的 BusinessObject 流程实例。如果不提供则使用默认流程
|
||||
7. **流程验证**: 提供的 `process` ID 必须在系统中存在,否则会返回验证错误
|
||||
8. **流程操作**:
|
||||
- 推进/回退操作需要订单已关联 BusinessObject
|
||||
- timeline 接口不包含已撤销的流程记录
|
||||
- completed-states 接口默认不包含已撤销记录,可通过 `include_cancelled=true` 参数包含
|
||||
|
||||
---
|
||||
|
||||
## 更新日志
|
||||
|
||||
### v1.2.0 (2025-11-14)
|
||||
- 添加流程控制接口:
|
||||
- `advance-to-next-state`: 推进到下一个状态
|
||||
- `step-back-one-state`: 回退一步
|
||||
- `completed-states`: 查询已完成的流程列表
|
||||
- `timeline`: 获取流程时间线
|
||||
|
||||
### v1.1.0 (2025-11-14)
|
||||
- 添加 `process` 字段:支持指定流程ID
|
||||
- 添加 `process_name` 只读字段:自动返回流程名称
|
||||
- 自动创建 BusinessObject:创建订单时根据 process 自动创建流程实例
|
||||
- 流程验证:确保提供的流程ID有效
|
||||
|
||||
### v1.0.0 (2025-11-13)
|
||||
- 初始版本
|
||||
- 支持完整的 CRUD 操作
|
||||
|
||||
Reference in New Issue
Block a user