WMS 功能设计
这篇解决什么
纯仓储怎么分层:仓库 / 商品 / 往来企业是主数据,入出移盘改 wms_inventory。读完先对模块边界和表,再进主数据、库存、单据等功能篇。
默认端口 48080,前缀 /admin-api。工程启动见 快速开始。
业务流程及架构
WMS 没有 processDefinitionKey。单据状态用 WmsOrderStatusEnum:0 草稿,4 已完成,5 已作废。完成入库 / 出库 / 移库 / 盘库才写库存。不要和 MES /mes/wm、ERP erp_stock 混成一张结存。
示意图:左客户端。中间仓储只写 wms_*。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 选型 | 和 MES、ERP 的边界 | WMS、MES、ERP 怎么选 |
| 主数据 | 仓库、分类、品牌、商品、往来企业 | 仓库、商品、往来企业 |
| 库存 | 现量 + 流水 | 库存统计、库存流水 |
| 单据 | 入 / 出 / 移 / 盘 | 入库、出库、移库、盘库 |
| 移动 | 分包搬家 | 移动端 WMS |
三套仓库不要混
MES 仓储是 /mes/wm、mes_wm_*,带库区库位和 SN。进销存是 erp_stock。库内旧流程 wms_goods_draw 等物品领用不是本模块,源码页已不在。
数据表 ER
主干表按 DO 画出。单据明细不逐张展开。
示意图:库存真相是仓库 + SKU。流水在 wms_inventory_history。
前后端代码
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 模块 | api + server | ruoyi-office/yudao-module-wms/ |
| 单体引入 | yudao-module-wms-server | ruoyi-office/yudao-server/pom.xml |
| 微服务 | wms-server 端口 48092 | WmsServerApplication |
| 单据状态 | 0 / 4 / 5 | WmsOrderStatusEnum |
| 管理端 | WMS 目录 | ruoyi-office-vben/apps/web-antd/src/views/wms/ |
| 移动端 | pages-wms | ruoyi-office-uniapp/src/pages-wms/ |
官方菜单:7400 WMS(/wms,sort 11)。首页 7490(/wms/home)。基础数据 7401,库存 7440,入库 7451,出库 7461,移库 7470,盘库 7480。菜单号段从上游迁到 7400,避免和 MES 冲突。看不到菜单先查角色。
模块没编进进程时,DefaultController 对 /admin-api/wms/** 回「WMS 已禁用」,提示读 WMS 功能开启。缺表时全局异常同样指到那一页。

本系统截图:WMS → WMS 首页。模块和菜单已经在跑。

本系统截图:仓库管理。没有库区库位字段。
功能开启
单体 -P boot 时已经依赖 WMS 实现,没有单独的「WMS 开关」页。启动 YudaoServerApplication 即可。微服务走网关 /admin-api/wms/** → wms-server。
客户默认包 ruoyi-office-db/dump/latest/:先 schema_*.sql 再 static_data_*.sql,带 wms_* 表、菜单和字典 wms_order_status、wms_receipt_order_type、wms_shipment_order_type。以后改表走 ruoyi-office-db/update/。
先建仓库、分类、商品 SKU,再开入库单。完成入库后才有库存统计。
示意图:先主数据后过账。
旧文 WMS 功能开启 已并入本页,请收藏本篇。
