From a3dfe7ab8cc1f8373797831e5fbf22f8846418c3 Mon Sep 17 00:00:00 2001 From: kkfluous Date: Wed, 3 Jun 2026 11:32:50 +0800 Subject: [PATCH] =?UTF-8?q?fix(mileage):=20=E6=9C=AA=E5=88=B0=E6=9C=9F?= =?UTF-8?q?=E5=B9=B4=E5=BA=A6=E7=B4=AF=E8=AE=A1=E5=AF=B9=E9=BD=90=E5=AE=9E?= =?UTF-8?q?=E6=97=B6=E7=9B=91=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/routes/mileage/targets.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/server/routes/mileage/targets.ts b/src/server/routes/mileage/targets.ts index 93dc128..890346c 100644 --- a/src/server/routes/mileage/targets.ts +++ b/src/server/routes/mileage/targets.ts @@ -192,6 +192,10 @@ app.get('/', async (c) => { } cutoffMileageMapByDate.set(date, map); } + const currentMileageMap = new Map(); + for (const vehicle of await queryDateMileage(todayStr)) { + if (vehicle.totalKm != null) currentMileageMap.set(vehicle.plate, vehicle.totalKm); + } const yearlyMetricMap = new Map { const key = `${row.target_id}-${year}`; const goal = annualMileage * year; const endDate = addYearsMinusOneDay(row.assessment_start_date, year); - const cutoffMap = endDate < todayStr ? cutoffMileageMapByDate.get(endDate) : undefined; + const cutoffMap = endDate < todayStr ? cutoffMileageMapByDate.get(endDate) : currentMileageMap; const mileageAtCutoff = Math.max(0, cutoffMap?.get(row.plate_number) ?? (Number(row.current_mileage) || 0)); const completed = Math.min(mileageAtCutoff, goal); const draft = yearlyMetricDraftMap.get(key) || {