DHappy 相信自己!

企业级仓库管理系统WMS设计与实现

2026-06-01
FTX

WMS 仓库管理系统

这个项目耗时大概两天的时间,因为毕业答辩各种事情都忙完了想着捣鼓一下springboot这个框架,来结合自己的理解低代码vibe coding了这个项目,目前该项目已经开源。你可以使用这个项目进行二次改造,例如:公司日常使用,毕业设计,技术交流等等合法用途你都可以clone此项目来使用。如果这个项目可以帮助到你,麻烦您给我点一个免费的star,也是对我的莫大的鼓励,非常感谢!!! 基于 Spring Boot + Vue 3 的现代化仓库管理系统,支持仓库、库位、入库、出库、库存等全链路管理。

项目源地址:https://github.com/futingx/springboot-vue-wms.git


在线演示

环境 地址 说明
前端 http://localhost:5173 需先启动后端
后端 API http://localhost:8080/api  
健康检查 http://localhost:8080/api/health  

默认账号:admin / admin123

本地图片 本地图片

快速开始

环境要求

软件 版本要求 说明
JDK 17+ 推荐 JDK 21
Node.js 18+ 前端运行环境
MySQL 8.0+ 数据库服务
Maven 3.8+ 后端构建工具

1. 导入数据库

# 登录 MySQL
mysql -u root -p

# 创建数据库
CREATE DATABASE wms DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

# 切换到 wms 数据库
USE wms;

# 导入 SQL 脚本(在项目根目录执行)
SOURCE e:/springboot-vue-wms/demo/wms.sql

# 或通过命令行导入(Windows PowerShell)
mysql -u root -p wms < e:/springboot-vue-wms/demo/wms.sql

2. 修改后端配置

编辑文件:demo/src/main/resources/application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/wms?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    username: root        # 修改为你的数据库用户名
    password: 123456     # 修改为你的数据库密码

安全提示:生产环境请勿明文存储密码,建议使用环境变量或配置中心管理敏感信息。

3. 启动后端

cd demo

# Windows 环境
mvnw.cmd spring-boot:run

# 或打包后运行
mvnw.cmd clean package -DskipTests
java -jar target/demo-0.0.1-SNAPSHOT.jar

后端启动成功后,访问 http://localhost:8080/api/health 检查服务状态。

4. 启动前端

cd fronted

# 安装依赖(首次运行或依赖更新后)
npm install

# 启动开发服务器
npm run dev

# 或构建生产版本
npm run build

前端启动成功后,访问 http://localhost:5173

5. 登录系统

打开浏览器访问 http://localhost:5173,输入以下任一账号登录:

账号 密码 角色 说明
admin admin123 系统管理员 全部功能权限
zhangwei admin123 仓库管理员 仓库全面管理权限
lina admin123 入库操作员 入库相关操作权限
wangqiang admin123 出库操作员 出库相关操作权限
operator admin123 库内操作员 库内移库、盘点等操作权限

功能介绍

基础资料管理

模块 功能说明
仓库管理 仓库增删改查、状态管理、面积统计
库位管理 库位增删改查、区域划分、容量管理
货主管理 货主信息维护、联系人管理
商品管理 商品信息管理、条码管理、规格尺寸
员工管理 员工档案管理、岗位分配

入库业务

模块 功能说明
入库单管理 入库单创建、审核、取消
入库类型 采购入库、退货入库、调拨入库、其他入库
上架操作 商品上架、库位分配

库存管理

模块 功能说明
库存查询 实时库存查看、按仓库/库位/商品筛选
库内操作 补货、移库、库存调整
盘点管理 盘点计划、盘点执行、差异处理

出库业务

模块 功能说明
出库单管理 出库单创建、库存分配、拣货管理
出库类型 销售出库、退货出库、调拨出库、其他出库
分配管理 智能库存分配、批次管理

技术栈

后端技术栈

技术 版本 说明
Spring Boot 3.3.0 核心框架
MyBatis Plus 3.5.5 ORM 框架
Druid 1.2.21 数据库连接池
MySQL 8.0 关系数据库
JWT 0.12.5 身份认证
Hutool 5.8.26 工具类库

前端技术栈

技术 版本 说明
Vue 3 3.4.21 渐进式框架
Vite 5.2.8 构建工具
Element Plus 2.6.3 UI 组件库
Vue Router 4.3.0 路由管理
Pinia 2.1.7 状态管理
Axios 1.6.8 HTTP 客户端

项目结构

springboot-vue-wms/
├── demo/                              # Spring Boot 后端项目
│   ├── src/main/java/com/wms/
│   │   ├── controller/               # 控制层(API接口)
│   │   ├── service/                   # 业务层
│   │   ├── mapper/                    # 数据访问层
│   │   ├── entity/                    # 实体类
│   │   ├── dto/                       # 数据传输对象
│   │   ├── config/                    # 配置类
│   │   └── util/                      # 工具类
│   ├── src/main/resources/
│   │   ├── mapper/                    # MyBatis XML映射文件
│   │   └── application.yml            # 配置文件
│   ├── wms.sql                        # 数据库初始化脚本
│   └── pom.xml                        # Maven依赖配置
│
├── fronted/                           # Vue3 前端项目
│   ├── src/
│   │   ├── api/                       # 接口封装
│   │   ├── router/                   # 路由配置
│   │   ├── views/                    # 页面组件
│   │   ├── components/               # 公共组件
│   │   ├── store/                    # 状态管理
│   │   └── styles/                   # 样式文件
│   ├── index.html
│   ├── vite.config.js                # Vite配置
│   └── package.json                  # NPM依赖配置
│
├── docs/                              # 项目文档(可选)
│   ├── README.md                      # 项目说明
│   ├── API.md                         # 接口文档
│   └── DB.md                          # 数据库设计
│
└── README.md                          # 本文件

常见问题(FAQ)

Q1: 后端启动失败,提示端口被占用

解决方案

# Windows 查看端口占用
netstat -ano | findstr 8080

# 结束占用进程(假设 PID 为 1234)
taskkill /PID 1234 /F

# 或修改端口
# 编辑 application.yml 将 server.port 改为其他端口,如 8088

Q2: 数据库连接失败

解决方案

  1. 确认 MySQL 服务已启动:net start mysql
  2. 检查用户名密码是否正确
  3. 确认数据库 wms 已创建:SHOW DATABASES;
  4. 检查 MySQL 8.0 的认证插件是否兼容

Q3: 前端无法访问后端 API(跨域问题)

解决方案

后端已配置 CORS 跨域,如仍有问题检查:

  1. 后端服务是否正常启动(访问 health 接口)
  2. 端口配置是否正确(前端 .env 中的 VITE_API_URL
  3. Authorization 头是否正确传递

Q4: 登录提示”用户名或密码错误”

解决方案

  1. 确认使用的是默认账号:admin / admin123
  2. 检查数据库中 sys_user 表的数据是否完整
  3. 密码字段是 BCrypt 加密,不要直接修改数据库密码

Q5: JDK 版本不匹配

解决方案

# 检查 Java 版本
java -version

# 确保使用 JDK 17+,推荐 JDK 21
# 设置 JAVA_HOME 环境变量指向正确的 JDK 目录

Q6: npm install 失败

解决方案

# 清理 npm 缓存
npm cache clean --force

# 删除 node_modules 和 package-lock.json
rm -rf node_modules package-lock.json

# 重新安装
npm install

开发指南

接口文档

详细 API 接口文档请参考:API.md

数据库设计

数据库设计文档请参考:DB.md

前端开发

# 进入前端目录
cd fronted

# 安装依赖
npm install

# 启动开发服务器(热重载)
npm run dev

# 构建生产版本
npm run build

# 预览生产版本
npm run preview

后端开发

# 进入后端目录
cd demo

# 编译打包
mvn clean package -DskipTests

# 运行(开发模式)
mvn spring-boot:run

# 运行(生产模式)
java -jar target/demo-0.0.1-SNAPSHOT.jar

开源许可

本项目基于 MIT License 开源,欢迎 Star、Fork 和贡献代码。


交流讨论

  • Issue: 如果发现 Bug 或有新功能建议,欢迎提交 Issue
  • Discussion: 技术讨论、问题咨询请使用 Discussion
  • 文档: 完整文档请参考 Wiki

声明:本项目仅供学习交流使用,请勿直接用于商业生产环境。如需生产使用,请根据实际业务需求进行安全评估和功能扩展。


Similar Posts

Comments