-- 交通统计报表审核系统 - 数据库初始化脚本 v3 -- Demo范围:交企统H203-2表_道路货物运输月度生产情况 CREATE DATABASE IF NOT EXISTS traffic_audit DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE traffic_audit; -- ============================================ -- 一、用户权限模块(含三员) -- ============================================ -- 部门表 DROP TABLE IF EXISTS sys_dept; CREATE TABLE sys_dept ( id BIGINT AUTO_INCREMENT PRIMARY KEY, dept_name VARCHAR(100) NOT NULL COMMENT '部门名称', dept_code VARCHAR(20) NOT NULL COMMENT '行政区划代码', parent_id BIGINT DEFAULT 0 COMMENT '上级部门', dept_level TINYINT COMMENT '1省 2市 3县', sort_order INT DEFAULT 0 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 角色表 DROP TABLE IF EXISTS sys_role; CREATE TABLE sys_role ( id BIGINT AUTO_INCREMENT PRIMARY KEY, role_name VARCHAR(50) NOT NULL COMMENT '角色名', role_code VARCHAR(50) NOT NULL COMMENT 'SYS_ADMIN/SEC_OFFICER/AUDITOR/PROVINCE/CITY/COUNTY', role_type VARCHAR(20) DEFAULT 'BUSINESS' COMMENT 'SYSTEM(三员)/BUSINESS(业务)', role_level TINYINT DEFAULT 1 COMMENT '0三员 1省厅 2市局 3县区', is_mutex TINYINT DEFAULT 0 COMMENT '1三员互斥 0普通' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 用户表 DROP TABLE IF EXISTS sys_user; CREATE TABLE sys_user ( id BIGINT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(200) NOT NULL COMMENT 'BCrypt', real_name VARCHAR(50), phone VARCHAR(20), dept_id BIGINT, status TINYINT DEFAULT 1 COMMENT '0禁用 1启用', created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 用户角色关联 DROP TABLE IF EXISTS sys_user_role; CREATE TABLE sys_user_role ( id BIGINT AUTO_INCREMENT PRIMARY KEY, user_id BIGINT NOT NULL, role_id BIGINT NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- ============================================ -- 二、业务数据模块 -- ============================================ -- 清理旧版遗留表(v2 schema) DROP TABLE IF EXISTS report_enterprise_monthly; -- 交企统H203-2表:道路货物运输月度生产情况(Demo核心表) DROP TABLE IF EXISTS h2032_enterprise_monthly; CREATE TABLE h2032_enterprise_monthly ( id BIGINT AUTO_INCREMENT PRIMARY KEY, report_period VARCHAR(20) NOT NULL COMMENT '报表期 2026-06', region_code VARCHAR(20) COMMENT '所属地区', enterprise_code VARCHAR(50) COMMENT '企业代码', enterprise_name VARCHAR(200) COMMENT '企业名称', unified_credit_code VARCHAR(50) COMMENT '统一社会信用代码', report_unit VARCHAR(200) COMMENT '填报单位', -- 车辆数与吨位数 vehicle_total INT COMMENT '车辆数_总计', tons_total DOUBLE COMMENT '标记吨位数_总计', vehicle_tractor INT COMMENT '车辆数_牵引车', vehicle_trailer INT COMMENT '车辆数_挂车', tons_trailer DOUBLE COMMENT '标记吨位数_挂车', vehicle_container INT COMMENT '车辆数_集装箱车', tons_container DOUBLE COMMENT '标记吨位数_集装箱车', vehicle_whole INT COMMENT '车辆数_整车', tons_whole DOUBLE COMMENT '标记吨位数_整车', -- 货运量与周转量 freight_total DOUBLE COMMENT '货运量_总计(吨)', turnover_total DOUBLE COMMENT '货物周转量_总计(吨公里)', -- 分货类货运量 freight_container DOUBLE COMMENT '货运量_集装箱(吨)', freight_coal DOUBLE COMMENT '货运量_煤炭及制品(吨)', freight_oil_gas DOUBLE COMMENT '货运量_石油天然气及制品(吨)', freight_crude_oil DOUBLE COMMENT '货运量_其中原油(吨)', freight_metal_ore DOUBLE COMMENT '货运量_金属矿石(吨)', freight_iron_ore DOUBLE COMMENT '货运量_其中铁矿石(吨)', freight_building DOUBLE COMMENT '货运量_矿物性建筑材料(吨)', freight_grain DOUBLE COMMENT '货运量_粮食(吨)', -- 运营指标 avg_tonnage DOUBLE COMMENT '货车平均吨位', avg_tonnage_trailer DOUBLE COMMENT '平均吨位_挂车', avg_tonnage_whole DOUBLE COMMENT '平均吨位_整车', avg_distance DOUBLE COMMENT '货车平均运距(公里)', daily_trips_per_ton DOUBLE COMMENT '单吨日均载运次数', daily_mileage_per_vehicle DOUBLE COMMENT '单车单天行驶里程(公里)', daily_volume_per_vehicle DOUBLE COMMENT '单车日均运量(吨)', daily_trips_with_tractor DOUBLE COMMENT '单吨日均载运次数(结合牵引车)', -- 环比增速 vehicle_mom_growth DOUBLE COMMENT '车辆数-总计环比增速', tons_mom_growth DOUBLE COMMENT '标记吨位-总计环比增速', freight_mom_growth DOUBLE COMMENT '货运量-总计环比增速', turnover_mom_growth DOUBLE COMMENT '货物周转量-总计环比增速', avg_distance_mom_growth DOUBLE COMMENT '货车平均运距-环比增速', -- 同比增速 vehicle_yoy_growth DOUBLE COMMENT '车辆数-总计同比增速', tons_yoy_growth DOUBLE COMMENT '标记吨位-总计同比增速', tractor_trailer_ratio DOUBLE COMMENT '牵引车挂车比', freight_yoy_growth DOUBLE COMMENT '货运量-总计同比增速', turnover_yoy_growth DOUBLE COMMENT '货物周转量-总计同比增速', avg_distance_yoy_growth DOUBLE COMMENT '货车平均运距-同比增速', -- 填报信息 unit_leader VARCHAR(50) COMMENT '单位负责人', stats_leader VARCHAR(50) COMMENT '统计负责人', contact_person VARCHAR(50) COMMENT '填表人', contact_phone VARCHAR(20) COMMENT '联系电话', report_date DATE COMMENT '报出日期', verify_explanation TEXT COMMENT '核实性原因解释', report_notes TEXT COMMENT '上报说明', modify_record TEXT COMMENT '修改记录', import_batch_id BIGINT COMMENT '导入批次', created_at DATETIME DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交企统H203-2表_道路货物运输月度生产情况'; -- 运政车辆数据 DROP TABLE IF EXISTS transport_auth_vehicle; CREATE TABLE transport_auth_vehicle ( id BIGINT AUTO_INCREMENT PRIMARY KEY, report_period VARCHAR(20) COMMENT '报表期', enterprise_name VARCHAR(200) COMMENT '企业名称', tractor_count INT DEFAULT 0 COMMENT '总牵引车数', trailer_count INT DEFAULT 0 COMMENT '总挂车数', other_count INT DEFAULT 0 COMMENT '其它车辆数', trailer_tons DOUBLE COMMENT '挂车总吨位(吨)', other_tons DOUBLE COMMENT '其它车辆总吨位(吨)', import_batch_id BIGINT COMMENT '导入批次', created_at DATETIME DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运政车辆数据'; -- 车辆轨迹里程数据 DROP TABLE IF EXISTS vehicle_track_mileage; CREATE TABLE vehicle_track_mileage ( id BIGINT AUTO_INCREMENT PRIMARY KEY, enterprise_name VARCHAR(200) COMMENT '企业名称', monthly_mileage DOUBLE COMMENT '月度总里程(公里)', tracked_vehicles INT DEFAULT 0 COMMENT '有里程的车辆数', report_period VARCHAR(20) COMMENT '报表期', import_batch_id BIGINT COMMENT '导入批次', created_at DATETIME DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆轨迹里程数据'; -- 规上规下拆分运输量(用户手动上传) DROP TABLE IF EXISTS scale_split_transport; CREATE TABLE scale_split_transport ( id BIGINT AUTO_INCREMENT PRIMARY KEY, report_period VARCHAR(20) NOT NULL COMMENT '报表期 2026-06', period_type VARCHAR(10) NOT NULL COMMENT 'MONTH当月/CUMULATIVE累计', region_name VARCHAR(50) COMMENT '市州名称', -- 规上 above_scale_freight DOUBLE COMMENT '规上货运量', above_scale_turnover DOUBLE COMMENT '规上周转量', above_scale_rank INT COMMENT '规上排名', above_scale_yoy DOUBLE COMMENT '规上同比', above_scale_yoy_rank INT COMMENT '规上增速排名', -- 规下 below_scale_freight DOUBLE COMMENT '规下货运量', below_scale_turnover DOUBLE COMMENT '规下周转量', below_scale_rank INT COMMENT '规下排名', below_scale_yoy DOUBLE COMMENT '规下同比', below_scale_yoy_rank INT COMMENT '规下增速排名', -- 合计 total_freight DOUBLE COMMENT '运输量合计-货运量', total_turnover DOUBLE COMMENT '运输量合计-周转量', total_rank INT COMMENT '合计排名', total_yoy DOUBLE COMMENT '合计同比', total_yoy_rank INT COMMENT '合计增速排名', import_batch_id BIGINT COMMENT '导入批次', created_at DATETIME DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='规上规下拆分运输量'; -- 模板_货运量周转量(每月导入:左半今年1-N月,右半去年1-12月,N=报表期月份) DROP TABLE IF EXISTS freight_turnover_import; CREATE TABLE freight_turnover_import ( id BIGINT AUTO_INCREMENT PRIMARY KEY, report_period VARCHAR(20) NOT NULL COMMENT '报表期 2026-06', region_name VARCHAR(50) NOT NULL COMMENT '市州或湖北省', -- 今年1-12月货运量(左半,仅1-N月有值) freight_m01 DOUBLE COMMENT '1月货运量(万吨)', freight_m02 DOUBLE COMMENT '2月货运量(万吨)', freight_m03 DOUBLE COMMENT '3月货运量(万吨)', freight_m04 DOUBLE COMMENT '4月货运量(万吨)', freight_m05 DOUBLE COMMENT '5月货运量(万吨)', freight_m06 DOUBLE COMMENT '6月货运量(万吨)', freight_m07 DOUBLE COMMENT '7月货运量(万吨)', freight_m08 DOUBLE COMMENT '8月货运量(万吨)', freight_m09 DOUBLE COMMENT '9月货运量(万吨)', freight_m10 DOUBLE COMMENT '10月货运量(万吨)', freight_m11 DOUBLE COMMENT '11月货运量(万吨)', freight_m12 DOUBLE COMMENT '12月货运量(万吨)', -- 去年1-12月货运量(右半,固定12个月,算同比用) last_freight_m01 DOUBLE COMMENT '去年1月货运量(万吨)', last_freight_m02 DOUBLE COMMENT '去年2月货运量(万吨)', last_freight_m03 DOUBLE COMMENT '去年3月货运量(万吨)', last_freight_m04 DOUBLE COMMENT '去年4月货运量(万吨)', last_freight_m05 DOUBLE COMMENT '去年5月货运量(万吨)', last_freight_m06 DOUBLE COMMENT '去年6月货运量(万吨)', last_freight_m07 DOUBLE COMMENT '去年7月货运量(万吨)', last_freight_m08 DOUBLE COMMENT '去年8月货运量(万吨)', last_freight_m09 DOUBLE COMMENT '去年9月货运量(万吨)', last_freight_m10 DOUBLE COMMENT '去年10月货运量(万吨)', last_freight_m11 DOUBLE COMMENT '去年11月货运量(万吨)', last_freight_m12 DOUBLE COMMENT '去年12月货运量(万吨)', -- 今年1-12月周转量(左半,仅1-N月有值,导入存档,报表用拆分表) turnover_m01 DOUBLE COMMENT '1月周转量(万吨公里)', turnover_m02 DOUBLE COMMENT '2月周转量(万吨公里)', turnover_m03 DOUBLE COMMENT '3月周转量(万吨公里)', turnover_m04 DOUBLE COMMENT '4月周转量(万吨公里)', turnover_m05 DOUBLE COMMENT '5月周转量(万吨公里)', turnover_m06 DOUBLE COMMENT '6月周转量(万吨公里)', turnover_m07 DOUBLE COMMENT '7月周转量(万吨公里)', turnover_m08 DOUBLE COMMENT '8月周转量(万吨公里)', turnover_m09 DOUBLE COMMENT '9月周转量(万吨公里)', turnover_m10 DOUBLE COMMENT '10月周转量(万吨公里)', turnover_m11 DOUBLE COMMENT '11月周转量(万吨公里)', turnover_m12 DOUBLE COMMENT '12月周转量(万吨公里)', -- 去年1-12月周转量(右半,固定12个月) last_turnover_m01 DOUBLE COMMENT '去年1月周转量(万吨公里)', last_turnover_m02 DOUBLE COMMENT '去年2月周转量(万吨公里)', last_turnover_m03 DOUBLE COMMENT '去年3月周转量(万吨公里)', last_turnover_m04 DOUBLE COMMENT '去年4月周转量(万吨公里)', last_turnover_m05 DOUBLE COMMENT '去年5月周转量(万吨公里)', last_turnover_m06 DOUBLE COMMENT '去年6月周转量(万吨公里)', last_turnover_m07 DOUBLE COMMENT '去年7月周转量(万吨公里)', last_turnover_m08 DOUBLE COMMENT '去年8月周转量(万吨公里)', last_turnover_m09 DOUBLE COMMENT '去年9月周转量(万吨公里)', last_turnover_m10 DOUBLE COMMENT '去年10月周转量(万吨公里)', last_turnover_m11 DOUBLE COMMENT '去年11月周转量(万吨公里)', last_turnover_m12 DOUBLE COMMENT '去年12月周转量(万吨公里)', import_batch_id BIGINT COMMENT '导入批次', created_at DATETIME DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='模板_货运量周转量导入'; -- ============================================ -- 三、审核规则模块 -- ============================================ DROP TABLE IF EXISTS audit_rule; CREATE TABLE audit_rule ( id BIGINT AUTO_INCREMENT PRIMARY KEY, rule_name VARCHAR(100) NOT NULL COMMENT '规则名称', rule_code VARCHAR(50) NOT NULL COMMENT '规则编码', description TEXT COMMENT '规则描述', check_field VARCHAR(200) COMMENT '检查字段', compare_type VARCHAR(20) COMMENT 'DIFF/RATIO/MOM/YOY/NULL_CHECK/RANGE', threshold VARCHAR(50) COMMENT '阈值', alert_level VARCHAR(10) DEFAULT 'YELLOW' COMMENT 'RED/YELLOW', report_type VARCHAR(50) DEFAULT 'H2032' COMMENT '适用报表表号', is_enabled TINYINT DEFAULT 1, llm_raw_input TEXT COMMENT 'LLM翻译原始输入', sort_order INT DEFAULT 0, created_by BIGINT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 预置6条审核规则(Demo) INSERT INTO audit_rule (rule_name, rule_code, description, check_field, compare_type, threshold, alert_level, report_type, is_enabled, sort_order) VALUES ('车辆数运政对比', '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_005', '无集装箱车但有集装箱货运量需核实', 'freightContainer,vehicleContainer', 'NULL_CHECK', '0', 'RED', 'H2032', 1, 5), ('整车吨位范围', 'RULE_006', '整车吨位不在4-40吨之间', 'tonsWhole', 'OUT_RANGE', '4,40', 'YELLOW', 'H2032', 1, 6); -- ============================================ -- 四、审核结果模块 -- ============================================ DROP TABLE IF EXISTS audit_result; CREATE TABLE audit_result ( id BIGINT AUTO_INCREMENT PRIMARY KEY, rule_id BIGINT NOT NULL COMMENT 'FK -> audit_rule', report_id BIGINT NOT NULL COMMENT 'FK -> h2032_enterprise_monthly', enterprise_code VARCHAR(50) COMMENT '企业代码', report_period VARCHAR(20) COMMENT '报表期', actual_value VARCHAR(200) COMMENT '实际值', threshold_value VARCHAR(200) COMMENT '阈值', deviation VARCHAR(200) COMMENT '偏差', status VARCHAR(20) DEFAULT 'PENDING' COMMENT 'PENDING/CONFIRMED/IGNORED', reviewer_id BIGINT COMMENT '审核人', review_comment TEXT COMMENT '审核意见', reviewed_at DATETIME, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; DROP TABLE IF EXISTS audit_explanation; CREATE TABLE audit_explanation ( id BIGINT AUTO_INCREMENT PRIMARY KEY, audit_result_id BIGINT NOT NULL COMMENT 'FK -> audit_result', explanation_text TEXT COMMENT '上报人解释', llm_suggestion TEXT COMMENT 'LLM建议', llm_confidence DECIMAL(5,2) COMMENT '置信度', llm_status VARCHAR(20) DEFAULT 'PENDING' COMMENT 'PENDING/PROCESSED/FAILED' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- ============================================ -- 五、系统日志与导入批次 -- ============================================ DROP TABLE IF EXISTS sys_operation_log; CREATE TABLE sys_operation_log ( id BIGINT AUTO_INCREMENT PRIMARY KEY, user_id BIGINT COMMENT '操作人', module VARCHAR(50) COMMENT '模块', action VARCHAR(50) COMMENT '操作', detail TEXT COMMENT '详情JSON', ip_address VARCHAR(50) COMMENT 'IP地址', created_at DATETIME DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; DROP TABLE IF EXISTS import_batch; CREATE TABLE import_batch ( id BIGINT AUTO_INCREMENT PRIMARY KEY, file_name VARCHAR(200) COMMENT '文件名', import_type VARCHAR(50) COMMENT 'H2032/TRANSPORT_AUTH/TRACK_MILEAGE/SCALE_SPLIT', report_period VARCHAR(20) COMMENT '报表期', total_rows INT DEFAULT 0, success_rows INT DEFAULT 0, fail_rows INT DEFAULT 0, error_detail TEXT COMMENT '错误详情', created_by BIGINT COMMENT '导入人', created_at DATETIME DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- ============================================ -- 六、LLM脱敏映射 -- ============================================ DROP TABLE IF EXISTS llm_desensitize_map; CREATE TABLE llm_desensitize_map ( id BIGINT AUTO_INCREMENT PRIMARY KEY, original_value VARCHAR(200) COMMENT '原始值', masked_value VARCHAR(200) COMMENT '脱敏值', mask_type VARCHAR(20) COMMENT 'ENTERPRISE/REGION', call_id VARCHAR(50) COMMENT '调用ID' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- ============================================ -- 七、预置数据 -- ============================================ -- 预置部门(湖北省) INSERT INTO sys_dept (dept_name, dept_code, dept_level) VALUES ('湖北省交通运输厅', '420000', 1); -- 预置角色 INSERT INTO sys_role (role_name, role_code, role_type, role_level, is_mutex) VALUES ('系统管理员', 'SYS_ADMIN', 'SYSTEM', 0, 1), ('安全保密员', 'SEC_OFFICER', 'SYSTEM', 0, 1), ('安全审计员', 'AUDITOR', 'SYSTEM', 0, 1), ('省厅业务员', 'PROVINCE', 'BUSINESS', 1, 0); -- 预置管理员账号 admin / admin123 INSERT INTO sys_user (username, password, real_name, dept_id) VALUES ('admin', '.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt6Z5Eh', '系统管理员', 1); INSERT INTO sys_user_role (user_id, role_id) VALUES (1, 1); -- ============================================ -- 八、公路旅客运输(交企统H203-1)扩展模块 -- ============================================ DROP TABLE IF EXISTS h2031_enterprise_monthly; CREATE TABLE h2031_enterprise_monthly ( id BIGINT AUTO_INCREMENT PRIMARY KEY, report_period VARCHAR(20) NOT NULL COMMENT '报表期 2026-06', region_code VARCHAR(20) COMMENT '所属地区', enterprise_code VARCHAR(50) COMMENT '企业代码', enterprise_name VARCHAR(200) COMMENT '企业名称', vehicle_total INT COMMENT '客运车辆_总计', seat_total INT COMMENT '核定载客位_总计', vehicle_schedule INT COMMENT '车辆数_客运班车(含定线旅游客运客车)', seat_schedule INT COMMENT '核定载客位_客运班车(含定线旅游客运客车)', vehicle_charter INT COMMENT '车辆数_客运包车(含非定线旅游客运客车)', seat_charter INT COMMENT '核定载客位_客运包车(含非定线旅游客运客车)', passenger_total DOUBLE COMMENT '客运量_总计(人)', turnover_total DOUBLE COMMENT '旅客周转量_总计(人公里)', passenger_class1 DOUBLE COMMENT '客运量_一类客运班线(含定线旅游)', turnover_class1 DOUBLE COMMENT '旅客周转量_一类客运班线(含定线旅游)', passenger_class2 DOUBLE COMMENT '客运量_二类客运班线(含定线旅游)', turnover_class2 DOUBLE COMMENT '旅客周转量_二类客运班线(含定线旅游)', passenger_class3 DOUBLE COMMENT '客运量_三类客运班线(含定线旅游)', turnover_class3 DOUBLE COMMENT '旅客周转量_三类客运班线(含定线旅游)', passenger_class4 DOUBLE COMMENT '客运量_四类客运班线(含定线旅游)', turnover_class4 DOUBLE COMMENT '旅客周转量_四类客运班线(含定线旅游)', passenger_charter DOUBLE COMMENT '客运量_客运包车(含非定线旅游)', turnover_charter DOUBLE COMMENT '旅客周转量_客运包车(含非定线旅游)', avg_distance_total DOUBLE COMMENT '客运平均运距(公里)', avg_distance_class1 DOUBLE COMMENT '一类客运班线平均运距(公里)', avg_distance_class2 DOUBLE COMMENT '二类客运班线平均运距(公里)', avg_distance_class3 DOUBLE COMMENT '三类客运班线平均运距(公里)', avg_distance_class4 DOUBLE COMMENT '四类客运班线平均运距(公里)', avg_distance_charter DOUBLE COMMENT '旅游、包车平均运距(公里)', verify_explanation TEXT COMMENT '核实性原因解释', import_batch_id BIGINT COMMENT '导入批次', created_at DATETIME DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交企统H203-1表_公路旅客运输月度生产情况'; DROP TABLE IF EXISTS passenger_auth_vehicle; CREATE TABLE passenger_auth_vehicle ( id BIGINT AUTO_INCREMENT PRIMARY KEY, report_period VARCHAR(20) COMMENT '报表期', enterprise_code VARCHAR(50) COMMENT '企业代码', enterprise_name VARCHAR(200) COMMENT '企业名称', vehicle_count INT DEFAULT 0 COMMENT '车辆数', seat_count INT DEFAULT 0 COMMENT '载客位数', import_batch_id BIGINT COMMENT '导入批次', created_at DATETIME DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公路旅客运政车辆数据'; -- H203-1 预置审核规则(4组8条,report_type=H2031) INSERT INTO audit_rule (rule_name, rule_code, description, check_field, compare_type, threshold, alert_level, report_type, is_enabled, sort_order) VALUES ('车辆数运政对比(旅客)', 'RULE_P001', '客运车辆数与运政车辆数对比,差距>3台需核实', 'vehicleTotal', 'DIFF', '3', 'RED', 'H2031', 1, 21), ('载客位数运政对比(旅客)', '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), ('包车平均运距等于上月核实', '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); -- ============================================ -- 九、道路货运能源消耗(交企统H204)扩展模块 -- ============================================ -- 道路货运车辆能源消耗情况(车辆粒度季报) DROP TABLE IF EXISTS h204_vehicle_quarterly; CREATE TABLE h204_vehicle_quarterly ( id BIGINT AUTO_INCREMENT PRIMARY KEY, report_period VARCHAR(20) NOT NULL COMMENT '报表期 2026-06(季度末月)', region_code VARCHAR(20) COMMENT '所属地区', enterprise_code VARCHAR(50) COMMENT '企业代码', enterprise_name VARCHAR(200) COMMENT '企业名称', plate_no VARCHAR(30) COMMENT '车牌号', vehicle_type_code VARCHAR(10) COMMENT '车辆类型代码', vehicle_type VARCHAR(50) COMMENT '车辆类型(中文)', fuel_type_code VARCHAR(10) COMMENT '燃料类型代码', fuel_type VARCHAR(50) COMMENT '燃料类型(中文)', manufacture_year INT COMMENT '出厂年份', marked_tonnage DOUBLE COMMENT '标记吨位(吨)', total_mileage DOUBLE COMMENT '总行程(公里)', loaded_mileage DOUBLE COMMENT '载货里程(公里)', empty_mileage DOUBLE COMMENT '空驶里程(公里)', freight DOUBLE COMMENT '货运量(吨)', turnover DOUBLE COMMENT '货物周转量(吨公里)', trip_count INT COMMENT '趟次数(个)', fuel_unit VARCHAR(20) COMMENT '燃料1计量单位', fuel_consumption DOUBLE COMMENT '燃料1消耗量', avg_distance DOUBLE COMMENT '平均运距(公里)', avg_loaded_tonnage DOUBLE COMMENT '平均载货吨位(吨)', avg_trip_mileage DOUBLE COMMENT '单趟平均里程(公里)', fuel_per_100km DOUBLE COMMENT '百公里单耗', turnover_fuel DOUBLE COMMENT '周转量单耗', import_batch_id BIGINT COMMENT '导入批次', created_at DATETIME DEFAULT CURRENT_TIMESTAMP, KEY idx_period_plate (report_period, plate_no), KEY idx_period_ent (report_period, enterprise_code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交企统H204表_道路货运车辆能源消耗情况(车辆粒度)'; -- 道路货运能耗_运政车辆信息(车牌粒度) DROP TABLE IF EXISTS h204_auth_vehicle; CREATE TABLE h204_auth_vehicle ( id BIGINT AUTO_INCREMENT PRIMARY KEY, report_period VARCHAR(20) NOT NULL COMMENT '报表期', plate_no VARCHAR(30) NOT NULL COMMENT '车牌号', vehicle_type VARCHAR(50) COMMENT '车辆类型', fuel_type VARCHAR(50) COMMENT '燃料类型', marked_tonnage DOUBLE COMMENT '标记吨位(吨)', traction_quality DOUBLE COMMENT '准牵引质量(牵引车标记吨位)', import_batch_id BIGINT COMMENT '导入批次', created_at DATETIME DEFAULT CURRENT_TIMESTAMP, KEY idx_period_plate (report_period, plate_no) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='道路货运能耗_运政车辆信息(车牌粒度)'; -- H204 预置审核规则(4条,report_type=H204) INSERT INTO audit_rule (rule_name, rule_code, description, check_field, compare_type, threshold, alert_level, report_type, is_enabled, sort_order) VALUES ('车辆类型与运政对比', 'RULE_E001', '能耗明细车辆类型与运政车辆信息不一致需核实', 'vehicleType', 'CROSS_DIFF', '0', 'RED', 'H204', 1, 31), ('燃料类型与运政对比', 'RULE_E002', '能耗明细燃料类型与运政车辆信息不一致需核实', 'fuelType', 'CROSS_DIFF', '0', 'RED', 'H204', 1, 32), ('标记吨位与运政对比', 'RULE_E003', '能耗明细标记吨位与运政对比,差距>0.05吨需核实(牵引车对比准牵引质量)', 'markedTonnage', 'CROSS_DIFF', '0.05', 'YELLOW', 'H204', 1, 33), ('运政车辆信息缺失', 'RULE_E004', '能耗明细车牌号在运政车辆信息中不存在需核实', 'plateNo', 'EXISTENCE_AUTH', '0', 'RED', 'H204', 1, 34), ('载货里程占比与单趟里程比核实', 'RULE_E005', '载货里程/总行程 与 平均运距/单趟平均里程 相差±10%需核实', 'loadedMileage,totalMileage,avgDistance,avgTripMileage', 'LOADED_RATIO_DIFF', '0.1', 'YELLOW', 'H204', 1, 35), ('百公里单耗超范围核实', 'RULE_E006', '百公里单耗偏离同燃料类型中位数超过50%需核实', 'fuelPer100km,fuelTypeCode', 'FUEL_RANGE', '0.5', 'YELLOW', 'H204', 1, 36), ('百公里单耗环比变化核实', 'RULE_E007', '同一辆车百公里单耗环比变化超过±50%需核实', 'fuelPer100km,plateNo', 'FUEL_MOM', '0.5', 'YELLOW', 'H204', 1, 37), ('能耗量与货运月报对比核实', 'RULE_E008', '企业能耗货运量/周转量之和大于货运月报50%需核实', 'freight,turnover,enterpriseName', 'FREIGHT_VS_H2032', '0.5', 'RED', 'H204', 1, 38), ('平均运距与货运月报对比核实', 'RULE_E009', '车辆平均运距与货运月报平均运距相差±60%需核实', 'avgDistance,enterpriseName', 'AVG_DIST_VS_H2032', '0.6', 'YELLOW', 'H204', 1, 39), ('平均载货吨位与标记吨位比值核实', 'RULE_E010', '平均载货吨位/标记吨位 小于0.5或大于1需核实', 'avgLoadedTonnage,markedTonnage', 'LOADED_TON_RATIO', '0.5,1', 'YELLOW', 'H204', 1, 40); -- ============================================ -- 十、投资模块(客运站场/物流园区)扩展 -- ============================================ -- 投资项目主档(按 项目名+类别 唯一) DROP TABLE IF EXISTS investment_project; CREATE TABLE investment_project ( id BIGINT AUTO_INCREMENT PRIMARY KEY, project_name VARCHAR(200) NOT NULL COMMENT '项目名称', category VARCHAR(20) NOT NULL COMMENT '类别:客运站场/物流园区', city VARCHAR(50) COMMENT '市州', county VARCHAR(100) COMMENT '县(市、区)', builder_name VARCHAR(200) COMMENT '投资建设单位', construct_nature VARCHAR(50) COMMENT '建设性质', start_time VARCHAR(20) COMMENT '开工时间', end_time VARCHAR(20) COMMENT '建成/竣工时间', total_investment DOUBLE COMMENT '计划总投资(万元)', approval_gk VARCHAR(500) COMMENT '工可批复', approval_cs VARCHAR(500) COMMENT '初设批复', building_area DOUBLE COMMENT '建筑面积(平方米)', is_billion TINYINT DEFAULT 0 COMMENT '亿元投资项目标记', is_county TINYINT DEFAULT 0 COMMENT '经济强县项目标记', is_five_year TINYINT DEFAULT 0 COMMENT '十五五重点物流项目标记', source VARCHAR(50) COMMENT '数据来源', import_batch_id BIGINT COMMENT '导入批次', created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, UNIQUE KEY uk_name_category (project_name, category) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='投资项目主档'; -- 投资项目月度完成情况 DROP TABLE IF EXISTS investment_monthly; CREATE TABLE investment_monthly ( id BIGINT AUTO_INCREMENT PRIMARY KEY, report_period VARCHAR(20) NOT NULL COMMENT '报表期 2026-07', project_id BIGINT NOT NULL COMMENT '项目主档ID', year_plan DOUBLE COMMENT '本年计划投资(万元)', year_cum DOUBLE COMMENT '自年初累计完成投资(万元)', month_done DOUBLE COMMENT '其中:本月完成投资(万元)', start_cum DOUBLE COMMENT '自开始建设累计完成投资(万元)', progress_stage VARCHAR(100) COMMENT '建设阶段', progress_desc VARCHAR(2000) COMMENT '形象进度', building_area DOUBLE COMMENT '建筑面积(平方米)', created_at DATETIME DEFAULT CURRENT_TIMESTAMP, KEY idx_period (report_period), KEY idx_project (project_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='投资项目月度完成情况'; -- 投资系统查询导出(审核比对基准) DROP TABLE IF EXISTS investment_system; CREATE TABLE investment_system ( id BIGINT AUTO_INCREMENT PRIMARY KEY, report_period VARCHAR(20) NOT NULL COMMENT '报表期 2026-07', project_name VARCHAR(200) NOT NULL COMMENT '项目名称(单位)', total_investment DOUBLE COMMENT '计划总投资(万元)', start_cum DOUBLE COMMENT '自开始建设至本月累计完成投资(万元)', year_plan DOUBLE COMMENT '本年计划投资(万元)', year_cum DOUBLE COMMENT '自年初累计完成投资(万元)', month_done DOUBLE COMMENT '当月完成投资(万元)', import_batch_id BIGINT COMMENT '导入批次', created_at DATETIME DEFAULT CURRENT_TIMESTAMP, KEY idx_period (report_period) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='投资系统查询导出(审核比对基准)'; -- INVEST 预置审核规则(4条,report_type=INVEST) INSERT INTO audit_rule (rule_name, rule_code, description, check_field, compare_type, threshold, alert_level, report_type, is_enabled, sort_order) VALUES ('自开始累计与投资系统对比', 'RULE_I001', '自开始建设累计完成投资与投资系统导出差异超阈值需核实', 'startCum', 'CROSS_DIFF', '100|5', 'YELLOW', 'INVEST', 1, 41), ('自年初累计与投资系统对比', '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);