WMS 仓库管理系统
核心定位
WMS 是独立的通用仓库管理系统(16 张表),与 MES 中深度集成制造的仓库模块是两套系统。WMS 定位为「通用仓储管理」,适合纯仓储场景;如果你需要深度集成制造(如线边库、生产领料),请使用 MES 中的仓库模块。
一句话:管好仓库的「进、出、移、盘」,让每一件货都知道在哪里。
解决什么问题
| 痛点 | WMS 如何解决 |
|---|---|
| 仓库有多少货不知道 | 实时库存查询,库存流水追溯 |
| 出入库记录靠纸质单据 | 电子单据,状态流转可追踪 |
| 货物位置不清楚 | 多仓库、库位管理 |
| 盘点耗时耗力 | 系统化盘点流程 |
| 库存数据不准 | 每笔操作自动更新库存 |
用户角色
graph LR
subgraph 角色
WH_ADMIN["仓库管理员
管理仓库/库位
配置商品信息
处理入库/出库/移库/盘点
查看库存"] end
管理仓库/库位
配置商品信息
处理入库/出库/移库/盘点
查看库存"] end
核心业务流程
graph TB
subgraph 入库流程
IN1["创建入库单"] --> IN2["草稿状态"]
IN2 --> IN3["确认完成"]
IN3 --> IN4["库存增加"]
IN2 --> IN5["作废"]
end
subgraph 出库流程
OUT1["创建出库单"] --> OUT2["草稿状态"]
OUT2 --> OUT3["确认完成"]
OUT3 --> OUT4["库存减少"]
OUT2 --> OUT5["作废"]
end
subgraph 移库流程
MV1["创建移库单"] --> MV2["确认完成"]
MV2 --> MV3["源仓库库存减少
目标仓库库存增加"] end subgraph 盘点流程 CK1["创建盘点单"] --> CK2["录入实盘数量"] CK2 --> CK3["确认完成"] CK3 --> CK4["盘盈:库存增加
盘亏:库存减少"] end
目标仓库库存增加"] end subgraph 盘点流程 CK1["创建盘点单"] --> CK2["录入实盘数量"] CK2 --> CK3["确认完成"] CK3 --> CK4["盘盈:库存增加
盘亏:库存减少"] end
核心表结构
erDiagram
WMS_WAREHOUSE ||--o{ WMS_STOCK : "库存"
WMS_PRODUCT ||--o{ WMS_STOCK : "库存"
WMS_WAREHOUSE {
bigint id PK
varchar name "仓库名称"
varchar code "仓库编码"
tinyint status "状态"
}
WMS_PRODUCT {
bigint id PK
varchar name "商品名称"
varchar no "商品编码"
varchar unit "单位"
}
WMS_STOCK {
bigint id PK
bigint warehouse_id FK "仓库"
bigint product_id FK "商品"
int stock "库存数量"
}
WMS_STOCK_RECORD {
bigint id PK
bigint warehouse_id FK
bigint product_id FK
int count "变动数量"
tinyint type "出入类型"
varchar business_no "关联单据号"
}
单据编号规则
格式:{prefix}{月日}{4位随机数}
示例:RK06250001(入库单)
CK06250001(出库单)
YK06250001(移库单)
PK06250001(盘点单)
两阶段状态流转
所有单据遵循草稿 → 完成/作废的两阶段模式:
| 状态 | 说明 |
|---|---|
| 草稿 | 可编辑,不触发库存变更 |
| 已完成 | 确认完成,触发库存事务 |
| 已作废 | 单据作废,不触发库存变更 |
关键规则:只有「已完成」状态才会真正影响库存数量。
与 MES 仓库的区别
| 维度 | WMS | MES 仓库模块 |
|---|---|---|
| 定位 | 通用仓储管理 | 制造深度集成 |
| 表数量 | 16 表 | 62 表 |
| 适用场景 | 独立仓储、物流中心 | 制造工厂、生产车间 |
| 特色功能 | 基础出入库盘点 | 线边库、生产领料、外协管理 |
| 是否需要 MES | ❌ 独立使用 | ✅ 属于 MES 的一部分 |