feat: P1批次4 CRM+仓库域(客户跟进/业务员业绩/余料/领料/采购单)

This commit is contained in:
HHY
2026-09-25 06:47:20 -07:00
parent fbe21c17b5
commit 543a94609c
12 changed files with 636 additions and 7 deletions
+20
View File
@@ -501,3 +501,23 @@ uv run uvicorn huamenchuang.main:app --reload # 启动,http://localhost:8000
| 新增/改名/删系列 | POST/PUT/DELETE | `/api/product-catelogs[/{id}]` | `{name, fid?}` | 系列下有产品时禁止删除 |
| 产品筛选 | GET | `/api/products` | 增加 `catelog_id` | 产品挂系列(catelog_id);material 新增 `subbar`(副梃) |
| **成本口径** | — | (自动) | — | 对齐 quote_by_cost:报价保存/更新时按产品名匹配价格本成本写入行 `_cost`;报价响应新增 `cost_total`(成本合计)与 `profit`(毛利);报价链接分享(quote_link)走 `/api/shares` type=quote 公开页 |
### 12.26 P1 生产/CRM/仓库域(v2.31~v2.32)
| 接口名称 | 方式 | URL 路径 | 请求参数 | 说明 |
|---|---|---|---|---|
| 车间员工 CRUD | GET/POST/PUT/DELETE | `/api/workshop/staff[/{id}]` | `{name, phone?, role(环节), status?}` | 车间管理页名册 |
| **派工** | POST | `/api/workshop/assign` | `{order_id, process_name, staff_id, note?}` | 进度节点指派员工,记录 staffHistory |
| 派工历史 | GET | `/api/workshop/assignments` | `page` | |
| 扫码跟踪 | GET | `/api/workshop/scan/{order_no}` | 路径(条码号=订单号) | 对齐 scan_tracking;返回订单+7 节点进度 |
| 跟单看板 | GET | `/api/workshop/board` | — | 在产订单按当前环节分列 |
| 双通道优化 | POST | `/api/optimize1d` | 增加 `method: fast\|fine` | fast=FFD 快速;fine=BFD+余料均衡(详细优化,对齐 optimize1d-ai) |
| **订单利润** | GET | `/api/reports/order-profit` | `days?` | 对齐 order-profit:金额 vs BOM 材料成本估算(价格本成本均价),行级毛利/毛利率 |
| **客户跟进** | GET/POST/DELETE | `/api/customers/{id}/follows[/{fid}]` | `{content, next_date?}` | 对齐 customer_records;客户页"跟进"对话框 |
| 业务员体系 | GET/POST/PUT/DELETE | `/api/salesmen[/{id}]` | `{name, phone?, commission_rate?}` | 名册 CRUD;客户表 salesmen 字段选择业务员 |
| 业务员业绩 | GET | `/api/salesmen/statistics` | — | 名下客户数/合同数/合同额/预估提成(salesmen_statistics) |
| **余料入库** | POST | `/api/warehouse/surplus-in` | `{contract_id, min_length?}` | 读合同下料方案,≥最小长度余料逐根入库(note=surplus) |
| 余料列表 | GET | `/api/warehouse/surplus` | `page` | |
| **领料出库** | POST | `/api/warehouse/pickout` | `{contract_id, note?}` | 对齐 pickout:按领料清单扣库存+流水;库存不足报缺口 |
| **采购单** | POST | `/api/purchases` | `{contract_id?(自动读缺料), items?, note?}` | 缺料清单自动生成(CG+日期+流水) |
| 采购列表/入库 | GET/POST | `/api/purchases[?status]` · `/{id}/receive` | — | 入库联动:明细写入库存+StockMove 流水 |