# 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 集成,全链路贯通 [![Python](https://img.shields.io/badge/Python-3.11+-3776AB?logo=python&logoColor=white)](https://www.python.org/) [![FastAPI](https://img.shields.io/badge/FastAPI-0.115+-009688?logo=fastapi&logoColor=white)](https://fastapi.tiangolo.com/) [![Vue](https://img.shields.io/badge/Vue-3.5-4FC08D?logo=vuedotjs&logoColor=white)](https://vuejs.org/) [![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/) [![Tests](https://img.shields.io/badge/tests-143%20passed-brightgreen)](#-测试) [![License](https://img.shields.io/badge/license-internal-lightgrey)]()
--- ## ✨ 功能特性 ### 📥 入库管理 - 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)