1
0
forked from erp-dev/erp
Files
erpnew/docs/api_v2_plate_orders_by_process_node.md

5.9 KiB
Raw Permalink Blame History

api_v2按流程节点查询 PlateOrder 列表(含该节点工艺参数 key/value

目标

  • 给前端提供:按指定 process_node_id 拉取“当前处于该流程节点”的 PlateOrder 列表。
  • 同时返回
    • 该节点(State)关联的工艺参数模板默认值key/value
    • 每个订单在该节点上的参数值key/value订单维度若从未提交则为 null

“处于该节点”的判定语义(与 stateflow 现有实现保持一致)

  • 本接口采用 NEXT 语义process_node 对应的 state 是该 PlateOrder.business_object下一个待执行节点
  • 等价规则(忽略已撤销记录 is_cancelled=True
    • 该节点之前(同一 processorder 更小)的所有节点均已完成(存在未撤销的 StateFlowRecord
    • 该节点本身尚未完成(不存在未撤销的 StateFlowRecord
  • 仅查询满足以下条件的订单:
    • PlateOrder.business_object 存在
    • PlateOrder.business_object.process_id == process_node.process_id

接口信息

  • MethodGET
  • Path/api/v2/plate-orders/by-process-node/
  • 认证JWTIsAuthenticated
  • 权限:仅允许印染/工厂侧用户(与 v2 printing 其它接口一致,IsPrintingFactory

Query 参数

参数 必填 类型 默认值 说明
process_node_id int - stateflow.ProcessNode.id
search string - 单一搜索参数:同时支持主键与设计编号(见“查询规则”)
ordering string -created_at 排序字段(见“排序规则”)
limit int 20 分页大小LimitOffsetPagination
offset int 0 分页偏移LimitOffsetPagination

查询规则search

  • search纯数字
    • 匹配 PlateOrder.id == int(search)
    • 匹配 PlateOrder.design_code icontains search
  • search非纯数字
    • 仅匹配 PlateOrder.design_code icontains search

排序规则ordering

  • 默认:-created_at
  • 支持字段:id / created_at / updated_at / design_code
  • design_code 排序规则:
    • design_code 为空时,使用 id 的字符串作为兜底值参与排序(保证排序稳定、可预测)
  • 传入不支持的 ordering:返回 400

返回值200

响应为分页结构,并额外附带节点信息与该节点工艺参数 key/value。

顶层字段

字段 类型 说明
process_node object 目标流程节点信息(见下)
parameters array[object] 该节点 State.parameters 的 key/value模板默认值;不是订单提交值)
count int 满足条件的总数
next string|null 下一页链接
previous string|null 上一页链接
results array[object] 当前页的 PlateOrder 列表(见下)

process_node 字段

字段 类型 说明
id int ProcessNode.id
process_id int Process.id
state_id int State.id
state_name string State.name
order int 节点顺序号

parameters 元素字段(仅 key/value

字段 类型 说明
key string 参数键
value string|null 参数默认值(如有)

process_parameters 元素字段(订单维度:严格 schema

该字段存在于 results[*].process_parameters,用于“每个订单在当前节点上的参数值”展示/回显。

字段 类型 说明
key string 参数键;与顶层 parameters[*].key 一致
value JSONValue|null 该订单在此节点的最新已提交参数值;若从未提交过该节点参数,则为 null

JSONValue 定义(用于前端类型定义):

  • string | number | boolean | object | array | null

不变性约束(前端可依赖)

  • 对任意返回的 PlateOrder
    • process_parameters 一定存在,类型恒为 array
    • process_parameterskey 集合与顺序与顶层 parameters 完全一致
    • 若该节点无任何参数:parameters=[]process_parameters=[]

取值规则value 来源)

  • 取该订单 business_object 在目标 state最新一条 StateFlowRecord(按 completed_at 倒序,id 倒序)关联的参数提交汇总;同一条状态日志下多次补充参数时,后提交覆盖先提交。
  • 若该节点当前为“待执行”NEXT通常不会有未撤销的完成日志当订单曾完成过该节点但后续回退时会存在已撤销的日志此时仍可能带有历史参数值用于回显。

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_parameters array[object] 订单维度的该节点参数 key/value与顶层 parameters 的 key 集合一致;若该订单从未提交过该节点参数,则对应 value 为 null
created_at string 创建时间ISO 8601
updated_at string 更新时间ISO 8601

常见错误码

HTTP 状态码 场景 返回 detail
400 缺少/非法参数(如 process_node_id 非数字、ordering 不支持) 错误原因文本
401 未认证(缺少/无效 JWT DRF 默认
403 已认证但无权限(非工厂用户) 您没有访问印染订单的权限
404 process_node_id 不存在 process_node 不存在