基于Spring Boot的五金店管理系统设计与实现(库存预警+个性化报价+五金件推荐)

基于Spring Boot的五金店管理系统设计与实现(库存预警+个性化报价+五金件推荐)

一家五金店,货架上螺丝、扳手、电线、管件动辄上千种 SKU:靠手工记账,哪个商品快断货了说不清,哪个客户是长期大客户全凭店员记性,报个价还要翻小本子查历史成交。库存积压占用资金、缺货丢掉订单、客户关系无沉淀,是传统五金店普遍的三大痛点。本文基于 Spring Boot + MySQL + Vue.js 设计一套五金店管理系统,围绕库管与销售两类角色构建完整业务闭环:库存不足自动红色预警并支持自动生成采购订单,销售端基于客户购买历史生成个性化报价、面向长期客户自动给出优惠策略,还能根据客户搜索记录推荐合适的五金件,让店铺运营从"手工账本"升级为"数据驱动"。

一、系统功能总览

系统按库管(管理员)与销售人员两类角色划分功能:

角色核心功能
库管(管理员)客户信息与账户管理(创建/修改/删除、角色权限分配)、商品管理(库存不足自动红色预警、分类与供应商管理)、预警设置(库存预警条件与补货建议)、采购订单管理(系统自动生成订单、库管审核确认)、销售记录查询(按时间段筛选、数据导出)、统计管理(销售趋势/库存变化可视化报表)、修改密码
销售人员安全登录与密码修改、客户信息记录(购买历史与偏好)、报价管理(按客户类型与购买历史生成个性化报价单、长期客户优惠政策)、订单管理(接单与订单状态跟踪)、五金件推荐(基于客户搜索记录与历史偏好推荐产品)

两个角色共用一套权限体系:库管掌控商品、采购、统计等全局数据,销售人员聚焦客户与订单,各自只能访问授权范围内的功能,保障业务数据安全。

二、开发技术选型

技术组件选型说明
开发平台Eclipse开源 IDE,插件化架构扩展性强,支持跨平台,集编辑、调试、版本控制于一体
后端框架Spring Boot约定优于配置,自动装配减少样板代码,内嵌 Tomcat 便于独立部署,适合模块化服务开发
数据库MySQL开源关系型数据库,支持 InnoDB 事务与多用户访问,满足高并发数据读写
前端HTML + Vue.jsHTML 定义页面结构,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、代码、元件清单)

七、资料获取方式

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小常硬件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值