select s.stats_id, s.vehicle_id, s.vehicle_no, s.stat_date, s.total_mileage, s.task_mileage, s.non_task_mileage, s.task_ratio, s.gps_point_count, s.task_count, s.segment_count, s.data_source, s.create_time, s.update_time, GROUP_CONCAT(DISTINCT d.dept_name ORDER BY d.dept_name SEPARATOR ',') as dept_name, vd.dept_id from tb_vehicle_mileage_stats s left join tb_vehicle_info v on s.vehicle_id = v.vehicle_id left join tb_vehicle_dept vd on v.vehicle_id = vd.vehicle_id left join sys_dept d on vd.dept_id = d.dept_id insert into tb_vehicle_mileage_stats vehicle_id, vehicle_no, stat_date, total_mileage, task_mileage, non_task_mileage, task_ratio, gps_point_count, task_count, segment_count, data_source, create_time #{vehicleId}, #{vehicleNo}, #{statDate}, #{totalMileage}, #{taskMileage}, #{nonTaskMileage}, #{taskRatio}, #{gpsPointCount}, #{taskCount}, #{segmentCount}, #{dataSource}, NOW() ON DUPLICATE KEY UPDATE vehicle_no = VALUES(vehicle_no), total_mileage = VALUES(total_mileage), task_mileage = VALUES(task_mileage), non_task_mileage = VALUES(non_task_mileage), task_ratio = VALUES(task_ratio), gps_point_count = VALUES(gps_point_count), task_count = VALUES(task_count), segment_count = VALUES(segment_count), data_source = VALUES(data_source), update_time = NOW() update tb_vehicle_mileage_stats vehicle_no = #{vehicleNo}, total_mileage = #{totalMileage}, task_mileage = #{taskMileage}, non_task_mileage = #{nonTaskMileage}, task_ratio = #{taskRatio}, gps_point_count = #{gpsPointCount}, task_count = #{taskCount}, segment_count = #{segmentCount}, data_source = #{dataSource}, update_time = NOW() where stats_id = #{statsId} delete from tb_vehicle_mileage_stats where stats_id = #{statsId} delete from tb_vehicle_mileage_stats where stats_id in #{statsId}