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

SN 单品库存链(轻量闭环)- 前端联调方案

涉及页面

  • SN 码列表 / 单件在库查询页
  • SN 单件详情页(在库 / 去向)
  • 仓库入库、出库(登记 SN)操作页
  • 物料主数据(SN 开关配置)

业务流程与数据带入

  1. 物料主数据 -> SN 开关:物料若启用「序列号管理」(isSerialManaged),才允许该物料登记 SN 入库/出库。
  2. 入库登记 SN:用户扫码/手工录入 code,选择物料、仓库/库区/库位,调用 POST /mes/wm/sn/in-stock;后端先建 IN 库存事务再更新 SN 为「在库」并落库位。snCode 写入库存流水(mes_wm_transaction.sn_code)。
  3. 出库核销 SN:录入 SN 码与物料,调用 POST /mes/wm/sn/out-stock;后端以 SN 记录的库存位置建 OUT 事务,并把 SN 置「已出库」、清空库位。
  4. 单件查询:按 codeGET /mes/wm/sn/detail,返回 SN 在库状态、当前位置,以及最近一笔库存流水的类型/数量/业务单据/时间,用于核对去向。

API

方法 路径 说明
POST /mes/wm/sn/in-stock SN 登记入库
POST /mes/wm/sn/out-stock SN 出库核销
GET /mes/wm/sn/detail?code= SN 单件详情(在库状态 + 最近流水去向)
GET /mes/wm/sn/in-stock-page 单件在库分页查询(按状态/库位/物料/批次过滤)

请求参数(in-stock):

参数 类型 必填 说明
code String SN 码
itemId Long 物料编号(须启用序列号管理)
warehouseId Long 仓库
locationId Long 库区
areaId Long 库位
batchCode String 批次号
remark String 备注

请求参数(out-stock):

参数 类型 必填 说明
code String SN 码
itemId Long 物料编号
remark String 备注

响应字段(detail):

字段 类型 说明
code / status String/Integer SN 码、状态(1 在库 / 2 已出库)
warehouseId/locationId/areaId Long 在库位置(已出库为空)
lastTransactionType / TypeName Integer/String 最近一笔流水方向(1 入库 / 2 出库)
lastQuantity / lastBizType / lastBizCode / lastTime decimal/Integer/String/datetime 最近流水数量、业务类型、业务单据编码、时间

响应字段新增(物料相关 VO:MdmItemRespDTO / MdmItemSaveReqVO 等):

字段 类型 说明
isSerialManaged Boolean 是否序列号管理开关(create/read/update 均支持)

字段展示规则

字段 展示位置 说明
SN 码 / 物料 / 批次 列表、详情 单件标识
在库状态 列表、详情 在库 / 已出库
在库库位 列表、详情 仓库/库区/库位
最近去向 详情 最近流水对应的业务单据码 + 时间

业务规则说明

场景 规则
未启用序列号 物料未开 isSerialManaged 时登记 SN 报错
重复入库 已「在库」的 SN 再次入库报错,须先出库
出库前提 仅「在库」且位置非空可出库;SN 与物料不匹配 / 位置不符会报错
出入库流转 in-stock 建 IN 事务、out-stock 建 OUT 事务,均走库存流水并更新库存台账
商品 SN 溯源 通过 mes_wm_transaction.sn_code 关联流水,可按 SN 追溯历史进出

注意事项

  • SN 登记/核销是「轻量」能力:单据行不拆成 SN 明细,SN 独立管理在 mes_wm_sn
  • 出库位置取自 SN 记录的库存位置,前端无需重复提交库位。
  • 物料 isSerialManaged 开关在 MDM 物料主数据维护,MES 读取同一 mdm_item 数据。