# PDA 返修接口说明 > 模块:`MesRepairController` > 前端参考:`fxclient-web`(返修工位 Web 客户端) > 服务地址示例:`http://127.0.0.1:8980` > 接口前缀:`/js/a` > **范围说明:** 本文档仅描述 **返修工位** 作业(扫码 → 查看信息 → 开始返修)。 > 产线不良处理(白名单、`saveRepair` 等)不在 PDA 返修模块范围内,返修单须由产线或其他途径事先创建。 > PDA 统一返回 `CommonResp`(`result` / `message` / `data`);`editRepair1` 返回 JeeSite `renderResult`(`result` / `message`)。 > 建议统一使用 **POST**,`Content-Type: application/x-www-form-urlencoded`。 > 登录会话:请求中携带 `__ajax=json`、`__sid={token}`(与 `fxclient-web` 一致)。 --- ## 业务说明 返修工位 PDA 负责处理 **已存在** 的返修单: | 步骤 | 说明 | |------|------| | 扫码 | 扫描工件号,加载当前返修单及 SOP 方案 | | 开始返修 | 填写返修人、时间,可选关联 SOP,状态变为「已返修 / 待质量确认」 | **前置条件:** 工件须已通过产线不良处理或后台创建返修单;否则 `getRepair` 会提示需先进行不良处理。 **工位号 `fxOprno`:** 返修工位编号(如 `fx001`),由 PDA 本地配置,每次请求须传入。 --- ## 状态流转(`mes_repair.state`) | state | 含义 | PDA 返修模块 | |-------|------|--------------| | `1` | 待返修 | 可扫码,可执行「开始返修」 | | `2` | 已返修 / 待质量确认 | 扫码后显示「等待检查」,本模块不再操作 | | `3` | 已检查 | 流程结束 | | `4` | 返修 NG 待处理 | 流程结束(NG) | ```text 【前置】产线/后台已创建返修单(state=1) ↓ 【PDA 返修】getRepair 扫码 ↓ 【PDA 返修】editRepair1 开始返修(state→2) ↓ 【其他模块】质量确认(不在本文档范围) ``` --- ## 页面流程 ```text ① mesRepair/getRepair 扫工件码,加载返修单 ↓ 并行(可选) mesRepair/cjjl 检查记录 mesRepair/infoByRepair 工位结果 mesRepair/sopList 修复方案列表 ↓ ② mesRepair/editRepair1 开始返修(state→2) ``` --- ## PDA 常量与路径对照 | 常量名(PDA 侧) | 路径 | |------------------|------| | `GET_REPAIR` | `/js/a/mes/mesRepair/getRepair` | | `START_REPAIR` | `/js/a/mes/mesRepair/editRepair1` | | `GW_LIST` | `/js/a/mes/mesRepair/infoByRepair` | | `CHECK_RECORD` | `/js/a/mes/mesRepair/cjjl` | | `SOP_LIST` | `/js/a/mes/mesRepair/sopList` | --- ## 一、扫码加载返修单 **请求 URL:** `/js/a/mes/mesRepair/getRepair` **请求方式:** `POST` **参数:** | 参数名 | 必选 | 类型 | 说明 | |--------|------|------|------| | sn | 是 | string | 工件号 | | fxOprno | 是 | string | 返修工位编号,如 `fx001` | **前置条件:** 须已存在返修单;否则返回: ```text 当前工件{oprno}工位需要先进行不良处理! ``` **参数示例:** ```bash curl --location --request POST \ 'http://127.0.0.1:8980/js/a/mes/mesRepair/getRepair' \ --data-urlencode 'sn=0476962607070001' \ --data-urlencode 'fxOprno=fx001' \ --data-urlencode '__ajax=json' \ --data-urlencode '__sid=会话token' ``` **返回示例(实测):** ```json { "result": "true", "message": "成功", "data": { "isNewRecord": false, "id": "2074680482278412288", "createDate": "2026-07-08 18:22", "updateDate": "2026-07-08 18:22", "createBy": "system", "updateBy": "system", "sn": "0476962607070001", "fxOprno": "fx001", "title": "左右吊耳组件弧焊", "oprno": "OP050", "state": "1", "lineSn": "HEVXT", "remark": "", "result": "", "type": "2", "itemId": "2056991638449303552", "itemTitle": "焊渣、毛刺、划伤", "itemIntroduction": "手工打磨、除渣、去毛刺->气密", "returnOprno": "", "sopList": [], "imgList": [] } } ``` > `sopList` 为空表示该返修单尚未关联 SOP;若 `sops` 字段有值,会返回已选方案详情,结构为 `{ id, title, imgList[] }`。 **返回字段说明:** | 字段 | 说明 | |------|------| | id | 返修记录 ID,**开始返修 `editRepair1` 时传此值**(不是工件号 sn) | | sn | 工件号 | | fxOprno | 返修工位编号 | | oprno | 责任工位 | | lineSn | 产线编号 | | state | 当前状态,见上文状态表;`1` 时可开始返修 | | title | 责任工位名称(服务端按产线工序查询) | | itemTitle | 返修原因 | | itemIntroduction | 返工动作介绍 | | type | 返工类型 | | sopList | 已关联 SOP 列表;无关联时为空数组 `[]` | | sops | 已选 SOP ID(逗号分隔);无值时可能不返回 | | imgList | 不良照片列表;`getRepair` 通常为空,需详情时另查 | | createDate / updateDate 等 | JeeSite 实体公共字段,可忽略 | **界面步骤映射(与 `fxclient-web` 一致):** | data.state | 界面显示 | |------------|----------| | `1` | 等待返修(可点「开始返修」) | | `2` | 等待检查 | | `3` | 已检查(`result`:`1`=OK,`2`=NG) | --- ## 二、辅助信息(可选) 扫码后可并行调用,用于展示工位历史、检查记录、SOP 方案。 ### 2.1 工位结果列表 **请求 URL:** `/js/a/mes/mesRepair/infoByRepair` | 参数名 | 必选 | 说明 | |--------|------|------| | sn | 是 | 工件号 | | oprno | 是 | 责任工位 | **返回:** `data.lists[]` — 生产记录(craft 首位为 `1` 或 `5` 的项),含 `craft`、`title`、`content`。 ### 2.2 检查记录 **请求 URL:** `/js/a/mes/mesRepair/cjjl` **参数:** 同工位结果列表 **返回:** `data.lists` 为质量检查对象,含 `mesRepairItemsList[]`(问题清单)。 ### 2.3 修复方案(SOP)列表 **请求 URL:** `/js/a/mes/mesRepair/sopList` **参数:** 无必填 **返回:** `data.lists[]` — `{ id, title, remark, imgList[] }` --- ## 三、开始返修 **请求 URL:** `/js/a/mes/mesRepair/editRepair1` **请求方式:** `POST` **参数:** | 参数名 | 必选 | 说明 | |--------|------|------| | id | 是 | 返修记录 ID(来自 `getRepair` 的 `data.id`) | | state | 是 | 固定传 `2` | | fxBy | 是 | 返修人工号 | | fxDate | 是 | 返修时间,格式 `yyyy-MM-dd HH:mm:ss` | | sops | 否 | 所选 SOP ID,逗号分隔 | **业务规则:** - 返修单 `state` 须为 `1`(待返修) - 成功后 `state` 变为 `2`(已返修 / 待质量确认) **参数示例:** ```bash curl --location --request POST \ 'http://127.0.0.1:8980/js/a/mes/mesRepair/editRepair1' \ --data-urlencode 'id=1999999999999999991' \ --data-urlencode 'state=2' \ --data-urlencode 'fxBy=工号' \ --data-urlencode 'fxDate=2026-07-07 17:00:00' \ --data-urlencode 'sops=sopId1,sopId2' \ --data-urlencode '__ajax=json' \ --data-urlencode '__sid=会话token' ``` **返回:** ```json { "result": "true", "message": "修改成功!" } ``` > **注意:** 本接口**无 `data` 字段**;不要与 `getRepair` 混淆。`id` 必须传返修记录主键(`getRepair` 返回的 `data.id`),不能传工件号 `sn`。 --- ## 四、PDA 集成建议 ```text 1. 本地配置 fxOprno(返修工位号) 2. 扫描工件 sn → 调 getRepair 3. 展示返修原因、SOP 列表(可选调 sopList / cjjl / infoByRepair) 4. 用户确认后点「开始返修」→ 调 editRepair1(传 id、fxBy、fxDate、可选 sops) 5. state=2 后提示「等待质量确认」,本模块流程结束 ``` **注意:** - `fxOprno` 由 PDA 本地配置,不要写死为工件责任工位 `oprno` - 仅 `state=1` 时允许调用 `editRepair1` - 质量确认由其他模块处理,不在本文档范围 --- ## 五、相关源码 | 说明 | 路径 | |------|------| | 返修记录接口 | `src/main/java/com/jeesite/modules/mes/web/MesRepairController.java` | | fxclient 调用示例 | `fxclient-web/src/apps/home/api.js` | --- ## 六、与 fxclient-web 接口对照 | fxclient-web 方法 | 后端路径 | PDA 是否必需 | |-------------------|----------|--------------| | `getRepair` | `mesRepair/getRepair` | **必需** | | `editRepair1` | `mesRepair/editRepair1` | **必需** | | `getGwList` | `mesRepair/infoByRepair` | 可选 | | `getcjll` | `mesRepair/cjjl` | 可选 | | `getSopList` | `mesRepair/sopList` | 可选 |