一、立项背景和目标 随着海洋养殖业的快速发展,传统养殖方式面临水质监测不及时、病害预警缺失、投喂管理粗放、溯源体系不完善等问题。本项目旨在开发一套基于 Spring Boot + Vue.js 的海洋牧场智慧养殖管理系统,实现养殖全流程的数字化、智能化管理。系统核心目标包括:实时监测水质环境参数并自动预警、精细化投喂管理、病害全流程跟踪、产品全链条溯源以及基于 AI 大模型的智能分析辅助决策,最终提升养殖效率、降低病害风险、保障水产品质量安全。
二、软件功能与核心模块 系统采用前后端分离架构,共包含 11 张数据库表、92 个 RESTful API 端点、20 个前端页面。核心功能模块包括:(1)环境监测模块——水质数据采集与趋势分析(ECharts 可视化)、气象数据管理;(2)生产管理模块——网箱管理、投喂记录管理(自动扣减库存)、病害记录全流程管理(发现→治疗→已解决)、员工管理、饲料库存管理;(3)智能预警模块——基于 AlertEngine 预警引擎,支持溶解氧/pH/水温/饲料库存四类指标的阈值检查、自动去重、三级预警级别判定(一般/严重/紧急),阈值可配置并支持历史数据重新检查;(4)溯源管理模块——覆盖从苗种采购、养殖投喂、病害防治到捕捞加工、销售的全链条溯源,支持二维码生成和消费者端查询;(5)AI 智慧助手——集成智谱 GLM-4-Flash 大模型,提供 9 种专项数据分析和 5 类智能建议,采用异步任务机制避免超时;(6)可视化大屏——实时展示关键指标,60 秒自动刷新;(7)系统管理——用户认证、角色权限控制、数据模拟生成、数据备份与导出。
三、业务流程与功能路径 用户登录后进入仪表盘首页,可查看核心指标。环境监测路径:录入水质数据→系统自动预警→管理人员处理。生产管理路径:投喂记录新增→自动扣减库存→触发库存预警;病害记录支持发现→处理→已解决全流程。溯源路径:管理员创建并审核溯源记录,消费者可通过溯源码查询产品全链条信息。AI 分析路径:点击快捷分析→异步提交任务→轮询获取结果。数据大屏路径:全屏展示实时数据,支持自动刷新和预警滚动提醒。
一、整体架构和设计思路 系统采用前后端分离架构。后端基于 Spring Boot 2.7.18 + MyBatis-Plus 3.5.3.1 + MySQL 8.0,使用 Java 17 开发,遵循 Controller → Service → Mapper → Entity 四层架构,共 16 个 Controller、13 个 Service、11 个 Mapper。前端基于 Vue 2.6 + Element UI 2.15 + ECharts 5.4 + Axios,使用 Vuex 状态管理和 Vue Router 路由管理(含导航守卫实现权限控制)。AI 模块通过 OkHttp 调用智谱 GLM-4-Flash 大模型 API,支持同步和异步两种调用模式。预警引擎(AlertEngine)作为独立组件实现阈值检查、告警去重和级别判定逻辑。二维码生成使用 ZXing 库,Excel 导出使用 Apache POI。系统设计了完整的中文编码处理方案(Servlet Filter + Tomcat Connector 双重保障),所有分页列表查询统一使用 POST + @RequestBody 避免中文参数编码问题。
二、负责模块和结果 我负责了系统的完整开发工作,量化成果如下:(1)数据库设计——设计并实现了 11 张业务表,建立以 cage 为核心的外键关联体系;(2)后端开发——完成 92 个 API 端点,包括 16 个 Controller、13 个 Service、11 个 Mapper、6 个工具类、4 个公共类、3 个 DTO、3 个异常处理类、6 个配置类;(3)前端开发——完成 21 个视图页面、17 个 API 文件、4 个公共组件、2 个工具函数、1 套全局粉色主题样式;(4)AI 模块——实现 12 个分析方法,采用异步任务机制解决长耗时请求超时问题;(5)预警引擎——实现四类指标的自动预警检查、去重和三级级别判定;(6)数据初始化——批量插入 894 条模拟数据覆盖所有业务表。
三、难点与解决方案 难点一:AI 分析接口 504 超时。浏览器通过隧道访问开发服务器,隧道层有固定超时限制。解决方案:改为异步任务模式,后端提交任务立即返回 taskId,前端每 3 秒轮询结果。难点二:中文参数编码问题。Tomcat 9 严格模式下 GET 请求中文字符返回 400。解决方案:双重保障——ChineseParamFilterConfig + TomcatConfig,同时列表查询统一改为 POST + @RequestBody。难点三:Maven 依赖下载卡住。解决方案:发现 curl 使用本地代理而 Java 没有,配置 Maven proxy 指向 127.0.0.1:18080,并升级到 Maven 3.9.6。难点四:预