From b509d59af23c6afba086fa3fb4c2afb47ab0becb Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期五, 02 十月 2026 10:01:25 +0800
Subject: [PATCH] feat(节假日): 新增重要节假日专项统计模块

---
 docs/init.sql |  104 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 101 insertions(+), 3 deletions(-)

diff --git a/docs/init.sql b/docs/init.sql
index f7518c6..dcc9932 100644
--- a/docs/init.sql
+++ b/docs/init.sql
@@ -37,6 +37,7 @@
     username VARCHAR(50) NOT NULL UNIQUE,
     password VARCHAR(200) NOT NULL COMMENT 'BCrypt',
     real_name VARCHAR(50),
+    modules VARCHAR(255) DEFAULT NULL COMMENT '璐熻矗鎶ヨ〃妯″潡锛堥�楀彿鍒嗛殧锛�',
     phone VARCHAR(20),
     dept_id BIGINT,
     status TINYINT DEFAULT 1 COMMENT '0绂佺敤 1鍚敤',
@@ -289,7 +290,7 @@
 ('杞﹁締鏁拌繍鏀垮姣�', 'RULE_001', '浼佷笟涓婃姤杞﹁締鏁颁笌杩愭斂鏁版嵁瀵规瘮锛屽樊璺�>5鍙伴渶鏍稿疄', 'vehicleTotal', 'DIFF', '5', 'RED', 'H2032', 1, 1),
 ('鍚ㄤ綅杩愭斂瀵规瘮', 'RULE_002', '浼佷笟涓婃姤鍚ㄤ綅涓庤繍鏀挎暟鎹姣旓紝宸窛>50闇�鏍稿疄', 'tonsTotal', 'DIFF', '50', 'RED', 'H2032', 1, 2),
 ('鍛ㄨ浆閲忚建杩瑰姣�', 'RULE_003', '涓婃姤鍛ㄨ浆閲忎笌杞ㄨ抗娴嬬畻鍛ㄨ浆閲忓姣旓紝楂樺嚭30%闇�鏍稿疄', 'turnoverTotal,trackMileage', 'RATIO', '1.3', 'RED', 'H2032', 1, 3),
-('璐ц繍绫诲瀷鐜瘮', 'RULE_004', '鏈湀鏂板璐ц繍绫诲瀷闇�鏍稿疄锛堜笂鏈堜负0銆佹湰鏈堟湁閲忥級', 'freightContainer,freightCoal,freightOilGas,freightCrudeOil,freightMetalOre,freightIronOre,freightBuilding,freightGrain', 'MOM', '0', 'YELLOW', 'H2032', 1, 4),
+('璐ц繍绫诲瀷鐜瘮', 'RULE_004', '涓婃湀鏃狅紝鏈湀鏂板锛屾彁閱掞紱涓婃湀鏈夛紝鏈湀鏃狅紝鎻愰啋锛堣揣杩愮被鍨嬬幆姣旓級', 'freightContainer,freightCoal,freightOilGas,freightCrudeOil,freightMetalOre,freightIronOre,freightBuilding,freightGrain', 'MOM', '0', 'YELLOW', 'H2032', 1, 4),
 ('闆嗚绠卞紓甯�', 'RULE_005', '鏃犻泦瑁呯杞︿絾鏈夐泦瑁呯璐ц繍閲忛渶鏍稿疄', 'freightContainer,vehicleContainer', 'NULL_CHECK', '0', 'RED', 'H2032', 1, 5),
 ('鏁磋溅鍚ㄤ綅鑼冨洿', 'RULE_006', '鏁磋溅鍚ㄤ綅涓嶅湪4-40鍚ㄤ箣闂�', 'tonsWhole', 'OUT_RANGE', '4,40', 'YELLOW', 'H2032', 1, 6);
 
@@ -382,7 +383,7 @@
 
 -- 棰勭疆绠$悊鍛樿处鍙� admin / admin123
 INSERT INTO sys_user (username, password, real_name, dept_id) VALUES
-('admin', '.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt6Z5Eh', '绯荤粺绠$悊鍛�', 1);
+('admin', '$2b$10$aqN02Pwvzzuta/66V9MpGerfUH6favtq8av3cc/gueg6lQ9E4CH8u', '绯荤粺绠$悊鍛�', 1);
 
 INSERT INTO sys_user_role (user_id, role_id) VALUES (1, 1);
 
@@ -398,6 +399,8 @@
     region_code VARCHAR(20) COMMENT '鎵�灞炲湴鍖�',
     enterprise_code VARCHAR(50) COMMENT '浼佷笟浠g爜',
     enterprise_name VARCHAR(200) COMMENT '浼佷笟鍚嶇О',
+    unified_credit_code VARCHAR(50) COMMENT '缁熶竴绀句細淇$敤浠g爜',
+    report_unit VARCHAR(200) COMMENT '濉姤鍗曚綅',
     vehicle_total INT COMMENT '瀹㈣繍杞﹁締_鎬昏',
     seat_total INT COMMENT '鏍稿畾杞藉浣峗鎬昏',
     vehicle_schedule INT COMMENT '杞﹁締鏁癬瀹㈣繍鐝溅锛堝惈瀹氱嚎鏃呮父瀹㈣繍瀹㈣溅锛�',
@@ -445,7 +448,7 @@
 ('杞藉浣嶆暟杩愭斂瀵规瘮(鏃呭)', 'RULE_P002', '鏍稿畾杞藉浣嶆暟涓庤繍鏀胯浇瀹綅鏁板姣旓紝宸窛>50闇�鏍稿疄', 'seatTotal', 'DIFF', '50', 'RED', 'H2031', 1, 22),
 ('瀹㈣繍閲忕幆姣�=0鏍稿疄', 'RULE_P003', '涓�绫�/浜岀被/涓夌被/鍥涚被/鍖呰溅瀹㈣繍閲忕幆姣斾笂涓湀绛変簬0闇�鏍稿疄', 'passengerClass1,passengerClass2,passengerClass3,passengerClass4,passengerCharter', 'MOM_EQ_ZERO', '0', 'YELLOW', 'H2031', 1, 23),
 ('鏃呭鍛ㄨ浆閲忕幆姣�=0鏍稿疄', 'RULE_P004', '涓�绫�/浜岀被/涓夌被/鍥涚被/鍖呰溅鏃呭鍛ㄨ浆閲忕幆姣斾笂涓湀绛変簬0闇�鏍稿疄', 'turnoverClass1,turnoverClass2,turnoverClass3,turnoverClass4,turnoverCharter', 'MOM_EQ_ZERO', '0', 'YELLOW', 'H2031', 1, 24),
-('骞冲潎杩愯窛鐜瘮瓒吢�10%鏍稿疄', 'RULE_P005', '涓�绫�/浜岀被/涓夌被/鍥涚被骞冲潎杩愯窛鐜瘮涓婁釜鏈堣秴杩嚶�10%闇�鏍稿疄', 'avgDistanceClass1,avgDistanceClass2,avgDistanceClass3,avgDistanceClass4', 'MOM_PCT', '10', 'YELLOW', 'H2031', 1, 25),
+('骞冲潎杩愯窛鐜瘮瓒吢�20%鏍稿疄', 'RULE_P005', '涓�绫�/浜岀被/涓夌被/鍥涚被骞冲潎杩愯窛鐜瘮涓婁釜鏈堣秴杩嚶�20%闇�鏍稿疄', 'avgDistanceClass1,avgDistanceClass2,avgDistanceClass3,avgDistanceClass4', 'MOM_PCT', '20', 'YELLOW', 'H2031', 1, 25),
 ('鍖呰溅骞冲潎杩愯窛绛変簬涓婃湀鏍稿疄', 'RULE_P006', '鏃呮父鍖呰溅骞冲潎杩愯窛绛変簬涓婁釜鏈堥渶鏍稿疄', 'avgDistanceCharter', 'MOM_EQ', '0', 'YELLOW', 'H2031', 1, 26),
 ('鏃犵彮绾挎湁鐝嚎瀹㈣繍閲忔牳瀹�', 'RULE_P007', '鏃犲杩愮彮杞︼紙鐝嚎杞﹁締鏁颁负0锛変絾鏈夌彮绾垮杩愰噺闇�鏍稿疄', 'vehicleSchedule,passengerClass1,passengerClass2,passengerClass3,passengerClass4', 'EXISTENCE', '0', 'RED', 'H2031', 1, 27),
 ('鏃犲寘杞︽湁鍖呰溅瀹㈣繍閲忔牳瀹�', 'RULE_P008', '鏃犲杩愬寘杞︼紙鍖呰溅杞﹁締鏁颁负0锛変絾鏈夊寘杞﹀杩愰噺闇�鏍稿疄', 'vehicleCharter,passengerCharter', 'EXISTENCE', '0', 'RED', 'H2031', 1, 28);
@@ -587,3 +590,98 @@
 ('鑷勾鍒濈疮璁′笌鎶曡祫绯荤粺瀵规瘮', 'RULE_I002', '鑷勾鍒濈疮璁″畬鎴愭姇璧勪笌鎶曡祫绯荤粺瀵煎嚭宸紓瓒呴槇鍊奸渶鏍稿疄', 'yearCum', 'CROSS_DIFF', '50|5', 'YELLOW', 'INVEST', 1, 42),
 ('鏈湀瀹屾垚涓庢姇璧勭郴缁熷姣�', 'RULE_I003', '鏈湀瀹屾垚鎶曡祫涓庢姇璧勭郴缁熷鍑哄樊寮傝秴闃堝�奸渶鏍稿疄', 'monthDone', 'CROSS_DIFF', '30|30', 'YELLOW', 'INVEST', 1, 43),
 ('鎶曡祫绯荤粺椤圭洰缂哄け鏍稿疄', 'RULE_I004', '姹囨�诲ぇ琛ㄩ」鐩湪鎶曡祫绯荤粺瀵煎嚭涓笉瀛樺湪闇�鏍稿疄', 'projectName', 'EXISTENCE_SYS', '0', 'YELLOW', 'INVEST', 1, 44);
+
+
+-- ============================================
+-- 涔濄�佸叕璺梾瀹釜浣撳杩愰噺/鍛ㄨ浆閲忥紙浼佷笟绾夸笅姹囨姤锛�
+-- ============================================
+DROP TABLE IF EXISTS passenger_individual_monthly;
+CREATE TABLE passenger_individual_monthly (
+  id BIGINT AUTO_INCREMENT PRIMARY KEY,
+  report_period VARCHAR(20) COMMENT '鎶ヨ〃鏈� 2026-07',
+  region_code VARCHAR(20) COMMENT '鎵�灞炲湴鍖猴紙琛屾斂鍖哄垝浠g爜锛�',
+  enterprise_code VARCHAR(50) COMMENT '浼佷笟浠g爜',
+  enterprise_name VARCHAR(200) COMMENT '浼佷笟鍚嶇О',
+  passenger_count DOUBLE COMMENT '鍏朵腑涓綋瀹㈣繍閲忥紙浜猴級',
+  turnover DOUBLE COMMENT '鍏朵腑涓綋鏃呭鍛ㄨ浆閲忥紙浜哄叕閲岋級',
+  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
+  KEY idx_period (report_period)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='鍏矾鏃呭涓綋瀹㈣繍閲�/鍛ㄨ浆閲�';
+
+-- ============================================
+-- 鍗併�佹姤琛ㄦ湡瀹℃牳閫氳繃鏍囪锛坅udit_run锛�
+-- ============================================
+DROP TABLE IF EXISTS audit_run;
+CREATE TABLE audit_run (
+  id BIGINT AUTO_INCREMENT PRIMARY KEY,
+  report_type VARCHAR(50) COMMENT '鎶ヨ〃绫诲瀷',
+  report_period VARCHAR(20) COMMENT '鎶ヨ〃鏈�',
+  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
+  KEY idx_type_period (report_type, report_period)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='鎶ヨ〃鏈熷鏍搁�氳繃鏍囪';
+
+
+-- ============================================
+-- 鍗佷竴銆佷笓椤圭粺璁�-閲嶈鑺傚亣鏃�
+-- ============================================
+
+-- 鑺傚亣鏃ユ棩鏈熼厤缃�
+DROP TABLE IF EXISTS holiday_calendar;
+CREATE TABLE holiday_calendar (
+  id BIGINT NOT NULL AUTO_INCREMENT,
+  year INT NOT NULL COMMENT '骞翠唤',
+  holiday_type VARCHAR(32) NOT NULL COMMENT '鑺傚亣鏃ュ垎绫伙細SPRING_FESTIVAL/LABOR_DAY/NATIONAL_DAY',
+  holiday_date DATE NOT NULL COMMENT '鑺傚亣鏃ュ叿浣撴棩鏈�',
+  day_index INT NOT NULL COMMENT '绗嚑鏃ワ紝浠� 1 寮�濮�',
+  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
+  updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (id),
+  UNIQUE KEY uk_holiday_calendar_seq (year, holiday_type, day_index),
+  UNIQUE KEY uk_holiday_calendar_date (year, holiday_type, holiday_date),
+  KEY idx_holiday_calendar_date (holiday_date)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='閲嶈鑺傚亣鏃ユ棩鏈熼厤缃�';
+
+-- 鑺傚亣鏃ョ患鍚堣繍杈撹惀涓氭�у娴�
+DROP TABLE IF EXISTS holiday_passenger_flow;
+CREATE TABLE holiday_passenger_flow (
+  id BIGINT NOT NULL AUTO_INCREMENT,
+  year INT NOT NULL COMMENT '骞翠唤',
+  flow_date DATE NOT NULL COMMENT '鏃ユ湡',
+  transport_mode VARCHAR(32) NOT NULL COMMENT '杩愯緭鏂瑰紡锛歊AIL/CIVIL_AVIATION/ROAD/WATER',
+  passenger_count DECIMAL(30,15) NOT NULL COMMENT '鍙戦�佹梾瀹㈡暟锛堜竾浜烘锛�',
+  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
+  updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (id),
+  UNIQUE KEY uk_holiday_passenger (year, flow_date, transport_mode),
+  KEY idx_holiday_passenger_date (flow_date)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='鑺傚亣鏃ョ患鍚堣繍杈撹惀涓氭�у娴佹儏鍐�';
+
+-- 鑺傚亣鏃ョ患鍚堣繍杈撻潪钀ヤ笟鎬ц溅娴�
+DROP TABLE IF EXISTS holiday_vehicle_flow;
+CREATE TABLE holiday_vehicle_flow (
+  id BIGINT NOT NULL AUTO_INCREMENT,
+  year INT NOT NULL COMMENT '骞翠唤',
+  flow_date DATE NOT NULL COMMENT '鏃ユ湡',
+  road_category VARCHAR(32) NOT NULL COMMENT '閬撹矾鍒嗙被锛欵XPRESSWAY/NATIONAL_PROVINCIAL',
+  vehicle_type VARCHAR(32) NOT NULL COMMENT '杞﹀瀷鍒嗙被锛歋MALL_PASSENGER/MEDIUM_SMALL_PASSENGER',
+  vehicle_count DECIMAL(30,15) NOT NULL COMMENT '杞︽祦閲忥紙涓囪締娆★級',
+  comparison_base DECIMAL(30,15) NULL COMMENT '鏅�氬浗鐪侀亾鐜瘮鍩烘湡锛堜竾杈嗘锛屼粎褰撳勾浣跨敤锛�',
+  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
+  updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (id),
+  UNIQUE KEY uk_holiday_vehicle (year, flow_date, road_category, vehicle_type),
+  KEY idx_holiday_vehicle_date (flow_date)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='鑺傚亣鏃ョ患鍚堣繍杈撻潪钀ヤ笟鎬ц溅娴佹儏鍐�';
+
+-- 瀹㈣繍绯绘暟閰嶇疆
+DROP TABLE IF EXISTS holiday_passenger_coefficient;
+CREATE TABLE holiday_passenger_coefficient (
+  id BIGINT NOT NULL AUTO_INCREMENT,
+  year INT NOT NULL COMMENT '骞翠唤',
+  date_category VARCHAR(32) NOT NULL COMMENT '鏃ユ湡鍒嗙被锛欻OLIDAY/NON_HOLIDAY',
+  coefficient DECIMAL(30,15) NOT NULL COMMENT '瀹㈣繍绯绘暟',
+  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
+  updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (id),
+  UNIQUE KEY uk_holiday_coefficient (year, date_category)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='瀹㈣繍绯绘暟閰嶇疆';

--
Gitblit v1.9.1