-- 车辆里程统计表
DROP TABLE IF EXISTS `vehicle_mileage_stats`;
CREATE TABLE `vehicle_mileage_stats` (
  `stats_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '统计ID',
  `vehicle_id` bigint(20) NOT NULL COMMENT '车辆ID',
  `stats_date` date NOT NULL COMMENT '统计日期',
  `total_mileage` decimal(10,2) DEFAULT '0.00' COMMENT '总里程(公里)',
  `task_mileage` decimal(10,2) DEFAULT '0.00' COMMENT '任务里程(公里)',
  `non_task_mileage` decimal(10,2) DEFAULT '0.00' COMMENT '非任务里程(公里)',
  `task_mileage_ratio` decimal(5,2) DEFAULT '0.00' COMMENT '任务里程占比(%)',
  `gps_count` int(11) DEFAULT '0' COMMENT 'GPS点数',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`stats_id`),
  UNIQUE KEY `uk_vehicle_date` (`vehicle_id`,`stats_date`),
  KEY `idx_stats_date` (`stats_date`),
  KEY `idx_vehicle_id` (`vehicle_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆里程统计表';

-- 车辆里程统计明细表
DROP TABLE IF EXISTS `vehicle_mileage_stats_detail`;
CREATE TABLE `vehicle_mileage_stats_detail` (
  `detail_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '明细ID',
  `stats_id` bigint(20) NOT NULL COMMENT '统计ID',
  `vehicle_id` bigint(20) NOT NULL COMMENT '车辆ID',
  `task_id` bigint(20) DEFAULT NULL COMMENT '任务ID(任务时段)',
  `start_time` datetime NOT NULL COMMENT '开始时间',
  `end_time` datetime NOT NULL COMMENT '结束时间',
  `mileage` decimal(10,2) DEFAULT '0.00' COMMENT '里程(公里)',
  `is_task_period` char(1) DEFAULT '0' COMMENT '是否任务时段(0否 1是)',
  `gps_count` int(11) DEFAULT '0' COMMENT 'GPS点数',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`detail_id`),
  KEY `idx_stats_id` (`stats_id`),
  KEY `idx_vehicle_id` (`vehicle_id`),
  KEY `idx_task_id` (`task_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆里程统计明细表';
