项目概述
本项目是一个基于SpringBoot的仓库管理系统,旨在为企业提供高效、可靠的仓库管理解决方案。系统采用现代化的技术架构,实现了仓库管理的核心功能,包括库存管理、出入库管理、供应商管理、客户管理等模块。
目录
- 项目概述
- 技术栈
- 后端技术
- 前端技术
- 开发工具
- 系统功能模块
- 1. 用户管理模块
- 2. 系统管理模块
- 3. 人资中心
- 4. 基础数据管理模块
- 5. 进货管理模块
- 6. 销售管理模块
- 7. 零售管理模块
- 8. 会员中心模块
- 9. 报表统计模块
- 10. 绩效管理模块
- 系统架构设计
- 整体架构
- 数据库设计
- 快速开始
- 环境准备
- 后端部署步骤
- 前端部署步骤
- API接口文档
- 主要API接口
- 系统特性
- 1. 高性能设计
- 2. 高安全性
- 3. 高可用性
- 4. 易扩展性
- 开发规范
- 代码规范
- 数据库规范
- API设计规范
- 部署指南
- 生产环境部署
- 故障排除
- 常见问题
- 性能优化建议
- 1. 数据库优化
- 2. 缓存优化
- 3. 代码优化
- 4. 前端优化
- 未来规划
- 短期计划(1-3个月)
- 中期计划(3-6个月)
- 长期计划(6-12个月)
- 贡献指南
- 如何贡献
- 代码提交规范
- 问题反馈
- 许可证
- 联系方式
- 致谢
技术栈

后端技术
- SpringBoot 2.x:快速开发框架
- Spring MVC:Web层框架
- MyBatis-Plus:ORM框架,简化数据库操作
- MySQL 8.0:关系型数据库
- Redis:缓存数据库,提升系统性能
- Spring Security:安全认证框架
- JWT:JSON Web Token,用于用户认证
- Swagger:API文档生成工具
- Maven:项目构建工具
前端技术
- Vue.js 3.x:前端框架
- Element Plus:UI组件库
- Axios:HTTP客户端
- Vue Router:路由管理
- Vuex:状态管理
- Webpack:模块打包工具
开发工具
- IntelliJ IDEA:Java开发IDE
- Visual Studio Code:前端开发IDE
- Navicat:数据库管理工具
- Postman:API测试工具
- Git:版本控制工具
系统功能模块
1. 用户管理模块

2. 系统管理模块

3. 人资中心

4. 基础数据管理模块

5. 进货管理模块

6. 销售管理模块

7. 零售管理模块

8. 会员中心模块

9. 报表统计模块

10. 绩效管理模块

系统架构设计
整体架构
系统采用前后端分离的架构设计,前端通过RESTful API与后端进行数据交互。整体架构分为四层:
数据库设计
系统数据库设计遵循第三范式,主要包含以下核心表:
- 用户表:存储系统用户信息
- 角色表:存储角色信息
- 权限表:存储权限信息
- 仓库表:存储仓库基本信息
- 商品表:存储商品信息
- 库存表:存储实时库存信息
- 入库单表:存储入库记录
- 出库单表:存储出库记录
- 供应商表:存储供应商信息
- 客户表:存储客户信息
快速开始
环境准备
后端部署步骤
1. 数据库初始化
— 创建数据库
CREATE DATABASE IF NOT EXISTS warehouse_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
— 使用数据库
USE warehouse_db;
— 执行项目中的SQL脚本初始化表结构
— 脚本位置:/src/main/resources/sql/init.sql
2. 配置文件修改
修改 application.yml 配置文件:
spring:
datasource:
url: jdbc:mysql://localhost:3306/warehouse_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: your_password
driver-class-name: com.mysql.cj.jdbc.Driver
redis:
host: localhost
port: 6379
password:
database: 0
timeout: 3000ms
# JWT配置
jwt:
secret: your_jwt_secret_key_here
expiration: 86400000 # 24小时
header: Authorization
3. 项目构建与运行
# 克隆项目
git clone https://gitee.com/ordinary-world3/warehouse.git
# 进入项目目录
cd warehouse
# 使用Maven构建项目
mvn clean package
# 运行项目
java -jar target/warehouse-1.0.0.jar
前端部署步骤
1. 安装依赖
# 进入前端目录
cd warehouse-frontend
# 安装依赖
npm install
2. 配置修改
修改 src/config/index.js 中的API地址:
export default {
baseURL: 'http://localhost:8080/api', // 后端API地址
timeout: 10000,
// 其他配置…
}
3. 运行前端
# 开发环境运行
npm run serve
# 生产环境构建
npm run build
API接口文档
系统使用Swagger生成API文档,启动后端服务后访问:
- Swagger UI: http://localhost:8080/swagger-ui.html
- API文档JSON: http://localhost:8080/v2/api-docs
主要API接口
认证相关接口
- POST /api/auth/login – 用户登录
- POST /api/auth/register – 用户注册
- POST /api/auth/logout – 用户登出
- POST /api/auth/refresh – 刷新Token
用户管理接口
- GET /api/users – 获取用户列表
- GET /api/users/{id} – 获取用户详情
- POST /api/users – 创建用户
- PUT /api/users/{id} – 更新用户
- DELETE /api/users/{id} – 删除用户
商品管理接口
- GET /api/products – 获取商品列表
- GET /api/products/{id} – 获取商品详情
- POST /api/products – 创建商品
- PUT /api/products/{id} – 更新商品
- DELETE /api/products/{id} – 删除商品
库存管理接口
- GET /api/inventories – 获取库存列表
- GET /api/inventories/{id} – 获取库存详情
- POST /api/inventories – 创建库存记录
- PUT /api/inventories/{id} – 更新库存
- POST /api/inventories/check – 库存盘点
出入库管理接口
- GET /api/inbound-orders – 获取入库单列表
- GET /api/outbound-orders – 获取出库单列表
- POST /api/inbound-orders – 创建入库单
- POST /api/outbound-orders – 创建出库单
- PUT /api/inbound-orders/{id}/status – 更新入库单状态
- PUT /api/outbound-orders/{id}/status – 更新出库单状态
系统特性
1. 高性能设计
- 使用Redis缓存热点数据,减少数据库压力
- 数据库查询优化,建立合适的索引
- 异步处理耗时操作,提升响应速度
- 连接池配置优化,提高并发处理能力
2. 高安全性
- 基于Spring Security和JWT的认证授权
- 密码加密存储(BCrypt算法)
- SQL注入防护
- XSS攻击防护
- CSRF防护
- 接口访问权限控制
3. 高可用性
- 数据库主从复制配置
- Redis哨兵模式部署
- 服务监控和告警
- 日志记录和审计
- 数据备份和恢复机制
4. 易扩展性
- 模块化设计,便于功能扩展
- 微服务架构支持
- 前后端分离,便于独立部署
- 支持多租户架构
- 支持国际化
开发规范
代码规范
数据库规范
API设计规范
部署指南
生产环境部署
1. 服务器要求
- 操作系统:CentOS 7+/Ubuntu 18.04+
- 内存:8GB以上
- 存储:100GB以上
- 网络:公网IP,开放80/443端口
2. 环境配置
# 安装Java
yum install java-1.8.0-openjdk-devel
# 安装MySQL
yum install mysql-server
# 安装Redis
yum install redis
# 安装Nginx
yum install nginx
# 安装Node.js
curl -sL https://rpm.nodesource.com/setup_14.x | bash –
yum install nodejs
3. 应用部署
# 创建应用目录
mkdir -p /opt/warehouse
cd /opt/warehouse
# 上传应用文件
# 后端jar包:warehouse-1.0.0.jar
# 前端dist目录:dist/
# 配置systemd服务
vim /etc/systemd/system/warehouse.service
[Unit]
Description=Warehouse Management System
After=network.target
[Service]
Type=simple
User=warehouse
WorkingDirectory=/opt/warehouse
ExecStart=/usr/bin/java -jar warehouse-1.0.0.jar
Restart=always
[Install]
WantedBy=multi-user.target
# 启动服务
systemctl daemon-reload
systemctl start warehouse
systemctl enable warehouse
4. Nginx配置
server {
listen 80;
server_name your-domain.com;
# 前端静态文件
location / {
root /opt/warehouse/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
# 后端API代理
location /api {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# 静态资源缓存
location ~* \\.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}
故障排除
常见问题
1. 数据库连接失败
问题描述:应用启动时提示数据库连接失败 解决方案:
- 检查MySQL服务是否启动:systemctl status mysqld
- 检查数据库连接配置:application.yml中的数据库URL、用户名、密码
- 检查防火墙设置:firewall-cmd –list-ports
- 检查MySQL用户权限:GRANT ALL PRIVILEGES ON warehouse_db.* TO 'username'@'%';
2. Redis连接失败
问题描述:应用启动时提示Redis连接失败 解决方案:
- 检查Redis服务是否启动:systemctl status redis
- 检查Redis配置:redis.conf中的bind和protected-mode设置
- 检查防火墙设置:firewall-cmd –add-port=6379/tcp
3. 前端无法访问后端API
问题描述:前端页面可以打开,但无法调用后端接口 解决方案:
- 检查Nginx配置中的proxy_pass地址
- 检查后端服务是否正常运行:systemctl status warehouse
- 检查跨域配置:后端CORS配置是否正确
- 检查网络连通性:curl http://localhost:8080/api/health
4. 内存溢出
问题描述:应用运行一段时间后内存占用过高 解决方案:
- 调整JVM参数:-Xms512m -Xmx1024m
- 检查内存泄漏:使用jmap、jstat工具分析
- 优化数据库查询:避免全表扫描,使用分页查询
- 优化缓存策略:合理设置缓存过期时间
性能优化建议
1. 数据库优化
- 为频繁查询的字段建立索引
- 避免使用SELECT *,只查询需要的字段
- 使用分页查询,避免一次性查询大量数据
- 定期清理历史数据,保持表体积合理
- 使用数据库连接池,合理配置连接数
2. 缓存优化
- 合理设置缓存过期时间
- 使用多级缓存策略
- 缓存热点数据,如用户信息、商品信息
- 使用缓存预热机制
- 监控缓存命中率
3. 代码优化
- 避免在循环中执行数据库操作
- 使用批量操作代替单条操作
- 合理使用异步处理
- 优化算法复杂度
- 减少不必要的对象创建
4. 前端优化
- 使用CDN加速静态资源加载
- 压缩JavaScript和CSS文件
- 使用图片懒加载
- 减少HTTP请求数量
- 使用浏览器缓存
未来规划
短期计划(1-3个月)
中期计划(3-6个月)
长期计划(6-12个月)
贡献指南
如何贡献
代码提交规范
- feat:新功能
- fix:修复bug
- docs:文档更新
- style:代码格式调整
- refactor:代码重构
- test:测试相关
- chore:构建过程或辅助工具变动
问题反馈
- 使用GitHub Issues提交问题
- 提供详细的问题描述和复现步骤
- 附上相关日志和截图
- 标注问题优先级和影响范围
许可证
本项目采用MIT许可证,详情请参阅LICENSE文件。
联系方式
- 项目地址:https://gitee.com/ordinary-world3/warehouse
- 问题反馈:https://gitee.com/ordinary-world3/warehouse/issues
致谢
感谢所有为本项目做出贡献的开发者,特别感谢以下开源项目:
- Spring Boot
- MyBatis-Plus
- Vue.js
- Element Plus
- 以及其他所有依赖的开源项目
最后更新:2026年6月 版本:v1.0.0 作者:ordinary-world3




