返回作品

智慧冷库管理系统

创建于 2025 年 3 月 16 日

标签
  • Java 8
  • Spring Boot 2.5
  • RuoYi 3.8.7
  • MyBatis-Plus 3.5
  • MySQL 8
  • Redis
  • Vue 2
  • Element UI
  • ECharts
  • Chart.js
  • Hutool

项目介绍

这是一个基于若依(RuoYi v3.8.7)快速开发平台扩展的智慧冷库管理系统,定位是冷库场景下的”环境监测 + 库存管理”一体化台账。项目保留了若依完整的 RBAC 权限、字典、日志、定时任务与代码生成器底座,业务模块以 cencat 前缀独立组织:仓库档案与仓库管理员、货物/供应商/客户基础资料、入库/出库/库存三类台账,以及体现”冷库”属性的温湿度记录、报警配置和设备管理。

冷库监测的核心链路落在温湿度数据上:系统按 type 字段区分温度(1)与湿度(2)两类记录,每条记录包含温湿度数值与采集时间。CencatTempRecordServiceImpl 在查询列表时先读取全部报警配置,再按类型逐条比对上下限,把超限记录标记为报警状态;前端在表格中用 el-tag 渲染黄色”报警”或绿色”正常”标签,值班人员打开记录页即可一眼看出哪些时段的库内环境已经越界。

项目架构

项目是标准的前后端分离单体应用,后端基于 RuoYi v3.8.7(Spring Boot 2.5.15 + Java 8):认证与权限由 Spring Security + Redis & JWT 支撑,持久层混合使用 MyBatis-Plus 3.5.4(LambdaQueryWrapper 条件查询、Mapper 注解 SQL)与 MyBatis XML,数据库为 MySQL 8(建表脚本来自 Navicat 导出的 20250316.sql),并引入 Hutool 处理日期与数值运算。前端为 Vue 2.6 + Element UI 2.15,在若依标准 CRUD 页面之外额外引入 Chart.js 4 与 ECharts 5.4 绘制统计图表。

业务代码按若依约定分层放在 ruoyi-admin 模块的 com.ruoyi.cencat 包下:

  • controller:12 个业务 Controller,覆盖仓库、仓库管理员、货物、供应商、客户、设备、入库、出库、库存、温湿度、报警配置,以及统计接口与大屏接口;
  • service / service.impl:标准 CRUD 服务,CencatTempRecordServiceImpl 额外注入 CencatWarnConfigMapper 完成超限判定;
  • mapper:XML Mapper 之外,CencatGetDataMapper 全部用 @Select 注解 SQL 实现统计查询(COUNTSUMUNION);
  • 前端 ruoyi-ui/src/views/cencat/ 下按模块各放一个 index.vue,其中温湿度记录页由 record/index.vueel-tabs 嵌套 temp.vuehum.vue 两个子页面。

数据库共 18 张业务表,核心关联清晰:cencat_record_in(入库)外键引用供应商、货物、仓库,cencat_record_out(出库)外键引用客户、货物、仓库,cencat_record_storage(库存)按货物 + 仓库记录存量;cencat_temp_record(温湿度)与 cencat_warn_config(报警配置)各自以 type 区分温度/湿度,形成一一对应的判定关系。

核心功能

  • 温湿度记录与超限报警:温度、湿度记录按 Tab 分页展示,CencatTempRecordServiceImpl.selectCencatTempRecordList 查询后遍历 cencat_warn_config,按 type 匹配配置,当 temp < mini || temp > max 时将 isWarning 置为 "1",前端据此渲染”报警”(el-tag type="warning")或”正常”(type="success")标签,实现超限自动标记。
  • 报警阈值配置cencat_warn_config 表为温度和湿度分别保存最小/最大值(示例数据:温度 -5010、湿度 100200),前端 warn/index.vue 提供新增、修改、删除、搜索与 Excel 导出,类别字段在表单中以”温度/湿度”下拉选择。
  • 首页统计大屏/cencat/getData 一次性返回供应商数、客户数、货物数、入库总量、出库总量、仓库利用率与最近操作记录,仓库利用率按 (入库总量 - 出库总量) / 总容量 计算,最近操作记录用入库、出库两张表 UNION 后按时间倒序取一条;前端以 Chart.js 柱状图 + 统计表格并排呈现。
  • 月度温湿度趋势图/cencat/big-screen/monthList 用 Hutool 生成含当月起共 13 个月的月份序列,LambdaQueryWrapperDATE_FORMAT(record_time, '%Y-%m') 过滤后分组求温度、湿度月均值;前端 ECharts 绘制双 Y 轴折线图(左侧温度 °C、右侧湿度 %),悬浮提示自动带单位。
  • 出入库与库存台账:入库记录(供应商 → 仓库)与出库记录(仓库 → 客户)均为标准 CRUD 并支持导出,库存记录按货物与仓库维度维护存量,为仓库利用率与总量统计提供数据基础。
  • 档案与设备管理:仓库(地址、面积、状态、描述)、仓库管理员(联系方式、生日、所属仓库)、货物(名称、类型、规格、价值)、客户、供应商以及冷库设备(示例含”制冷压缩机""加湿设备”,带启用状态)全部纳入菜单权限管理。

功能截图

暂无运行截图。

快速上手

项目为 Maven 多模块工程(Java 8),先执行 sql/20250316.sql 在 MySQL 8 中初始化数据库(含若依系统表、Quartz 表与全部业务表及演示数据)。后端修改 ruoyi-adminapplication-druid.yml 的数据库连接与 application.yml 中的 Redis 配置,运行 RuoYiApplication 启动;前端进入 ruoyi-ui 执行 npm installnpm run dev(默认 80 端口),或按 ry.sh / ry.bat 打包部署。

登录后进入首页即可查看仓库统计柱状图与月度温湿度趋势;“冷库监测”类目下的温湿度记录页按温度、湿度 Tab 切换查看,越限记录自动显示”报警”标签;报警配置页可随时调整温湿度上下限;仓库管理、出入库、库存、货物、供应商、客户与设备页面均为标准列表 CRUD。测试账号见 README:admin123 / 123456(测试)与 admin / cencat(超级管理员)。

总结

这个项目的价值在于把若依的平台能力快速转化成一套贴合冷库场景的业务系统:环境数据(温湿度)有采集记录与阈值判定,资产与货流(仓库、设备、出入库、库存)有完整台账,两者又通过统计大屏和仓库利用率指标汇合到首页,形成”看得见环境、管得住库存”的管理闭环。超限判定放在 Service 层、与报警配置表解耦的设计也便于后续扩展推送渠道。

作为教学与演示型项目,它的工程结构清晰、模块边界规整,很适合作为若依二次开发的参考样例。后续可扩展的方向包括:接入真实传感器(MQTT/Modbus)自动写入温湿度记录、超限时通过短信或邮件主动告警、报警后联动制冷/加湿设备启停,以及出入库时自动增减库存并做库存不足校验。