本系统实现了完整的车辆异常运行监控告警功能,用于监控无任务状态下车辆的异常运行情况,并通过企业微信/小程序及时告警通知相关负责人。
.
├── doc/ # 文档目录
│ ├── 车辆异常运行监控告警功能说明.md # 功能说明
│ ├── 车辆异常运行监控告警-快速部署指南.md # 后端部署
│ ├── 车辆异常运行监控告警-前端部署指南.md # 前端部署
│ ├── 车辆异常运行监控告警-完整实现总结.md # 实现总结
│ └── 车辆异常运行监控告警-README.md # 本文档
│
├── sql/
│ └── vehicle_abnormal_alert.sql # 数据库初始化脚本
│
├── ruoyi-system/ # 后端核心模块
│ ├── src/main/java/com/ruoyi/system/
│ │ ├── domain/ # 实体类
│ │ │ ├── VehicleAbnormalAlert.java # 告警记录实体
│ │ │ └── VehicleAlertConfig.java # 告警配置实体
│ │ ├── mapper/ # Mapper接口
│ │ │ ├── VehicleAbnormalAlertMapper.java
│ │ │ └── VehicleAlertConfigMapper.java
│ │ └── service/ # Service层
│ │ ├── IVehicleAbnormalAlertService.java
│ │ ├── IVehicleAlertConfigService.java
│ │ └── impl/
│ │ ├── VehicleAbnormalAlertServiceImpl.java
│ │ └── VehicleAlertConfigServiceImpl.java
│ └── src/main/resources/mapper/system/
│ ├── VehicleAbnormalAlertMapper.xml
│ └── VehicleAlertConfigMapper.xml
│
├── ruoyi-admin/ # Controller层
│ └── src/main/java/com/ruoyi/web/controller/system/
│ ├── VehicleAbnormalAlertController.java
│ └── VehicleAlertConfigController.java
│
├── ruoyi-quartz/ # 定时任务
│ └── src/main/java/com/ruoyi/quartz/task/
│ └── VehicleAbnormalAlertTask.java # 监控定时任务
│
└── ruoyi-ui/ # 前端项目
├── src/api/system/ # API接口
│ ├── vehicleAlert.js
│ ├── vehicleAlertConfig.js
│ └── vehicle.js
└── src/views/system/ # 页面组件
├── vehicleAlert/
│ └── index.vue # 告警记录列表
└── vehicleAlertConfig/
└── index.vue # 告警配置管理
mysql -u root -p database_name < sql/vehicle_abnormal_alert.sql
登录后台系统,进入 系统管理 > 参数设置,确认以下参数:
| 参数键名 | 默认值 | 说明 |
|---|---|---|
| vehicle.alert.enabled | true | 功能总开关 |
| vehicle.alert.mileage.threshold | 10 | 公里数阈值(km) |
| vehicle.alert.daily.limit | 5 | 每日告警次数 |
| vehicle.alert.interval.minutes | 5 | 告警间隔(分钟) |
| vehicle.alert.time.window | 10 | 监控时间窗口(分钟) |
| vehicle.alert.notify.users | 1 | 默认通知用户ID |
进入 系统监控 > 定时任务,找到"车辆异常运行监控"任务,点击启动。
进入 系统管理 > 菜单管理,添加以下菜单并分配权限:
- 车辆异常告警 (/system/vehicleAlert)
- 告警配置管理 (/system/vehicleAlertConfig)
进入 车辆监控 > 告警配置管理,创建全局配置或针对特定部门/车辆的配置。
系统支持三级配置策略,按以下优先级应用:
车辆配置 (最高优先级)
↓ 不存在时
部门配置
↓ 不存在时
全局配置 (默认配置)
配置示例:
1. 创建全局配置:阈值10km,每日5次,间隔5分钟
2. 为"分公司A"创建部门配置:阈值8km
3. 为"车辆A001"创建车辆配置:阈值12km
生效结果:
- 车辆A001使用12km阈值
- 分公司A的其他车辆使用8km阈值
- 其他车辆使用10km阈值
告警列表页面提供实时统计:
- 未处理告警:红色显示,需要优先处理
- 今日告警:当天产生的告警数量
- 累计告警车辆:历史产生过告警的车辆数
- 累计告警次数:总告警记录数
执行频率:每5分钟执行一次
Cron表达式:0 0/5 * * * ?
任务方法:vehicleAbnormalAlertTask.monitorVehicleAbnormalRunning
可根据实际需求调整执行频率,建议范围:
- 最短:1分钟 (0 0/1 * * * ?)
- 推荐:5分钟 (0 0/5 * * * ?)
- 最长:30分钟 (0 0/30 * * * ?)
通知方式:企业微信消息推送
通知内容:车辆信息 + 运行里程 + 时间范围
通知用户:
1. 优先使用配置表中的通知用户列表
2. 其次根据车辆归属部门查找负责人
3. 最后使用系统参数中的默认用户
系统运行监控建议关注以下指标:
检查清单:
- [ ] 功能开关是否启用
- [ ] 定时任务是否启动
- [ ] 车辆是否有GPS数据
- [ ] 里程是否超过阈值
- [ ] 是否已达到频率限制
检查清单:
- [ ] 企业微信服务是否启用
- [ ] 通知用户ID是否配置
- [ ] 用户ID是否有效
- [ ] 企业微信应用配置是否正确
- [ ] 网络连接是否正常
优化建议:
- 适当增加定时任务执行间隔
- 为数据库表添加索引
- 定期清理历史数据
- 考虑使用缓存
详见各部署指南的"常见问题"章节
初始版本发布
代码统计:
- SQL脚本:1个文件,123行
- Java代码:11个文件,1,785行
- Vue代码:5个文件,1,151行
- 文档:5个文件,1,573+行
本项目遵循 RuoYi 框架的许可证协议
开发时间:2026-01-12
项目状态:✅ 已完成
维护团队:AI开发助手