# PDA 生产入库 — 接口说明 > 模块:`ErpPrdInStockController` > 权限:`mes:erpPrdInStock:view`(登录 MES 即可,**不要直连金蝶 ERP**) > 服务地址示例:`http://127.0.0.1:8980` > 数量规则:**入库数量 = 所选 MES 批次码 `nums` 合计**,前端不传手工数量 > PDA 统一返回 `CommonResp`(`result` / `message` / `data`);提交接口支持 **表单 POST** 与 **JSON Body** 两种方式。 --- ## 页面流程(5 步) ```text ① pda/listData 生产入库单列表(模块首页) ↓ 点「新增」 ② pda/selectOrderData 选生产订单(HEV/115 物料) ↓ 点「选择」 ③ pda/selectDetailData 选订单分录(HEV/115 行) ↓ 点「选批次入库」 ④ formInit 勾选 MES 批次码 + 选仓库/仓位 └ batchScan 扫批次码校验(可选) └ pda/stockLocOptions 选仓库后查仓位 ↓ ⑤ submit 提交 ERP 生产入库(SCRK) ``` --- ## 1. 生产入库单列表(模块首页) **请求URL:** `/js/a/mes/erpPrdInStock/pda/listData` **请求方式:** `POST` **参数:** | 参数名 | 必选 | 类型 | 说明 | |--------|------|------|------| | pageNo | 否 | int | 页码,默认 1 | | pageSize | 否 | int | 每页条数,默认 20 | | billNoQuery | 否 | string | 入库单号 SCRK 模糊 | | moBillNoQuery | 否 | string | 生产订单号 | | materialNumberQuery | 否 | string | 物料编码模糊 | | documentStatusQuery | 否 | string | C=已审核 | **参数示例:** ```bash curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPrdInStock/pda/listData?pageNo=1&pageSize=20' ``` **返回示例:** ```json { "result": "true", "message": "成功", "data": { "pageNo": 1, "pageSize": 20, "count": 1, "list": [ { "billNo": "SCRK110260605001", "date": "2026-06-05", "documentStatusName": "已审核", "moBillNo": "SCDD110260605001", "materialNumber": "8.10.HEV.10.047696", "materialName": "下壳体", "realQty": 150, "unitName": "件", "lotNumber": "110260605001", "stockName": "五金库" } ] } } ``` **下一步:** 点「新增」→ 接口 2;点某行 → 接口 9 查看明细 --- ## 2. 选择生产订单 **请求URL:** `/js/a/mes/erpPrdInStock/pda/selectOrderData` **请求方式:** `POST` **参数:** | 参数名 | 必选 | 类型 | 说明 | |--------|------|------|------| | pageNo | 否 | int | 页码 | | pageSize | 否 | int | 每页条数 | | billNo | 否 | string | 生产订单号(可扫码) | **参数示例:** ```bash curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPrdInStock/pda/selectOrderData?pageNo=1&pageSize=20' ``` **说明:** 仅含配置物料 `8.10.HEV.10.047696`、`8.35.115.10.5003146600021` 的订单 **返回示例:** ```json { "result": "true", "message": "成功", "data": { "pageNo": 1, "pageSize": 20, "count": 10, "list": [ { "billNo": "SCDD110260605001", "date": "2026-06-01", "documentStatusName": "已审核", "inventoryCategory": "HEV", "entryCount": 1, "totalQty": 1500 } ] } } ``` **下一步:** 点某行 → 接口 3,传 `billNo` --- ## 3. 选择订单分录 **请求URL:** `/js/a/mes/erpPrdInStock/pda/selectDetailData` **请求方式:** `POST` **参数:** | 参数名 | 必选 | 类型 | 说明 | |--------|------|------|------| | billNo | 是 | string | 生产订单号 | **参数示例:** ```bash curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPrdInStock/pda/selectDetailData?billNo=SCDD110260605001' ``` **返回示例:** ```json { "result": "true", "message": "成功", "data": { "pageNo": 1, "pageSize": 20, "count": 1, "list": [ { "entryId": "266500", "seq": "1", "materialNumber": "8.10.HEV.10.047696", "materialName": "下壳体", "qty": 1500, "instockQty": 264, "remainQty": 1236, "unitName": "件", "workshopName": "HEV车间" } ] } } ``` **下一步:** 选一行(`remainQty > 0`)→ 接口 4,传 `moBillNo` + `entryId` --- ## 4. 选批次入库页初始化 **请求URL:** `/js/a/mes/erpPrdInStock/formInit` **请求方式:** `POST`(也兼容 GET) **参数:** | 参数名 | 必选 | 类型 | 说明 | |--------|------|------|------| | moBillNo | 是 | string | 生产订单号 | | entryId | 是 | string | 订单分录内码 | **参数示例:** ```bash curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPrdInStock/formInit?moBillNo=SCDD110260605001&entryId=266500' ``` **返回示例:** 成功(有待入库批次): ```json { "result": "true", "message": "", "data": { "moBillNo": "SCDD110260605001", "entryId": "266500", "moEntry": { "seq": "1", "materialNumber": "8.10.HEV.10.047696", "qty": 1500, "instockQty": 264, "remainQty": 1236 }, "batchList": [ { "id": "batch-id-001", "batchSn": "20260527133003", "lineSn": "HEVXT", "nums": 50, "instockStatus": "0" } ], "defaultStockNumber": "1100105", "stockList": [ { "stockNumber": "1100105", "stockName": "五金库", "displayLabel": "1100105 五金库" } ] } } ``` **下一步:** 勾选批次 → 选仓库/仓位 → 接口 8 提交 --- ## 5. 扫批次码校验(可选) **请求URL:** `/js/a/mes/erpPrdInStock/batchScan` **请求方式:** `POST`(也兼容 GET) **参数:** | 参数名 | 必选 | 类型 | 说明 | |--------|------|------|------| | batchSn | 是 | string | MES 托盘批次码 | | materialNumber | 是 | string | 当前订单分录物料编码 | **参数示例:** ```bash curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPrdInStock/batchScan?batchSn=20260527133003&materialNumber=8.10.HEV.10.047696' ``` **返回示例:** ```json { "result": "true", "message": "可以入库", "data": { "batch": { "id": "batch-id-001", "batchSn": "20260527133003", "lineSn": "HEVXT", "nums": 50 } } } ``` --- ## 6. 仓位选项(选仓库后) **请求URL:** `/js/a/mes/erpPrdInStock/pda/stockLocOptions` **请求方式:** `POST`(也兼容 GET) **参数:** | 参数名 | 必选 | 类型 | 说明 | |--------|------|------|------| | stockNumber | 是 | string | 仓库编码 | **参数示例:** ```bash curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPrdInStock/pda/stockLocOptions?stockNumber=1100105' ``` --- ## 7. 仓库列表(可选,formInit 已含可不调) **请求URL:** `/js/a/mes/erpPrdInStock/stockList` **请求方式:** `POST`(也兼容 GET) **参数:** 无 **参数示例:** ```bash curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPrdInStock/stockList' ``` --- ## 8. 提交生产入库 **请求URL:** `/js/a/mes/erpPrdInStock/submit` **请求方式:** `POST` **Content-Type(二选一):** | 方式 | Content-Type | 说明 | |------|--------------|------| | PDA 推荐 | `application/x-www-form-urlencoded` | 表单参数,`batchIds` 传 JSON 数组字符串或逗号分隔 | | 调试/脚本 | `application/json;charset=UTF-8` | 整包 JSON Body | **参数:** | 参数名 | 必选 | 类型 | 说明 | |--------|------|------|------| | moBillNo | 是 | string | 生产订单号 | | entryId | 是 | string | 订单分录内码 | | batchIds | 是 | array / string | `mes_batch_sn.id` **或批次码**。PDA 扫码后可直接传 `20260820150916`;也可用 `batchSns` / `batchSn` | | stockNumber | 是 | string | 入库仓库编码 | | stockLocNumber | 条件 | string | 仓库启用仓位时必填 | | stockLocKey | 否 | string | 仓位维度键,可选 | **参数示例:** PDA 表单: ```bash curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPrdInStock/submit' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'moBillNo=SCDD110260605001' \ --data-urlencode 'entryId=266500' \ --data-urlencode 'batchIds=20260820150916' \ --data-urlencode 'stockNumber=1100105' \ --data-urlencode 'stockLocNumber=AA' ``` JSON Body: ```bash curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPrdInStock/submit' \ --header 'Content-Type: application/json;charset=UTF-8' \ --data '{"moBillNo":"SCDD110260605001","entryId":"266500","batchIds":["batch-id-001"],"stockNumber":"1100105","stockLocNumber":"AA"}' ``` **返回示例:** ```json { "result": "true", "message": "生产入库单保存成功,单号:SCRK110260605002;合计数量 100,绑定批次 1 个", "data": { "billNo": "SCRK110260605002", "totalQty": 100, "batchCount": 1, "lotNumber": "110260605002" } } ``` **说明:** 入库数量由后端按 `batchIds` 对应 `nums` 自动汇总,**不要传数量字段** --- ## 9. 查看生产入库单明细(可选) **请求URL:** `/js/a/mes/erpPrdInStock/pda/detailData` **请求方式:** `POST` **参数:** | 参数名 | 必选 | 类型 | 说明 | |--------|------|------|------| | billNo | 是 | string | 生产入库单号 SCRK | **参数示例:** ```bash curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPrdInStock/pda/detailData?billNo=SCRK110260605002' ``` --- ## 附录:数量字段说明 | 字段 | 含义 | |------|------| | qty | 生产订单数量 | | instockQty | ERP 已审核生产入库实收合计 | | remainQty | 未入库 = qty − instockQty | | nums | MES 批次码已绑定工件数量 | | 本次入库数量 | Σ 所选批次 nums | ## 附录:产线与物料 | 产线 lineSn | 物料 | |-------------|------| | HEVXT | 8.10.HEV.10.047696 | | 115XT | 8.35.115.10.5003146600021 |