Alternate Text

ModernWMS仓库管理 开源项目教程

物流

ModernWMS 是一款专为中小企业打造的开源仓库管理系统,基于多年ERP项目实施经验开发,旨在解决传统仓储管理中数据混乱、效率低下的痛点。它采用前后端分离架构,技术栈非常契合现代Web开发标准,支持跨平台运行且完全免费。

2026-09-09 15 T13611764069

一、系统概述

系统名称: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 端口映射。