From 3f3ec086fc73102dd2473fd2e197c3c9a16d4231 Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期四, 14 十一月 2024 10:12:55 +0800
Subject: [PATCH] refactor

---
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java |   26 ++++++-------
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java    |   39 ++++++++++++++-----
 2 files changed, 40 insertions(+), 25 deletions(-)

diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java
index 7592e6b..3bcf171 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java
@@ -67,27 +67,44 @@
 
     @Select("<script>" +
             "SELECT * FROM lihu.queue " +
-            "where pat_id = #{patId} and book_check_type in (" +
-            " <foreach collection='arrCheckType' separator=',' item='checkType'>" +
-            "   #{checkType} " +
-            " </foreach> )" +
-            " and TO_DAYS(book_date) = TO_DAYS(NOW()) " +
+            "where pat_id = #{patId} " +
+            "  and book_check_type in (" +
+            "    <foreach collection='arrCheckType' separator=',' item='checkType'>" +
+            "      #{checkType} " +
+            "    </foreach> )" +
+            "  and TO_DAYS(book_date) = TO_DAYS(NOW()) " +
             "</script>")
     List<QueueDO> getCurPatGivenCheckTypes(@Param("patId")String patId, @Param("arrCheckType")Integer[] arrCheckType);
 
     @Select("<script>" +
             "SELECT * FROM lihu.queue " +
-            "where pat_id = #{patId} and book_check_type in (" +
-            " <foreach collection='arrCheckType' separator=',' item='checkType'>" +
-            "   #{checkType} " +
-            " </foreach> ) " +
-            " and status = #{status} " +
-            " and TO_DAYS(book_date) = TO_DAYS(NOW()) " +
+            "where pat_id = #{patId} " +
+            "  and book_check_type in (" +
+            "    <foreach collection='arrCheckType' separator=',' item='_checkType'>" +
+            "      #{_checkType} " +
+            "    </foreach> ) " +
+            "  and status = #{status} " +
+            "  and TO_DAYS(book_date) = TO_DAYS(NOW()) " +
             "</script>")
     List<QueueDO> getCurPatGivenCheckTypesAndStatus(@Param("patId")String patId, @Param("arrCheckType")Integer[] arrCheckType, @Param("status")Integer status);
 
     @Select("<script>" +
             "SELECT * FROM lihu.queue " +
+            "where pat_id = #{patId} " +
+            "  and book_check_type in (" +
+            "    <foreach collection='arrCheckType' separator=',' item='_checkType'>" +
+            "      #{_checkType} " +
+            "    </foreach> ) " +
+            "  and status in (" +
+            "    <foreach collection='statusList' separator=',' item='_status'>" +
+            "      #{_status} " +
+            "    </foreach> ) " +
+            "  and TO_DAYS(book_date) = TO_DAYS(NOW()) " +
+            "</script>")
+    List<QueueDO> getCurPatGivenCheckTypesAndStatusList(@Param("patId")String patId, @Param("arrCheckType")Integer[] arrCheckType, @Param("statusList")List<Integer> statusList);
+
+    @Select("<script>" +
+            "SELECT * FROM lihu.queue " +
             "where id >= #{from} and status in (" +
             " <foreach collection='statusList' separator=',' item='status'>" +
             "  #{status} " +
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java
index 10ca305..19825ba 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java
@@ -318,24 +318,22 @@
     @Override
     @Transactional
     public void queue(QueueSaveReqVO queueSaveReqVO) {
-        queueSaveReqVO.setStatus(QueueStatusEnum.WAITING.getStatus()); //榛樿鐘舵��: 鎺掗槦涓�
+        // 榛樿浠� [鎺掗槦涓璢 鐘舵�� 杩涘叆 queue 琛�
+        queueSaveReqVO.setStatus(QueueStatusEnum.WAITING.getStatus());
 
         // 澶勭悊 妫�鏌ラ」鐩�.浜插拰鎬� 閫昏緫
+        // 濡傛灉瀛樺湪 澶勪簬 [灏辫瘖鍑嗗涓璢 | [灏辫瘖涓璢 鐨勪翰鍜岄」锛屽垯璺熼殢鍏朵腑涓�涓翰鍜岄」
         CheckTypeDO checkTypeDO = queueServiceTxFunctions.getCheckTypeItem( queueSaveReqVO.getBookCheckType() );
         if ( checkTypeDO.getAffinityCheckTypes().length > 0) {
-            List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypes(queueSaveReqVO.getPatId(), checkTypeDO.getAffinityCheckTypes());
-
-            for (int i=0; i < affinityItems.size(); i++) {
-                QueueDO queueItem = affinityItems.get(i);
-                if (QueueStatusEnum.READY.getStatus() == queueItem.getStatus()
-                    || QueueStatusEnum.ONSTAGE.getStatus() == queueItem.getStatus()) {
-                    queueSaveReqVO.setStatus(QueueStatusEnum.AFFINITY_WAITING.getStatus()); //鏀瑰彉 鎺掗槦鐘舵��
-                    queueSaveReqVO.setRoomId(queueItem.getRoomId());
-                    queueSaveReqVO.setRoomName(queueItem.getRoomName());
-                    queueSaveReqVO.setBedNo(queueItem.getBedNo());
-                    queueSaveReqVO.setSeqNum(queueItem.getSeqNum());
-                    break;
-                }
+            List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatusList( queueSaveReqVO.getPatId(), checkTypeDO.getAffinityCheckTypes(),
+                    List.of(QueueStatusEnum.READY.getStatus(), QueueStatusEnum.ONSTAGE.getStatus()));
+            if (!affinityItems.isEmpty()) {
+                QueueDO queueItem = affinityItems.get(0);
+                queueSaveReqVO.setStatus(QueueStatusEnum.AFFINITY_WAITING.getStatus()); // [浜插拰-鎺掗槦] 鐘舵��
+                queueSaveReqVO.setRoomId(queueItem.getRoomId());
+                queueSaveReqVO.setRoomName(queueItem.getRoomName());
+                queueSaveReqVO.setBedNo(queueItem.getBedNo());
+                queueSaveReqVO.setSeqNum(queueItem.getSeqNum());
             }
         }
 

--
Gitblit v1.9.3