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

库存现有量自定义出入库 - 前端联调方案

涉及页面

  • 库存现有量列表页
  • 库存调整弹窗/对话框

业务场景

库存现有量模块新增自定义出入库功能,用于:
- 库存盘点调整
- 库存损耗/报溢
- 手动入库/出库
- 其他非业务单据驱动的库存变动

新增 API

自定义入库

方法 路径 说明
POST /mes/wm/material-stock/adjust-in 自定义入库

请求参数:

参数 类型 必填 说明
itemId Long 物料ID
warehouseId Long 仓库ID
locationId Long 库区ID
areaId Long 库位ID
batchId Long 批次ID
batchCode String 批次号
vendorId Long 供应商ID
quantity BigDecimal 入库数量(必须大于0)
reason String 入库原因

响应:

{
  "code": 0,
  "data": 123,  // 库存记录ID
  "msg": "操作成功"
}

自定义出库

方法 路径 说明
POST /mes/wm/material-stock/adjust-out 自定义出库

请求参数:

参数 类型 必填 说明
itemId Long 物料ID
warehouseId Long 仓库ID
locationId Long 库区ID
areaId Long 库位ID
batchId Long 批次ID
batchCode String 批次号
vendorId Long 供应商ID
quantity BigDecimal 出库数量(必须大于0)
reason String 出库原因

响应:

{
  "code": 0,
  "data": 123,  // 库存记录ID
  "msg": "操作成功"
}

前端修改点

1. 库存现有量列表页

在列表页工具栏添加"库存调整"按钮:

按钮逻辑:
1. 点击打开库存调整弹窗
2. 弹窗内填写调整信息

2. 库存调整弹窗

操作类型选择:
- 用户首先选择操作类型:入库 / 出库
- 根据操作类型调用不同的 API

表单字段:

字段 类型 必填 说明
物料 选择器 弹出物料选择对话框
仓库 选择器 下拉选择仓库
库区 选择器 根据仓库联动加载库区
库位 选择器 根据库区联动加载库位
批次 选择器 弹出批次选择对话框(如果物料启用批次管理)
供应商 选择器 下拉选择供应商
入库数量/出库数量 数字输入 必须大于0
入库原因/出库原因 文本输入 填写原因

联动逻辑:

  1. 选择仓库后,加载该仓库下的库区列表
  2. 选择库区后,加载该库区下的库位列表
  3. 选择物料后:
  • 如果物料启用批次管理(batchCode=true),批次字段显示并必填
  • 如果物料未启用批次管理,批次字段隐藏

提交逻辑:

  1. 校验必填字段
  2. 根据操作类型调用不同 API:
  • 入库:/mes/wm/material-stock/adjust-in
  • 出库:/mes/wm/material-stock/adjust-out
  1. 成功后提示"入库成功"/"出库成功",刷新列表页
  2. 失败时显示错误信息

业务规则说明

场景 规则
入库 自动创建库存记录(如果不存在),增加库存数量
出库 校验库存记录存在且数量充足,扣减库存数量
批次管理 物料启用批次管理时,必须选择批次
库位混放 根据库位配置的混放规则校验

库存事务流水

调整操作会自动生成库存事务流水:

字段 入库 出库
type IN (入库) OUT (出库)
bizType WM_STOCK_ADJUST_IN (126) WM_STOCK_ADJUST_OUT (127)
bizId 库存记录ID 库存记录ID
bizCode STOCK_ADJUST_{库存ID} STOCK_ADJUST_{库存ID}

注意事项

  • 入库数量/出库数量必须大于0
  • 出库时必须保证库存充足
  • 入库和出库操作会分别记录库存事务流水,便于追溯
  • 建议在原因中填写详细说明,便于后续查询和审计