package com.prolog.rdc.tms.dao.mapper;

import com.prolog.framework.dao.mapper.BaseMapper;
import com.prolog.rdc.tms.model.dto.fleetManagement.*;
import com.prolog.rdc.tms.model.entity.line.TmsBaseVehicleModel;
import com.prolog.rdc.tms.model.vo.fleetManagement.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 车辆资料表
 * 
 * @author Eton Woo
 * @date 2022/03/15
 */
@Mapper
public interface TmsBaseVehicleMapper extends BaseMapper<TmsBaseVehicleModel> {

	/**
	 * 车辆与车型关联查询
	 * 
	 * @param vo
	 * @return
	 */
	List<VehiclePagingQueryDTO> queryPageVehicleData(@Param("vo") VehiclePagingQueryVO vo);

	/**
	 * 车辆与司机关联查询
	 * 
	 * @param vo
	 * @return
	 */
	List<VehicleDriverPagingQueryDTO> queryPageVehicleDriverData(@Param("vo") VehicleDriverPagingQueryVO vo);

	/**
	 * 车辆与线路关联查询
	 * 
	 * @param vo
	 * @return
	 */
	List<VehicleLinePagingQueryDTO> queryPageVehicleLineData(@Param("vo") VehicleLinePagingQueryVO vo);

	/**
	 * 车辆与证件关联查询
	 * 
	 * @param vo
	 * @return
	 */
	List<VehiclePaperPagingQueryDTO> queryPageVehiclePaperData(@Param("vo") VehiclePaperPagingQueryVO vo);

	/**
	 * 车辆与设备关联查询
	 *
	 * @param vo
	 * @return
	 */
	List<VehicleDeviceLinkViewDTO> pageVehicleDeviceData(@Param("vo") VehiclePaperPagingQueryVO vo);

	/**
	 * 车辆与容器关联查询
	 *
	 * @param vo
	 * @return
	 */
	List<ContainerDTO> queryVehicleContainer(@Param("vo") VehiclePaperPagingQueryVO vo);

	/**
	 * 车辆与车型关联查询
	 *
	 * @param vo
	 * @return
	 */
	List<VehiclePopupDTO> queryVehicleAndVehicleType(@Param("vo") VehiclePopupVO vo);

	/**
	 * 车辆与车型关联查询
	 *
	 * @param vo
	 * @return
	 */
	List<VehicleDriverPagingQueryDTO> queryDriverByVehicleType(@Param("vo") VehiclePopupVO vo);


}
