package org.example.mapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.example.entity.HospitalRoom; import java.util.List; @Mapper public interface HospitalRoomMapper { /** * 查询所有病房 * @return 病房列表 */ List findAll(); /** * 根据条件查询病房 * @param code 病房代码 * @param department 所属科室 * @param ward 所属病区 * @param enabled 是否启用 * @return 病房列表 */ List findByConditions(@Param("code") String code, @Param("department") String department, @Param("ward") String ward, @Param("enabled") Boolean enabled); /** * 根据病房代码查询病房 * @param code 病房代码 * @return 病房信息 */ HospitalRoom findByCode(String code); /** * 根据病房代码和所属病区查询病房数量 * @param code 病房代码 * @param belongWard 所属病区 * @return 符合条件的病房数量 */ int countByCodeAndWard(@Param("code") String code, @Param("belongWard") String belongWard); /** * 根据病房代码和所属病区查询病房数量(排除指定病房) * @param code 病房代码 * @param belongWard 所属病区 * @param excludeCode 要排除的病房代码 * @return 符合条件的病房数量 */ int countByCodeAndWardExcluding(@Param("code") String code, @Param("belongWard") String belongWard, @Param("excludeCode") String excludeCode); /** * 根据病房代码删除病房 * @param code 病房代码 */ void deleteByCode(String code); /** * 插入新病房 * @param room 病房信息 */ void insert(HospitalRoom room); /** * 更新病房信息 * @param room 病房信息 */ void update(@Param("room") HospitalRoom room, @Param("originCode") String originCode); }