From cce9d33e6c03ab48fb22c62fe5de3d1e902c598f Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期三, 28 八月 2024 14:25:51 +0800
Subject: [PATCH] update

---
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/room/RoomMapper.java |   74 +++++++++++++++++++++++++++++++------
 1 files changed, 62 insertions(+), 12 deletions(-)

diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/room/RoomMapper.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/room/RoomMapper.java
index f34d020..5abba9a 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/room/RoomMapper.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/room/RoomMapper.java
@@ -7,10 +7,13 @@
 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.RoomResVO;
 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
@@ -18,20 +21,67 @@
  * @author 鑺嬮亾婧愮爜
  */
 @Mapper
-public interface RoomMapper extends BaseMapperX<RoomDO> {
+public interface RoomMapper extends BaseMapperX<RoomResVO> {
 
-    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));
+    default PageResult<RoomResVO> selectPage(RoomPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<RoomResVO>()
+                .eqIfPresent(RoomResVO::getRoomId, reqVO.getRoomId())
+                .eqIfPresent(RoomResVO::getBedNo, reqVO.getBedNo())
+                .betweenIfPresent(RoomResVO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(RoomResVO::getId));
     }
 
-    @Select({ "SELECT room_id, count(1) as bed_num FROM lihu.clinic_room group by room_id;" })
+    @Select({ "SELECT room_id, room_name, count(1) as bed_num FROM lihu.clinic_room group by room_id;" })
     List<RoomStatisticsDO> roomStatistic();
 
-    @Select({ "SELECT room_id, room_name FROM lihu.clinic_room group by room_id;" })
-    List<RoomDO> simpleRoomList();
+    @Select("<script> " +
+            "SELECT id, room_id, room_name, bed_no, status, doc_id, doc_name FROM lihu.clinic_room " +
+            "where status in ( " +
+                    " <foreach collection='curStatusList' separator=',' item='curStatus'>" +
+                    "  #{curStatus.status} " +
+                    " </foreach> );" +
+            "</script>")
+    List<RoomResVO> simpleRoomList(@Param("curStatusList") List<BedStatusEnum> curStatusList);
 
-}
\ No newline at end of file
+    @Select("SELECT * FROM lihu.clinic_room where room_id=#{roomId} and bed_no=#{bedNo} and doc_id=#{docId}")
+    RoomResVO getRoom(@Param("roomId")Long roomId, @Param("bedNo")String bedNo, @Param("docId")Long docId);
+
+    @Update("<script> " +
+            "update lihu.clinic_room set status=#{newStatus.status} where room_id=#{roomId} and bed_no=#{bedNo} " +
+            "and status in ( " +
+            " <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 in ( " +
+            " <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 in ( " +
+            " <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=null " +
+            "where room_id=#{roomId} and bed_no=#{bedNo} and doc_id=#{docId} and doc_name=#{docName}" +
+            "and status in ( " +
+            " <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);
+}

--
Gitblit v1.9.3