package com.platform.dao;

import java.util.List;

import com.platform.pojo.*;
import org.apache.ibatis.annotations.Param;

public interface DoctorSchedulesPlanMapper {
	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table DOCTOR_SCHEDULES_PLAN
	 * @mbggenerated
	 */
	int countByExample(DoctorSchedulesPlanExample example);
	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table DOCTOR_SCHEDULES_PLAN
	 * @mbggenerated
	 */
	int deleteByExample(DoctorSchedulesPlanExample example);
	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table DOCTOR_SCHEDULES_PLAN
	 * @mbggenerated
	 */
	int deleteByPrimaryKey(String id);
	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table DOCTOR_SCHEDULES_PLAN
	 * @mbggenerated
	 */
	int insert(DoctorSchedulesPlan record);
	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table DOCTOR_SCHEDULES_PLAN
	 * @mbggenerated
	 */
	int insertSelective(DoctorSchedulesPlan record);
	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table DOCTOR_SCHEDULES_PLAN
	 * @mbggenerated
	 */
	List<DoctorSchedulesPlan> selectByExample(DoctorSchedulesPlanExample example);
	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table DOCTOR_SCHEDULES_PLAN
	 * @mbggenerated
	 */
	DoctorSchedulesPlan selectByPrimaryKey(String id);
	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table DOCTOR_SCHEDULES_PLAN
	 * @mbggenerated
	 */
	int updateByExampleSelective(@Param("record") DoctorSchedulesPlan record,
			@Param("example") DoctorSchedulesPlanExample example);
	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table DOCTOR_SCHEDULES_PLAN
	 * @mbggenerated
	 */
	int updateByExample(@Param("record") DoctorSchedulesPlan record,
			@Param("example") DoctorSchedulesPlanExample example);
	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table DOCTOR_SCHEDULES_PLAN
	 * @mbggenerated
	 */
	int updateByPrimaryKeySelective(DoctorSchedulesPlan record);
	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table DOCTOR_SCHEDULES_PLAN
	 * @mbggenerated
	 */
	int updateByPrimaryKey(DoctorSchedulesPlan record);
	/**
	 * 
	* @Title: selectSections 
	* @Description: TODO(查询排班科室列表接口方法) 
	* @param @param record
	* @param @param endDate
	* @param @param timeInterval
	* @param @return    设定文件 
	* @return List<ResponseParameter>    返回类型 
	* @throws
	 */
	List<Section> selectSections(@Param("startDate") String startDate, @Param("endDate") String endDate,
			@Param("timeInterval") String timeInterval,@Param("sectionType") String sectionType);
	/**
	 * 
	* @Title: selectDoctors 
	* @Description: TODO(查询某科室下排班医生接口方法) 
	* @param @param record
	* @param @param endDate
	* @param @param timeInterval
	* @param @param sectionNo
	* @param @return    设定文件 
	* @return List<Doctor>    返回类型 
	* @throws
	 */
	List<Doctor> selectDoctors(@Param("startDate") String startDate, @Param("endDate") String endDate,
			@Param("timeInterval") String timeInterval,@Param("sectionNo") String sectionNo);
	
	/**
	 * 
	* @Title: selectTicketsAll 
	* @Description: TODO(查询全部可用号表明细) 
	* @param @param startDate
	* @param @param endDate
	* @param @param timeInterval
	* @param @param sectionNo
	* @param @param doctorNo
	* @param @return    设定文件 
	* @return List<Ticket>    返回类型 
	* @throws
	 */
	List<Ticket> selectTicketsAll(@Param("startDate") String startDate, @Param("endDate") String endDate,
			@Param("timeInterval") String timeInterval,@Param("sectionNo") String sectionNo,@Param("doctorNo") String doctorNo);
	
	/**
	 * 
	* @Title: selectTicketsNoRetain 
	* @Description: TODO(查询除保留号外全部可用号源明细) 
	* @param @param startDate
	* @param @param endDate
	* @param @param timeInterval
	* @param @param sectionNo
	* @param @param doctorNo
	* @param @return    设定文件 
	* @return List<Ticket>    返回类型 
	* @throws
	 */
	List<Ticket> selectTicketsNoRetain(@Param("startDate") String startDate, @Param("endDate") String endDate,
			@Param("timeInterval") String timeInterval,@Param("sectionNo") String sectionNo,@Param("doctorNo") String doctorNo);
	
	/**
	 * 
	* @Title: selectTicketsByRegTime 
	* @Description: TODO(根据挂号时间查询可用号表记录) 
	* @param @param regTime
	* @param @param timeInterval
	* @param @param sectionNo
	* @param @param doctorNo
	* @param @return    设定文件 
	* @return List<Ticket>    返回类型 
	* @throws
	 */
	List<Ticket> selectTicketsByRegTime(@Param("regTime") String regTime,
			@Param("timeInterval") String timeInterval,@Param("sectionNo") String sectionNo,@Param("doctorNo") String doctorNo);

	/**
	 *
	 * @param cardNo
	 * @param visitDate
	 * @return
	 */
	List<OrderTicket> selectPreregedTickets(@Param("cardNo") String cardNo, @Param("visitDate") String visitDate);

	/**
	 *
	 * @param planId
	 * @return
	 */
	int updateStatusFlag(@Param("planId") String planId);

	/**
	 * 查询某医生下的预约病人信息
	 * @param doctorNo
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	List<PreregedPatient> selectPreregedPatient(@Param("doctorNo") String doctorNo, @Param("startDate") String startDate,@Param("endDate") String endDate);
}