diff --git a/src/modules/scheduling/SuggestionDetail.tsx b/src/modules/scheduling/SuggestionDetail.tsx
index 71acbfe..2b4b175 100644
--- a/src/modules/scheduling/SuggestionDetail.tsx
+++ b/src/modules/scheduling/SuggestionDetail.tsx
@@ -85,8 +85,8 @@ export default function SuggestionDetail({ suggestion: s, onClose, onNotifySucce
{v.targetName}
|
- 累计 {fmtKm(v.totalMileage)} km
- 考核 {fmtKm(v.yearTarget)} km
+ 本年已跑 {fmtKm(v.currentYearMileage)} km
+ 本年考核 {fmtKm(v.yearTarget)} km
{v.region}
diff --git a/src/modules/scheduling/types.ts b/src/modules/scheduling/types.ts
index 7cbbe12..f78fd0d 100644
--- a/src/modules/scheduling/types.ts
+++ b/src/modules/scheduling/types.ts
@@ -4,6 +4,7 @@ export interface SchedulingVehicleInfo {
targetName: string;
vehicleType: string;
totalMileage: number;
+ currentYearMileage: number;
completionRate: number;
yearTarget: number;
region: string;
diff --git a/src/server/routes/scheduling/algorithm.ts b/src/server/routes/scheduling/algorithm.ts
index 6df30ba..b7d981f 100644
--- a/src/server/routes/scheduling/algorithm.ts
+++ b/src/server/routes/scheduling/algorithm.ts
@@ -35,13 +35,16 @@ export function classifyVehicle(
import type { SchedulingVehicleInfo } from './types.js';
export function toVehicleInfo(v: EnrichedVehicle): SchedulingVehicleInfo {
+ // Use current year completion rate instead of overall
+ const yearCompletionRate = v.yearTarget > 0 ? v.currentYearMileage / v.yearTarget : 0;
return {
plateNumber: v.plateNumber,
targetId: v.targetId,
targetName: v.targetName,
vehicleType: v.vehicleType,
totalMileage: v.totalMileage,
- completionRate: v.completionRate,
+ currentYearMileage: v.currentYearMileage,
+ completionRate: yearCompletionRate,
yearTarget: v.yearTarget,
region: v.region,
province: v.province,
@@ -152,7 +155,8 @@ export function generateSuggestions(
})
.slice(0, 5);
- const reason = `${vehicle.customer}日均里程 ${Math.round(vehicle.customerAvgDaily)} KM(高里程),该车已达标(完成率 ${Math.round(vehicle.completionRate * 100)}%),建议换上里程缺口大的车辆以加速达标。`;
+ const yearRate = vehicle.yearTarget > 0 ? Math.round((vehicle.currentYearMileage / vehicle.yearTarget) * 100) : 0;
+ const reason = `${vehicle.customer}日均里程 ${Math.round(vehicle.customerAvgDaily)} KM(高里程),该车本年完成率 ${yearRate}%,建议换上里程缺口大的车辆以加速达标。`;
suggestions.push({
id: `qualified-${vehicle.plateNumber}`,
diff --git a/src/server/routes/scheduling/types.ts b/src/server/routes/scheduling/types.ts
index eac2b5a..73e6158 100644
--- a/src/server/routes/scheduling/types.ts
+++ b/src/server/routes/scheduling/types.ts
@@ -4,7 +4,8 @@ export interface SchedulingVehicleInfo {
targetName: string;
vehicleType: string;
totalMileage: number;
- completionRate: number;
+ currentYearMileage: number;
+ completionRate: number; // 本年完成率 currentYearMileage / yearTarget
yearTarget: number;
region: string;
province: string;