56 lines
2.5 KiB
Markdown
56 lines
2.5 KiB
Markdown
# 移机工单 MCP 查询工具设计
|
||||
|
|
|
|||
|
|
对应 AI-Proj 需求:`REQ-20260917-0010`。
|
|||
|
|
|
|||
|
|
## 工具
|
|||
|
|
|
|||
|
|
- `relocation.order.list.query`:对齐老系统 `POST /relocationOrder/pageList`,提供稳定分页和结构化状态文案。
|
|||
|
|
- `relocation.order.detail.query`:按主键或移机工单号返回主单、移机明细、人员、已办流程和结单凭证。
|
|||
|
|
|
|||
|
|
两个工具均为 `workorder/read`,只读访问 m2 数据源。
|
|||
|
|
|
|||
|
|
## 数据来源
|
|||
|
|
|
|||
|
|
| 数据 | 表 | 关联方式 |
|
|||
|
|
|---|---|---|
|
|||
|
|
| 主单 | `relocation_order` | `id` / `order_no` |
|
|||
|
|
| 移机明细 | `relocation_order_details` | `order_no` |
|
|||
|
|
| 已办流程 | `order_process` | `order_no`,并限定 `order_type=4`、`schedule_state=2` |
|
|||
|
|
| 当前及流程人员 | `install_order_user` | `install_order_no` / `install_order_process_id`,并限定 `type=2` |
|
|||
|
|
| 结单凭证 | `warehouse_in_out_pic` | `aggregate_id=结单流程.id`、`in_out_allocation_type=15` |
|
|||
|
|
|
|||
|
|
附件仅返回 `id/fileName/bucket/objectKey`,服务不生成公开 URL。
|
|||
|
|
|
|||
|
|
## 列表契约
|
|||
|
|
|
|||
|
|
支持工单号、所属代理、项目、申请人、移机人员、协同人员、状态及申请/审核/调度/完成日期范围。
|
|||
|
|
日期格式固定为 `yyyy-MM-dd`,结束日期按次日零点开区间实现“包含当天”。分页默认 `1/20`,每页上限
|
|||
|
|
100,固定按 `id DESC`,避免旧接口未显式排序导致翻页漂移。
|
|||
|
|
|
|||
|
|
状态:0 待提交、1 待审核、2 被驳回、3 调度中、4 作业中、5 已完成、6 已取消。
|
|||
|
|
|
|||
|
|
## 详情契约
|
|||
|
|
|
|||
|
|
`id` 与 `relocationOrderNo` 至少传一个;同时传入时作为同一主查询的 AND 条件,必须命中同一记录。
|
|||
|
|
不存在和无权访问均抛出 `NOT_FOUND_OR_FORBIDDEN`。
|
|||
|
|
|
|||
|
|
返回:
|
|||
|
|
|
|||
|
|
- `record`:主单及状态文案;
|
|||
|
|
- `relocationDetails`:设备、源/目标位置、卫生间类型、执行状态与备注;
|
|||
|
|
- `maintenanceUsers/cooperateUsers`:当前人员;
|
|||
|
|
- `processes`:非抄送的已办流程,按操作时间、ID 正序,并附流程对应人员;
|
|||
|
|
- `completionCertificates`:所有结单流程关联凭证。
|
|||
|
|
|
|||
|
|
## 行级权限
|
|||
|
|
|
|||
|
|
列表和详情均复用 `PermissionService.applyRelocationOrderRowFilter`:
|
|||
|
|
|
|||
|
|
- 总部身份查看全部;
|
|||
|
|
- 普通代理查看本代理、授权代管代理、授权代管物业范围;
|
|||
|
|
- 销售非负责人查看自己创建及授权代管代理名下物业;
|
|||
|
|
- 当前用户参与过 `order_process` 且 `order_type=4` 的工单可见;
|
|||
|
|
- 当前用户出现在 `install_order_user` 且 `type=2` 的工单可见,覆盖调度后尚未生成流程记录的作业人员。
|
|||
|
|
|
|||
|
|
代理身份未绑定代理商时失败关闭。
|