feat(mcp): add warehouse todo unified query tool

Merge outbound/inbound/allocation process views into warehouse.todo.list.query,
filtered by task assignee (user_id) matching legacy todo semantics (REQ-20260915-0008)
This commit is contained in:
my_local_kimi_dev2
2026-09-15 17:32:59 +08:00
parent 76d461a7ec
commit 78e319c2f9
11 changed files with 972 additions and 0 deletions
@@ -547,6 +547,42 @@
---
## 19. warehouse.todo.list.query
统一查询当前登录人的仓库待办,参考老系统 `/myWarehouseOut/needToBeDealtWith`、
`/myWarehouseIn/needToBeDealtWith`、`/warehouseAllocation/warehouseAllocationProcessListByPage` 三个待办接口。
- 分类:warehouse | 类型:读
- 数据来源:m2 流程视图 `warehouse_out_process` / `warehouse_in_process` / `warehouse_allocation_process`
- 权限:待办是"人"的语义,只按流程表 `user_id = 当前登录人` 过滤,不叠加代理商行级权限。
- 待办判定:`user_id = 当前登录人 AND soft_delete = 0 AND operation_type IN (0,1,2)`
(3=纯日志排除)。`todoOnly` 默认 true 再限定 `schedule_state=1` 真待办。
- 同一笔调拨最多以调拨审批/确认、出库执行、入库执行 3 个视角出现,不去重;
派生自调拨的真实出入库单带 `derivedFrom="allocation"`,可按 `allocationOrderNo` 归并。
- 分页实现:先全量查符合条件流程行按单据 id 内存去重 → 内存分页 → 按页 id 批量查视图行组装,防 N+1。
**入参**:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| docType | string | 否 | out=出库单 in=入库单 allocation=调拨/采购/划转单 all=全部,默认 all |
| todoOnly | boolean | 否 | true=只返回真待办(默认);false=当前用户参与过的全部单据 |
| orderState | number | 否 | 出库/入库单 0待审核 1被驳回 2待出库或待入库 3已完成 4已撤销 5作废;调拨类 0待审核 1被驳回 2待出库 3待入库 4已完成 5已撤销 6作废 |
| orderNo | string | 否 | 单据主单号模糊匹配 |
| page / rows | number | 否 | 页码默认 1;每页默认 20、上限 100,超出截断并在 `notice` 提示 |
**出参 records 字段**:`docType/docTypeText`(出库单/入库单/调拨单/采购单/划转单,
按调拨视图 `op_type` 区分)、`docId/docNo`、`orderState/orderStateText`、
`scheduleState/scheduleStateText`、`operationType/operationTypeText`(当前待办环节)、
仓库名(allocation 为转出/转入仓库)、`agentId/agentName`、申请人/申请时间、
`allocationOrderNo` 等关联单号、派生单 `derivedFrom="allocation"`;
调拨类另含 `opType/opTypeText/allocationCount/nextUserName/inUserName/outUserName`。
按申请时间倒序排列。
详细设计与老系统差异见 `warehouse-todo-mcp-tool-design.md`。
---
## 附录:在线查看工具清单
```bash