From 67cd940347bfe38ef6aab075a2dbd738bec41ed3 Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期六, 03 十月 2026 14:43:44 +0800
Subject: [PATCH] feat(holiday): support 2019 and previous-day data in new templates
---
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