From 37f52097847f9025589c79034be2454432c55433 Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期五, 02 十月 2026 10:12:27 +0800
Subject: [PATCH] docs(交接): 记录关机前开发服务已停止

---
 traffic-audit-server/src/main/java/com/trafficaudit/holiday/HolidayConstants.java |  116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 116 insertions(+), 0 deletions(-)

diff --git a/traffic-audit-server/src/main/java/com/trafficaudit/holiday/HolidayConstants.java b/traffic-audit-server/src/main/java/com/trafficaudit/holiday/HolidayConstants.java
new file mode 100644
index 0000000..a3e18cc
--- /dev/null
+++ b/traffic-audit-server/src/main/java/com/trafficaudit/holiday/HolidayConstants.java
@@ -0,0 +1,116 @@
+package com.trafficaudit.holiday;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.Map;
+import java.util.Set;
+
+public final class HolidayConstants {
+    public static final int COMPARISON_BASE_YEAR = 2026;
+
+    public static final String TYPE_SPRING_FESTIVAL = "SPRING_FESTIVAL";
+
+    public static final String TYPE_LABOR_DAY = "LABOR_DAY";
+    public static final String TYPE_NATIONAL_DAY = "NATIONAL_DAY";
+
+    public static final String CATEGORY_HOLIDAY = "HOLIDAY";
+    public static final String CATEGORY_NON_HOLIDAY = "NON_HOLIDAY";
+
+    public static final String MODE_RAIL = "RAIL";
+    public static final String MODE_CIVIL_AVIATION = "CIVIL_AVIATION";
+    public static final String MODE_ROAD = "ROAD";
+    public static final String MODE_WATER = "WATER";
+
+    public static final String ROAD_EXPRESSWAY = "EXPRESSWAY";
+    public static final String ROAD_NATIONAL_PROVINCIAL = "NATIONAL_PROVINCIAL";
+
+    public static final String VEHICLE_SMALL_PASSENGER = "SMALL_PASSENGER";
+    public static final String VEHICLE_MEDIUM_SMALL_PASSENGER = "MEDIUM_SMALL_PASSENGER";
+
+    public static final Map<String, String> HOLIDAY_TYPE_LABELS;
+    public static final Map<String, String> DATE_CATEGORY_LABELS;
+    public static final Map<String, String> TRANSPORT_MODE_LABELS;
+    public static final Map<String, String> ROAD_CATEGORY_LABELS;
+    public static final Map<String, String> VEHICLE_TYPE_LABELS;
+
+    private static final Set<String> HOLIDAY_TYPES;
+    private static final Set<String> DATE_CATEGORIES;
+    private static final Set<String> TRANSPORT_MODES;
+    private static final Set<String> ROAD_CATEGORIES;
+    private static final Set<String> VEHICLE_TYPES;
+
+    static {
+        Map<String, String> holidayTypes = new LinkedHashMap<>();
+        holidayTypes.put(TYPE_SPRING_FESTIVAL, "鏄ヨ妭");
+        holidayTypes.put(TYPE_LABOR_DAY, "浜斾竴");
+        holidayTypes.put(TYPE_NATIONAL_DAY, "鍗佷竴");
+        HOLIDAY_TYPE_LABELS = Collections.unmodifiableMap(holidayTypes);
+        HOLIDAY_TYPES = new LinkedHashSet<>(holidayTypes.keySet());
+
+        Map<String, String> dateCategories = new LinkedHashMap<>();
+        dateCategories.put(CATEGORY_HOLIDAY, "鑺傚亣鏃�");
+        dateCategories.put(CATEGORY_NON_HOLIDAY, "闈炶妭鍋囨棩");
+        DATE_CATEGORY_LABELS = Collections.unmodifiableMap(dateCategories);
+        DATE_CATEGORIES = new LinkedHashSet<>(dateCategories.keySet());
+
+        Map<String, String> transportModes = new LinkedHashMap<>();
+        transportModes.put(MODE_RAIL, "閾佽矾");
+        transportModes.put(MODE_CIVIL_AVIATION, "姘戣埅");
+        transportModes.put(MODE_ROAD, "閬撹矾");
+        transportModes.put(MODE_WATER, "姘磋矾");
+        TRANSPORT_MODE_LABELS = Collections.unmodifiableMap(transportModes);
+        TRANSPORT_MODES = new LinkedHashSet<>(transportModes.keySet());
+
+        Map<String, String> roadCategories = new LinkedHashMap<>();
+        roadCategories.put(ROAD_EXPRESSWAY, "楂橀�熷叕璺�");
+        roadCategories.put(ROAD_NATIONAL_PROVINCIAL, "鏅�氬浗鐪侀亾");
+        ROAD_CATEGORY_LABELS = Collections.unmodifiableMap(roadCategories);
+        ROAD_CATEGORIES = new LinkedHashSet<>(roadCategories.keySet());
+
+        Map<String, String> vehicleTypes = new LinkedHashMap<>();
+        vehicleTypes.put(VEHICLE_SMALL_PASSENGER, "灏忓杞�");
+        vehicleTypes.put(VEHICLE_MEDIUM_SMALL_PASSENGER, "涓皬瀹㈣溅");
+        VEHICLE_TYPE_LABELS = Collections.unmodifiableMap(vehicleTypes);
+        VEHICLE_TYPES = new LinkedHashSet<>(vehicleTypes.keySet());
+    }
+
+    private HolidayConstants() {
+    }
+
+    public static boolean supportsComparisonBase(int year) {
+        return year == COMPARISON_BASE_YEAR;
+    }
+
+    public static boolean isValidHolidayType(String value) {
+        return HOLIDAY_TYPES.contains(value);
+    }
+
+    public static boolean isValidDateCategory(String value) {
+        return DATE_CATEGORIES.contains(value);
+    }
+
+    public static boolean isValidTransportMode(String value) {
+        return TRANSPORT_MODES.contains(value);
+    }
+
+    public static boolean isValidRoadCategory(String value) {
+        return ROAD_CATEGORIES.contains(value);
+    }
+
+    public static boolean isValidVehicleType(String value) {
+        return VEHICLE_TYPES.contains(value);
+    }
+
+    public static Map<String, Object> optionMap() {
+        Map<String, Object> options = new LinkedHashMap<>();
+        options.put("holidayTypes", HOLIDAY_TYPE_LABELS);
+        options.put("dateCategories", DATE_CATEGORY_LABELS);
+        options.put("transportModes", TRANSPORT_MODE_LABELS);
+        options.put("roadCategories", ROAD_CATEGORY_LABELS);
+        options.put("vehicleTypes", VEHICLE_TYPE_LABELS);
+        options.put("years", Arrays.asList(2024, 2025, 2026));
+        return options;
+    }
+}

--
Gitblit v1.9.1