package com.fs.his.mapper;

import java.util.List;
import com.fs.his.domain.FsHospital;
import com.fs.his.param.FsHospitalListUParam;
import com.fs.his.vo.FsHospitalListUVO;
import com.fs.his.vo.OptionsVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * 医院Mapper接口
 * 
 * @author fs
 * @date 2023-06-01
 */
public interface FsHospitalMapper 
{
    /**
     * 查询医院
     * 
     * @param hospitalId 医院主键
     * @return 医院
     */
    public FsHospital selectFsHospitalByHospitalId(Long hospitalId);

    /**
     * 查询医院列表
     * 
     * @param fsHospital 医院
     * @return 医院集合
     */
    public List<FsHospital> selectFsHospitalList(FsHospital fsHospital);

    /**
     * 新增医院
     * 
     * @param fsHospital 医院
     * @return 结果
     */
    public int insertFsHospital(FsHospital fsHospital);

    /**
     * 修改医院
     * 
     * @param fsHospital 医院
     * @return 结果
     */
    public int updateFsHospital(FsHospital fsHospital);

    /**
     * 删除医院
     * 
     * @param hospitalId 医院主键
     * @return 结果
     */
    public int deleteFsHospitalByHospitalId(Long hospitalId);

    /**
     * 批量删除医院
     * 
     * @param hospitalIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteFsHospitalByHospitalIds(Long[] hospitalIds);

    @Select({"<script> " +
            "select h.*  from fs_hospital h   " +
            "where h.status=1  " +
            "<if test = 'maps.keyword != null     '> " +
            "and h.hospital_name like CONCAT('%',#{maps.keyword},'%')" +
            "</if>" +
            " order by h.hospital_id desc "+
            "</script>"})
    List<FsHospitalListUVO> selectFsHospitalListUVO(@Param("maps")FsHospitalListUParam param);

    @Select("select hospital_id dictValue,hospital_name dictLabel from fs_hospital")
    List<OptionsVO> selectAllFsHospitalList();
}
