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: 数据库连接失败
解决方案:
- 确认 MySQL 服务已启动:
net start mysql - 检查用户名密码是否正确
- 确认数据库
wms已创建:SHOW DATABASES; - 检查 MySQL 8.0 的认证插件是否兼容
Q3: 前端无法访问后端 API(跨域问题)
解决方案:
后端已配置 CORS 跨域,如仍有问题检查:
- 后端服务是否正常启动(访问 health 接口)
- 端口配置是否正确(前端
.env中的VITE_API_URL) - Authorization 头是否正确传递
Q4: 登录提示”用户名或密码错误”
解决方案:
- 确认使用的是默认账号:
admin/admin123 - 检查数据库中
sys_user表的数据是否完整 - 密码字段是 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
声明:本项目仅供学习交流使用,请勿直接用于商业生产环境。如需生产使用,请根据实际业务需求进行安全评估和功能扩展。