PDA_ERP接口汇总.md 67 KB

PDA ERP 对接接口汇总

服务根地址:http://127.0.0.1:8980
仅登录 MES,不直连金蝶 ERP
PDA 请统一使用 POST(表单或 query 参数均可;部分辅助接口也兼容 GET 供 PC 调试)
所有 PDA 接口统一返回 CommonResp 结构(与 pdaQueryIsSn 一致)
提交类接口(submitInStock、submitPickMaterial、submit)均支持 表单 POST 与 JSON Body 两种方式

统一响应格式

字段 类型 说明
result string "true" 成功 / "false" 失败
message string 提示信息
data object 业务数据,结构因接口而异,见各接口「返回字段说明」

data 分页结构(Page,列表类接口通用)

字段 类型 中文说明
pageNo int 当前页码
pageSize int 每页条数
count long 总记录数(ERP 游标式分页,末页可能为估算值)
list array 当前页数据行

仓库选项 stockList[](单条)

字段 类型 中文说明
stockNumber string 仓库编码
stockName string 仓库名称
displayLabel string 展示文本,一般为「编码 + 名称」

仓位选项 locations[](单条)

字段 类型 中文说明
locNumber string 仓位编码
locName string 仓位名称
displayLabel string 展示文本
locKey string 仓位维度键(因仓库而异,仅展示用;提交可不回传,见下文「仓库与仓位」)

批号选项 lots[](单条)

字段 类型 中文说明
lotNumber string 批号
qtyText string 可用/库存数量展示文本

MES 批次码 batch / batchList[](单条)

字段 类型 中文说明
id string mes_batch_sn 主键,生产入库提交 batchIds 用此值
batchSn string MES 托盘批次码(扫码值)
lineSn string 产线编号,如 HEVXT、115XT
nums long 已绑定工件数量,须 >0 才可入库
instockStatus string 入库状态,0 未入库 / 1 已入库
成功示例
{
    "result": "true",
    "message": "成功",
    "data": { ... }
}

失败示例
{
    "result": "false",
    "message": "参数错误",
    "data": null
}

PC 端页面仍使用原 selectOrderData、listData 等接口(直接返回 Page);PDA 请使用下文 pda/ 前缀接口。


仓库与仓位(通用)

PDA 推荐统一调用公共接口(来料检 / 生产入库 / 直接调拨共用,避免各模块重复实现与权限不一致):

用途 URL
仓库列表 POST /js/a/mes/erpStockPda/stockList
仓位选项 POST /js/a/mes/erpStockPda/stockLocOptions?stockNumber=1100105
初始化(仓库+默认仓位) POST /js/a/mes/erpStockPda/init 或 ?stockNumber=

权限:拥有 来料检 / 生产入库 / 直接调拨 任一模块的 view 权限即可调用。
各业务模块下原有的 stockList、pda/stockLocOptions 仍保留兼容,数据与公共接口一致。

涉及来料检、生产入库、直接调拨的接口,仓库/仓位规则一致:

步骤 PDA 行为
1 调 /mes/erpStockPda/stockList 或业务 init 接口,获取 stockList、defaultStockNumber
2 用户选定仓库后,调 /mes/erpStockPda/stockLocOptions?stockNumber=
3 若返回 data.required=true,提交时必须带仓位编码(stockLocNumber,或调拨的 srcStockLocNumber / destStockLocNumber)
4 不要写死 stockLocKey:MES 后台按仓库查金蝶档案并解析仓位内码

PDA 崩溃常见原因(返回 HTML 登录页)

现象 原因 处理
Logcat 出现 <title>登录 - MES生产管理系统</title> Session 失效或未带 Cookie 重新登录 MES,请求头携带 Cookie: jeesite.session.id=... 或参数 __sid
第一次能选仓位、第二次 Gson 崩溃 第二次请求未带登录态,把 HTML 当 JSON 解析 解析前先判断 result 字段或 Content-Type 含 json;统一改用 erpStockPda 公共接口
生产入库却调 erpInStock/... 仓位接口 模块权限不一致 改用 /mes/erpStockPda/stockLocOptions

locKey / stockLocKey

项 说明
是否固定 否。由 ERP 仓库弹性域决定,因仓库而异。例:五金库 1100105 → F100004;半成品仓 1100104 → F100002
谁解析 MES 后台。根据 stockNumber + stockLocNumber 查 BD_FLEXVALUESDETAIL.FID,以整数写入金蝶 FStockLocId
PDA 是否必传 stockLocKey 可选。仓位选项返回的 locKey 仅供展示/日志;只传 stockNumber + stockLocNumber 即可
无仓位仓库 stockLocOptions 返回 required=false 时,提交不传仓位字段

提交最少字段示例(来料检)【已改:须带 checkResult】**

{
  "billNo": "CGDD110260602003",
  "checkResult": "OK",
  "channel": "PDA",
  "stockNumber": "1100105",
  "stockLocNumber": "A22",
  "entryIds": ["194383", "194384", "194385"],
  "lines": [
    { "inspectQty": 10, "lotNumber": "11020260603" },
    { "inspectQty": 10, "lotNumber": "20250101" },
    { "inspectQty": 600 }
  ]
}

公共:仓库列表(推荐)

来料检、生产入库、直接调拨 共用。PDA 请优先使用本接口,勿再按业务模块分别调用各模块下的 stockList。

请求URL
  • /js/a/mes/erpStockPda/stockList
请求方式
  • POST(也兼容 GET)
权限
  • mes:erpInStock:view / mes:erpPrdInStock:view / mes:erpTransferDirect:view 任一即可
参数
参数名 必选 类型 说明
无 — — —
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpStockPda/stockList' \
  --header 'Cookie: jeesite.session.id=你的会话ID'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "defaultStockNumber": "1100105",
        "stockHint": "共 5 个可用仓库",
        "stockList": [
            { "stockNumber": "1100105", "stockName": "五金库", "displayLabel": "1100105 五金库" }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.defaultStockNumber string 推荐默认入库仓库编码
data.stockHint string 仓库加载提示文本
data.stockList[] array 可用仓库列表,字段见「仓库选项 stockList[]」

公共:仓位选项(推荐)

来料检、生产入库、直接调拨 共用。用户切换仓库后须重新调用本接口。

请求URL
  • /js/a/mes/erpStockPda/stockLocOptions
请求方式
  • POST(也兼容 GET)
权限
  • mes:erpInStock:view / mes:erpPrdInStock:view / mes:erpTransferDirect:view 任一即可
参数
参数名 必选 类型 说明
stockNumber 是 string 仓库编码(来自 stockList 或 init)
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpStockPda/stockLocOptions?stockNumber=1100105' \
  --header 'Cookie: jeesite.session.id=你的会话ID'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "stockNumber": "1100105",
        "required": true,
        "defaultLocNumber": "A",
        "locKey": "F100004",
        "locHint": "共 278 个仓位,数据来自 ERP 仓位值集",
        "locations": [
            { "locNumber": "A", "locName": "A", "locKey": "F100004", "displayLabel": "A A" }
        ]
    }
}
失败(未传仓库)
{
    "result": "false",
    "message": "仓库编码不能为空",
    "data": null
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.stockNumber string 请求的仓库编码
data.required boolean 该仓库是否启用仓位(true 时须选择仓位)
data.defaultLocNumber string 推荐默认仓位编码
data.locHint string 仓位加载提示文本
data.locKey string 仓位维度键(因仓库而异,展示用;提交可不回传)
data.locKeys array 仓库启用的全部维度键(多维度仓库时有值)
data.locations[] array 仓位列表,字段见「仓位选项 locations[]」

公共:初始化(仓库 + 默认仓位预览)

一次返回仓库列表及默认仓库(或指定仓库)的仓位预览,减少 PDA 往返。完整仓位列表仍须调「公共:仓位选项」。

请求URL
  • /js/a/mes/erpStockPda/init
请求方式
  • POST(也兼容 GET)
权限
  • mes:erpInStock:view / mes:erpPrdInStock:view / mes:erpTransferDirect:view 任一即可
参数
参数名 必选 类型 说明
stockNumber 否 string 指定仓库编码;不传则取 defaultStockNumber 查仓位预览
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpStockPda/init' \
  --header 'Cookie: jeesite.session.id=你的会话ID'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "defaultStockNumber": "1100105",
        "stockHint": "共 5 个可用仓库",
        "stockList": [
            { "stockNumber": "1100105", "stockName": "五金库", "displayLabel": "1100105 五金库" }
        ],
        "stockLoc": {
            "stockNumber": "1100105",
            "required": true,
            "defaultLocNumber": "A11",
            "locKey": "F100004",
            "locHint": "共 278 个仓位,数据来自 ERP 仓位值集",
            "locations": [
                { "locNumber": "A11", "locName": "A11区", "locKey": "F100004", "displayLabel": "A11 A11区" }
            ]
        }
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.defaultStockNumber string 推荐默认入库仓库编码
data.stockHint string 仓库加载提示文本
data.stockList[] array 可用仓库列表,字段见「仓库选项 stockList[]」
data.stockLoc object 默认/指定仓库的仓位预览,字段同「公共:仓位选项」返回的 data

一、来料检(采购入库)

【新增·来料检记录】 提交时必传 checkResult(OK/NG);仅 OK 生成 CGRK;NG 只留 MES 检验记录。
详细对照与适配说明见:docs/erp/PDA来料检接口说明.md(文首「本次变更说明」)。

采购订单列表

请求URL
  • /js/a/mes/erpInStock/pda/selectOrderData
请求方式
  • POST
参数
参数名 必选 类型 说明
pageNo 否 int 页码,默认 1
pageSize 否 int 每页条数,默认 20
billNo 否 string 采购订单号
materialNumberQuery 否 string 物料编码模糊
documentStatusQuery 否 string 单据状态 A/B/C/D,建议默认 C 已审核
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpInStock/pda/selectOrderData?pageNo=1&pageSize=20&documentStatusQuery=C'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "pageNo": 1,
        "pageSize": 20,
        "count": 1,
        "list": [
            {
                "billNo": "CGDD110260602003",
                "date": "2026-06-02",
                "documentStatusName": "已审核",
                "supplierName": "某某供应商",
                "entryCount": 3,
                "totalQty": 1500
            }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.pageNo int 当前页码
data.pageSize int 每页条数
data.count long 总记录数
data.list[].billNo string 采购订单号
data.list[].date string 单据日期
data.list[].documentStatusName string 单据状态名称(如已审核)
data.list[].supplierName string 供应商名称
data.list[].entryCount int 订单分录行数
data.list[].totalQty number 订单合计数量

待入分录列表

请求URL
  • /js/a/mes/erpInStock/pda/selectDetailData
请求方式
  • POST
参数
参数名 必选 类型 说明
billNo 是 string 采购订单号
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpInStock/pda/selectDetailData?billNo=CGDD110260602003'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "pageNo": 1,
        "pageSize": 20,
        "count": 2,
        "list": [
            {
                "entryId": "123456",
                "seq": "1",
                "materialNumber": "3.01.001",
                "materialName": "某原材料",
                "qty": 1000,
                "instockQty": 200,
                "remainQty": 800,
                "unitName": "千克"
            }
        ]
    }
}
失败(已全部入库,data 中 list 为空)
{
    "result": "true",
    "message": "成功",
    "data": {
        "pageNo": 1,
        "pageSize": 20,
        "count": 0,
        "list": []
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息;失败时说明原因
data.pageNo int 当前页码
data.pageSize int 每页条数
data.count long 总记录数,无待入分录时为 0
data.list[].entryId string 采购订单分录内码(提交入库 lines[].entryId 用)
data.list[].seq string 行号
data.list[].materialNumber string 物料编码
data.list[].materialName string 物料名称
data.list[].qty number 订单数量
data.list[].instockQty number 已入库数量
data.list[].remainQty number 剩余可入数量(检验数量不得超过此值)
data.list[].unitName string 计量单位

来料检页初始化

请求URL
  • /js/a/mes/erpInStock/inspectInit
请求方式
  • POST(也兼容 GET)
参数
参数名 必选 类型 说明
billNo 是 string 采购订单号
entryIds 是 string / array 勾选分录内码;多条英文逗号分隔,或 JSON 数组;仅一条时也传此字段
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpInStock/inspectInit?billNo=CGDD110260602003&entryIds=123456,123457'
返回示例
成功
{
    "result": "true",
    "message": "",
    "data": {
        "billNo": "CGDD110260602003",
        "defaultStockNumber": "1100105",
        "inspectorCode": "zhangsan",
        "inspectorName": "张三",
        "inspectTime": "2026-09-11 13:30:00",
        "checkResultOptions": ["OK", "NG"],
        "stockList": [
            { "stockNumber": "1100105", "stockName": "五金库", "displayLabel": "1100105 五金库" }
        ],
        "stockLoc": {
            "required": true,
            "defaultLocNumber": "A11",
            "locKey": "F100004",
            "locHint": "共 278 个仓位,数据来自 ERP 仓位值集",
            "locations": [
                { "locNumber": "A11", "locName": "A11区", "locKey": "F100004", "displayLabel": "A11 A11区" }
            ]
        },
        "lines": [
            {
                "entryId": "123456",
                "seq": "1",
                "materialNumber": "3.01.001",
                "materialName": "螺栓M8",
                "remainQty": 800,
                "batchManage": true,
                "suggestedLotNumber": "LOT202606001"
            }
        ]
    }
}

仓库/仓位说明:defaultStockNumber + stockList 为仓库;stockLoc 为默认仓库的仓位预览(完整列表请调「仓位选项」)。required=true 时提交必须带 stockLocNumber;stockLocKey 可选(后台自动解析)。切换仓库后须重新调「仓位选项」。
【新增】 inspectorCode / inspectorName / inspectTime / checkResultOptions:供 PDA 预填固定检查项。

失败
{
    "result": "false",
    "message": "所选分录已无剩余可入数量",
    "data": {
        "billNo": "CGDD110260602003",
        "lines": [],
        "stockList": [],
        "defaultStockNumber": "1100105"
    }
}
返回字段说明
字段路径 类型 中文说明 变更
result string 业务成功 "true" / 失败 "false" 原有
message string 提示信息;成功时可能为空 原有
data.billNo string 采购订单号 原有
data.defaultStockNumber string 推荐默认入库仓库编码 原有
data.stockList[] array 可用仓库列表,字段见「仓库选项 stockList[]」 原有
data.stockLoc object 默认仓库的仓位信息,字段同「仓位选项」返回的 data 原有
data.inspectorCode string 默认检验员账号 【新增】
data.inspectorName string 默认检验员姓名 【新增】
data.inspectTime string 默认检验时间 【新增】
data.checkResultOptions array 固定 ["OK","NG"] 【新增】
data.lines[].entryId string 分录内码 原有
data.lines[].seq string 行号 原有
data.lines[].materialNumber string 物料编码 原有
data.lines[].materialName string 物料名称 原有
data.lines[].remainQty number 剩余可入数量 原有
data.lines[].batchManage boolean 是否启用批号管理(true 时须填批号) 原有
data.lines[].suggestedLotNumber string 推荐批号(批号管理物料) 原有

仓位选项

请求URL
  • /js/a/mes/erpInStock/pda/stockLocOptions
请求方式
  • POST(也兼容 GET)
参数
参数名 必选 类型 说明
stockNumber 是 string 仓库编码
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpInStock/pda/stockLocOptions?stockNumber=1100105'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "required": true,
        "defaultLocNumber": "A",
        "locKey": "F100004",
        "locHint": "共 278 个仓位,数据来自 ERP 仓位值集",
        "locations": [
            { "locNumber": "A", "locName": "A", "locKey": "F100004", "displayLabel": "A A" }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.required boolean 该仓库是否启用仓位(true 时须选择仓位)
data.defaultLocNumber string 推荐默认仓位编码
data.locHint string 仓位加载提示文本
data.locKey string 仓位维度键(因仓库而异,展示用;提交可不回传)
data.locKeys array 仓库启用的全部维度键(多维度仓库时有值)
data.locations[] array 仓位列表,字段见「仓位选项 locations[]」

仓库列表

请求URL
  • /js/a/mes/erpInStock/stockList
请求方式
  • POST(也兼容 GET)
参数
参数名 必选 类型 说明
无 — — —
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpInStock/stockList'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "defaultStockNumber": "1100105",
        "stockHint": "共 5 个可用仓库",
        "stockList": [
            { "stockNumber": "1100105", "stockName": "五金库", "displayLabel": "1100105 五金库" }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.defaultStockNumber string 推荐默认入库仓库编码
data.stockHint string 仓库加载提示文本
data.stockList[] array 可用仓库列表,字段见「仓库选项 stockList[]」

批号搜索

请求URL
  • /js/a/mes/erpInStock/pda/lotSearch
请求方式
  • POST(也兼容 GET)
参数
参数名 必选 类型 说明
materialNumber 是 string 物料编码
lotKeyword 否 string 批号关键字
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpInStock/pda/lotSearch?materialNumber=3.01.001&lotKeyword=LOT'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "lots": [
            { "lotNumber": "LOT202606001", "qtyText": "0" }
        ],
        "lotHint": "共查到 1 条批号档案"
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.lots[] array 匹配的批号档案列表,字段见「批号选项 lots[]」
data.lotHint string 查询结果提示(无结果时可手工录入新批号)

批号列表

请求URL
  • /js/a/mes/erpInStock/pda/lotOptions
请求方式
  • POST(也兼容 GET)
参数
参数名 必选 类型 说明
materialNumber 是 string 物料编码
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpInStock/pda/lotOptions?materialNumber=3.01.001'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "lots": [
            { "lotNumber": "LOT202606001", "qtyText": "0" }
        ],
        "suggestedLotNumber": "LOT202606001",
        "lotHint": "共 3 条批号档案,已推荐第一条"
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.lots[] array 物料批号档案列表,字段见「批号选项 lots[]」
data.suggestedLotNumber string 推荐默认批号
data.lotHint string 批号加载提示文本

提交采购入库(含来料检)【已改:必传 checkResult】

请求URL
  • /js/a/mes/erpInStock/submitInStock
请求方式
  • POST
参数
参数名 必选 类型 说明 变更
billNo 是 string 采购订单号 原有
checkResult 是 string 检验结果 OK/NG;仅 OK 生成采购入库单,NG 只保存检验记录 【新增】必填
inspectorName 否 string 检验员,默认当前用户 【新增】
inspectorCode 否 string 检验员账号 【新增】
inspectTime 否 string 检验时间,默认当前时间 【新增】
remarks 否 string 备注 【新增】
channel 否 string 建议 PDA 传 PDA 【新增】
stockNumber 条件 string 入库仓库编码;OK 时必填 原有
stockLocNumber 条件 string 仓库启用仓位且 OK 时必填 原有
stockLocKey 否 string 仓位维度键,可选 原有
entryIds 条件 string / array 分录内码;与 lines 二选一或组合 原有
lines 条件 array / string 入库明细 JSON 数组;表单方式时 lines 为 URL 编码后的 JSON 字符串 原有
lines[].entryId 条件 string PO 分录内码 原有
lines[].inspectQty 条件 number 检验数量 原有
lines[].lotNumber 条件 string 批号管理物料必填 原有

Content-Type(二选一): application/x-www-form-urlencoded(PDA 推荐)或 application/json;charset=UTF-8

参数示例
# PDA 表单(OK 入库)
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpInStock/submitInStock' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'billNo=CGDD110260602003' \
--data-urlencode 'checkResult=OK' \
--data-urlencode 'channel=PDA' \
--data-urlencode 'stockNumber=1100105' \
--data-urlencode 'stockLocNumber=A22' \
--data-urlencode 'lines=[{"entryId":"194383","inspectQty":10,"lotNumber":"11020260603"}]'
返回示例
OK 成功【返回字段含新增】
{
    "result": "true",
    "message": "来料检合格,采购入库单保存成功,单号:CGRK110260624001",
    "data": {
        "inspectId": "xxx",
        "checkResult": "OK",
        "inStockCreated": "1",
        "inStockBillNo": "CGRK110260624001"
    }
}
NG 仅留痕【新增场景】
{
    "result": "true",
    "message": "来料检不合格,已保存检验记录,未生成采购入库单",
    "data": {
        "inspectId": "xxx",
        "checkResult": "NG",
        "inStockCreated": "0",
        "inStockBillNo": ""
    }
}
失败
{
    "result": "false",
    "message": "请选择来料检结果(OK/NG)"
}
返回 data 字段
字段 说明 变更
inspectId MES 来料检记录 id 【新增】
checkResult OK / NG 【新增】
inStockCreated 1 已生成入库单 / 0 未生成 【新增】
inStockBillNo CGRK 单号;未生成时为空 原有

来料检记录列表【新增·整节】

请求URL
  • /js/a/mes/mesErpInStockInspect/pda/listData
请求方式
  • POST
参数
参数名 必选 类型 说明
pageNo 否 int 页码
pageSize 否 int 每页条数
poBillNo 否 string 采购订单号
checkResult 否 string OK / NG
inStockBillNo 否 string 入库单号
inspectorName 否 string 检验员
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/mesErpInStockInspect/pda/listData?pageNo=1&pageSize=20&checkResult=NG'
说明
  • 【新增】 整接口:查 MES 检验留痕(含 NG);与「采购入库历史」查金蝶 CGRK 不同。
  • PC 菜单:生产管理 → ERP来料检记录(需执行 db/mysql/add_mes_erp_in_stock_inspect.sql)

若仍报仓位维度为空,请确认 MES 已部署最新后端(FStockLocId 须为 ERP 仓位内码整数)。stockLocKey 传错或不传均不影响,关键是 stockNumber + stockLocNumber 正确。

ERP 下推日志:每次提交(成功/失败)均写入「生产管理 → ERP下推日志」。失败时 result_message / response_summary 含金蝶报错;request_summary 含仓库、仓位、entryIds。需先执行 db/mysql/add_mes_erp_interaction_log.sql 并重启 MES。

返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 保存结果说明;成功时含 ERP 入库单号
data.inStockBillNo string 成功时返回,ERP 采购入库单号(CGRK 开头)

采购入库历史列表

请求URL
  • /js/a/mes/erpInStock/pda/listData
请求方式
  • POST
参数
参数名 必选 类型 说明
pageNo 否 int 页码
pageSize 否 int 每页条数
poOrderNoQuery 否 string 采购订单号
billNoQuery 否 string 入库单号 CGRK
materialNumberQuery 否 string 物料编码模糊
documentStatusQuery 否 string C=已审核
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpInStock/pda/listData?pageNo=1&pageSize=20'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "pageNo": 1,
        "pageSize": 20,
        "count": 1,
        "list": [
            {
                "billNo": "CGRK110260624001",
                "date": "2026-06-24",
                "poOrderNo": "CGDD110260602003",
                "materialNumber": "3.01.001",
                "realQty": 800,
                "lotNumber": "LOT202606001"
            }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.pageNo / pageSize / count — 分页字段,见「data 分页结构」
data.list[].billNo string 采购入库单号(CGRK)
data.list[].date string 入库日期
data.list[].poOrderNo string 来源采购订单号
data.list[].materialNumber string 物料编码
data.list[].realQty number 实收数量
data.list[].lotNumber string 批号

查看入库单明细

请求URL
  • /js/a/mes/erpInStock/pda/detailData
请求方式
  • POST
参数
参数名 必选 类型 说明
billNo 是 string 采购入库单号 CGRK
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpInStock/pda/detailData?billNo=CGRK110260624001'
返回字段说明
字段路径 类型 中文说明
data.list[].seq string 行号
data.list[].materialNumber string 物料编码
data.list[].realQty number 实收数量
data.list[].lotNumber string 批号
data.list[].stockName string 仓库名称

二、生产入库

生产入库单列表

请求URL
  • /js/a/mes/erpPrdInStock/pda/listData
请求方式
  • POST
参数
参数名 必选 类型 说明
pageNo 否 int 页码
pageSize 否 int 每页条数
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",
                "moBillNo": "SCDD110260605001",
                "materialNumber": "8.10.HEV.10.047696",
                "realQty": 150,
                "lotNumber": "110260605001"
            }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.pageNo / pageSize / count — 分页字段,见「data 分页结构」
data.list[].billNo string 生产入库单号(SCRK)
data.list[].moBillNo string 来源生产订单号
data.list[].materialNumber string 物料编码(.10 半成品)
data.list[].realQty number 入库数量
data.list[].lotNumber string ERP 批号

选择生产订单

请求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'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "pageNo": 1,
        "pageSize": 20,
        "count": 10,
        "list": [
            {
                "billNo": "SCDD110260605001",
                "date": "2026-06-01",
                "documentStatusName": "已审核",
                "inventoryCategory": "HEV",
                "entryCount": 1,
                "totalQty": 1500
            }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.pageNo / pageSize / count — 分页字段,见「data 分页结构」
data.list[].billNo string 生产订单号
data.list[].date string 单据日期
data.list[].documentStatusName string 单据状态名称
data.list[].inventoryCategory string 存货类别(HEV / 115 等)
data.list[].entryCount int 订单分录行数
data.list[].totalQty number 订单合计数量

选择订单分录

请求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": "件"
            }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.pageNo / pageSize / count — 分页字段,见「data 分页结构」
data.list[].entryId string 生产订单分录内码(formInit、submit 用)
data.list[].seq string 行号
data.list[].materialNumber string 物料编码(.10 半成品)
data.list[].materialName string 物料名称
data.list[].qty number 订单数量
data.list[].instockQty number 已入库数量
data.list[].remainQty number 剩余可入数量
data.list[].unitName string 计量单位

选批次入库页初始化

请求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": {
            "qty": 1500,
            "instockQty": 264,
            "remainQty": 1236
        },
        "batchList": [
            {
                "id": "batch-id-001",
                "batchSn": "20260527133003",
                "lineSn": "HEVXT",
                "nums": 50
            }
        ],
        "defaultStockNumber": "1100105",
        "stockList": [
            { "stockNumber": "1100105", "stockName": "五金库" }
        ]
    }
}
失败(无待入库批次)
{
    "result": "true",
    "message": "暂无待入库 MES 批次码。须产线 [HEVXT]、nums>0、且未入库",
    "data": {
        "moBillNo": "SCDD110260605001",
        "entryId": "266500",
        "moEntry": { "qty": 1500, "instockQty": 264, "remainQty": 1236 },
        "batchList": [],
        "stockList": [],
        "defaultStockNumber": "1100105"
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息;无待入库批次时说明原因
data.moBillNo string 生产订单号
data.entryId string 订单分录内码
data.moEntry.qty number 订单数量
data.moEntry.instockQty number 已入库数量
data.moEntry.remainQty number 剩余可入数量
data.batchList[] array 待入库 MES 批次码,字段见「MES 批次码 batch」
data.defaultStockNumber string 推荐默认入库仓库编码
data.stockList[] array 可用仓库列表

扫 MES 批次码校验

请求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
        }
    }
}
失败
{
    "result": "false",
    "message": "批次码产线 115XT 与当前物料 8.10.HEV.10.047696 不匹配,不能入库",
    "data": {
        "batch": {
            "id": "batch-id-001",
            "batchSn": "20260527133003",
            "lineSn": "115XT",
            "nums": 50
        }
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 校验结果说明(如「可以入库」或失败原因)
data.batch object MES 批次码信息,字段见「MES 批次码 batch」

仓位选项

请求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'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "required": true,
        "defaultLocNumber": "A",
        "locKey": "F100004",
        "locHint": "共 278 个仓位,数据来自 ERP 仓位值集",
        "locations": [
            { "locNumber": "A", "locName": "A", "locKey": "F100004", "displayLabel": "A A" }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.required boolean 是否必须选择仓位
data.defaultLocNumber string 推荐默认仓位编码
data.locHint string 仓位加载提示
data.locKey string 仓位维度键(展示用;提交可不回传)
data.locations[] array 仓位列表,字段见「仓位选项 locations[]」

仓库列表

请求URL
  • /js/a/mes/erpPrdInStock/stockList
请求方式
  • POST(也兼容 GET)
参数
参数名 必选 类型 说明
无 — — —
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPrdInStock/stockList'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "defaultStockNumber": "1100105",
        "stockHint": "共 5 个可用仓库",
        "stockList": [
            { "stockNumber": "1100105", "stockName": "五金库" }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.defaultStockNumber string 推荐默认入库仓库编码
data.stockHint string 仓库加载提示
data.stockList[] array 可用仓库列表

提交生产入库

请求URL
  • /js/a/mes/erpPrdInStock/submit
请求方式
  • POST
参数
参数名 必选 类型 说明
moBillNo 是 string 生产订单号
entryId 是 string 订单分录内码
batchIds 是 array / string mes_batch_sn.id 列表;表单方式传 JSON 数组字符串或逗号分隔
stockNumber 是 string 入库仓库编码
stockLocNumber 条件 string 仓库启用仓位时必填
stockLocKey 否 string 仓位维度键,可选

Content-Type(二选一): application/x-www-form-urlencoded(PDA 推荐)或 application/json;charset=UTF-8

参数示例
# 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=["batch-id-001"]' \
--data-urlencode 'stockNumber=1100105' \
--data-urlencode 'stockLocNumber=A22'

# 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":"A22"}'
返回示例
成功
{
    "result": "true",
    "message": "生产入库单保存成功,单号:SCRK110260605002;合计数量 100,绑定批次 1 个",
    "data": {
        "billNo": "SCRK110260605002",
        "totalQty": 100,
        "batchCount": 1,
        "lotNumber": "110260605002"
    }
}
失败
{
    "result": "false",
    "message": "请至少选择一个 MES 批次码"
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 保存结果说明
data.billNo string 成功时返回,ERP 生产入库单号(SCRK)
data.totalQty number 本次合计入库数量(所选批次 nums 之和)
data.batchCount int 绑定的 MES 批次码个数
data.lotNumber string ERP 生成的批号(若有)

查看生产入库单明细

请求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'

三、生产领料

领料单列表

请求URL
  • /js/a/mes/erpPickMaterialBill/pda/listData
请求方式
  • POST
参数
参数名 必选 类型 说明
pageNo 否 int 页码
pageSize 否 int 每页条数
moBillNoQuery 否 string 生产订单号
billNoQuery 否 string 领料单号 SCLL
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPickMaterialBill/pda/listData?pageNo=1&pageSize=20'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "pageNo": 1,
        "pageSize": 20,
        "count": 1,
        "list": [
            {
                "billNo": "SCLL110260603001",
                "moBillNo": "SCDD110260603003",
                "materialNumber": "3.02.xxx",
                "actualQty": 100
            }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.pageNo / pageSize / count — 分页字段,见「data 分页结构」
data.list[].billNo string 生产领料单号(SCLL)
data.list[].moBillNo string 来源生产订单号
data.list[].materialNumber string 子项物料编码
data.list[].actualQty number 实发数量

选择生产订单

请求URL
  • /js/a/mes/erpPickMaterialBill/pda/selectOrderData
请求方式
  • POST
参数
参数名 必选 类型 说明
pageNo 否 int 页码
pageSize 否 int 每页条数
billNo 否 string 生产订单号
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPickMaterialBill/pda/selectOrderData?pageNo=1&pageSize=20'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "pageNo": 1,
        "pageSize": 20,
        "count": 5,
        "list": [
            {
                "billNo": "SCDD110260603003",
                "documentStatusName": "已审核",
                "inventoryCategory": "HEV",
                "entryCount": 1,
                "totalQty": 1200
            }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.pageNo / pageSize / count — 分页字段,见「data 分页结构」
data.list[].billNo string 生产订单号
data.list[].documentStatusName string 单据状态名称
data.list[].inventoryCategory string 存货类别
data.list[].entryCount int 订单分录行数
data.list[].totalQty number 订单合计数量

选择订单分录

请求URL
  • /js/a/mes/erpPickMaterialBill/pda/selectDetailData
请求方式
  • POST
参数
参数名 必选 类型 说明
billNo 是 string 生产订单号
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPickMaterialBill/pda/selectDetailData?billNo=SCDD110260603003'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "pageNo": 1,
        "pageSize": 20,
        "count": 1,
        "list": [
            {
                "entryId": "266268",
                "seq": "1",
                "materialNumber": "8.10.HEV.05.049025",
                "qty": 1200,
                "workshopName": "冲压壳体线"
            }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.pageNo / pageSize / count — 分页字段,见「data 分页结构」
data.list[].entryId string 生产订单分录内码(materialInit、submit 用)
data.list[].seq string 行号
data.list[].materialNumber string 成品物料编码(.05)
data.list[].qty number 订单数量
data.list[].workshopName string 生产车间名称

领料页初始化(用料清单)

请求URL
  • /js/a/mes/erpPickMaterialBill/materialInit
请求方式
  • POST(也兼容 GET)
参数
参数名 必选 类型 说明
billNo 是 string 生产订单号
entryId 是 string 订单分录内码
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPickMaterialBill/materialInit?billNo=SCDD110260603003&entryId=266268'
返回示例
成功
{
    "result": "true",
    "message": "",
    "data": {
        "billNo": "SCDD110260603003",
        "entryId": "266268",
        "materialName": "成品",
        "moEntry": {
            "seq": "1",
            "materialNumber": "8.10.HEV.05.049025",
            "materialName": "成品",
            "qty": 1200
        },
        "materialList": [
            {
                "id": "250403",
                "ppbomNo": "PPBOM00150358",
                "materialNumber": "8.10.HEV.04.01001047696",
                "materialName": "内胆",
                "mustQty": 100,
                "pickedQty": 20,
                "canPickQty": 80,
                "stockNumber": "1100101",
                "batchManage": true,
                "pickStatusLabel": "可领料"
            },
            {
                "id": "250404",
                "ppbomNo": "PPBOM00150358",
                "materialNumber": "8.10.HEV.04.02001047696-2",
                "materialName": "横梁-2",
                "mustQty": 120,
                "pickedQty": 0,
                "canPickQty": 120,
                "stockNumber": "1100101",
                "batchManage": true,
                "pickStatusLabel": "可领料"
            }
        ]
    }
}
失败
{
    "result": "false",
    "message": "未找到生产订单分录",
    "data": null
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息;用料清单为空时可能有说明
data.billNo string 生产订单号
data.entryId string 订单分录内码
data.materialName string 订单分录成品物料名称(页头展示用,与 moEntry 一致)
data.moEntry.seq string 订单分录行号
data.moEntry.materialNumber string 成品物料编码
data.moEntry.materialName string 成品物料名称
data.moEntry.qty number 订单数量
data.materialList[].id string 用料清单分录 id(提交 lines[].ppbomEntryId 用)
data.materialList[].ppbomNo string 生产用料清单号
data.materialList[].materialNumber string 子项物料编码
data.materialList[].materialName string 子项物料名称(如「内胆」「横梁-2」,PDA 列表必用)
data.materialList[].mustQty number 应发数量
data.materialList[].pickedQty number 已领数量
data.materialList[].canPickQty number 可领数量(领料数不得超过此值)
data.materialList[].stockNumber string 默认发料仓库编码
data.materialList[].batchManage boolean 是否批号管理(true 时须选批号)
data.materialList[].pickStatusLabel string 领料状态展示(如可领料)

批号库存选项

请求URL
  • /js/a/mes/erpPickMaterialBill/pda/lotOptions
请求方式
  • POST(也兼容 GET)
参数
参数名 必选 类型 说明
materialNumber 是 string 子项物料编码
stockNumber 否 string 发料仓库
stockStatusNumber 否 string 库存状态
stockOrgNumber 否 string 库存组织,默认 110
pickQty 否 number 本次领料数量
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPickMaterialBill/pda/lotOptions?materialNumber=3.02.xxx&stockNumber=1100101&pickQty=50'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "lots": [
            { "lotNumber": "LOT001", "qtyText": "200" }
        ],
        "suggestedLotNumber": "LOT001",
        "lotPickable": true,
        "lotHint": "共 3 条可用批号"
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.lots[] array 可用批号库存列表,字段见「批号选项 lots[]」
data.suggestedLotNumber string 推荐批号
data.lotPickable boolean 是否存在可领批号库存
data.lotHint string 批号/库存提示(无库存时为诊断说明)

批号搜索

请求URL
  • /js/a/mes/erpPickMaterialBill/pda/lotSearch
请求方式
  • POST(也兼容 GET)
参数
参数名 必选 类型 说明
materialNumber 是 string 子项物料编码
stockNumber 否 string 发料仓库
stockStatusNumber 否 string 库存状态
stockOrgNumber 否 string 库存组织
lotKeyword 否 string 批号关键字
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPickMaterialBill/pda/lotSearch?materialNumber=3.02.xxx&stockNumber=1100101&lotKeyword=LOT'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "lots": [
            { "lotNumber": "LOT001", "qtyText": "200" }
        ],
        "lotHint": "共查到 1 条"
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.lots[] array 匹配的批号库存列表
data.lotHint string 查询结果提示

提交领料

请求URL
  • /js/a/mes/erpPickMaterialBill/submitPickMaterial
请求方式
  • POST
参数
参数名 必选 类型 说明
billNo 是 string 生产订单号
entryId 是 string 订单分录内码
lines 是 array / string 领料明细;表单方式时 lines 为 URL 编码后的 JSON 字符串
lines[].ppbomEntryId 是 string 用料清单分录 id
lines[].pickQty 是 number 领料数量
lines[].lotNumber 条件 string 批号管理物料必填

Content-Type(二选一): application/x-www-form-urlencoded(PDA 推荐)或 application/json;charset=UTF-8

参数示例
# PDA 表单
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPickMaterialBill/submitPickMaterial' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'billNo=SCDD110260603003' \
--data-urlencode 'entryId=266268' \
--data-urlencode 'lines=[{"ppbomEntryId":"250403","pickQty":50,"lotNumber":"LOT001"}]'

# JSON Body
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPickMaterialBill/submitPickMaterial' \
--header 'Content-Type: application/json;charset=UTF-8' \
--data '{"billNo":"SCDD110260603003","entryId":"266268","lines":[{"ppbomEntryId":"250403","pickQty":50,"lotNumber":"LOT001"}]}'
返回示例
成功
{
    "result": "true",
    "message": "领料单保存成功,单号:SCLL110260603010",
    "data": {
        "pickBillNo": "SCLL110260603010",
        "syncedKcCount": 1,
        "syncedMaterialCount": 0,
        "kcSyncFailed": false
    }
}
失败
{
    "result": "false",
    "message": "领料数量不能超过可领数量"
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 保存结果说明
data.pickBillNo string 成功时返回,ERP 领料单号(SCLL)
data.syncedKcCount int 同步到 MES 库存的行数
data.syncedMaterialCount int 新增 MES 物料档案数
data.kcSyncFailed boolean 领料单已保存但 MES 库存同步是否失败

查看领料单明细

请求URL
  • /js/a/mes/erpPickMaterialBill/pda/detailData
请求方式
  • POST
参数
参数名 必选 类型 说明
billNo 是 string 领料单号 SCLL
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpPickMaterialBill/pda/detailData?billNo=SCLL110260603010'

四、直接调拨

与 PC「增加直接调拨单」一致:不关联生产订单。点新增调用 formInit 直接进入填单页;选物料和调出仓库后调 pda/lotOptions 选批号;调拨数量通过 batchScan 扫批次码累加,须已发货检合格;提交传 traySns(托盘码逗号拼接),成功后托盘改为已发货并绑定调拨单号。
详细说明见 PDA直接调拨接口说明.md。

调拨单列表

请求URL
  • /js/a/mes/erpTransferDirect/pda/listData
请求方式
  • POST
参数
参数名 必选 类型 说明
pageNo 否 int 页码
pageSize 否 int 每页条数
billNoQuery 否 string 调拨单号
moBillNoQuery 否 string 生产订单号
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpTransferDirect/pda/listData?pageNo=1&pageSize=20'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "pageNo": 1,
        "pageSize": 20,
        "count": 1,
        "list": [
            {
                "billNo": "ZJDB110260605001",
                "moBillNo": "SCDD110260605001",
                "materialNumber": "8.10.HEV.10.047696",
                "lotNumber": "110260605001",
                "realQty": 100
            }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.pageNo / pageSize / count — 分页字段,见「data 分页结构」
data.list[].billNo string 直接调拨单号(ZJDB)
data.list[].moBillNo string 来源生产订单号
data.list[].materialNumber string 物料编码(.10 半成品)
data.list[].lotNumber string 批号
data.list[].realQty number 调拨数量

选择生产订单(兼容旧版,新增流程不再调用)

请求URL
  • /js/a/mes/erpTransferDirect/pda/selectOrderData
请求方式
  • POST
参数
参数名 必选 类型 说明
pageNo 否 int 页码
pageSize 否 int 每页条数
billNo 否 string 生产订单号
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpTransferDirect/pda/selectOrderData?pageNo=1&pageSize=20'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "pageNo": 1,
        "pageSize": 20,
        "count": 10,
        "list": [
            {
                "billNo": "SCDD110260605001",
                "date": "2026-06-01",
                "inventoryCategory": "HEV",
                "entryCount": 1,
                "totalQty": 1500
            }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.pageNo / pageSize / count — 分页字段,见「data 分页结构」
data.list[].billNo string 生产订单号(仅 HEV/115 物料 .10)
data.list[].date string 单据日期
data.list[].inventoryCategory string 存货类别
data.list[].entryCount int 订单分录行数
data.list[].totalQty number 订单合计数量

调拨页初始化

请求URL
  • /js/a/mes/erpTransferDirect/formInit
请求方式
  • POST(也兼容 GET)
参数

无(不再传 moBillNo,点新增直接进入填单页)

参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpTransferDirect/formInit'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "transferCategory": "3",
        "transferCategoryName": "外发调拨",
        "scanHint": "调拨数量通过扫描批次码累加,扫码前须已完成发货检",
        "materialList": [
            {
                "materialNumber": "8.10.HEV.10.047696",
                "materialName": "HEV",
                "displayLabel": "8.10.HEV.10.047696(HEV)",
                "defaultUnitNumber": "Pcs",
                "units": [
                    { "unitNumber": "Pcs", "unitName": "个" }
                ]
            }
        ],
        "defaultSrcStockNumber": "1100105",
        "defaultDestStockNumber": "",
        "stockList": [
            { "stockNumber": "1100105", "stockName": "五金库" }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.transferCategoryName string 固定「外发调拨」
data.materialList[] array HEV / 115 可调拨物料(含单位)
data.defaultSrcStockNumber string 推荐默认调出仓库编码
data.defaultDestStockNumber string 推荐默认调入仓库编码(配置项)
data.stockList[] array 可用仓库列表
data.scanHint string 扫码累加数量说明

选批号(选物料和调出仓库后调用)

请求URL
  • /js/a/mes/erpTransferDirect/pda/lotOptions
请求方式
  • POST(也兼容 GET)
参数
参数名 必选 类型 说明
materialNumber 是 string 物料编码
stockNumber 是 string 调出仓库编码
stockName 否 string 仓库名称,仅提示用
lotKeyword 否 string 批号关键字,传入则搜索
pickQty 否 number 计划数量,用于推荐批号
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpTransferDirect/pda/lotOptions?materialNumber=8.10.HEV.10.047696&stockNumber=1100105'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "materialNumber": "8.10.HEV.10.047696",
        "stockNumber": "1100105",
        "lots": [
            { "lotNumber": "110260605001", "qty": 100, "qtyText": "100" }
        ],
        "suggestedLotNumber": "110260605001",
        "lotPickable": true,
        "lotHint": "共 1 条可用批号"
    }
}

PDA:选中 lots[].lotNumber 作为提交 lotNumber。切换物料或调出仓后须重调。


扫批次码(累加数量 + 发货检校验)

请求URL
  • /js/a/mes/erpTransferDirect/batchScan
请求方式
  • POST(也兼容 GET)
参数
参数名 必选 类型 说明
batchSn 是 string 批次码(扫码值)
materialNumber 否 string 当前已选物料;传入时须与批次产线物料一致
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpTransferDirect/batchScan?batchSn=20260804084909&materialNumber=8.10.HEV.10.047696'
返回示例
成功
{
    "result": "true",
    "message": "扫码成功,可累加数量 2",
    "data": {
        "batchSn": "20260804084909",
        "nums": 2,
        "qtyIncrement": 2,
        "materialNumber": "8.10.HEV.10.047696",
        "lotNumber": "110260605001",
        "batchStatus": "1",
        "inspected": true
    }
}

PDA:qty = qty + data.qtyIncrement。须 batchStatus=1(已发货检合格)才允许累加。


生产入库源行列表(兼容旧版,新增流程不再调用)

请求URL
  • /js/a/mes/erpTransferDirect/pda/instockSourceData
请求方式
  • POST
参数
参数名 必选 类型 说明
moBillNo 是 string 生产订单号
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpTransferDirect/pda/instockSourceData?moBillNo=SCDD110260605001'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "pageNo": 1,
        "pageSize": 20,
        "count": 1,
        "list": [
            {
                "billNo": "SCRK110260605001",
                "entryId": "12345",
                "lotNumber": "110260605001",
                "realQty": 150
            }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.pageNo / pageSize / count — 分页字段,见「data 分页结构」
data.list[].billNo string 生产入库单号(SCRK)
data.list[].entryId string 生产入库分录内码
data.list[].lotNumber string 批号
data.list[].realQty number 入库数量

仓位选项

请求URL
  • /js/a/mes/erpTransferDirect/pda/stockLocOptions
请求方式
  • POST(也兼容 GET)
参数
参数名 必选 类型 说明
stockNumber 是 string 仓库编码(调出仓、调入仓各调一次)
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpTransferDirect/pda/stockLocOptions?stockNumber=1100105'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "required": true,
        "defaultLocNumber": "A",
        "locKey": "F100004",
        "locHint": "共 278 个仓位,数据来自 ERP 仓位值集",
        "locations": [
            { "locNumber": "A", "locName": "A", "locKey": "F100004", "displayLabel": "A A" }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.required boolean 是否必须选择仓位
data.defaultLocNumber string 推荐默认仓位编码
data.locHint string 仓位加载提示
data.locKey string 仓位维度键(展示用;提交可不回传)
data.locations[] array 仓位列表,字段见「仓位选项 locations[]」

仓库列表

请求URL
  • /js/a/mes/erpTransferDirect/stockList
请求方式
  • POST(也兼容 GET)
参数
参数名 必选 类型 说明
无 — — —
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpTransferDirect/stockList'
返回示例
成功
{
    "result": "true",
    "message": "成功",
    "data": {
        "defaultStockNumber": "1100105",
        "defaultDestStockNumber": "",
        "stockHint": "共 5 个可用仓库",
        "stockList": [
            { "stockNumber": "1100105", "stockName": "五金库" }
        ]
    }
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 提示信息
data.defaultStockNumber string 推荐默认调出仓库编码
data.defaultDestStockNumber string 推荐默认调入仓库编码(配置项)
data.stockHint string 仓库加载提示
data.stockList[] array 可用仓库列表

提交调拨

请求URL
  • /js/a/mes/erpTransferDirect/submit
请求方式
  • POST
参数
参数名 必选 类型 说明
materialNumber 是 string 物料编码(HEV / 115)
lotNumber 是 string ERP 批号
qty 是 number 调拨数量(扫码 qtyIncrement 合计)
unitNumber 否 string 计量单位;不传则取物料默认单位
srcStockNumber 是 string 调出仓库
srcStockLocNumber 条件 string 调出仓库启用仓位时必填
srcStockLocKey 否 string 调出仓位维度键,可选
destStockNumber 是 string 调入仓库
destStockLocNumber 条件 string 调入仓库启用仓位时必填
destStockLocKey 否 string 调入仓位维度键,可选
traySns 是 string 托盘码逗号拼接,如 20260804084909,20260804085001。成功后改为已发货并绑定调拨单号
batchSns 否 string / array 兼容旧参数,与 traySns 合并去重

不再传 moBillNo / instockBillNo / instockEntryId。

Content-Type(二选一): application/x-www-form-urlencoded(PDA 推荐)或 application/json;charset=UTF-8

参数示例
# PDA 表单
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpTransferDirect/submit' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'materialNumber=8.10.HEV.10.047696' \
--data-urlencode 'lotNumber=110260605001' \
--data-urlencode 'qty=2' \
--data-urlencode 'srcStockNumber=1100105' \
--data-urlencode 'srcStockLocNumber=A' \
--data-urlencode 'destStockNumber=1100217' \
--data-urlencode 'traySns=20260804084909,20260804085001'

# JSON Body
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpTransferDirect/submit' \
--header 'Content-Type: application/json;charset=UTF-8' \
--data '{"materialNumber":"8.10.HEV.10.047696","lotNumber":"110260605001","qty":2,"srcStockNumber":"1100105","srcStockLocNumber":"A","destStockNumber":"1100217","traySns":"20260804084909,20260804085001"}'
返回示例
成功
{
    "result": "true",
    "message": "直接调拨单保存成功,单号:ZJDB110260605001",
    "data": {
        "billNo": "ZJDB110260605001"
    }
}
失败
{
    "result": "false",
    "message": "批次码 20260804084909 尚未发货检,不能调拨"
}
返回字段说明
字段路径 类型 中文说明
result string 业务成功 "true" / 失败 "false"
message string 保存结果说明
data.billNo string 成功时返回,ERP 直接调拨单号(ZJDB)

查看调拨单明细

请求URL
  • /js/a/mes/erpTransferDirect/pda/detailData
请求方式
  • POST
参数
参数名 必选 类型 说明
billNo 是 string 直接调拨单号 ZJDB
参数示例
curl --location --request POST 'http://127.0.0.1:8980/js/a/mes/erpTransferDirect/pda/detailData?billNo=ZJDB110260605001'