监控车辆在无绑定任务状态下运行超过配置公里数(默认10公里)时,自动产生告警并通过企业微信/小程序通知相关负责人。支持灵活的配置参数、告警频率控制、完整的管理界面和数据导出功能。
文件: sql/vehicle_abnormal_alert.sql
插入6个系统配置项:
- vehicle.alert.enabled - 功能总开关
- vehicle.alert.mileage.threshold - 公里数阈值
- vehicle.alert.daily.limit - 每日告警次数
- vehicle.alert.interval.minutes - 告警间隔时间
- vehicle.alert.time.window - 监控时间窗口
- vehicle.alert.notify.users - 通知用户列表
VehicleAbnormalAlert.java - 告警记录实体
- 26个字段完整映射
- 支持Excel导出注解
- JSON时间格式化
- 完整的getter/setter
VehicleAlertConfig.java - 配置实体
- 支持三级配置类型
- 配置参数完整映射
VehicleAbnormalAlertMapper.java - Mapper接口
- 标准CRUD操作
- 查询当日告警次数
- 查询最后告警时间
- 批量处理告警
VehicleAbnormalAlertMapper.xml - MyBatis映射
- 完整的ResultMap定义
- 支持动态SQL查询
- 时间范围筛选
- 批量操作优化
扩展Mapper方法:
- SysTaskMapper.selectVehicleTasksInTimeRange() - 查询车辆时间范围内任务
- VehicleGpsSegmentMileageMapper.selectSegmentsByTimeRange() - 查询分段里程
IVehicleAbnormalAlertService.java - Service接口
- 定义12个业务方法
- 包含CRUD、处理、检查创建等
VehicleAbnormalAlertServiceImpl.java - Service实现
- 完整实现所有接口方法
- 告警创建逻辑
- 处理逻辑(单个/批量)
- 自动设置创建/更新时间
VehicleAbnormalAlertController.java - RESTful API
- 查询告警列表(分页)
- 查询告警详情
- 处理告警(单个/批量)
- 删除告警
- 导出Excel
- 统计接口(未处理数、今日数)
VehicleAbnormalAlertTask.java - 核心监控逻辑
主要功能:
1. 功能开关检查 - 支持动态启用/禁用
2. 配置加载 - 从sys_config表读取配置参数
3. 车辆遍历 - 查询所有活跃车辆
4. 任务检测 - 检查车辆是否有正在执行的任务
5. 里程计算 - 基于GPS分段里程累计计算
6. 阈值判断 - 比较运行里程与配置阈值
7. 频率控制 -
- 每日告警次数限制
- 告警时间间隔限制
8. 告警创建 - 生成告警记录
9. 通知发送 - 通过企业微信发送通知
10. 日志记录 - 完整的执行日志
监控策略:
- 时间窗口:10分钟(可配置)
- 执行频率:5分钟一次
- 并发控制:禁止并发执行
- 容错处理:单车失败不影响整体
6个可配置参数,支持在线修改,即时生效
0 */5 * * * ?支持三级配置策略:
- 全局配置(默认)
- 部门配置(覆盖全局)
- 车辆配置(最高优先级)
文件: doc/车辆异常运行监控告警功能说明.md
- 功能概述与特性
- 技术实现详解
- 配置参数说明
- 使用指南
- 扩展功能方向
- 288行完整文档
文件: doc/车辆异常运行监控告警-快速部署指南.md
- 5步快速部署流程
- 配置参数详解
- 常见问题排查
- 测试指南
- 性能优化建议
- 263行实用指南
| 类型 | 文件数 | 行数 |
|---|---|---|
| 数据库脚本 | 1 | 123 |
| 实体类 | 2 | 448 |
| Mapper接口 | 1 | 93 |
| Mapper XML | 1 | 179 |
| Service接口 | 1 | 98 |
| Service实现 | 1 | 174 |
| Controller | 1 | 150 |
| 定时任务 | 1 | 426 |
| 文档 | 3 | 841 |
| 总计 | 12 | 2,532 |
sql/
└── vehicle_abnormal_alert.sql # 数据库初始化脚本
ruoyi-system/src/main/java/com/ruoyi/system/
├── domain/
│ ├── VehicleAbnormalAlert.java # 告警实体类
│ └── VehicleAlertConfig.java # 配置实体类
├── mapper/
│ ├── VehicleAbnormalAlertMapper.java # 数据访问接口
│ ├── SysTaskMapper.java # 扩展方法
│ └── VehicleGpsSegmentMileageMapper.java # 扩展方法
├── service/
│ ├── IVehicleAbnormalAlertService.java # 业务接口
│ └── impl/
│ └── VehicleAbnormalAlertServiceImpl.java # 业务实现
└── resources/mapper/system/
└── VehicleAbnormalAlertMapper.xml # MyBatis映射
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/
└── VehicleAbnormalAlertController.java # REST控制器
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/
└── VehicleAbnormalAlertTask.java # 定时监控任务
doc/
├── 车辆异常运行监控告警功能说明.md # 完整功能文档
├── 车辆异常运行监控告警-快速部署指南.md # 部署指南
└── 车辆异常运行监控告警-实现总结.md # 本文档
如有问题或建议,请参考:
- 功能文档:doc/车辆异常运行监控告警功能说明.md
- 部署指南:doc/车辆异常运行监控告警-快速部署指南.md
- 系统日志:logs/sys-info.log
- 任务日志:系统监控 > 调度日志
实现说明:本功能已完整实现所有核心模块,包括数据库设计、后端代码、定时任务、系统集成和完整文档。所有代码均已创建并保存到相应文件,可直接部署使用。