# WMS
**Repository Path**: MerlinRong/wms
## Basic Information
- **Project Name**: WMS
- **Description**: WMS 仓储管理系统
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-10-30
- **Last Updated**: 2026-11-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# WMS 仓储管理系统
**前后端分离的开箱即用 WMS** —— 入库 / 出库 / 库内 / 退货 / 报表 / ERP 集成,全链路贯通
[](https://www.python.org/)
[](https://fastapi.tiangolo.com/)
[](https://vuejs.org/)
[](https://www.typescriptlang.org/)
[](#-测试)
[]()
---
## ✨ 功能特性
### 📥 入库管理
- ASN 状态机(草稿 → 下发 → 部分收货 → 完成 → 关闭/取消)、预约到货时段与月台、超期提醒
- 收货:分批多次、超收/短收容差(系统参数热加载)、强制暂存位校验、**整托收货自动生成 LPN**
- 质检三分支(合格 / 让步 / 不合格)、抽检比例、免检策略、质检报告附件上传下载
- 不合格自动冻结 + 生成**隔离区移库任务**;无单收货(独立权限,自动建单留痕)
- 上架策略引擎:同 SKU 集中 → 温区 → ABC 分区 → 整零分离 → 混放 → 容量三维(体积/重量/托盘位),人工改选留痕
### 📤 出库管理
- ERP/OMS 下发(幂等 + HMAC 签名)、缺量标记、部分出库
- 分配引擎(FIFO / FEFO / 指定批次)、**并发分配乐观锁不超卖**
- PDA 指引式拣货、短拣登记自动释放预留、复核比对拦截、发货交接回传(IF-05)
### 📦 库内作业
- 盘点:建盘 → 冻结 → PDA 实盘(多人并行/暗盘/复盘)→ 差异审批阈值 → 调整单回传(IF-07)
- 移库 / LPN 整托移库 / 跨仓调拨(在途库存)、报损报废、冻结/解冻全程留痕
### 🔄 退货与报表
- 退货三分支:可再售回流 / 返修冻结 / 报废报损
- 进销存、盘点差异、作业量绩效报表 + 实时看板
### 🔌 集成与系统管理
- IF-01~10 接口体系:入站签名认证 + 幂等去重,出站日志、**死信队列人工重发**、对账报表(单边账清单)
- RBAC 权限(菜单/按钮/接口三级)、单号规则配置、系统参数热加载
- PDA 作业端:扫码上架 / 指引式拣货 / 移库 / 盘点录入,**扫码枪后缀可配置**
## 🚀 快速开始
### Docker 一键部署(推荐)
```bash
git clone https://gitee.com/MerlinRong/wms.git && cd wms
docker compose up -d --build
```
| 服务 | 说明 |
|---|---|
| Web | http://localhost/ (Nginx 托管前端 + 反代 API) |
| API 文档 | http://localhost/docs (OpenAPI 78 个接口) |
| 默认账号 | `admin / admin123` ⚠️ 首次登录后立即修改 |
启动时自动执行 Alembic 迁移 + 种子数据,生产配置(JWT 密钥 / 数据库密码 / HTTPS)见 `deploy/` 与部署手册。
### 本地开发
后端(FastAPI + SQLAlchemy async)
```bash
cd backend
python -m venv .venv
.venv\Scripts\activate # Windows(Linux/macOS: source .venv/bin/activate)
pip install -e ".[dev]"
uvicorn app.main:app --reload --port 8100
```
- API 文档:http://127.0.0.1:8100/docs
- 默认 SQLite(零配置),生产切 PostgreSQL:`DATABASE_URL=postgresql+asyncpg://...`
前端(Vue 3 + Vite + Element Plus)
```bash
cd frontend
npm install
npm run dev # 开发(代理 /api → 127.0.0.1:8100)
npm run build # 构建(含 vue-tsc 类型检查)
npm run lint
```
## 🧪 测试
```bash
cd backend
pytest # 143 个用例,全链路 E2E + 并发 + 越权专项
pytest tests/test_security.py -v # 越权/注入/黑名单安全专项
pip-audit && (cd ../frontend && npm audit) # 依赖漏洞扫描(0 高危)
```
覆盖:Service 层业务规则、API 集成、入库/出库全链路 E2E、并发不超卖(乐观锁)、RBAC 越权、SQL 注入参数化。
## 📁 目录结构
```
wms/
├── backend/ # FastAPI 后端
│ ├── app/
│ │ ├── api/ # 路由层(统一响应体 + 权限依赖)
│ │ ├── services/ # 业务层(上架策略/分配引擎/库存单入口)
│ │ ├── models/ # ORM(base_/in_/out_/inv_/sys_ 分域)
│ │ ├── schemas/ # Pydantic v2 校验
│ │ └── db/ # 会话与种子数据
│ ├── migrations/ # Alembic 迁移(禁止手工改库)
│ ├── tests/ # pytest 143 用例
│ └── perf/ # locust 压测脚本(SRS 5.1 指标对照)
├── frontend/ # Vue 3 + TS strict + Element Plus
│ └── src/views/ # PC 管理端 + PDA 作业端
├── deploy/ # Nginx 配置 + 前端镜像构建
└── docker-compose.yml # 一键部署(PG + API + Nginx)
```
## 🛠 技术栈
| 层 | 技术 |
|---|---|
| 后端 | Python 3.11+ · FastAPI · SQLAlchemy 2.x (async) · Pydantic v2 · Alembic · Gunicorn(UvicornWorker) |
| 前端 | Vue 3.5 · TypeScript (strict) · Vite · Pinia · Element Plus · Scss |
| 数据 | PostgreSQL 16(生产)/ SQLite(开发测试) |
| 质量 | pytest · pytest-asyncio · locust · ruff · mypy · pip-audit · npm audit |
## 📄 文档
- 工程规范:仓库维护者本地归档(编码实现方案 / 协作规范)
- 设计与交付文档:SRS 需求规格说明书、部署手册、操作手册、ER 图、测试报告、OpenAPI 导出(随项目归档提供)
---
Made with ❤️ · [问题反馈](https://gitee.com/MerlinRong/wms/issues)