wlzboy
1 天以前 08f95b2f159b56fa3bd4f4b348855989de8aa456
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
-- 车辆GPS分段里程表(按5分钟时间段统计)
CREATE TABLE `tb_vehicle_gps_segment_mileage` (
  `segment_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '分段ID',
  `vehicle_id` bigint(20) NOT NULL COMMENT '车辆ID',
  `vehicle_no` varchar(20) DEFAULT NULL COMMENT '车牌号',
  `segment_start_time` datetime NOT NULL COMMENT '时间段开始时间',
  `segment_end_time` datetime NOT NULL COMMENT '时间段结束时间',
  `start_longitude` decimal(10,7) DEFAULT NULL COMMENT '起点经度',
  `start_latitude` decimal(10,7) DEFAULT NULL COMMENT '起点纬度',
  `end_longitude` decimal(10,7) DEFAULT NULL COMMENT '终点经度',
  `end_latitude` decimal(10,7) DEFAULT NULL COMMENT '终点纬度',
  `segment_distance` decimal(10,3) DEFAULT 0.000 COMMENT '段距离(公里)',
  `gps_point_count` int(11) DEFAULT 0 COMMENT 'GPS点数量',
  `gps_ids` text COMMENT '关联的GPS记录ID列表(逗号分隔)',
  `calculate_method` varchar(20) DEFAULT 'tianditu' COMMENT '计算方式(tianditu-天地图/haversine-球面距离)',
  `create_time` datetime  COMMENT '创建时间',
  `update_time` datetime  COMMENT '更新时间',
  PRIMARY KEY (`segment_id`),
  UNIQUE KEY `uk_vehicle_time` (`vehicle_id`, `segment_start_time`),
  KEY `idx_vehicle_id` (`vehicle_id`),
  KEY `idx_start_time` (`segment_start_time`),
  KEY `idx_vehicle_date` (`vehicle_id`, `segment_start_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆GPS分段里程表';
 
-- GPS记录计算状态关联表(用于快速查询GPS点是否已被计算)
CREATE TABLE `tb_vehicle_gps_calculated` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `gps_id` bigint(20) NOT NULL COMMENT 'GPS记录ID',
  `segment_id` bigint(20) NOT NULL COMMENT '分段里程ID',
  `vehicle_id` bigint(20) NOT NULL COMMENT '车辆ID',
  `create_time` datetime  COMMENT '计算时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_gps_id` (`gps_id`),
  KEY `idx_segment_id` (`segment_id`),
  KEY `idx_vehicle_id` (`vehicle_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='GPS记录计算状态表';
 
-- 添加配置参数到系统配置表
INSERT INTO sys_config (config_name, config_key, config_value, config_type, remark, create_by, create_time) 
VALUES ('GPS里程计算时间间隔', 'gps.mileage.segment.minutes', '5', 'Y', 'GPS里程计算的时间间隔(分钟),用于将GPS数据分段计算里程', 'admin', NOW())
ON DUPLICATE KEY UPDATE config_value = config_value;
 
INSERT INTO sys_config (config_name, config_key, config_value, config_type, remark, create_by, create_time) 
VALUES ('GPS里程计算方式', 'gps.mileage.calculate.method', 'tianditu', 'Y', 'GPS里程计算方式:tianditu-天地图API,haversine-球面距离公式', 'admin', NOW())
ON DUPLICATE KEY UPDATE config_value = config_value;
 
INSERT INTO sys_config (config_name, config_key, config_value, config_type, remark, create_by, create_time) 
VALUES ('GPS里程重复计算控制', 'gps.mileage.skip.calculated', 'true', 'Y', '是否跳过已计算的GPS点:true-跳过,false-允许重复计算', 'admin', NOW())
ON DUPLICATE KEY UPDATE config_value = config_value;