feat: add vehicle mileage statistics

This commit is contained in:
lingniu
2026-07-14 13:18:52 +08:00
parent bb59303a4b
commit 6cddc0a43d
15 changed files with 522 additions and 1 deletions

View File

@@ -25,6 +25,7 @@ import type {
MetricCatalog,
LatestTelemetryResponse,
MileageSummary,
MileageStatistics,
MapReverseGeocode,
MonitorMapResponse,
MonitorSummary,
@@ -201,6 +202,7 @@ export const api = {
}),
mileageSummary: (params = new URLSearchParams()) => request<MileageSummary>(`/api/mileage/summary?${params.toString()}`),
dailyMileage: (params = new URLSearchParams()) => request<Page<DailyMileageRow>>(`/api/mileage/daily?${params.toString()}`),
mileageStatistics: (params = new URLSearchParams()) => request<MileageStatistics>(`/api/v2/statistics/mileage?${params.toString()}`),
onlineStatisticsSummary: (params = new URLSearchParams()) => request<OnlineStatisticsSummary>(`/api/statistics/online-summary?${params.toString()}`),
onlineVehicleStatuses: (params = new URLSearchParams()) => request<Page<OnlineVehicleStatusRow>>(`/api/statistics/online-vehicles?${params.toString()}`),
qualitySummary: (params = new URLSearchParams()) => request<QualitySummary>(`/api/quality/summary?${params.toString()}`),

View File

@@ -585,6 +585,14 @@ export interface MileageSummary {
averageMileagePerVin: number;
}
export interface MileageTrendPoint { date: string; mileageKm: number; vehicles: number; }
export interface MileageVehicleRank { vin: string; plate: string; mileageKm: number; latestMileageKm: number; activeDays: number; }
export interface MileageStatistics {
dateFrom: string; dateTo: string; vehicleCount: number; recordCount: number; sourceCount: number;
periodMileageKm: number; fleetLatestMileageKm: number; averageMileagePerVin: number; averageDailyMileageKm: number;
trend: MileageTrendPoint[]; ranking: MileageVehicleRank[]; asOf: string; evidence: string;
}
export interface OnlineStatisticsSummary {
vehicleCount: number;
onlineVehicleCount: number;