一、系统概述
系统名称:ModernWMS 开源仓储管理系统 系统简介:ModernWMS 是一套轻量级、跨平台的开源仓库管理系统,基于 .NET 7 + Vue3 + Vuetify 开发,采用前后端分离架构。项目开源,代码简洁易读,部署方便,适合中小型企业仓库、电商仓库、工厂零配件仓库,也是毕业设计热门 WMS 项目。系统覆盖入库、出库、库存、盘点、单据管理全流程,支持 PDA 移动端扫码作业,可对接 ERP、订单系统。
技术栈:后端 .NET7,前端 Vue3 + Vuetify,数据库 MySQL,支持 Docker 快速部署。
适用场景:小型电商仓库、加工厂原料 / 成品仓、零配件仓库、工贸企业简易仓储管理。 核心目标:标准化仓库出入库流程,条码化管理物料,记录库存流水,减少手工记账错误,实现库存可追溯。
二、系统主要功能
1. 基础资料管理(系统初始化)
· 仓库与库位管理:多仓库维护,自定义库区、库位编码,划分收货区、存储区、拣选区、不良品区。
· 物料商品档案:物料编码、名称、规格、单位、分类、安全库存、条码,支持批次管理。
· 往来单位管理:供应商档案、客户档案维护。
· 用户角色权限:管理员、仓管员、盘点员、只读查看员;菜单权限隔离,操作日志留痕。
· 系统参数:单据编号规则、库存策略、条码打印模板配置。
2. 收货入库管理
· 采购入库:创建收货单,关联供应商,PDA 扫码收货,录入批次信息;支持质检,质检通过后上架入库。
· 退货入库:客户退货入库,区分良品、不良品。
· 调拨入库:其他仓库物料调入。
· 入库单据查询、打印、导出,入库后自动增加库存台账。
3. 发货出库管理
· 销售出库:导入销售订单,生成拣货任务,PDA 扫码拣货、复核,复核完成扣减库存。
· 领料出库:车间生产物料申领出库。
· 调拨出库:物料调拨到其他仓库。
· 单据状态跟踪:待拣货、拣货完成、已复核、已出库,全流程可视化。
4. 库存管理(核心模块)
· 实时库存查询:按仓库、库位、物料、批次查询库存。
· 安全库存预警:库存低于设定值,系统提示补货。
· 库内移库:物料在仓库内不同库位转移,生成移库单据。
· 库存盘点:支持周期盘点,PDA 扫码盘点,对比账面库存,生成盘盈、盘亏单,审核后自动调整库存。
· 库存锁定:创建出库单据时锁定库存,防止超发。
5. PDA 移动端作业
· 移动端适配页面,手机 / PDA 浏览器直接访问,无需安装 APP。
· 移动端功能:扫码收货、上架、拣货、盘点、库存查询。
· 支持一维码、二维码扫码识别物料和库位。
6. 单据中心与报表统计
· 单据统一管理:入库单、出库单、调拨单、盘点单检索、打印、Excel 导出。
· 库存台账:记录每一笔收发流水,物料流向可追溯。
· 收发存汇总报表、出入库趋势统计,支持按日 / 月 / 年筛选。
7. 接口模块
· RESTful API 接口,可对接 ERP、订单管理系统,支持二次开发。
三、系统优点 & 缺点
✅ 优点
1. 开源轻量,架构简单,代码清晰,部署门槛低,非常适合毕业设计学习与二次开发;
2. 前端 Vuetify 界面美观,配色简约现代,PPT 展示效果好;
3. 前后端分离,.NET 后端稳定,支持 Docker 一键部署,几分钟即可拉起演示环境;
4. 完整仓储基础业务流程:入库、出库、调拨、盘点、批次管理,支持 PDA 扫码作业;
5. B/S 架构,电脑浏览器直接使用,PDA 移动端网页无需安装 APP;
6. 权限体系完整,操作日志可追溯,支持多仓库管理。
❌ 缺点
1. 定位中小型简易仓库,缺少波次拣货、多货主管理等高级 WMS 功能,不适用于大型第三方物流仓;
2. 没有独立工业可视化大屏,数据可视化能力有限;
3. 报表自定义功能弱,复杂财务报表需要二次开发;
4. 不支持 AGV、立体库等自动化仓储设备对接;
5. 离线作业能力差,断网情况下 PDA 无法提交单据;
6. 高并发大批量单据场景性能一般,不适合超大规模仓库业务。
四、保姆级部署教程
推荐环境:Ubuntu20.04 / CentOS7,最低 2 核 4G,推荐 4 核 8G;两种部署方式:Docker 一键部署(推荐毕设演示)、源码手动部署(二次开发) 组件:.NET7、MySQL8.0、Nginx
方式一:Docker Compose 一键部署(推荐)
步骤 1:安装 Docker 与 docker-compose
sudo apt update && sudo apt upgrade -y
sudo apt install git curl -y
curl -fsSL https://get.docker.com | sh
sudo apt install docker-compose -y
sudo systemctl start docker
sudo systemctl enable docker
步骤 2:拉取 ModernWMS 源码
git clone https://gitee.com/modernwms/ModernWMS.git
cd ModernWMS
步骤 3:启动容器
docker-compose up -d
容器自动拉取镜像,包含 MySQL 数据库与后端服务。
· 访问地址:http://服务器IP:8080
· 默认账号密码:admin / 123456
查看运行状态
docker-compose ps
# 查看日志
docker-compose logs -f
方式二:源码手动部署(适合修改代码)
步骤 1:安装.NET7 环境
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt update
sudo apt install dotnet-sdk-7.0 -y
# 验证
dotnet --version
步骤 2:安装 MySQL8.0
sudo apt install mysql-server -y
sudo systemctl start mysql
sudo systemctl enable mysql
登录 MySQL 执行 SQL:
CREATE DATABASE modern_wms DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'modern'@'%' IDENTIFIED BY 'Modern@123456';
GRANT ALL PRIVILEGES ON modern_wms.* TO 'modern'@'%';
FLUSH PRIVILEGES;
导入项目 SQL 脚本
mysql -u modern -p modern_wms < modern_wms.sql
步骤 3:后端配置与启动
修改 appsettings.json,配置数据库连接信息
"ConnectionStrings": {
"MySql": "server=127.0.0.1;port=3306;database=modern_wms;user=modern;password=Modern@123456"
}
编译并启动后端
dotnet build
dotnet run --urls "http://0.0.0.0:8008"
步骤 4:前端 Vue 部署
cd frontend
sudo apt install nodejs npm -y
npm install
npm run build
Nginx 托管前端 dist 静态文件,反向代理后端 8008 接口。 Nginx 配置示例:
server {
listen 8080;
server_name _;
root /home/xxx/ModernWMS/frontend/dist;
index index.html;
location /api/ {
proxy_pass http://127.0.0.1:8008/api/;
}
}
重启 Nginx
sudo systemctl restart nginx
五、基础操作流程
1. 系统初始化:登录管理员账号,新增仓库、库区、库位;录入物料档案,设置安全库存;维护供应商与客户;新建用户并分配角色权限。
2. 采购入库:新建收货单,选择供应商与物料;PDA 扫码录入条码和批次;质检审核通过后上架,库存自动增加。
3. 销售出库:创建销售出库单据,生成拣货任务;仓管员 PDA 扫码拣货复核;单据审核完成扣减库存。
4. 库存盘点:新建盘点任务,PDA 扫描库位、物料录入实物数量;系统对比账面库存,生成盘盈盘亏单,管理员审核后修正库存。
5. 库存查询:进入库存页面查看实时库存,安全库存不足会提醒。
6. 报表导出:选择时间区间,导出收发存 Excel 报表。
六、常见部署问题排查
1. 网页打不开:检查防火墙放行 8080 端口,确认 Nginx 配置、dist 路径正确;
2. 后端连数据库失败:核对 MySQL 账号密码,开启远程访问,3306 端口放行;
3. PDA 扫码提交单据报错:确认网络连通,API 接口地址配置正确;
4. 登录失败:确认数据库脚本完整导入,账号未被禁用;
5. Docker 容器启动失败:检查端口占用,修改 docker-compose 端口映射。