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 的一部分 |