基于Spring Boot的五金店管理系统设计与实现(库存预警+个性化报价+五金件推荐)
一家五金店,货架上螺丝、扳手、电线、管件动辄上千种 SKU:靠手工记账,哪个商品快断货了说不清,哪个客户是长期大客户全凭店员记性,报个价还要翻小本子查历史成交。库存积压占用资金、缺货丢掉订单、客户关系无沉淀,是传统五金店普遍的三大痛点。本文基于 Spring Boot + MySQL + Vue.js 设计一套五金店管理系统,围绕库管与销售两类角色构建完整业务闭环:库存不足自动红色预警并支持自动生成采购订单,销售端基于客户购买历史生成个性化报价、面向长期客户自动给出优惠策略,还能根据客户搜索记录推荐合适的五金件,让店铺运营从"手工账本"升级为"数据驱动"。
一、系统功能总览
系统按库管(管理员)与销售人员两类角色划分功能:
| 角色 | 核心功能 |
|---|---|
| 库管(管理员) | 客户信息与账户管理(创建/修改/删除、角色权限分配)、商品管理(库存不足自动红色预警、分类与供应商管理)、预警设置(库存预警条件与补货建议)、采购订单管理(系统自动生成订单、库管审核确认)、销售记录查询(按时间段筛选、数据导出)、统计管理(销售趋势/库存变化可视化报表)、修改密码 |
| 销售人员 | 安全登录与密码修改、客户信息记录(购买历史与偏好)、报价管理(按客户类型与购买历史生成个性化报价单、长期客户优惠政策)、订单管理(接单与订单状态跟踪)、五金件推荐(基于客户搜索记录与历史偏好推荐产品) |
两个角色共用一套权限体系:库管掌控商品、采购、统计等全局数据,销售人员聚焦客户与订单,各自只能访问授权范围内的功能,保障业务数据安全。
二、开发技术选型
| 技术组件 | 选型 | 说明 |
|---|---|---|
| 开发平台 | Eclipse | 开源 IDE,插件化架构扩展性强,支持跨平台,集编辑、调试、版本控制于一体 |
| 后端框架 | Spring Boot | 约定优于配置,自动装配减少样板代码,内嵌 Tomcat 便于独立部署,适合模块化服务开发 |
| 数据库 | MySQL | 开源关系型数据库,支持 InnoDB 事务与多用户访问,满足高并发数据读写 |
| 前端 | HTML + Vue.js | HTML 定义页面结构,Vue.js 渐进式框架提供响应式数据绑定与组件化开发,构建交互流畅的单页应用 |
后端按 Controller—Service—DAO 三层组织:库存预警判断、采购订单自动生成、报价策略计算等业务逻辑集中在 Service 层,前端通过 REST 接口与后端交互,模块化设计保证后续功能扩展与维护的便利性。
三、系统设计与实现
3.1 系统结构设计
| 子系统 | 主要职责 |
|---|---|
| 账户与权限子系统 | 登录身份验证、账户增删改、角色权限分配、密码修改 |
| 商品与库存子系统 | 商品信息维护、分类与供应商管理、库存预警、补货建议 |
| 采购子系统 | 依据库存与销售数据自动生成采购订单,库管审核确认 |
| 销售子系统 | 客户档案记录、个性化报价、订单处理与状态跟踪、销售记录查询 |
| 统计分析子系统 | 销售趋势、库存变化可视化报表,支撑数据驱动决策 |
| 智能推荐子系统 | 基于客户搜索记录与购买偏好的五金件推荐 |
3.2 主要界面设计
| 界面 | 设计要点 |
|---|---|
| 登录界面 | 用户名/密码输入 + 登录按钮 + 忘记密码链接,按角色跳转对应工作台 |
| 客户信息管理 | 库管端账户列表,支持创建/修改/删除与角色权限定义 |
| 商品管理 | 商品列表视图,库存不足的商品高亮(变红)提示,支持分类管理 |
| 采购订单管理 | 订单详情查看、审核与确认操作,保证采购过程透明准确 |
| 销售记录查询 | 销售记录表 + 筛选工具 + 导出功能,便于分析与存档 |
| 统计管理 | 销售趋势、库存变化可视化图表,附带销售预测与库存优化建议 |
| 客户信息记录 | 客户档案视图,含购买记录与备注字段,记录客户特殊要求 |
| 报价管理 | 报价单生成与折扣设置,长期合作客户自动应用优惠政策 |
| 订单管理 | 订单列表展示处理状态,支持状态更新,跟踪订单履约进度 |
| 五金件推荐 | 推荐列表 + 客户搜索历史记录,辅助销售快速荐品 |
3.3 数据库设计
E-R 核心关系:
- 销售人员 —(1:n)— 销售订单:记录每个订单的经办销售
- 商品 —(1:1)— 库存:商品与库存数量、预警水平一一对应
- 商品 —(m:n)— 销售订单:订单明细记录每个订单包含的商品
- 客户 —(1:n)— 销售订单:反映客户的购买行为
- 供应商 —(1:n)— 商品:定义商品的供货来源
数据表结构(共 8 张表):
| 表名 | 主要字段 |
|---|---|
| 库管表 | admin_id(主键自增)、account、password、phone |
| 销售人员表 | sales_id(主键自增)、account、password、phone、hire_date、sales_amount |
| 客户信息表 | customer_id(主键自增)、name、phone、age、purchase_time、product |
| 商品信息表 | product_id(主键自增)、product_name、category、price、stock |
| 销售订单表 | order_id(主键自增)、customer_name、product_name、quantity、purchase_time、sales_name |
| 采购订单表 | purchase_order_id(主键自增)、product_name、quantity、supplier、purchase_time |
| 报价信息表 | quote_id(主键自增)、customer_name、customer_type、purchase_amount、purchase_time、quantity、quote_amount |
| 五金件推荐信息表 | hardware_id(主键自增)、product_type、product_amount、product_location、detail_info |
报价信息表专门设计了 customer_type(客户种类)与 quote_amount(报价金额)字段,正是个性化报价策略的落点:按客户类型区分定价,长期大客户自动享受优惠折扣。
3.4 核心代码设计
以库存预警、采购订单自动生成、个性化报价、五金件推荐四个典型接口为例:
@RestController
@RequestMapping("/api")
public class StoreController {
// 1. 商品库存预警查询
@GetMapping("/product/warning")
public Result listWarning() {
// 查询库存低于预警阈值的商品列表
// 返回商品名称、当前库存、预警水平,前端列表整行标红
return Result.success(warningList);
}
// 2. 采购订单自动生成
@PostMapping("/purchase/autoGenerate")
public Result autoGeneratePurchase() {
// 扫描库存与近期销售数据
// 对低于预警线的商品按补货建议量自动生成采购订单
// 订单状态置为"待审核",等待库管确认
return Result.success("采购订单已生成");
}
// 3. 个性化报价单生成
@PostMapping("/quote/generate")
public Result generateQuote(@RequestBody QuoteRequest req) {
// 查询客户购买历史与客户类型
// 长期合作客户自动套用优惠折扣计算报价金额
// 生成报价单并写入报价信息表
return Result.success(quote);
}
// 4. 五金件推荐
@GetMapping("/recommend/{customerId}")
public Result recommend(@PathVariable Integer customerId) {
// 分析客户搜索记录与历史购买偏好
// 匹配商品类型,返回推荐五金件列表(含位置与详情)
return Result.success(recommendList);
}
}
四、系统测试
4.1 功能测试
按两类角色设计测试用例:
| 用例编号 | 角色 | 测试内容 | 测试结果 |
|---|---|---|---|
| A01 | 库管 | 正确账号密码登录 | 登录成功 |
| A02 | 库管 | 创建新用户账户并分配权限 | 用户创建成功 |
| A03 | 库管 | 添加商品信息并查看列表 | 商品添加成功 |
| A04 | 库管 | 设置库存预警并模拟库存不足 | 预警提示正确 |
| A05 | 库管 | 系统自动生成采购订单并审核确认 | 订单处理成功 |
| A06 | 库管 | 按时间段查询销售记录 | 数据准确 |
| A07 | 库管 | 生成销售趋势图表 | 图表显示正确 |
| A08 | 库管 | 修改密码后重新登录 | 修改成功并可登录 |
| S01 | 销售 | 正确账号密码登录 | 登录成功 |
| S02 | 销售 | 录入客户购买历史与偏好信息 | 信息记录成功 |
| S03 | 销售 | 选择客户生成个性化报价单 | 报价生成成功 |
| S04 | 销售 | 创建订单并更新订单状态 | 订单处理成功 |
| S05 | 销售 | 依据客户历史记录查看推荐列表 | 推荐准确 |
4.2 性能测试
在四核 CPU、8GB 内存、SSD 存储、MySQL 数据库的环境下,使用 JMeter 进行并发测试:
| 测试场景 | 结果 |
|---|---|
| 单用户操作 | 平均响应时间 1 秒以内,满足实时性要求 |
| 100 用户并发 | 稳定运行,无性能瓶颈 |
| 200 用户并发 | 响应时间接近 2 秒,为系统并发处理能力上限 |
系统在典型五金店业务规模(店员 + 库管 + 并发查询)下性能余量充足,多用户同时操作响应稳定。
五、总结
这套五金店管理系统以 Spring Boot + MySQL + Vue.js 为技术底座,把五金店最头疼的库存与客户两本账彻底数字化:库管端商品列表红色预警 + 采购订单自动生成,让补货不再靠拍脑袋;销售端客户档案、个性化报价(长期客户自动优惠)、订单跟踪、五金件推荐四件套,让老客户的每一笔历史都变成成单的筹码;统计管理模块再以可视化报表把销售趋势、库存变化摆上台面,支撑数据驱动的经营决策。系统模块化设计、开源技术栈控制成本,功能与性能测试双双通过,为五金店乃至同类零售小店的信息化升级提供了一个完整可落地的参考实现。
六、资料内容完整工程资料(原理图、PCB、代码、元件清单)

七、资料获取方式

&spm=1001.2101.3001.5002&articleId=165879270&d=1&t=3&u=ce45b32516664df89acd45b73f64b277)
86

被折叠的 条评论
为什么被折叠?



