forked from erp-dev/erp
4.7 KiB
4.7 KiB
api_v2:按流程查询 PlateOrder 列表(返回所有节点参数 process_params)
目标
- 按
process_id+created_at时间范围查询PlateOrder列表 - 每条
PlateOrder额外返回process_params:该流程的全部节点,以及每个节点的 是否已执行 与 参数 key/value(订单维度)
接口信息
- Method:GET
- Path:
/api/v2/plate-orders/by-process/ - 认证:JWT(
IsAuthenticated) - 权限:仅允许印染/工厂侧用户(
IsPrintingFactory)
Query 参数
| 参数 | 必填 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
process_id |
是 | int | - | stateflow.Process.id |
date_from |
是 | string(date) | - | 起始日期 YYYY-MM-DD(按 PlateOrder.created_at 过滤,闭区间) |
date_to |
是 | string(date) | - | 结束日期 YYYY-MM-DD(闭区间,包含当日 23:59:59.999999) |
plate_order |
否 | string | - | 单一查询参数:同时支持主键与设计编号(见“查询规则”) |
ordering |
否 | string | -created_at |
排序字段(见“排序规则”) |
limit |
否 | int | 20 |
分页大小(LimitOffsetPagination) |
offset |
否 | int | 0 |
分页偏移(LimitOffsetPagination) |
查询规则(plate_order)
- 当
plate_order为纯数字:- 匹配
PlateOrder.id == int(plate_order)或 - 匹配
PlateOrder.design_code icontains plate_order
- 匹配
- 当
plate_order为非纯数字:- 仅匹配
PlateOrder.design_code icontains plate_order
- 仅匹配
排序规则(ordering)
- 默认:
-created_at - 支持字段:
id/created_at/updated_at/design_code design_code排序规则:- 当
design_code为空时,使用id的字符串作为兜底值参与排序
- 当
- 传入不支持的
ordering:返回 400
返回值(200)
响应为分页结构。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
process |
object | 流程信息(见下) |
count |
int | 总数 |
next |
string|null | 下一页链接 |
previous |
string|null | 上一页链接 |
results |
array[object] | PlateOrder 列表(见下) |
process 字段
| 字段 | 类型 | 说明 |
|---|---|---|
id |
int | Process.id |
name |
string | Process.name |
node_count |
int | 节点数量 |
results 元素字段(PlateOrder 列表项)
| 字段 | 类型 | 说明 |
|---|---|---|
id |
int | PlateOrder 主键 |
design_code |
string|null | 设计编号;若为空则返回 id 的字符串兜底值 |
customer |
int | 客户 ID |
customer_name |
string | 客户名称 |
style_name |
string|null | 款号名称 |
urgency_level |
string | 紧急程度 |
is_invalid |
bool | 是否作废 |
business_object_id |
int|null | 关联流程实例 ID |
process_params |
array[object] | 流程全部节点的参数结构(见下,严格 schema) |
created_at |
string | 创建时间(ISO 8601) |
updated_at |
string | 更新时间(ISO 8601) |
process_params 元素字段(严格 schema)
| 字段 | 类型 | 说明 |
|---|---|---|
process_node_id |
int | ProcessNode.id |
state_id |
int | State.id |
node_name |
string | 节点名称(State.name) |
order |
int | 节点顺序号 |
is_executed |
bool | 是否已执行:存在未撤销的 StateFlowRecord 则为 true;仅有撤销记录视为 false |
params |
array[object] | 该节点参数 key/value(订单维度,见下) |
params 元素字段(订单维度:严格 schema)
| 字段 | 类型 | 说明 |
|---|---|---|
key |
string | 参数键(来自该节点 State.parameters) |
value |
JSONValue|null | 订单在该节点的最新已提交参数值;未执行/未提交则为 null |
JSONValue 定义:
string|number|boolean|object|array|null
不变性约束(前端可依赖)
process_params一定存在,类型恒为arrayprocess_params一定包含该流程的全部节点,按order升序- 对每个节点:
params一定存在,类型恒为arrayparams的 key 集合与顺序与该节点State.parameters完全一致- 若该节点没有任何参数:
params=[]
常见错误码
| HTTP 状态码 | 场景 | 返回 detail |
|---|---|---|
| 400 | 缺少/非法参数(如 process_id 非数字、date_from/date_to 缺失或格式错误、ordering 不支持) |
错误原因文本 |
| 401 | 未认证 | DRF 默认 |
| 403 | 无权限(非工厂用户) | 您没有访问印染订单的权限 |
| 404 | process_id 不存在 |
process 不存在 |