Skip to content

WMS 仓库管理 PRD

文档信息

项目内容
产品名称PMForge - WMS 仓库管理
文档版本v2.0
创建日期2026-09-23
最后更新2026-09-24
文档状态评审中
优先级P1

一、功能概述

1.1 功能定位

WMS 仓库管理模块是 PMForge 的"智能仓储管家"——如果把企业的货物比作堆积如山的快递包裹,WMS 就是那个知道每个包裹在哪、该往哪放、什么时候该取出来的"超级仓管员"。它提供从仓库建立、库位规划、出入库作业、库存管控到数据分析的全链路仓储管理能力,支持多仓库、多库区、多库位的层级化管理,覆盖入库、出库、盘点、调拨、冻结等核心仓储场景,并通过波次管理、条码管理提升作业效率。

通俗理解:想象你管着一个超大仓库,里面有几万个货架、几十万件货物。WMS 就像给你配了一个"智能导航"——它告诉你每件货该放哪个货架、哪件货快没了该补货、哪个货架快满了该挪一挪,还能帮你把一堆取货订单合并成一条最优路线,一趟走完就把所有货都拣好了。

1.2 目标用户

用户角色使用场景使用频率核心诉求
仓库管理员仓库日常管理、库位规划、出入库审核、库存盘点每日准确掌握库存、高效处理出入库、合理规划库位
仓库操作员扫码入库、拣货出库、库存搬运、盘点执行每日(高频)快速完成扫码操作、准确执行拣货任务
供应链主管库存预警监控、库存周转分析、仓库利用率统计每周预警及时、周转率可控、数据可视化
生产领料员生产领料出库、成品入库、物料调拨每日快速领料、物料齐套检查
采购收货员采购到货入库、退货出库每日到货快速入库、与采购单自动关联
企业高管仓储数据看板、库存成本分析每周/月全局视角、辅助决策

1.3 业务价值

价值维度具体收益衡量指标
精细化仓储仓库-库区-库位三级架构,货物精准定位库位利用率提升 20%+
作业效率波次合并拣货、条码扫描,减少人工操作拣货效率提升 50%+
库存准确实时跟踪 + 定期盘点,确保账实一致库存准确率 > 99.5%
成本优化合理库位规划 + 库存预警,减少积压库存周转率提升 30%+
全程追溯每笔操作有流水,正向追溯反向追踪出入库追溯 100% 覆盖

1.4 功能范围

功能模块功能点优先级状态
仓库管理仓库创建、编辑、状态管理、列表查询P0待开发
库位管理库区管理、库位管理、批量创建库位P0待开发
入库管理入库单创建、审核、执行、记录查询P0待开发
出库管理出库单创建、审核、执行、记录查询P0待开发
库存管理实时库存、库存预警、盘点、调拨、冻结P0待开发
波次管理波次规则配置、波次生成与执行P1待开发
条码管理条码生成、打印、扫描识别P1待开发
WMS 统计出入库统计、库存周转率、仓库利用率P1待开发

二、用户场景

2.1 用户角色

角色描述核心诉求
仓库管理员老王仓库日常运营负责人,管理 3 个仓库、20 名操作员准确掌握库存、高效处理出入库、合理规划库位
仓库操作员小张一线操作人员,每天处理 50+ 笔出入库快速完成扫码操作、准确执行拣货任务
供应链主管刘经理供应链管理人员,关注库存健康度预警及时、周转率可控、数据可视化
生产领料员小周生产车间领料人员快速领料出库、物料齐套检查
采购收货员小陈采购到货处理人员到货快速入库、与采购单自动关联

2.2 使用场景

场景 1:仓库管理员老王——采购到货入库

场景故事:供应商送来一批原材料,收货员小陈需要快速完成入库。

前置条件

  • 采购订单已审核通过,供应商已发货
  • 目标仓库和库位已配置

操作流程

  1. 收货员小陈在"入库管理"页面点击"新建入库单"
  2. 选择入库类型为"采购入库",系统自动关联采购单号
  3. 选择目标仓库为"原材料仓",系统推荐空闲库位
  4. 扫描货物条码,系统自动识别物料信息
  5. 录入实际到货数量,系统校验与预计数量的偏差(允许 ±10%)
  6. 提交入库单,状态变为"待审核"
  7. 仓库管理员老王审核通过
  8. 小张执行入库,扫码确认实际数量
  9. 系统自动更新库存、更新库位状态、生成入库流水

期望结果:入库操作 3 分钟内完成,库存实时更新,入库记录可追溯

验收标准(AC)

  1. AC-1:创建入库单时,选择"采购入库"类型后,系统应自动展示关联的采购单列表供选择
  2. AC-2:扫描条码后,系统应在 1 秒内自动填充物料编码、名称、规格等信息
  3. AC-3:实际数量与预计数量偏差超过 ±10% 时,系统应弹出警告提示,但允许确认后继续
  4. AC-4:入库完成后,对应库位的库存数量应立即增加,库位状态从"空闲"变为"占用"
  5. AC-4:入库流水记录应包含:变动类型、变动数量、变动前数量、变动后数量、关联单号

场景 2:仓库操作员小张——波次拣货出库

场景故事:今天有 30 笔销售订单需要发货,小张需要高效完成拣货。

前置条件

  • 30 笔销售出库单已审核通过
  • 波次规则已配置(按同库区合并)
  • 库存充足

操作流程

  1. 仓库管理员老王在"波次管理"页面点击"生成波次"
  2. 系统按波次规则将 30 笔出库单合并为 3 个波次(每波次约 10 单,同库区)
  3. 老王将波次 1 分配给小张
  4. 小张在 PDA 上领取波次 1 的拣货任务
  5. 系统推荐最优拣货路径(按库位编码排序)
  6. 小张按路径逐一拣货,每拣一件扫码确认
  7. 全部拣完后确认波次完成
  8. 系统按订单分别扣减库存、生成出库流水

期望结果:30 笔订单的拣货时间从 2 小时缩短至 40 分钟

验收标准(AC)

  1. AC-1:生成波次时,系统应按配置的合并规则(同库区)自动分组,5 秒内完成
  2. AC-2:波次内的拣货路径应按库位编码升序排列,减少往返走动
  3. AC-3:扫码确认拣货时,系统应校验物料和数量是否匹配,不匹配时拒绝并提示
  4. AC-4:波次完成后,系统应自动按订单分别扣减库存,每笔订单生成独立的出库流水
  5. AC-5:波次执行过程中,被锁定的库存不应被其他波次或出库单使用

场景 3:供应链主管刘经理——库存预警处理

场景故事:月末,刘经理需要检查库存健康度,处理预警信息。

前置条件

  • 库存预警规则已配置(安全库存下限/上限)
  • 部分物料库存已触发预警

操作流程

  1. 刘经理登录系统,收到"3 条库存预警"的站内通知
  2. 进入"库存预警"页面,查看预警列表
  3. 预警 1:物料 A 当前库存 80 件,低于安全库存下限 100 件(库存不足)
  4. 预警 2:物料 B 当前库存 5000 件,高于安全库存上限 3000 件(库存积压)
  5. 刘经理对预警 1 点击"发起采购",系统自动跳转至 ERP 采购模块创建采购单
  6. 对预警 2 点击"发起调拨",系统跳转至调拨页面
  7. 处理完成后标记预警为"已处理",填写处理说明

期望结果:预警从发现到处理形成闭环,不遗漏

验收标准(AC)

  1. AC-1:库存低于安全下限时,系统应在 1 分钟内生成预警通知并推送给相关人员
  2. AC-2:同一物料同一仓库同一预警类型,未处理前不重复告警
  3. AC-3:预警列表应展示:物料信息、当前库存、安全阈值、预警类型、预警时间、处理状态
  4. AC-4:点击"发起采购"应携带物料信息和建议采购数量跳转至 ERP 采购模块
  5. AC-5:预警处理后应记录处理人、处理时间、处理说明,支持后续查询

场景 4:仓库管理员老王——月度库存盘点

场景故事:月末,老王需要组织对原材料仓进行全面盘点。

前置条件

  • 原材料仓有 2000+ 条库存记录
  • 盘点执行人已安排

操作流程

  1. 老王创建盘点单,选择"原材料仓",盘点方式选择"盲盘"(不显示账面数量)
  2. 系统自动生成盘点明细(当前账面库存,但对执行人隐藏数量)
  3. 盘点执行人小张到现场逐一清点,在 PDA 上录入实盘数量
  4. 系统自动计算差异:物料 X 账面 100 件,实盘 98 件,差异 -2 件(盘亏)
  5. 差异超过 5% 阈值的物料标记为"需复盘"
  6. 小张对需复盘的物料重新清点确认
  7. 提交盘点结果,老王审核通过
  8. 系统自动调整库存:盘盈的生成入库流水,盘亏的生成出库流水

期望结果:2000 条库存的盘点在 1 天内完成,差异处理有据可查

验收标准(AC)

  1. AC-1:创建盲盘任务时,盘点明细页面不应显示账面数量,只展示物料信息和库位
  2. AC-2:差异数量 = 实盘数量 - 账面数量,正值标记为"盘盈"(绿色),负值标记为"盘亏"(红色)
  3. AC-3:差异率超过 5%(可配置)的物料应自动标记为"需复盘",未复盘不允许提交
  4. AC-4:审核通过后,系统应自动生成调整记录(盘盈入库 / 盘亏出库),库存立即更新
  5. AC-5:盘点全流程应记录操作日志:创建人、执行人、审核人、各环节时间

场景 5:仓库操作员小张——跨仓库物料调拨

场景故事:成品仓的某产品库存积压,分店仓库缺货,需要调拨。

前置条件

  • 成品仓该物料库存 3000 件
  • 分店仓库库存 200 件,低于安全库存

操作流程

  1. 老王创建调拨单,选择源仓库"成品仓"、目标仓库"分店仓"
  2. 添加调拨明细:物料 A,调拨数量 1000 件
  3. 系统校验成品仓可用库存 ≥ 1000 件,校验通过
  4. 提交调拨单,审批通过
  5. 成品仓小张执行调拨出库,扫码确认出库 1000 件
  6. 调拨单状态变为"在途中"
  7. 分店仓收货确认入库
  8. 两仓库库存同步更新:成品仓 -1000,分店仓 +1000

期望结果:调拨流程清晰,在途库存可追踪

验收标准(AC)

  1. AC-1:创建调拨单时,系统应校验源仓库可用库存(扣除冻结量和已分配量),不足时阻止提交
  2. AC-2:调拨出库后,源仓库库存立即扣减,调拨单状态变为"在途中"
  3. AC-3:在途状态的调拨单应在统计报表中单独体现"在途库存"
  4. AC-4:目标仓库确认入库后,库存立即增加,调拨单状态变为"已完成"
  5. AC-5:在途超过 3 天未确认入库的调拨单,系统应自动发送预警通知

三、功能需求

3.1 仓库管理

页面设计

仓库管理

业务规则

规则说明设计原因
仓库编码唯一编码格式 2-20 位字母数字,创建后不可修改编码作为业务标识需全局唯一,修改会导致关联单据引用断裂
仓库名称不重复同一租户下仓库名称不可重复避免操作员在选仓库时混淆
禁用仓库限制禁用后不允许创建新的出入库单防止对已停用仓库的误操作,已有单据不受影响
仓库面积 > 0填写面积时必须大于 0面积用于计算仓库利用率,0 或负数无意义
仓库类型原材料仓、半成品仓、成品仓、综合仓区分存储货物类型,便于分类统计和管理

状态机 - 仓库状态

仓库状态机

接口列表

接口名称请求方式接口路径功能说明
仓库分页查询GET/admin-api/wms/warehouse/page按条件分页查询仓库列表
仓库详情GET/admin-api/wms/warehouse/get获取仓库详情
仓库下拉列表GET/admin-api/wms/warehouse/simple-list获取启用的仓库列表(下拉选择用)
创建仓库POST/admin-api/wms/warehouse/create新增仓库
更新仓库PUT/admin-api/wms/warehouse/update编辑仓库信息
删除仓库DELETE/admin-api/wms/warehouse/delete逻辑删除仓库
更新仓库状态PUT/admin-api/wms/warehouse/update-status启用/禁用仓库

3.2 库位管理

页面设计

库位管理

业务规则

规则说明设计原因
库位编码格式库区编码-货架号-层号-位置号(如 A-01-02-03)编码即位置导航,操作员看到编码就知道去哪找
库位状态空闲、占用、冻结三态管理:空闲可分配、占用已存货、冻结不可用(维修/保留)
冻结库位限制冻结状态不允许分配新的入库任务防止将货物放入不可用的库位
库位承重校验入库时校验货物重量不超过库位承重上限安全考虑,超重可能导致货架损坏
库区删除校验存在关联库位或库存记录时不允许删除库区防止误删导致数据断裂
批量创建支持指定货架数、层数、每层位置数,自动生成新建仓库时快速初始化大量库位,避免逐个创建

接口列表

接口名称请求方式接口路径功能说明
库区列表GET/admin-api/wms/storage-area/list按仓库 ID 查询库区列表
创建库区POST/admin-api/wms/storage-area/create新增库区
更新库区PUT/admin-api/wms/storage-area/update编辑库区信息
删除库区DELETE/admin-api/wms/storage-area/delete逻辑删除库区
库位分页查询GET/admin-api/wms/storage-location/page按条件分页查询库位
库位列表GET/admin-api/wms/storage-location/list按库区 ID 查询库位列表
创建库位POST/admin-api/wms/storage-location/create新增单个库位
批量创建库位POST/admin-api/wms/storage-location/batch-create按规则批量生成库位
更新库位PUT/admin-api/wms/storage-location/update编辑库位信息
删除库位DELETE/admin-api/wms/storage-location/delete逻辑删除库位
冻结/解冻库位PUT/admin-api/wms/storage-location/update-status变更库位状态

3.3 入库管理

页面设计

入库管理

业务规则

规则说明设计原因
入库单号自动生成格式:RK + 年月日 + 4 位流水号(如 RK202609240001)单号唯一且包含日期,便于识别和检索
入库类型采购入库、生产入库、退货入库、调拨入库、其他入库区分入库来源,便于统计和关联业务
至少一条明细入库单必须包含至少一条入库明细行空单据无业务意义
数量校验关联来源单号时,入库数量不得超过来源单未入库数量防止超量入库导致账实不符
偏差允许实际数量与预计数量允许 ±10% 偏差(可配置)实际业务中到货数量可能有合理偏差
入库不可撤销入库执行后不可撤销,需纠正通过出库单或调整单处理库存操作需留痕,撤销会破坏流水链

状态机 - 入库单

入库单状态机

接口列表

接口名称请求方式接口路径功能说明
入库单分页查询GET/admin-api/wms/stock-in-order/page按条件分页查询入库单
入库单详情GET/admin-api/wms/stock-in-order/get获取入库单详情(含明细行)
创建入库单POST/admin-api/wms/stock-in-order/create新增入库单
更新入库单PUT/admin-api/wms/stock-in-order/update编辑入库单(仅待审核可编辑)
删除入库单DELETE/admin-api/wms/stock-in-order/delete逻辑删除(仅待审核/已拒绝可删)
审核入库单PUT/admin-api/wms/stock-in-order/audit审核通过或驳回
执行入库POST/admin-api/wms/stock-in-order/execute确认入库并更新库存
导出入库单GET/admin-api/wms/stock-in-order/export导出入库单 Excel

3.4 出库管理

业务规则

规则说明设计原因
出库单号自动生成格式:CK + 年月日 + 4 位流水号(如 CK202609240001)与入库单编号规则一致,便于统一管理
出库类型销售出库、生产领料、调拨出库、报废出库、其他出库区分出库原因,便于成本核算
库存校验创建时校验可用库存(扣除冻结量和已分配量)避免创建无法执行的出库单
执行时二次校验执行出库时再次校验库存充足性防止审核到执行期间库存被其他单据占用
出库后预警出库后库存低于安全库存时自动触发预警及时提醒补货
库位自动释放库位出库后如无其他货物自动变为空闲减少手动维护库位状态的工作量

状态机 - 出库单

出库单状态机

接口列表

接口名称请求方式接口路径功能说明
出库单分页查询GET/admin-api/wms/stock-out-order/page按条件分页查询出库单
出库单详情GET/admin-api/wms/stock-out-order/get获取出库单详情(含明细行)
创建出库单POST/admin-api/wms/stock-out-order/create新增出库单
更新出库单PUT/admin-api/wms/stock-out-order/update编辑出库单
删除出库单DELETE/admin-api/wms/stock-out-order/delete逻辑删除出库单
审核出库单PUT/admin-api/wms/stock-out-order/audit审核通过或驳回
执行出库POST/admin-api/wms/stock-out-order/execute确认出库并扣减库存
导出出库单GET/admin-api/wms/stock-out-order/export导出出库单 Excel

3.5 库存管理

页面设计

库存管理

业务规则

规则说明设计原因
库存数量公式库存数量 = 可用数量 + 冻结数量冻结部分不可动用,需单独管理
可用数量公式可用数量 = 库存数量 - 冻结数量 - 已分配数量已分配给未完成出库单的数量不能再被使用
预警类型库存不足(< 安全下限)、库存积压(> 安全上限)双向预警:既防缺货又防积压
预警不重复同一物料同一仓库同一类型未处理前不重复告警避免预警风暴淹没真正的异常
冻结数量限制冻结数量不得超过当前库存数量不能冻结不存在的库存
批量冻结支持批量选择库存记录进行冻结月末盘点前或质量问题时批量冻结相关库存

状态机 - 库存盘点单

库存盘点单状态机

状态机 - 库存调拨单

库存调拨单状态机

接口列表

接口名称请求方式接口路径功能说明
库存分页查询GET/admin-api/wms/stock/page按条件分页查询库存
库存汇总查询GET/admin-api/wms/stock/summary按物料汇总库存
库存详情GET/admin-api/wms/stock/get查询指定库位的库存详情
库存变动记录GET/admin-api/wms/stock/records查询指定物料的库存流水
冻结库存POST/admin-api/wms/stock/freeze冻结指定库存
解冻库存POST/admin-api/wms/stock/unfreeze解冻指定库存
冻结记录查询GET/admin-api/wms/stock/freeze-records查询库存冻结记录
预警规则列表GET/admin-api/wms/stock/alert-rule/page查询库存预警规则
创建预警规则POST/admin-api/wms/stock/alert-rule/create新增预警规则
更新预警规则PUT/admin-api/wms/stock/alert-rule/update编辑预警规则
删除预警规则DELETE/admin-api/wms/stock/alert-rule/delete删除预警规则
预警记录列表GET/admin-api/wms/stock/alert/page查询预警触发记录
处理预警PUT/admin-api/wms/stock/alert/handle标记预警已处理
盘点单分页查询GET/admin-api/wms/check/page按条件查询盘点单列表
盘点单详情GET/admin-api/wms/check/get获取盘点单详情(含明细)
创建盘点单POST/admin-api/wms/check/create新建盘点任务
更新盘点明细PUT/admin-api/wms/check/update-items录入盘点实盘数量
提交盘点PUT/admin-api/wms/check/submit提交盘点结果待审核
审核盘点PUT/admin-api/wms/check/audit审核盘点结果并调整库存
取消盘点PUT/admin-api/wms/check/cancel取消盘点任务
调拨单分页查询GET/admin-api/wms/transfer/page按条件查询调拨单
调拨单详情GET/admin-api/wms/transfer/get获取调拨单详情
创建调拨单POST/admin-api/wms/transfer/create新建调拨单
审核调拨单PUT/admin-api/wms/transfer/audit审核调拨单
执行调拨出库POST/admin-api/wms/transfer/execute-out源仓库执行出库
执行调拨入库POST/admin-api/wms/transfer/execute-in目标仓库确认入库
取消调拨单PUT/admin-api/wms/transfer/cancel取消调拨单

3.6 波次管理

业务规则

规则说明设计原因
波次号自动生成格式:BC + 年月日 + 4 位流水号唯一标识,便于追踪
合并维度同客户、同物流渠道、同库区、同承运商按维度合并减少拣货路径,提高效率
一单一波次一个出库单在同一时间只能属于一个波次避免同一订单被重复拣货
库存不足不参与波次内任一订单库存不足时,该订单不参与波次防止波次执行到一半因缺货中断
拣货路径优化按库位编码排序,推荐最优路径减少拣货员往返走动,提升效率

状态机 - 波次

波次状态机

接口列表

接口名称请求方式接口路径功能说明
波次规则列表GET/admin-api/wms/wave/rule/page查询波次规则
创建波次规则POST/admin-api/wms/wave/rule/create新增波次规则
更新波次规则PUT/admin-api/wms/wave/rule/update编辑波次规则
删除波次规则DELETE/admin-api/wms/wave/rule/delete删除波次规则
波次列表GET/admin-api/wms/wave/page查询波次列表
生成波次POST/admin-api/wms/wave/generate按规则自动生成波次
波次详情GET/admin-api/wms/wave/get获取波次详情
分配拣货员PUT/admin-api/wms/wave/assign分配波次拣货人员
完成波次PUT/admin-api/wms/wave/complete确认波次拣货完成
取消波次PUT/admin-api/wms/wave/cancel取消波次(订单回退)

3.7 条码管理

业务规则

规则说明设计原因
条码类型物料条码(M)、库位条码(L)、批次条码(B)不同类型前缀区分,扫码即知对象类型
编码格式支持 Code128、EAN-13、QR Code兼容不同扫描设备和使用场景
条码内容类型前缀 + 数据段 + 校验位校验位防止误扫或伪造
一物多码同一批次物料可生成多个条码(按件数)每件货物独立标识,精确追踪
补打支持已打印的条码支持补打条码损坏或丢失时可重新打印

接口列表

接口名称请求方式接口路径功能说明
条码规则列表GET/admin-api/wms/barcode/rule/page查询条码编码规则
创建条码规则POST/admin-api/wms/barcode/rule/create新增条码规则
批量生成条码POST/admin-api/wms/barcode/generate按规则批量生成条码
条码列表GET/admin-api/wms/barcode/page查询已生成的条码
条码打印POST/admin-api/wms/barcode/print提交打印任务
条码解析GET/admin-api/wms/barcode/parse扫描条码后解析信息

3.8 WMS 统计分析

业务规则

规则说明设计原因
库存周转率= 期间出库总量 / 期间平均库存量衡量库存流动速度,越高说明库存周转越快
周转天数= 统计天数 / 库存周转率直观展示库存从入库到出库需要多少天
慢动物料周转率低于设定阈值的物料识别积压物料,辅助清理决策
仓库利用率= 已使用库位数 / 总库位数 × 100%衡量仓库空间使用效率
利用率预警超过 85% 标红预警提醒管理者仓库接近满载,需规划扩容或调拨
统计维度按日/周/月/年,按仓库/物料/时间多维度分析满足不同管理需求

接口列表

接口名称请求方式接口路径功能说明
出入库统计GET/admin-api/wms/statistics/in-out按维度查询出入库统计
出入库趋势GET/admin-api/wms/statistics/in-out-trend查询出入库趋势数据
库存周转率GET/admin-api/wms/statistics/turnover查询库存周转率数据
慢动物料列表GET/admin-api/wms/statistics/slow-moving查询慢动物料
仓库利用率GET/admin-api/wms/statistics/utilization查询仓库空间利用率

四、非功能需求

4.1 性能需求

指标要求实现策略
库存查询响应单次查询 < 200ms库存表按仓库+物料建索引,热点库存缓存至 Redis
出入库操作单笔 < 500ms(含库存更新+流水写入)数据库事务保证一致性,异步写入流水日志
盘点性能支持单仓库 10 万条库存记录盘点分页加载盘点明细,批量提交差异数据
条码生成批量生成 1 万条 < 10 秒批量插入 + 异步生成条码图片
波次生成500 张出库单生成波次 < 5 秒内存中按规则分组,减少数据库查询
统计报表月度报表查询 < 3 秒预聚合 + 缓存,大数据量异步导出
并发安全同一库位/物料并发操作数据一致乐观锁(version 字段)+ 数据库事务隔离
数据导出10 万条记录导出 < 30 秒流式写入 Excel,避免内存溢出

4.2 安全需求

安全项要求实现方式
出入库审核所有出入库必须经过审核流程状态机控制,未审核不允许执行
库存变更一致性库存与流水必须同时成功或失败数据库事务(@Transactional),同库操作
并发安全防止并发操作导致库存数据错误乐观锁(version 字段),冲突时重试或拒绝
操作审计所有出入库、盘点、调拨、冻结记录日志AOP 切面自动记录操作日志
权限控制不同操作需对应权限标识RBAC 权限模型,接口级权限校验
数据隔离多租户数据隔离所有表含 tenant_id,MyBatis Plus 插件自动过滤
条码防伪条码内容包含校验位编码算法内置校验位计算

4.3 可用性需求

指标要求
系统可用性99.9%(工作日 8:00-20:00)
数据备份每日自动备份库存数据
故障恢复库存数据异常时可通过流水记录恢复
PDA 兼容兼容主流安卓 PDA 设备
打印机兼容兼容斑马、TSC、兄弟等标签打印机

4.4 错误码定义

错误码说明处理建议
WMS_STOCK_001库存不足,可用数量不满足出库需求检查当前库存,等待补货或调整出库数量
WMS_STOCK_002库存已冻结,该部分数量不可动用联系管理员解冻或调整出库库位
WMS_STOCK_003库位承重超限,货物重量超过库位上限选择承重更大的库位或拆分货物
WMS_WH_001仓库已禁用,不允许创建出入库单启用仓库或选择其他仓库
WMS_WH_002仓库编码已存在使用其他编码
WMS_CHECK_001盘点差异超阈值,需要复盘确认对标记为"需复盘"的物料重新清点
WMS_CHECK_002盘点单状态不允许此操作检查盘点单当前状态
WMS_TRANSFER_001调拨在途超时,超过 3 天未确认入库联系目标仓库确认收货或取消调拨
WMS_BARCODE_001条码解析失败,无法识别条码信息检查条码是否损坏,支持手动输入

4.5 缓存策略

缓存 Key数据内容过期时间更新策略
wms:warehouse:仓库基本信息30 分钟编辑/禁用时删除
wms:stock:available:{warehouseId}:物料可用库存5 分钟出入库时删除
wms:location:status:库位状态10 分钟状态变更时删除
wms:alert:rule:仓库预警规则1 小时规则变更时删除

五、数据设计

5.1 数据表概览

表名说明预估数据量
wms_warehouse仓库表100+
wms_storage_area库区表500+
wms_storage_location库位表50,000+
wms_stock_in_order入库单表100,000+
wms_stock_in_order_item入库单明细表500,000+
wms_stock_out_order出库单表100,000+
wms_stock_out_order_item出库单明细表500,000+
wms_stock库存表200,000+
wms_stock_record库存流水表2,000,000+
wms_check盘点单表5,000+
wms_check_item盘点明细表500,000+
wms_transfer调拨单表10,000+
wms_transfer_item调拨明细表50,000+
wms_barcode条码表1,000,000+
wms_wave波次表20,000+
wms_wave_rule波次规则表100+
wms_stock_alert_rule库存预警规则表1,000+
wms_stock_alert库存预警记录表50,000+

5.2 表关系图

WMS表关系

5.3 核心表结构

wms_warehouse 仓库表

字段名类型必填默认值说明
idbigint自增主键 ID
codevarchar(32)-仓库编码,全局唯一
namevarchar(64)-仓库名称
typetinyint4仓库类型:1-原材料仓 2-半成品仓 3-成品仓 4-综合仓
managervarchar(32)NULL负责人姓名
phonevarchar(20)NULL联系电话
addressvarchar(256)NULL仓库地址
areadecimal(10,2)NULL仓库面积(㎡)
statustinyint0状态:0-启用 1-禁用
remarkvarchar(512)NULL备注
creatorvarchar(64)NULL创建者
create_timedatetimeCURRENT_TIMESTAMP创建时间
updatervarchar(64)NULL更新者
update_timedatetimeCURRENT_TIMESTAMP更新时间
deletedbit(1)0逻辑删除
tenant_idbigint0租户 ID

索引:uk_code (code, tenant_id)、idx_status (status)、idx_tenant_id (tenant_id)

wms_storage_area 库区表

字段名类型必填默认值说明
idbigint自增主键 ID
warehouse_idbigint-所属仓库 ID
codevarchar(32)-库区编码
namevarchar(64)-库区名称
typetinyint1库区类型:1-存储区 2-收货区 3-发货区 4-退货区 5-质检区
sortint0排序号
statustinyint0状态:0-启用 1-禁用
remarkvarchar(512)NULL备注
creatorvarchar(64)NULL创建者
create_timedatetimeCURRENT_TIMESTAMP创建时间
updatervarchar(64)NULL更新者
update_timedatetimeCURRENT_TIMESTAMP更新时间
deletedbit(1)0逻辑删除
tenant_idbigint0租户 ID

索引:uk_warehouse_code (warehouse_id, code, tenant_id)、idx_warehouse_id (warehouse_id)

wms_storage_location 库位表

字段名类型必填默认值说明
idbigint自增主键 ID
area_idbigint-所属库区 ID
warehouse_idbigint-所属仓库 ID
codevarchar(64)-库位编码
namevarchar(64)-库位名称
shelf_novarchar(16)NULL货架编号
layer_novarchar(8)NULL层号
position_novarchar(8)NULL位置号
statustinyint0存放状态:0-空闲 1-占用 2-冻结
weight_limitdecimal(10,2)NULL承重上限(kg)
volume_limitdecimal(10,2)NULL容积上限(m³)
remarkvarchar(512)NULL备注
creatorvarchar(64)NULL创建者
create_timedatetimeCURRENT_TIMESTAMP创建时间
updatervarchar(64)NULL更新者
update_timedatetimeCURRENT_TIMESTAMP更新时间
deletedbit(1)0逻辑删除
tenant_idbigint0租户 ID

索引:uk_code (code, warehouse_id, tenant_id)、idx_area_id (area_id)、idx_warehouse_id (warehouse_id)、idx_status (status)

wms_stock 库存表

字段名类型必填默认值说明
idbigint自增主键 ID
warehouse_idbigint-仓库 ID
area_idbigint-库区 ID
location_idbigint-库位 ID
material_idbigint-物料 ID
material_codevarchar(64)-物料编码
material_namevarchar(128)-物料名称
specvarchar(128)NULL规格型号
unitvarchar(16)-计量单位
batch_novarchar(64)NULL批次号
total_qtyint0库存总数量
available_qtyint0可用数量
frozen_qtyint0冻结数量
allocated_qtyint0已分配数量(待出库)
versionint0乐观锁版本号
creatorvarchar(64)NULL创建者
create_timedatetimeCURRENT_TIMESTAMP创建时间
updatervarchar(64)NULL更新者
update_timedatetimeCURRENT_TIMESTAMP更新时间
deletedbit(1)0逻辑删除
tenant_idbigint0租户 ID

索引:uk_location_material_batch (location_id, material_id, batch_no, tenant_id)、idx_warehouse_id (warehouse_id)、idx_material_id (material_id)、idx_material_code (material_code)

wms_stock_record 库存流水表

字段名类型必填默认值说明
idbigint自增主键 ID
stock_idbigint-库存 ID
warehouse_idbigint-仓库 ID
material_idbigint-物料 ID
biz_typetinyint-业务类型:1-入库 2-出库 3-盘盈 4-盘亏 5-调拨入库 6-调拨出库 7-冻结 8-解冻
biz_order_novarchar(64)NULL关联业务单号
change_qtyint-变动数量(正为增加,负为减少)
before_qtyint-变动前库存数量
after_qtyint-变动后库存数量
remarkvarchar(256)NULL备注
creatorvarchar(64)NULL创建者
create_timedatetimeCURRENT_TIMESTAMP创建时间
updatervarchar(64)NULL更新者
update_timedatetimeCURRENT_TIMESTAMP更新时间
deletedbit(1)0逻辑删除
tenant_idbigint0租户 ID

索引:idx_stock_id (stock_id)、idx_warehouse_id (warehouse_id)、idx_material_id (material_id)、idx_biz_type (biz_type)、idx_biz_order_no (biz_order_no)、idx_create_time (create_time)

wms_stock_in_order 入库单表

字段名类型必填默认值说明
idbigint自增主键 ID
order_novarchar(32)-入库单号
typetinyint-入库类型:1-采购入库 2-生产入库 3-退货入库 4-调拨入库 5-其他
source_order_novarchar(64)NULL来源单号
warehouse_idbigint-目标仓库 ID
supplier_namevarchar(128)NULL供应商名称
expected_qtyint0预计总数量
actual_qtyint0实际入库数量
statustinyint0状态:0-待审核 1-审核通过 2-入库中 3-已完成 4-已取消 5-审核拒绝
audit_user_idbigintNULL审核人 ID
audit_timedatetimeNULL审核时间
audit_remarkvarchar(256)NULL审核意见
complete_timedatetimeNULL完成时间
remarkvarchar(512)NULL备注
creatorvarchar(64)NULL创建者
create_timedatetimeCURRENT_TIMESTAMP创建时间
updatervarchar(64)NULL更新者
update_timedatetimeCURRENT_TIMESTAMP更新时间
deletedbit(1)0逻辑删除
tenant_idbigint0租户 ID

索引:uk_order_no (order_no, tenant_id)、idx_warehouse_id (warehouse_id)、idx_status (status)、idx_type (type)、idx_source_order_no (source_order_no)

wms_stock_out_order 出库单表

字段名类型必填默认值说明
idbigint自增主键 ID
order_novarchar(32)-出库单号
typetinyint-出库类型:1-销售出库 2-生产领料 3-调拨出库 4-报废出库 5-其他
source_order_novarchar(64)NULL来源单号
warehouse_idbigint-源仓库 ID
customer_namevarchar(128)NULL客户名称
expected_qtyint0预计总数量
actual_qtyint0实际出库数量
statustinyint0状态:0-待审核 1-审核通过 2-出库中 3-已完成 4-已取消 5-审核拒绝
audit_user_idbigintNULL审核人 ID
audit_timedatetimeNULL审核时间
audit_remarkvarchar(256)NULL审核意见
complete_timedatetimeNULL完成时间
remarkvarchar(512)NULL备注
creatorvarchar(64)NULL创建者
create_timedatetimeCURRENT_TIMESTAMP创建时间
updatervarchar(64)NULL更新者
update_timedatetimeCURRENT_TIMESTAMP更新时间
deletedbit(1)0逻辑删除
tenant_idbigint0租户 ID

索引:uk_order_no (order_no, tenant_id)、idx_warehouse_id (warehouse_id)、idx_status (status)、idx_type (type)、idx_source_order_no (source_order_no)

wms_check 盘点单表

字段名类型必填默认值说明
idbigint自增主键 ID
check_novarchar(32)-盘点单号
warehouse_idbigint-盘点仓库 ID
area_idbigintNULL盘点库区 ID(空则全仓盘点)
check_typetinyint1盘点方式:1-明盘 2-盲盘
statustinyint0状态:0-待执行 1-执行中 2-待审核 3-已完成 4-已取消
executor_idbigintNULL执行人 ID
audit_user_idbigintNULL审核人 ID
audit_timedatetimeNULL审核时间
plan_timedatetimeNULL计划盘点时间
start_timedatetimeNULL实际开始时间
complete_timedatetimeNULL完成时间
diff_countint0差异条目数
remarkvarchar(512)NULL备注
creatorvarchar(64)NULL创建者
create_timedatetimeCURRENT_TIMESTAMP创建时间
updatervarchar(64)NULL更新者
update_timedatetimeCURRENT_TIMESTAMP更新时间
deletedbit(1)0逻辑删除
tenant_idbigint0租户 ID

索引:uk_check_no (check_no, tenant_id)、idx_warehouse_id (warehouse_id)、idx_status (status)

wms_transfer 调拨单表

字段名类型必填默认值说明
idbigint自增主键 ID
transfer_novarchar(32)-调拨单号
from_warehouse_idbigint-源仓库 ID
to_warehouse_idbigint-目标仓库 ID
statustinyint0状态:0-待审核 1-审核通过 2-在途中 3-已完成 4-已取消
audit_user_idbigintNULL审核人 ID
audit_timedatetimeNULL审核时间
out_timedatetimeNULL出库时间
in_timedatetimeNULL入库时间
remarkvarchar(512)NULL备注
creatorvarchar(64)NULL创建者
create_timedatetimeCURRENT_TIMESTAMP创建时间
updatervarchar(64)NULL更新者
update_timedatetimeCURRENT_TIMESTAMP更新时间
deletedbit(1)0逻辑删除
tenant_idbigint0租户 ID

索引:uk_transfer_no (transfer_no, tenant_id)、idx_from_warehouse_id (from_warehouse_id)、idx_to_warehouse_id (to_warehouse_id)、idx_status (status)

wms_barcode 条码表

字段名类型必填默认值说明
idbigint自增主键 ID
barcode_novarchar(128)-条码内容
barcode_typetinyint-条码类型:1-物料条码 2-库位条码 3-批次条码
encode_formatvarchar(16)Code128编码格式
ref_typevarchar(32)-关联对象类型
ref_idbigint-关联对象 ID
warehouse_idbigintNULL关联仓库 ID
print_countint0打印次数
last_print_timedatetimeNULL最后打印时间
statustinyint0状态:0-正常 1-作废
creatorvarchar(64)NULL创建者
create_timedatetimeCURRENT_TIMESTAMP创建时间
updatervarchar(64)NULL更新者
update_timedatetimeCURRENT_TIMESTAMP更新时间
deletedbit(1)0逻辑删除
tenant_idbigint0租户 ID

索引:uk_barcode_no (barcode_no, tenant_id)、idx_barcode_type (barcode_type)、idx_ref (ref_type, ref_id)


六、跨模块联动

6.1 联动关系

本模块功能关联模块联动方式说明
采购入库ERP 采购管理(08-02)自动触发采购到货后自动生成 WMS 入库单
销售出库ERP 销售管理(08-02)自动触发销售订单审核后自动生成 WMS 出库单
生产入库/领料MES 制造执行(08-04)自动触发生产完工自动生成入库单,领料需求自动生成出库单
库存预警ERP 采购管理(08-02)跳转联动库存不足预警可一键发起采购
出入库操作消息通知(02-03)事件通知出入库审核、预警触发时推送通知
条码管理IoT 物联网(08-05)设备联动PDA 扫码设备通过 IoT 接入 WMS

6.2 联动详情

WMS ↔ ERP 采购管理

联动场景触发条件联动行为数据流向
采购到货入库ERP 采购入库单审核通过自动生成 WMS 入库单,关联采购单号ERP → WMS
库存不足触发采购WMS 库存低于安全下限跳转 ERP 创建采购单,携带物料和建议数量WMS → ERP

WMS ↔ ERP 销售管理

联动场景触发条件联动行为数据流向
销售订单出库ERP 销售订单审核通过自动生成 WMS 出库单,关联销售单号ERP → WMS
出库完成回写WMS 出库单执行完成回写 ERP 销售订单的出库状态和数量WMS → ERP

WMS ↔ MES 制造执行

联动场景触发条件联动行为数据流向
生产领料MES 生产工单审核通过自动生成 WMS 领料出库单MES → WMS
成品入库MES 生产完工报告自动生成 WMS 成品入库单MES → WMS

WMS → 消息通知

联动场景触发条件通知方式通知对象
入库审核通知入库单提交待审核站内消息审核人员
出库审核通知出库单提交待审核站内消息审核人员
库存预警通知库存触发预警规则站内消息 + 短信供应链主管
调拨超时预警在途调拨超 3 天站内消息仓库管理员

七、附录

7.1 名词解释

名词英文通俗理解
仓库(Warehouse)Warehouse存放货物的物理场所,就像一个大型快递驿站
库区(Storage Area)Storage Area仓库内按功能划分的区域,比如"收货区""发货区""存储区",就像驿站里的"收件区""派件区"
库位(Storage Location)Storage Location货物存放的最小位置单元,精确到货架-层-位,就像快递驿站的"第 3 排架子第 2 层第 5 个格子"
入库单(Stock In Order)Stock In Order记录货物入库的单据,就像快递驿站的"收件登记单"
出库单(Stock Out Order)Stock Out Order记录货物出库的单据,就像快递驿站的"取件登记单"
库存(Stock)Stock某仓库某库位上某货物的存储数量和状态
库存流水(Stock Record)Stock Record每次库存变动产生的记录,就像银行流水一样,记录每一笔进出
盘点(Check/Inventory)Inventory Check对实际库存进行清点,与账面库存对比,就像数钱时对账本和实际现金
明盘Open Count盘点时显示账面数量,盘点人核对是否正确,像"看着答案检查作业"
盲盘Blind Count盘点时不显示账面数量,盘点人如实清点,像"不看答案独立做题",更准确
调拨(Transfer)Transfer在不同仓库之间移动货物,就像把货物从一个快递驿站搬到另一个
在途库存In-transit Stock已从源仓库出库但尚未到达目标仓库的货物,就像快递"在路上"
波次(Wave)Wave将多个出库单合并为一个拣货批次,就像把同一层的快递一次性送完
条码(Barcode)Barcode标识货物/库位的编码,扫码即知全部信息,就像快递单上的条形码
安全库存Safety Stock库存预警的阈值,下限防缺货、上限防积压,就像银行账户的"最低余额"和"单日限额"
库存周转率Inventory Turnover衡量货物流动速度的指标,周转率越高说明货卖得越快
仓库利用率Warehouse Utilization仓库空间使用效率,就像出租房的入住率
冻结库存Frozen Stock被锁定不能动用的库存,比如质检中的货物,就像被法院冻结的银行账户
已分配数量Allocated Quantity已分配给未完成出库单的数量,不能再被其他订单使用,就像"已承诺给别人但还没发货的货"
乐观锁Optimistic Lock防止多人同时操作同一数据导致错误的机制,就像"排队叫号,一次只能一个人办理"
逻辑删除Logical Delete数据不真正删除,通过标记字段表示已删除,保证数据可追溯,就像"把文件放进碎纸机前的回收站"

7.2 权限标识汇总

权限标识说明所属功能
wms:warehouse:query查看仓库列表和详情仓库管理
wms:warehouse:create创建仓库仓库管理
wms:warehouse:update编辑仓库仓库管理
wms:warehouse:delete删除仓库仓库管理
wms:storage-area:query查看库区库位管理
wms:storage-area:create创建库区库位管理
wms:storage-area:update编辑库区库位管理
wms:storage-area:delete删除库区库位管理
wms:storage-location:query查看库位库位管理
wms:storage-location:create创建库位库位管理
wms:storage-location:update编辑库位库位管理
wms:storage-location:delete删除库位库位管理
wms:stock-in-order:query查看入库单入库管理
wms:stock-in-order:create创建入库单入库管理
wms:stock-in-order:audit审核入库单入库管理
wms:stock-in-order:execute执行入库入库管理
wms:stock-in-order:export导出入库单入库管理
wms:stock-out-order:query查看出库单出库管理
wms:stock-out-order:create创建出库单出库管理
wms:stock-out-order:audit审核出库单出库管理
wms:stock-out-order:execute执行出库出库管理
wms:stock-out-order:export导出出库单出库管理
wms:stock:query查看库存库存管理
wms:stock:freeze冻结库存库存管理
wms:stock:unfreeze解冻库存库存管理
wms:stock:alert-rule管理库存预警规则库存管理
wms:check:query查看盘点单库存盘点
wms:check:create创建盘点单库存盘点
wms:check:audit审核盘点单库存盘点
wms:transfer:query查看调拨单库存调拨
wms:transfer:create创建调拨单库存调拨
wms:transfer:audit审核调拨单库存调拨
wms:transfer:execute执行调拨库存调拨
wms👋query查看波次波次管理
wms👋generate生成波次波次管理
wms👋rule管理波次规则波次管理
wms:barcode:query查看条码条码管理
wms:barcode:generate生成条码条码管理
wms:barcode:print打印条码条码管理
wms:statistics:query查看 WMS 统计WMS 统计