PDA生产入库接口说明.md 9.8 KB

PDA 生产入库 — 接口说明

模块:ErpPrdInStockController
权限:mes:erpPrdInStock:view(登录 MES 即可,不要直连金蝶 ERP)
服务地址示例:http://127.0.0.1:8980
数量规则:入库数量 = 所选 MES 批次码 nums 合计,前端不传手工数量

PDA 统一返回 CommonResp(result / message / data);提交接口支持 表单 POST 与 JSON Body 两种方式。


页面流程(5 步)

① 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=已审核

参数示例:

curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPrdInStock/pda/listData?pageNo=1&pageSize=20'

返回示例:

{
  "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 生产订单号(可扫码)

参数示例:

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 的订单

返回示例:

{
  "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 生产订单号

参数示例:

curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPrdInStock/pda/selectDetailData?billNo=SCDD110260605001'

返回示例:

{
  "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 订单分录内码

参数示例:

curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPrdInStock/formInit?moBillNo=SCDD110260605001&entryId=266500'

返回示例:

成功(有待入库批次):

{
  "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 当前订单分录物料编码

参数示例:

curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPrdInStock/batchScan?batchSn=20260527133003&materialNumber=8.10.HEV.10.047696'

返回示例:

{
  "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 仓库编码

参数示例:

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)

参数: 无

参数示例:

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 表单:

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:

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"}'

返回示例:

{
  "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

参数示例:

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