package cn.lihu.jh.module.ecg.dal.mysql.room;
|
|
import java.util.*;
|
|
import cn.lihu.jh.framework.common.pojo.PageResult;
|
import cn.lihu.jh.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.lihu.jh.framework.mybatis.core.mapper.BaseMapperX;
|
|
import cn.lihu.jh.module.ecg.controller.admin.room.vo.RoomPageReqVO;
|
import cn.lihu.jh.module.ecg.dal.dataobject.room.RoomDO;
|
import cn.lihu.jh.module.ecg.dal.dataobject.room.RoomStatisticsDO;
|
import cn.lihu.jh.module.ecg.enums.BedStatusEnum;
|
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Update;
|
|
/**
|
* 诊室和诊疗床 Mapper
|
*
|
* @author 芋道源码
|
*/
|
@Mapper
|
public interface RoomMapper extends BaseMapperX<RoomDO> {
|
|
default PageResult<RoomDO> selectPage(RoomPageReqVO reqVO) {
|
return selectPage(reqVO, new LambdaQueryWrapperX<RoomDO>()
|
.eqIfPresent(RoomDO::getRoomId, reqVO.getRoomId())
|
.eqIfPresent(RoomDO::getBedNo, reqVO.getBedNo())
|
.betweenIfPresent(RoomDO::getCreateTime, reqVO.getCreateTime())
|
.orderByDesc(RoomDO::getId));
|
}
|
|
@Select({ "SELECT room_id, room_name, count(1) as bed_num FROM lihu.clinic_room group by room_id;" })
|
List<RoomStatisticsDO> roomStatistic();
|
|
@Select({ "SELECT id, room_id, room_name, bed_no, status, doc_id, doc_name FROM lihu.clinic_room where status >= 10;" })
|
List<RoomDO> simpleRoomList();
|
|
@Update("<script> " +
|
"update lihu.clinic_room set status=#{newStatus.status} where room_id=#{roomId} and bed_no=#{bedNo} " +
|
"and status=( " +
|
" <foreach collection='curStatusList' separator=',' item='curStatus'>" +
|
" #{curStatus.status} " +
|
" </foreach> );" +
|
"</script>")
|
Integer setBedStatus(@Param("roomId")Long roomId, @Param("bedNo")String bedNo, @Param("newStatus") BedStatusEnum newStatus, @Param("curStatusList") List<BedStatusEnum> curStatusList);
|
|
@Update("<script> " +
|
"update lihu.clinic_room set status=#{newStatus.status} " +
|
"where room_id=#{roomId} and bed_no=#{bedNo} and doc_id=#{docId} and doc_name=#{docName}" +
|
"and status=( " +
|
" <foreach collection='curStatusList' separator=',' item='curStatus'>" +
|
" #{curStatus.status} " +
|
" </foreach> );" +
|
"</script>")
|
Integer setBedDoctorPause(@Param("roomId")Long roomId, @Param("bedNo")String bedNo, @Param("docId")Long docId, @Param("docName")String docName, @Param("newStatus") BedStatusEnum newStatus, @Param("curStatusList") List<BedStatusEnum> curStatusList);
|
|
@Update("<script> " +
|
"update lihu.clinic_room set status=#{newStatus.status}, doc_id=#{docId}, doc_name=#{docName} " +
|
"where room_id=#{roomId} and bed_no=#{bedNo} " +
|
"and status=( " +
|
" <foreach collection='curStatusList' separator=',' item='curStatus'>" +
|
" #{curStatus.status} " +
|
" </foreach> );" +
|
"</script>")
|
Integer setBedDoctorOn(@Param("roomId")Long roomId, @Param("bedNo")String bedNo, @Param("docId")Long docId, @Param("docName")String docName, @Param("newStatus") BedStatusEnum newStatus, @Param("curStatusList") List<BedStatusEnum> curStatusList);
|
|
@Update("<script> " +
|
"update lihu.clinic_room set status=#{newStatus.status}, doc_id=null, doc_name='' " +
|
"where room_id=#{roomId} and bed_no=#{bedNo} and doc_id=#{docId} and doc_name=#{docName}" +
|
"and status=( " +
|
" <foreach collection='curStatusList' separator=',' item='curStatus'>" +
|
" #{curStatus.status} " +
|
" </foreach> );" +
|
"</script>")
|
Integer setBedDoctorOff(@Param("roomId")Long roomId, @Param("bedNo")String bedNo, @Param("docId")Long docId, @Param("docName")String docName, @Param("newStatus") BedStatusEnum newStatus, @Param("curStatusList") List<BedStatusEnum> curStatusList);
|
}
|