From cdccc9840978adb989f173b8d4763b7b5677f9b5 Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期六, 03 十月 2026 18:49:19 +0800
Subject: [PATCH] feat(holiday): expose 2019 holiday configuration
---
HANDOFF.md | 1 +
deploy-templates/db/sql_holiday_previous_day_migration.sql | 12 ++++++++++--
docs/database.md | 2 +-
traffic-audit-server/src/main/java/com/trafficaudit/holiday/service/HolidayWorkbookService.java | 10 +++++++---
traffic-audit-web/src/views/HolidayStat.vue | 2 +-
docs/sql_holiday_previous_day_migration.sql | 12 ++++++++++--
traffic-audit-web/src/views/SystemConfig.vue | 2 +-
traffic-audit-server/src/main/java/com/trafficaudit/holiday/HolidayConstants.java | 2 +-
8 files changed, 32 insertions(+), 11 deletions(-)
diff --git a/HANDOFF.md b/HANDOFF.md
index f550548..c6dff64 100644
--- a/HANDOFF.md
+++ b/HANDOFF.md
@@ -12,6 +12,7 @@
- **姝e父瀵煎叆鍙e緞**锛氬彧璇诲彇鎵�閫夊勾浠界殑褰撳勾鍒楋紙2026 骞撮搧璺�/姘戣埅/閬撹矾/姘磋矾涓� C 鍒椼�侀珮閫熶负 C 鍒椼�佹櫘閫氬浗鐪侀亾涓� D 鍒楋級锛涘悓鏃跺彧棰濆璇诲彇褰撳墠骞翠唤閾佽矾/姘戣埅鐨勨�滃墠涓�鏃モ�濊銆�2019/2024/2025 鍘嗗彶鍒椾笉鍙備笌瀵煎叆銆�
- **蹇姤鍙e緞**锛氬悓姣斿彧浣跨敤 2025銆�2024锛涘亣鏈熺 1 鏃ョ殑閾佽矾銆佹皯鑸幆姣斾娇鐢ㄢ�滃墠涓�鏃モ�濇暟鎹紝鍏矾銆佹按璺�佹�昏鍙婂叾浠栧彛寰勭 1 鏃ヤ粛鏄剧ず鈥溾�斺�濓紱绗� 2 鏃ヨ捣姝e父璁$畻鐜瘮銆�
- **杩佺Щ鑴氭湰**锛歚docs/sql_holiday_previous_day_migration.sql`锛岄儴缃插寘鍚屾涓� `deploy-templates/db/sql_holiday_previous_day_migration.sql`锛岃剼鏈彲閲嶅鎵ц銆�
+- **2019 鏄剧ず琛ラ綈锛�10-03 鏅氳拷鍔狅級**锛歚holiday_calendar` 澧炲姞 2019-10-01 鑷� 2019-10-08 閰嶇疆锛涚郴缁熼厤缃�-鑺傚亣鏃ョ鐞嗗拰涓撻」缁熻-鑺傚亣鏃ュ潎澧炲姞 2019 骞翠唤锛屽巻鍙插簱鎵ц骞傜瓑杩佺Щ鍚庡嵆鍙煡鐪� 2019 骞� 8 澶╅亾璺暟鎹��
- **楠岃瘉锛堟湰鏈� 3305 搴� + 鐪熷疄妯℃澘锛�**锛氭帴鍙e鍏ョ粨鏋� `passengerRows=10, vehicleRows=4, successRows=14, failRows=0`锛涙暟鎹簱鎶芥煡 2026-09-30 閾佽矾=82.1銆佹皯鑸�=6.6994锛�2026-10-01 閾佽矾=113.8銆佹皯鑸�=6.7482銆侀亾璺�=78.82銆佹按璺�=1.311锛�2026-10-02 閾佽矾=82.0銆佹皯鑸�=6.3914銆侀亾璺�=75.61銆佹按璺�=3.3373锛�2026-10-01 蹇姤閾佽矾鐜瘮=+38.6%銆佹皯鑸幆姣�=+0.7%锛屾�昏鐜瘮涓衡�溾�斺�濓紱2026-10-02 閾佽矾鐜瘮=-27.9%銆佹皯鑸幆姣�=-5.3%銆�
- **杩愯鐘舵��**锛氬悗绔� 8090锛堥噸鍚悗宸插姞杞芥柊浠g爜锛夈�佸墠绔� 8080 鍧囧湪杩愯锛涜闂� `http://localhost:8080`銆�
diff --git a/deploy-templates/db/sql_holiday_previous_day_migration.sql b/deploy-templates/db/sql_holiday_previous_day_migration.sql
index c2c1de9..3fcb16c 100644
--- a/deploy-templates/db/sql_holiday_previous_day_migration.sql
+++ b/deploy-templates/db/sql_holiday_previous_day_migration.sql
@@ -1,8 +1,16 @@
--- Add the previous-day row used by rail and civil-aviation ring-ratio calculations.
--- day_index = 0 identifies the configured previous day; normal holiday days remain 1..N.
+-- Backfill the 2019 National Day calendar and previous-day rows used by rail and civil-aviation ring-ratio calculations.
+-- day_index = 0 identifies the configured previous day; 2019 uses normal days 1..8.
INSERT IGNORE INTO holiday_calendar
(year, holiday_type, holiday_date, day_index, created_at, updated_at)
VALUES
+ (2019, 'NATIONAL_DAY', '2019-10-01', 1, NOW(), NOW()),
+ (2019, 'NATIONAL_DAY', '2019-10-02', 2, NOW(), NOW()),
+ (2019, 'NATIONAL_DAY', '2019-10-03', 3, NOW(), NOW()),
+ (2019, 'NATIONAL_DAY', '2019-10-04', 4, NOW(), NOW()),
+ (2019, 'NATIONAL_DAY', '2019-10-05', 5, NOW(), NOW()),
+ (2019, 'NATIONAL_DAY', '2019-10-06', 6, NOW(), NOW()),
+ (2019, 'NATIONAL_DAY', '2019-10-07', 7, NOW(), NOW()),
+ (2019, 'NATIONAL_DAY', '2019-10-08', 8, NOW(), NOW()),
(2024, 'NATIONAL_DAY', '2024-09-30', 0, NOW(), NOW()),
(2025, 'NATIONAL_DAY', '2025-09-30', 0, NOW(), NOW()),
(2026, 'NATIONAL_DAY', '2026-09-30', 0, NOW(), NOW());
diff --git a/docs/database.md b/docs/database.md
index b7ffc90..8367aa5 100644
--- a/docs/database.md
+++ b/docs/database.md
@@ -548,7 +548,7 @@
- 鍏矾浜哄憳娴佸姩閲� = 閬撹矾钀ヤ笟鎬у杩愰噺 + 闈炶惀涓氭�т汉鍛樻祦鍔ㄩ噺銆�
- 鎬讳汉鍛樻祦鍔ㄩ噺 = 鍏矾 + 閾佽矾 + 姘戣埅 + 姘磋矾銆�
- 瀵煎叆鎸夆�滃勾浠� + 鑺傚亣鏃ュ垎绫烩�濊鍙� `holiday_calendar` 涓� `day_index>=1` 鐨勬棩鏈燂紝灏嗗伐浣滅翱鈥滅N鏃モ�濊瑕嗙洊鍐欏叆褰撳勾瀹㈡祦/杞︽祦锛涘悓鏃惰鍙栧綋鍓嶅勾浠介搧璺�佹皯鑸殑鈥滃墠涓�鏃モ�濊锛屽啓鍏� `day_index=0` 瀵瑰簲鐨勬棩鏈熴��
-- 鏃ュ父瀵煎叆鍙鍙栨墍閫夊勾浠界殑褰撳勾鍒楋紙閬撹矾琛ㄧ殑 2019/2024/2025 鍒楀潎涓嶈鍙栵級锛�2019 骞撮亾璺暟鎹拰 2024/2025/2026 骞村墠涓�鏃ラ搧璺�佹皯鑸暟鎹敱鍚姩鍒濆鍖栫洿鎺ュ啓鍏ユ暟鎹簱銆�
+- 鏃ュ父瀵煎叆鍙鍙栨墍閫夊勾浠界殑褰撳勾鍒楋紙閬撹矾琛ㄧ殑 2019/2024/2025 鍒楀潎涓嶈鍙栵級锛�2019 骞撮亾璺暟鎹拰 2024/2025/2026 骞村墠涓�鏃ラ搧璺�佹皯鑸暟鎹敱鍚姩鍒濆鍖栫洿鎺ュ啓鍏ユ暟鎹簱銆�2019 骞� 10 鏈� 1-8 鏃ョ殑 `holiday_calendar` 閰嶇疆鐢ㄤ簬鍦ㄧ郴缁熼厤缃拰鑺傚亣鏃ョ粺璁¢〉鏌ョ湅璇ュ巻鍙插熀绾裤��
- 瀵煎叆鍓嶆鏌ユ瘮鏈鏈�鏂板鍏ユ棩鏇存棭鐨勫巻鍙叉棩鏈熸槸鍚﹀彂鐢熷彉鍖栵紱濡傛湁鍙樺寲鍏堜笉鍐欏簱锛岃繑鍥炲樊寮傛竻鍗曪紝鐢ㄦ埛纭鍚庢墠鍏佽瑕嗙洊銆�
- 璁板綍鈥滃墠涓�鏃モ�濈殑閾佽矾銆佹皯鑸暟鎹悗锛屽亣鏈熺 1 鏃ョ殑閾佽矾銆佹皯鑸幆姣旀寜璇ユ暟鎹绠楋紱鍏矾銆佹按璺�佹�讳汉鍛樻祦鍔ㄩ噺鍦ㄧ 1 鏃ヤ粛涓嶈绠楃幆姣斻��
- 瀵煎嚭浠ユ簮宸ヤ綔绨夸负搴曠锛屽洖濉簱鍐呮暟鎹笌瀹㈣繍绯绘暟锛涘揩鎶ユ寜鏃ユ湡鐢熸垚 Word锛屽悓姣斿浐瀹氫娇鐢� 2025銆�2024 涓ゅ勾锛屼笉浣跨敤 2019 鏁版嵁銆�
diff --git a/docs/sql_holiday_previous_day_migration.sql b/docs/sql_holiday_previous_day_migration.sql
index c2c1de9..3fcb16c 100644
--- a/docs/sql_holiday_previous_day_migration.sql
+++ b/docs/sql_holiday_previous_day_migration.sql
@@ -1,8 +1,16 @@
--- Add the previous-day row used by rail and civil-aviation ring-ratio calculations.
--- day_index = 0 identifies the configured previous day; normal holiday days remain 1..N.
+-- Backfill the 2019 National Day calendar and previous-day rows used by rail and civil-aviation ring-ratio calculations.
+-- day_index = 0 identifies the configured previous day; 2019 uses normal days 1..8.
INSERT IGNORE INTO holiday_calendar
(year, holiday_type, holiday_date, day_index, created_at, updated_at)
VALUES
+ (2019, 'NATIONAL_DAY', '2019-10-01', 1, NOW(), NOW()),
+ (2019, 'NATIONAL_DAY', '2019-10-02', 2, NOW(), NOW()),
+ (2019, 'NATIONAL_DAY', '2019-10-03', 3, NOW(), NOW()),
+ (2019, 'NATIONAL_DAY', '2019-10-04', 4, NOW(), NOW()),
+ (2019, 'NATIONAL_DAY', '2019-10-05', 5, NOW(), NOW()),
+ (2019, 'NATIONAL_DAY', '2019-10-06', 6, NOW(), NOW()),
+ (2019, 'NATIONAL_DAY', '2019-10-07', 7, NOW(), NOW()),
+ (2019, 'NATIONAL_DAY', '2019-10-08', 8, NOW(), NOW()),
(2024, 'NATIONAL_DAY', '2024-09-30', 0, NOW(), NOW()),
(2025, 'NATIONAL_DAY', '2025-09-30', 0, NOW(), NOW()),
(2026, 'NATIONAL_DAY', '2026-09-30', 0, NOW(), NOW());
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
index a3e18cc..10ccab4 100644
--- a/traffic-audit-server/src/main/java/com/trafficaudit/holiday/HolidayConstants.java
+++ b/traffic-audit-server/src/main/java/com/trafficaudit/holiday/HolidayConstants.java
@@ -110,7 +110,7 @@
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));
+ options.put("years", Arrays.asList(2019, 2024, 2025, 2026, 2027, 2028, 2029, 2030));
return options;
}
}
diff --git a/traffic-audit-server/src/main/java/com/trafficaudit/holiday/service/HolidayWorkbookService.java b/traffic-audit-server/src/main/java/com/trafficaudit/holiday/service/HolidayWorkbookService.java
index 5775f22..9c06e00 100644
--- a/traffic-audit-server/src/main/java/com/trafficaudit/holiday/service/HolidayWorkbookService.java
+++ b/traffic-audit-server/src/main/java/com/trafficaudit/holiday/service/HolidayWorkbookService.java
@@ -614,9 +614,10 @@
if (!configService.listHolidays(null, null).isEmpty()) {
return;
}
- int[] lengths = {7, 8, 8};
- for (int i = 0; i < REFERENCE_YEARS.length; i++) {
- int year = REFERENCE_YEARS[i];
+ int[] calendarYears = {2019, 2024, 2025, 2026};
+ int[] lengths = {8, 7, 8, 8};
+ for (int i = 0; i < calendarYears.length; i++) {
+ int year = calendarYears[i];
List<HolidayCalendar> existing = configService.findHolidayDays(year, HolidayConstants.TYPE_NATIONAL_DAY);
Map<Integer, HolidayCalendar> byDay = new LinkedHashMap<>();
for (HolidayCalendar row : existing) {
@@ -633,6 +634,9 @@
calendar.setUpdatedAt(LocalDateTime.now());
configService.saveHoliday(toMap(calendar));
}
+ if (year == 2019) {
+ continue;
+ }
HolidayCalendar previousDay = new HolidayCalendar();
previousDay.setYear(year);
previousDay.setHolidayType(HolidayConstants.TYPE_NATIONAL_DAY);
diff --git a/traffic-audit-web/src/views/HolidayStat.vue b/traffic-audit-web/src/views/HolidayStat.vue
index 6f7f266..db696a7 100644
--- a/traffic-audit-web/src/views/HolidayStat.vue
+++ b/traffic-audit-web/src/views/HolidayStat.vue
@@ -92,7 +92,7 @@
name: 'HolidayStat',
data() {
return {
- years: [2024, 2025, 2026, 2027, 2028, 2029, 2030],
+ years: [2019, 2024, 2025, 2026, 2027, 2028, 2029, 2030],
year: 2026,
holidayType: 'NATIONAL_DAY',
holidayTypeOptions: [],
diff --git a/traffic-audit-web/src/views/SystemConfig.vue b/traffic-audit-web/src/views/SystemConfig.vue
index 5b97212..5379745 100644
--- a/traffic-audit-web/src/views/SystemConfig.vue
+++ b/traffic-audit-web/src/views/SystemConfig.vue
@@ -144,7 +144,7 @@
data() {
return {
activeTab: 'holidays',
- years: [2024, 2025, 2026, 2027, 2028, 2029, 2030],
+ years: [2019, 2024, 2025, 2026, 2027, 2028, 2029, 2030],
holidayTypeOptions: [],
dateCategoryOptions: [],
holidayQuery: { year: 2026, holidayType: 'NATIONAL_DAY' },
--
Gitblit v1.9.1