返回作品

岸基监控系统

创建于 2025 年 3 月 21 日

标签
  • Java 8
  • Spring Boot 2.5
  • RuoYi-Vue 3.8.9
  • easy-query
  • MyBatis-Plus
  • MySQL
  • Vue 2
  • Element UI
  • 高德地图 JS API
  • Hutool
  • JavaMail

项目介绍

海上无人船(或小型船舶)执行任务时,岸基需要实时掌握其位置、航行状态与设备健康度,而近海通信条件有限,往往依赖北斗链路。这个项目为这一场景搭建了一套完整的岸基监控闭环:船上 SV3 终端(太阳能供电)通过北斗通讯与岸基交互,把位置和遥测数据以”设备位置通知”邮件的形式回传;岸基系统定时读取邮箱、解析邮件、更新设备数据并沉淀位置日志;值班人员在 Web 端的高德地图上直观看到船只分布、遥测详情与历史轨迹,并通过邮件通道向设备下发航行指令。

核心功能

  • 设备信息管理/app/info/* 接口提供设备列表(列表接口会顺带查出每台设备按时间倒序的位置日志挂到 deviceLogs 字段)、详情、新增、修改、物理删除与 Excel 导出(ExcelUtil + POI)。前端设备列表页支持按设备唯一标识、通讯方式、设备类型、通讯 ID、北斗接收方号码、协议名称、目标端口、设备类八个条件组合筛选,并提供”历史航行”操作按钮,用 el-timeline 时间线展示某台设备的航行记录。
  • 地图实时监控:地图默认以上海附近海域(122.20, 31.10)为中心,页面加载后调用设备列表接口把经纬度转换为 AMap.LngLat 生成标记;按 deviceId 首位数字分类——1 渔船红色、2 货船蓝色、3 科考船绿色、4 客运船黄色,标记带掉落动画与彩色标签。点击标记弹出设备详情对话框,含基本信息(通讯方式、设备类型、接收时间)、详细信息(航行速度、航向角、海水温度、湿度、风向、风速、设备舱温度、电池电量、通讯质量、工作状态)与指令发送三个页签;页面每分钟刷新一次设备数据、每 5 分钟读取一次邮箱,保证位置与遥测接近实时。
  • 邮件数据回流:后端以 POP3 读取 163 邮箱,仅处理主题包含”设备位置通知”的邮件,递归解析邮件正文并 JSONObject.parseObject 还原设备对象,更新设备遥测数据(速度、航向、水温、湿度、风向、风速、设备温度、电池电量、信号质量、工作状态、经纬度),并按设备 ID 写入位置日志;前端”读取邮件”按钮可直接触发该流程并刷新页面数据。
  • 指令下发与位置上报:指令表单支持设置航行目标点(经纬度)、传感器控制开关(海水温度、湿度、风向、设备舱温度)与系统信息获取,前端把指令拼装为邮件正文通过 /app/mail/send(Hutool MailUtil + mail.setting 配置)发送给设备,发送结果以操作结果弹窗反馈(仅 admin 角色可发送);“当前位置(模拟)“页签支持手动录入并保存全部遥测数据(保存后自动追加位置日志、刷新地图标记),也可一键把当前位置信息以邮件发送并记录日志。

功能截图

暂无运行截图。