forked from erp-dev/erp
feat: added put/patch api to main oobject of business module
This commit is contained in:
@@ -27,6 +27,7 @@
|
||||
|-----|------|------|
|
||||
| `/purchase-orders/` | GET | 分页列表。 |
|
||||
| `/purchase-orders/` | POST | 创建采购单。 |
|
||||
| `/purchase-orders/<id>/` | PUT/PATCH | 编辑采购单(仅限审批中)。 |
|
||||
| `/purchase-orders/<id>/review/` | POST | 审批或作废。 |
|
||||
|
||||
### 2.1 创建请求体
|
||||
@@ -75,6 +76,7 @@
|
||||
| API | 方法 | 描述 |
|
||||
|-----|------|------|
|
||||
| `/purchase-return-orders/` | GET/POST | 与采购单相同的查询/创建接口,字段改为 `return_date`。 |
|
||||
| `/purchase-return-orders/<id>/` | PUT/PATCH | 编辑采购退货单(仅限审批中)。 |
|
||||
| `/purchase-return-orders/<id>/review/` | POST | 审批或作废,流程与采购单一致。 |
|
||||
|
||||
- **创建字段**:`supplier`、`warehouse`、`return_date`、`items`、可选 `purchase_order`。`items` 结构沿用采购单;当仓库 `mode=RESTRICT_IN_OUT` 时必须提供 `consume_detail_ids`,指明要冲销的入库明细。
|
||||
@@ -90,6 +92,7 @@
|
||||
|-----|------|------|
|
||||
| `/sales-orders/` | GET | 分页列表。 |
|
||||
| `/sales-orders/` | POST | 创建销售单。 |
|
||||
| `/sales-orders/<id>/` | PUT/PATCH | 编辑销售单(仅限审批中)。 |
|
||||
| `/sales-orders/<id>/review/` | POST | 审批或作废。 |
|
||||
|
||||
### 3.1 创建请求体
|
||||
@@ -137,6 +140,7 @@
|
||||
| API | 方法 | 描述 |
|
||||
|-----|------|------|
|
||||
| `/sales-return-orders/` | GET/POST | 创建 / 列表接口。 |
|
||||
| `/sales-return-orders/<id>/` | PUT/PATCH | 编辑销售退货单(仅限审批中)。 |
|
||||
| `/sales-return-orders/<id>/review/` | POST | 审批或作废。 |
|
||||
|
||||
- **创建字段**:`customer`、`warehouse`、`return_date`、`items`、可选 `sales_order`。因退货为入库动作,严出仓不再需要 `consume_detail_ids`。
|
||||
|
||||
58
docs/orders_edit_api.md
Normal file
58
docs/orders_edit_api.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# 订单编辑 API 概览
|
||||
|
||||
用于更新业务订单(销售单、销售退货单、采购单、采购退货单)的共同约束:
|
||||
|
||||
- 仅允许 **审批中**(`PENDING`)状态编辑;若订单已审批/作废,服务层会抛出错误 `"{实体}当前状态不可修改"`。
|
||||
- 更新接口统一使用 `PUT/PATCH /api/v1/<order-type>/<id>/`,请求体必须包含 `items`,且为非空数组。
|
||||
- 数量校验与创建逻辑一致:严进仓需 `numbers`,宽进仓需 `quantity + num_of_rolls`,严进严出(出库)需 `consume_detail_ids`。
|
||||
- 订单字段(客户/供应商、仓库、备注、日期等)可被更新,未提供的字段沿用原值。
|
||||
|
||||
## SalesOrder 更新
|
||||
|
||||
- 路径:`PUT/PATCH /api/v1/sales-orders/<id>/`
|
||||
- 请求体字段(全部可选,但 `items` 必须存在且非空):
|
||||
- `customer`:客户 ID
|
||||
- `warehouse` / `warehouse_id`:仓库 ID
|
||||
- `order_date`:`YYYY-MM-DD`
|
||||
- `remarks`
|
||||
- `items`:与创建时一致(支持可选 `printing_job`)
|
||||
- 响应:`200 OK`,返回最新销售单详情(同 `GET` 列表项,额外包含 `quantity_of_rolls` 数组)
|
||||
- 错误:
|
||||
- `400`:参数缺失或状态不可编辑(`{"error": "销售单当前状态不可修改"}`)
|
||||
- `404`:订单不存在
|
||||
|
||||
> 其余订单(SalesReturn/Purchase/PurchaseReturn)的编辑接口,请在实现后按同一规范补充到本文件。
|
||||
|
||||
## SalesReturnOrder 更新
|
||||
|
||||
- 路径:`PUT/PATCH /api/v1/sales-return-orders/<id>/`
|
||||
- 请求体字段:
|
||||
- `customer`、`warehouse`、`return_date`、`remarks`(可选)
|
||||
- `sales_order`:可重新绑定关联销售单,同样必须属于当前客户
|
||||
- `items`:与创建规则一致(严进模式需 `numbers`,宽进模式 `quantity/num_of_rolls` 等)
|
||||
- 响应:`200 OK`,结构同 `GET /sales-return-orders/` + `quantity_of_rolls`
|
||||
- 错误示例:
|
||||
- `{"error": "销售退货单当前状态不可修改"}`(状态非 PENDING)
|
||||
- `{"error": "销售退货单的客户必须与原销售单一致"}`(客户不匹配)
|
||||
|
||||
## PurchaseOrder 更新
|
||||
|
||||
- 路径:`PUT/PATCH /api/v1/purchase-orders/<id>/`
|
||||
- 请求体字段:
|
||||
- `supplier`、`warehouse`、`order_date`、`remarks`
|
||||
- `items`:与创建规则相同(严进模式 `numbers`,宽进 `quantity/num_of_rolls`)
|
||||
- 响应:`200 OK`,返回最新采购单,新增 `quantity_of_rolls` 字段
|
||||
- 错误示例:
|
||||
- `{"error": "采购单当前状态不可修改"}`(状态非 PENDING)
|
||||
|
||||
## PurchaseReturnOrder 更新
|
||||
|
||||
- 路径:`PUT/PATCH /api/v1/purchase-return-orders/<id>/`
|
||||
- 请求体字段:
|
||||
- `supplier`、`warehouse`、`return_date`、`remarks`
|
||||
- `purchase_order`:可重新绑定关联采购单,必须属于当前供应商
|
||||
- `items`:结构同创建(严出仓仍需 `consume_detail_ids`)
|
||||
- 响应:`200 OK`,返回采购退货单详情(含 `quantity_of_rolls`)
|
||||
- 错误示例:
|
||||
- `{"error": "采购退货单当前状态不可修改"}`
|
||||
- `{"error": "采购退货单的供应商必须与原采购单一致"}`
|
||||
62
docs/printing_fields_20251212.md
Normal file
62
docs/printing_fields_20251212.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# Printing 模块字段说明(2025-12-12)
|
||||
|
||||
## PrintingJob
|
||||
|
||||
来源:`api_v1/views/printing/serializers.py` 中的 `PrintingJobDetailSerializer`
|
||||
|
||||
| 字段 | 说明 |
|
||||
|------|------|
|
||||
| `id` | 主键 |
|
||||
| `printing_order` / `printing_order_id` | 关联的印染主订单 ID 与人类可读编号 |
|
||||
| `product` / `product_name` / `product_code` | 关联产品 |
|
||||
| `quantity` / `unit` | 生产数量与单位 |
|
||||
| `size` | 一段尺寸 |
|
||||
| `pieces` | 件数 |
|
||||
| `description` | 备注 |
|
||||
| `work_state` | 业务进展枚举值,详见下表 |
|
||||
| `work_state_display` | 业务进展的中文描述 |
|
||||
| `status` / `status_id` | stateflow 状态显示值与下一步节点 ID |
|
||||
| `is_completed` / `has_started` | 是否完成、是否已开始 |
|
||||
| `business_object_id` | 关联流程实例 ID |
|
||||
| `created_at` / `updated_at` | 创建、更新时间戳 |
|
||||
|
||||
### `work_state` 枚举
|
||||
|
||||
定义于 `printing.models.PrintingJobWorkStateEnum`:
|
||||
|
||||
| 值 | 标识 |
|
||||
|----|------|
|
||||
| `0` | 生产中 |
|
||||
| `1` | 待送货 |
|
||||
| `2` | 待开单 |
|
||||
| `3` | 已完结 |
|
||||
|
||||
Serializer 与 Model 完全同步,`work_state` 可在创建/更新接口提交(字段可选),返回时携带 `work_state_display`。
|
||||
|
||||
## PlateOrder
|
||||
|
||||
来源:`api_v1/views/printing/serializers.py` 中的 `PlateOrderDetailSerializer`
|
||||
|
||||
PlateOrder 模型当前 **没有 `work_state` 字段**。主要字段如下(按序列化器顺序):
|
||||
|
||||
| 字段 | 说明 |
|
||||
|------|------|
|
||||
| `id` / `design_code` | 主键与设计编号(空则回退为主键字符串) |
|
||||
| `plate_type` / `plate_date` / `plate_method` | 开版类型、时间、方式 |
|
||||
| `plate_image` / `plate_image_url` | JSONField 存储的图片信息及其对外地址 |
|
||||
| `image_name` / `plate_notes` / `reprint_reason` | 图片名称、注意事项、复版原因 |
|
||||
| `urgency_level` / `is_invalid` | 紧急程度、是否作废 |
|
||||
| `customer` / `customer_name` / `customer_phone` / `area` / `default_address` | 客户与地址信息 |
|
||||
| `salesperson` / `merchandiser` / `designer` 及对应 `*_name` | 关联员工 |
|
||||
| `style_name` / `fabric` / `fabric_source` / `width` / `production_method` | 款式与面料信息 |
|
||||
| `is_mark_frame` / `drawing_rating` / `color_matching_rating` / `sample_rating` / `difficulty_rating` | 标记及评分字段 |
|
||||
| `sample_meter` / `required_sample_meters` | 样品米数及需求 |
|
||||
| `required_completion_date` / `completion_date` | 要求完成与实际完成时间 |
|
||||
| `approval_result` / `is_ordered` / `customer_feedback` | 审批结果、下单状态、客户反馈 |
|
||||
| `process` / `process_name` | 关联流程 ID 与名称 |
|
||||
| `status` / `status_id` / `is_completed` / `has_started` / `progress_percentage` / `business_object_id` / `last_completed_state` | stateflow 状态相关字段 |
|
||||
| `print_count` | 打印次数 |
|
||||
| `created_at` / `updated_at` | 创建、更新时间戳 |
|
||||
|
||||
由于 PlateOrder 未包含 `work_state`,前端无需提交该字段;若后续业务需要,可在模型与序列化器中新增字段并同步更新本文档。
|
||||
|
||||
Reference in New Issue
Block a user