package com.ruoyi.system.mapper; import java.math.BigDecimal; import java.util.Date; import java.util.List; import org.apache.ibatis.annotations.Param; import com.ruoyi.system.domain.VehicleGpsSegmentMileage; /** * 车辆GPS分段里程Mapper接口 */ public interface VehicleGpsSegmentMileageMapper { /** * 查询车辆GPS分段里程 */ public VehicleGpsSegmentMileage selectVehicleGpsSegmentMileageById(Long segmentId); /** * 查询车辆GPS分段里程列表 */ public List selectVehicleGpsSegmentMileageList(VehicleGpsSegmentMileage vehicleGpsSegmentMileage); /** * 新增车辆GPS分段里程 */ public int insertVehicleGpsSegmentMileage(VehicleGpsSegmentMileage vehicleGpsSegmentMileage); /** * 修改车辆GPS分段里程 */ public int updateVehicleGpsSegmentMileage(VehicleGpsSegmentMileage vehicleGpsSegmentMileage); /** * 删除车辆GPS分段里程 */ public int deleteVehicleGpsSegmentMileageById(Long segmentId); /** * 批量删除车辆GPS分段里程 */ public int deleteVehicleGpsSegmentMileageByIds(Long[] segmentIds); /** * 查询车辆在指定时间段是否已存在分段里程记录 */ public VehicleGpsSegmentMileage selectByVehicleIdAndTime(@Param("vehicleId") Long vehicleId, @Param("segmentStartTime") Date segmentStartTime); /** * 查询车辆在指定日期范围内的分段里程统计 */ public List selectSegmentsByDateRange(@Param("vehicleId") Long vehicleId, @Param("startDate") Date startDate, @Param("endDate") Date endDate); /** * 按任务ID查询分段里程列表 */ public List selectSegmentsByTaskId(@Param("taskId") Long taskId); /** * 查询任务的总里程(直接求和) */ public BigDecimal selectTotalMileageByTaskId(@Param("taskId") Long taskId); /** * 记录GPS点已被计算(插入到tb_vehicle_gps_calculated表) */ public int insertGpsCalculated(@Param("gpsId") Long gpsId, @Param("segmentId") Long segmentId, @Param("vehicleId") Long vehicleId); /** * 检查GPS点是否已被计算 */ public Long selectGpsCalculatedSegmentId(@Param("gpsId") Long gpsId); /** * 查询车辆在指定时间之前最后一个已处理的GPS坐标ID * @param vehicleId 车辆ID * @param beforeTime 截止时间(查询此时间之前的最后一个已处理GPS点) * @return GPS坐标ID,如果没有则返回null */ public Long selectLastCalculatedGpsId(@Param("vehicleId") Long vehicleId, @Param("beforeTime") Date beforeTime); }