编辑 | blame | 历史 | 原始文档

生产线扫码入库 - 前端联调方案

涉及页面

  • 生产线扫码入库自动工作台
  • 扫码事件审计
  • 生产批次和袋码详情

业务流程与数据带入

  1. 工业相机由边缘程序完成二维码识别,上传 eventId、设备编码、产线编码和袋码。
  2. 后端根据袋码带出生产批次和产品物料,并使用 WIP 虚拟仓配置完成库存入账。
  3. 入库成功后记录服务端入库时间,增加暂存库存,并累计批次入库袋数。
  4. 同一个 eventId 重试时返回原事件;已入库袋码不会重复增加库存。

API

方法 路径 说明
POST /mes/pro/scan-in/inbound 袋码扫码入库,成功后增加 WIP 虚拟仓库存并写库存事务
GET /mes/pro/scan-in/page 分页查询扫码事件
GET /mes/pro/scan-in/latest 查询设备或全局最近扫码事件
GET /mes/pro/scan-in/dashboard 查询工作台最近事件和累计事件数

请求参数:

参数 类型 必填 说明
eventId String 边缘设备生成的幂等事件号
bagCode String 工业相机识别出的袋码
quantity Decimal 入库数量,本期一袋通常为 1
deviceCode String 设备编码,用于审计
lineCode String 产线编码,用于审计
locationId Long WIP 暂存库区编号
areaId Long WIP 暂存库位编号
remark String 备注

响应字段:

字段 类型 说明
eventId String 幂等事件号
bagCode String 袋码
batchCode String 生产批次号
quantity Decimal 本次入库数量
deviceCode String 设备编码
eventTime DateTime 服务端入库时间
transactionId Long 库存事务编号

字段展示规则

字段 展示位置 说明
deviceCode 设备状态、最近扫码列表 显示当前设备或事件来源
bagCode 最近扫码列表 显示最近识别的袋码
batchCode 最近扫码列表、批次汇总 展示袋码归属的生产批次
eventTime 最近扫码列表 以服务端入库时间为准
transactionId 最近扫码列表 用于库存流水追溯
quantity 库存摘要 累计暂存数量

业务规则说明

场景 规则
重复事件 同一 eventId 返回第一次处理结果,不重复增加库存
已入库袋码 拒绝重复入库,并保留业务错误信息
WIP 暂存库 仓库由后端使用 WIP 虚拟仓解析,前端不传仓库编号
事务一致性 事件、袋码状态、批次累计、库存台账和库存事务在同一事务中提交
设备时间 设备扫码时间用于追溯,库存入库时间使用服务端时间

失败状态与标准错误码

扫码请求无论成功或失败都会保留扫码事件记录。状态取值:

状态 说明
SUCCESS 已完成库存入库
FAILED 校验或库存处理失败
错误码 说明
MES_SCAN_BAG_NOT_EXISTS 袋码不存在
MES_SCAN_BAG_ALREADY_INBOUND 袋码已入库
MES_SCAN_BATCH_NOT_EXISTS 生产批次不存在
MES_SCAN_WIP_WAREHOUSE_NOT_EXISTS WIP 虚拟仓不存在
MES_SCAN_TRANSACTION_FAILED 库存事务处理失败
MES_SCAN_EVENT_ID_CONFLICT 事件号已存在但内容不一致

失败记录保留设备编码、袋码、接收时间、失败时间、错误码和错误原因;失败时不产生库存事务。

权限点

权限 用途
mes:pro-scan-in:query 查询事件和最近扫码
mes:pro-scan-in:inbound 执行扫码入库
mes:pro-scan-in:dashboard 查询工作台看板
  • 边缘程序不得上传图片或视频,本接口只接收解码后的二维码结果。
  • 前端工作台应在页面卸载时停止刷新任务。
  • 入库失败时展示后端返回的业务错误,不自动调用通用库存调整接口重试。
  • WIP 库区和库位需提前配置;接口不接受客户端指定仓库编号。