Files
xiaoqu_mcp_service/xiaoqu-agent-service/doc/warehouse-in-mcp-tools-design.md
T

63 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 入库单 MCP 工具设计
## 1. 范围与评审结论
参考旧系统 `POST /myWarehouseIn/allListByPage` 与 `GET /myWarehouseIn/lookDetail`,新增:
| 工具 | 分类 | 用途 |
|---|---|---|
| `warehouse.in.list.query` | warehouse/read | 分页查询入库单 |
| `warehouse.in.detail.query` | warehouse/read | 按主键或入库单号查询详情 |
自评审通过,确认采用以下产品取舍:调拨入库单允许直接查询详情;关联出库单仅返回索引,
不内嵌完整出库信息。工具只读 m2,不新增业务表或 Flyway migration;启动后由
`ToolSyncService` 自动登记,需由管理员绑定 Scope 后才可调用。
## 2. 列表
- 单号:入库、调拨、关联出库、商城、送货、装机、取货、撤机单号。
- 归属:代理、仓库、入库类型、申请人。
- 状态与物流:订单状态、入库同步状态、物流公司和运单号。
- 日期:`inDateFrom/inDateTo` 精确过滤 `in_date`;`applyDateFrom/applyDateTo`
过滤 `apply_date`,结束日期含当天。不会复制旧接口将入库日期改写成申请日期的异常逻辑。
- 分页:page 默认 1,rows 默认 20、上限 100。
返回主单、来源类型、状态文案、涉及仓库、待办人、实际入库人及日期、物流和关联单号。
本页明细与待办按主单 ID 批量查询,避免 N+1。
`sourceType` 的优先级为 `ALLOCATION`、`OUTBOUND_LINKED`、`MALL`、`NORMAL`。
## 3. 详情
`id`、`inOrderNo` 至少传一个;同时传入时必须匹配同一条可见记录。详情返回:
- `record`、`sceneType`、涉及仓库;
- 按物料定义、物料索引和仓库汇总的 `items`;
- 可选 `serials` 以及完整 `serialTotal`、`serialTruncated`;
- `schedule_state=2` 的已处理流程;
- `file_type=0/1` 的申请、确认入库附件,仅返回 OSS 对象定位,不生成签名 URL;
调拨派生入库单的申请附件(fileType=0)与审批流图片(fileType=3)挂在调拨单维度
(`aggregate_id=调拨单id, in_out_allocation_type=2`),详情按 `allocationOrderNo` 回查合并:
前者并入 `files.application`,后者在 `files.allocationAudit`;
- `relatedOutOrder`:仅出库单号和建议调用的 `warehouse.out.detail.query` 工具名。
## 4. 权限与安全
列表和详情强制复用 `PermissionService.applyWarehouseInRowFilter`:
- 总部身份查看全部;
- 代理身份可见范围是主单所属代理范围、所属或负责仓库涉及、本人参与处理三类并集;
- 代理范围包含自己、直属下级和 `warehouse_agent_auth` 授权代管代理;
- 权限组异常或代理用户未关联代理商时失败关闭;
- 详情不存在与无权访问统一返回 `NOT_FOUND_OR_FORBIDDEN`。
权限使用主查询中的 `EXISTS`,所有业务筛选均只能缩小结果。关联出库不提前判断是否可访问,
避免形成旁路探测;调用方若需要内容,必须再调用出库详情工具并接受其独立鉴权。
## 5. 验收
- 列表分页、日期校验、仓库过滤、批量富化和状态文案;
- 详情双条件、调拨单、物料汇总、SN 默认关闭/截断、附件分类、出库索引;
- 总部、代理范围、仓库负责人、流程参与人和异常配置失败关闭;
- 固定 `TZ=Asia/Shanghai` 执行全量后端测试,不连接生产数据库、不执行部署。