package com.xiaopeng.vehicleConvoy.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xiaopeng.api.dto.statistics.DailyCountDTO;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.vehicleConvoy.model.query.VehicleExportQuery;
import com.xiaopeng.vehicleConvoy.model.query.VehicleMapQuery;
import com.xiaopeng.vehicleConvoy.model.query.VehiclePageQuery;
import com.xiaopeng.api.vo.vehicleConvoy.XpVehicleVO;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDate;
import java.util.List;
/**
*
* 车辆管理 Mapper 接口
*
*
* @author mitao
* @since 2026-02-03
*/
public interface XpVehicleMapper extends BaseMapper {
/**
* 统计在线车辆数(operatingStatus=1 运营中)
*
* @return 在线车辆数
*/
Long countOnlineVehicles();
/**
* 统计运行车辆数(operatingStatus=1 运营中)
*
* @return 运行车辆数
*/
Long countRunningVehicles();
/**
* 统计时间范围内新增车辆数
*
* @param startDate 开始日期
* @param endDate 结束日期
* @return 新增车辆数
*/
Long countNewVehicles(@Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate);
/**
* 获取每日新增车辆数
*
* @param startDate 开始日期
* @param endDate 结束日期
* @return 每日统计列表
*/
List getDailyVehicleCount(@Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate);
/**
* 分页查询车辆列表
*
* @param pageInfo 分页参数
* @param query 查询参数
* @return 车辆列表
*/
List pageList(@Param("pageInfo") PageInfo pageInfo, @Param("query") VehicleMapQuery query);
List findList(@Param("query") VehicleMapQuery query);
/**
* 在库车辆管理分页查询
*
* @param pageInfo 分页参数
* @param query 查询参数
* @return 车辆列表
*/
List vehiclePageList(@Param("pageInfo") PageInfo pageInfo, @Param("query") VehiclePageQuery query);
/**
* 在库车辆导出列表查询
*
* @param query 查询参数
* @return 车辆列表
*/
List vehicleExportList(@Param("query") VehicleExportQuery query);
/**
* 车辆分页列表
* @param plateNumber
* @param fleetName
* @return
*/
Page getVehiclePageList(Page page, @Param("plateNumber") String plateNumber, @Param("fleetName") String fleetName);
}