package com.gci.boot.modules.vehicles.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gci.boot.modules.statis.vo.AnnualInspectionInfoStatisVo;
import com.gci.boot.modules.statis.vo.StatisParamVO;
import com.gci.boot.modules.vehicles.entity.TbAnnualInspectionInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gci.boot.modules.vehicles.query.AnnualInspectionInfoQuery;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 年检信息表 Mapper 接口
 * </p>
 *
 * @author 2464
 * @since 2023-09-20
 */
public interface TbAnnualInspectionInfoMapper extends BaseMapper<TbAnnualInspectionInfo> {

    IPage<TbAnnualInspectionInfo> pageBuild(@Param("page") Page<TbAnnualInspectionInfo> page,@Param("query") AnnualInspectionInfoQuery query);

    IPage<TbAnnualInspectionInfo> remindList(@Param("page") Page<TbAnnualInspectionInfo> page,@Param("query") AnnualInspectionInfoQuery query);

    IPage<AnnualInspectionInfoStatisVo> findStatisAnnualInspectionInfoByDayMonthYear(@Param("page") Page<AnnualInspectionInfoStatisVo> page,@Param("vo") StatisParamVO vo);

    List<AnnualInspectionInfoStatisVo> findStatisAnnualInspectionInfoAll(@Param("vo") StatisParamVO vo,
                                                                         @Param("listProjectIds") List<String> listProjectIds);

    List<AnnualInspectionInfoStatisVo> findStatisAnnualInspectionInfoAndPlateNumberAll(@Param("vo") StatisParamVO vo,
                                                                                       @Param("listProjectIds") List<String> listProjectIds);

    List<AnnualInspectionInfoStatisVo> findStatisAnnualInspectionInfoAndPlateNumberAllHis(@Param("vo") StatisParamVO vo,
                                                                                       @Param("listProjectIds") List<String> listProjectIds);

    List<AnnualInspectionInfoStatisVo> findStatisAnnualInspectionInfoAndPlateNumber(@Param("vo") StatisParamVO vo);

    List<AnnualInspectionInfoStatisVo> findStatisAnnualInspectionInfoAllGroupByProject(@Param("vo") StatisParamVO vo);
}
