From bdcd315656cf31777522ed1f7c9f72668d377903 Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期一, 05 十月 2026 06:36:07 +0800
Subject: [PATCH] fix(holiday): 走势图折线数值标签回到贴近本点并加白描边

---
 traffic-audit-server/src/main/java/com/trafficaudit/holiday/service/HolidayStatService.java |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/traffic-audit-server/src/main/java/com/trafficaudit/holiday/service/HolidayStatService.java b/traffic-audit-server/src/main/java/com/trafficaudit/holiday/service/HolidayStatService.java
index 8ccd624..3015c71 100644
--- a/traffic-audit-server/src/main/java/com/trafficaudit/holiday/service/HolidayStatService.java
+++ b/traffic-audit-server/src/main/java/com/trafficaudit/holiday/service/HolidayStatService.java
@@ -138,16 +138,24 @@
             }
         }
         if (target == null) return null;
+        return dailyMetrics(year, holidayType, dayIndex, target.getHolidayDate());
+    }
 
+    public DailyMetrics dailyMetricsByDate(LocalDate date) {
+        if (date == null) return null;
+        return dailyMetrics(date.getYear(), null, 0, date);
+    }
+
+    private DailyMetrics dailyMetrics(int year, String holidayType, int dayIndex, LocalDate date) {
         Map<LocalDate, Map<String, BigDecimal>> passengerByDate = loadPassengerByDate(year);
         Map<LocalDate, Map<String, BigDecimal>> vehicleByDate = loadVehicleByDate(year);
         Map<LocalDate, BigDecimal> comparisonBaseByDate = loadComparisonBaseByDate(year);
-        Map<String, BigDecimal> passenger = passengerByDate.getOrDefault(target.getHolidayDate(), Collections.emptyMap());
-        Map<String, BigDecimal> vehicle = vehicleByDate.getOrDefault(target.getHolidayDate(), Collections.emptyMap());
+        Map<String, BigDecimal> passenger = passengerByDate.getOrDefault(date, Collections.emptyMap());
+        Map<String, BigDecimal> vehicle = vehicleByDate.getOrDefault(date, Collections.emptyMap());
         BigDecimal coefficient = configService.coefficientOf(year, HolidayConstants.CATEGORY_HOLIDAY);
         BigDecimal expressway = vehicle.get(HolidayConstants.ROAD_EXPRESSWAY);
         BigDecimal nationalProvincial = vehicle.get(HolidayConstants.ROAD_NATIONAL_PROVINCIAL);
-        BigDecimal comparisonBase = comparisonBaseByDate.get(target.getHolidayDate());
+        BigDecimal comparisonBase = comparisonBaseByDate.get(date);
         BigDecimal nonBusiness = null;
         if (coefficient != null && (expressway != null || nationalProvincial != null)) {
             nonBusiness = HolidayNumberUtils.multiply(
@@ -158,7 +166,7 @@
         metrics.setYear(year);
         metrics.setHolidayType(holidayType);
         metrics.setDayIndex(dayIndex);
-        metrics.setDate(target.getHolidayDate());
+        metrics.setDate(date);
         metrics.setRail(passenger.get(HolidayConstants.MODE_RAIL));
         metrics.setCivilAviation(passenger.get(HolidayConstants.MODE_CIVIL_AVIATION));
         metrics.setRoad(passenger.get(HolidayConstants.MODE_ROAD));

--
Gitblit v1.9.1