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

import java.util.List;

import com.prolog.rdc.tms.app.model.dto.AppointmentBillQueryForCarrierDTO;
import com.prolog.rdc.tms.app.model.vo.AppointmentBillQueryForCarrierVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.prolog.framework.dao.mapper.BaseMapper;
import com.prolog.rdc.tms.app.model.dto.AppointmentBillDetailQueryDTO;
import com.prolog.rdc.tms.app.model.dto.AppointmentBillQueryDTO;
import com.prolog.rdc.tms.app.model.dto.BranchAppointmentInfoDTO;
import com.prolog.rdc.tms.app.model.dto.DriverGetNumberQueryDTO;
import com.prolog.rdc.tms.app.model.dto.WarehousePickUpPendingDataDTO;
import com.prolog.rdc.tms.app.model.entity.TmsAppointmentHeaderModel;
import com.prolog.rdc.tms.app.model.vo.AppointmentBillDetailQueryVO;
import com.prolog.rdc.tms.app.model.vo.AppointmentBillQueryVO;
import com.prolog.rdc.tms.app.model.vo.AppointmentHeadQueryVO;
import com.prolog.rdc.tms.app.model.vo.DriverGetNumberQueryVO;
import com.prolog.rdc.tms.app.model.vo.QueryMaxReserveNumberVO;
import com.prolog.rdc.tms.app.model.vo.WarehousePickUpNumberDataVO;

/**
 * 预约单汇总数据库访问层
 *
 * @author xiaoyf
 * @since 2022-04-13 14:13:38
 */
@Repository
public interface TmsAppointmentHeaderMapper extends BaseMapper<TmsAppointmentHeaderModel> {

	/**
	 * 仓库已预约信息查询
	 *
	 * @param queryVO
	 * @return
	 */
	List<BranchAppointmentInfoDTO> queryBranchAppointmentInfo(@Param("vo") AppointmentHeadQueryVO queryVO);

	/**
	 * 仓库最大已预约号查询
	 *
	 * @param confirmVO
	 * @return
	 */
	String queryMaxReserveNumber(@Param("vo") QueryMaxReserveNumberVO confirmVO);

	/**
	 * 司机预约单信息查询
	 *
	 * @param queryVO
	 * @return
	 */
	List<AppointmentBillQueryDTO> appointmentBillQuery(@Param("vo") AppointmentBillQueryVO queryVO);

	// STD-DEVELOP20220823 lhb 20220823 预约中的需求新增 start
	/**
	 * 司机预约中信息查询
	 *
	 * @param queryVO
	 * @return
	 */
	List<AppointmentBillQueryDTO> appointmentDoingBillQuery(@Param("vo") AppointmentBillQueryVO queryVO);
    // STD-DEVELOP20220823 lhb 20220823 预约中的需求新增 end

	/**
	 * 司机待取号预约单信息查询
	 *
	 * @param queryVO
	 * @return
	 */
	List<WarehousePickUpPendingDataDTO> warehousePickUpPendingQuery(@Param("vo") WarehousePickUpNumberDataVO queryVO);

	/**
	 * 司机待取号预约单信息查询
	 *
	 * @param queryVO
	 * @return
	 */
	List<DriverGetNumberQueryDTO> driverGetNumberQuery(@Param("vo") DriverGetNumberQueryVO queryVO);

	/**
	 * 司机预约单明细信息查询
	 *
	 * @param queryVO
	 * @return
	 */
	List<AppointmentBillDetailQueryDTO> appointmentBillDetailQuery(@Param("vo") AppointmentBillDetailQueryVO queryVO);

	/**
	 * 承运商预约列表分页查询
	 * @param queryVO
	 * @return
	 */
	List<AppointmentBillQueryForCarrierDTO> queryForCarrier(@Param("vo") AppointmentBillQueryForCarrierVO queryVO);

}
