车辆GPS行驶统计管理界面
功能概述
在 ruoyi-ui 后台管理系统中新增了车辆GPS行驶统计功能,用于查看和管理车辆的GPS里程统计数据。
新增文件
1. 前端页面
- 文件路径:
ruoyi-ui/src/views/system/mileageStats/index.vue
- 功能: 车辆里程统计管理界面
2. API接口文件
- 文件路径:
ruoyi-ui/src/api/system/mileageStats.js
- 功能: 车辆里程统计相关的API接口调用
主要功能
1. 数据查询与展示
- ✅ 支持按车牌号、车辆ID、统计日期查询
- ✅ 支持日期范围查询
- ✅ 分页显示统计数据
- ✅ 实时展示以下数据:
- 车辆ID、车牌号
- 统计日期
- 总里程(km)
- 任务里程(km)
- 非任务里程(km)
- 任务占比(带颜色标签)
- GPS点数量
- 任务数量
- 统计时间
2. 手动统计
- ✅ 可指定车辆ID和统计日期
- ✅ 手动触发单个车辆的里程计算
- ✅ 实时显示统计进度
3. 批量统计
- ✅ 可指定统计日期
- ✅ 自动对所有活跃车辆进行里程计算
- ✅ 提示用户等待时间可能较长
4. 数据详情
- ✅ 查看详细的里程统计信息
- ✅ 使用描述列表美观展示
5. 数据导出
- ✅ 支持将统计数据导出为Excel文件
- ✅ 可按查询条件导出
6. 数据删除
- ✅ 支持单条或批量删除统计记录
- ✅ 删除前二次确认
界面特色
1. 任务占比颜色标识
- 🟢 绿色 (success): 占比 ≥ 80%
- 🔵 蓝色 (primary): 占比 60% - 79%
- 🟡 橙色 (warning): 占比 40% - 59%
- 🔴 红色 (danger): 占比 < 40%
- ⚪ 灰色 (info): 无数据
2. 数据高亮显示
- 总里程:蓝色加粗
- 任务里程:绿色加粗
- 详情数据:大字号加粗
权限配置
需要在系统菜单中配置以下权限标识:
system:mileageStats:list # 查询列表
system:mileageStats:query # 查看详情
system:mileageStats:export # 导出数据
system:mileageStats:remove # 删除数据
system:mileageStats:calculate # 手动统计
system:mileageStats:batch # 批量统计
菜单配置示例
在系统管理 → 菜单管理中添加:
菜单名称: 车辆里程统计
父菜单: 系统管理
菜单类型: 菜单
路由地址: mileageStats
组件路径: system/mileageStats/index
权限标识: system:mileageStats:list
菜单图标: chart
后端接口
后端接口已完成,路径为:
- Controller: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/VehicleMileageStatsController.java
- Service: ruoyi-system/src/main/java/com/ruoyi/system/service/impl/VehicleMileageStatsServiceImpl.java
接口列表
| 接口路径 |
方法 |
说明 |
| /system/mileageStats/list |
GET |
查询统计列表 |
| /system/mileageStats/{statsId} |
GET |
获取统计详情 |
| /system/mileageStats/{statsIds} |
DELETE |
删除统计记录 |
| /system/mileageStats/export |
POST |
导出统计数据 |
| /system/mileageStats/calculate |
POST |
手动计算统计 |
| /system/mileageStats/batchCalculate |
POST |
批量计算统计 |
使用说明
1. 查看统计数据
- 在后台管理系统中访问"车辆里程统计"菜单
- 可以通过车牌号、车辆ID、日期等条件筛选数据
- 点击"详情"按钮查看完整的统计信息
2. 手动统计单个车辆
- 点击"手动统计"按钮
- 输入车辆ID和统计日期
- 点击"开始统计",系统将计算该车辆在指定日期的里程数据
3. 批量统计所有车辆
- 点击"批量统计"按钮
- 选择统计日期
- 点击"开始统计",系统将计算所有活跃车辆在该日期的里程数据
- 注意:此操作可能需要较长时间,请耐心等待
4. 导出数据
- 设置查询条件(可选)
- 点击"导出"按钮
- 系统将生成Excel文件供下载
数据说明
- 总里程: 车辆在统计日期内的总行驶里程
- 任务里程: 车辆在执行任务期间的行驶里程
- 非任务里程: 车辆在非任务时段的行驶里程
- 任务占比: 任务里程 / 总里程的比例
- GPS点数: 统计日期内记录的GPS定位点数量
- 任务数: 统计日期内车辆执行的任务数量
注意事项
- 统计数据基于GPS定位点计算,需要车辆安装GPS设备并正常上传数据
- 批量统计可能消耗较多系统资源,建议在业务低峰期执行
- 建议定期清理历史统计数据,保留必要的时间范围即可
- 如果统计结果为0,可能是该日期内无GPS数据或无任务数据
技术实现
里程计算方法
- 使用 Haversine公式 计算GPS坐标点之间的距离
- 根据任务时间段自动分配里程到任务/非任务类别
- 精确到小数点后2位
数据来源
- GPS数据表:
tb_vehicle_gps
- 任务数据表:
sys_task
- 统计结果表:
tb_vehicle_mileage_stats
未来扩展
可以考虑增加以下功能:
- 📊 统计图表展示(折线图、饼图等)
- 📅 月度、年度汇总统计
- 📈 车辆里程趋势分析
- 🚗 车辆利用率分析
- 💰 里程成本核算