From b63358eeefeb4c7d0078cffe5dbba0380a740afc Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期二, 01 四月 2025 11:45:03 +0800
Subject: [PATCH] update 亲和功能

---
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java        |   11 +++++++++--
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java    |   12 +++++++++---
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java |    7 ++++++-
 README.md                                                                                                      |    5 ++++-
 4 files changed, 28 insertions(+), 7 deletions(-)

diff --git a/README.md b/README.md
index b183721..b4590b9 100644
--- a/README.md
+++ b/README.md
@@ -12,4 +12,7 @@
 3. HurryUP 浠� 璇ュ伐浣嶆敮鎸佺殑鎵�鏈夋鏌ラ」鐩� + 棰勭害鏃堕棿鏈�鏃� 鐨勩�愭帓闃熶腑銆戞偅鑰� 鎶撳埌 璇ュ伐浣� 鍙樻垚 銆愬氨璇婂噯澶囥��
 4. 甯歌妫�鏌ュ彨涓嬩竴浣嶃�侀鐢ㄥ彨涓嬩竴浣� 浠� 宸ヤ綅涓� 绗竴浣嶃�愬氨璇婂噯澶囥�戞偅鑰� 鍙樻垚 銆愬氨璇婁腑銆戯紝鐢变簬 灏辫瘖鍑嗗 浜烘暟鍙樺皯锛屽惎鍔� HurryUP 
 5. 棰勭害纭銆佸姞鎬� 涔熶細鍚姩 HurryUP锛屽皾璇� 鍒嗘祦鍒� 璇婂 + 鍒嗛厤鍐呴儴 seqNum
-6. 
+6. 浜插拰锛氭偅鑰呯殑澶氫釜妫�鏌ラ」鐩彲浠ュ湪宸ヤ綅涓婁竴骞跺仛锛岄伩鍏嶅娆℃帓闃燂紝姣斿鍔ㄦ�佸績鐢点�佸姩鎬佽鍘� 
+7. 浜插拰椤癸細鏄緷闄勮�咃紝渚濋檮鍒板凡鍒嗘祦鍒拌瘖瀹ょ殑妫�鏌ラ」鐩紝涔熷氨璇存湁宸ヤ綅鍜屽唴閮ㄥ簭鍙�
+7. 鍙洖锛屾洿鏂板唴閮ㄥ簭鍙�
+8. 
\ No newline at end of file
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java
index 69f3e1a..efc9b51 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java
@@ -846,10 +846,15 @@
         }
     }
 
+    /**
+     * 棰嗙敤瀹屾垚锛屼富鍔ㄥ姹備緷闄�
+     */
     private void procAffinityWhenReadyFinish(/*IN,OUT*/QueueDO bedOnStageQueueItem, Integer[] affinityCheckTypes) {
-        // 濡傛灉瀛樺湪 [瀹夎涓璢 浜插拰椤癸紝鍒欒窡闅忓叾涓竴涓翰鍜岄」
-        List<QueueDO> affinityInstallingItems = queueMapper.getCurPatGivenCheckTypesAndStatus(
-                bedOnStageQueueItem.getPatId(), affinityCheckTypes, QueueStatusEnum.INSTALLING.getStatus());
+        // 濡傛灉瀛樺湪 [瀹夎涓璢 [瀹夎杩囧彿] [瀹夎鍙洖] 鑳借渚濋檮鐨勬鏌ラ」锛屽垯渚濋檮鍒板叾涓竴涓鏌ラ」
+        List<QueueDO> affinityInstallingItems = queueMapper.getCurPatGivenCheckTypesAndStatusList(
+                bedOnStageQueueItem.getPatId(), affinityCheckTypes,
+                List.of(QueueStatusEnum.INSTALLING.getStatus(), QueueStatusEnum.PASSED_INSTALL.getStatus(),
+                        QueueStatusEnum.RECALLED_INSTALL.getStatus()));
         if (!affinityInstallingItems.isEmpty()) {
             QueueDO affinityInstallingItem = affinityInstallingItems.get(0);
             bedOnStageQueueItem.setStatus(QueueStatusEnum.AFFINITY_RECEIVED.getStatus()); // 浜插拰-棰嗙敤
@@ -867,6 +872,7 @@
         }
     }
 
+    // 濡傛灉瀛樺湪 [浜插拰-棰嗙敤] 浜插拰椤癸紝鍒欓�夋嫨 鍏朵腑涓�涓翰鍜岄」 鎺ユ浛鍏� 澶勪簬 [瀹夎涓璢
     private void procAffinityWhenInstallFinish(QueueDO bedInstallingQueueItem, Integer[] affinityCheckTypes) {
         List<QueueDO> affinityAffinityReceivedItems = queueMapper.getCurPatGivenCheckTypesAndStatus(
                 bedInstallingQueueItem.getPatId(), affinityCheckTypes, QueueStatusEnum.AFFINITY_RECEIVED.getStatus());
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 50c0a46..20aee9f 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
@@ -664,6 +664,9 @@
         return roomDO;
     }
 
+    /**
+     * 瑁呮満鍙洖锛屾槸鎶㈠崰寮忕殑锛屼細鏀瑰彉瑁呮満宸ヤ綅
+     */
     private void procAffinityWhenInstallRecall(String patId, Integer[] affinityCheckTypes, Long roomId_operator, String bedNo_operator) {
         List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatus(
                         patId, affinityCheckTypes, QueueStatusEnum.AFFINITY_RECEIVED.getStatus());
@@ -676,11 +679,15 @@
         }
     }
 
+    /**
+     * 棰勭害纭鍚庯紝涓诲姩瀵绘眰渚濋檮
+     */
     private void procAffinityWhenQueue(/*IN, OUT*/QueueSaveReqVO queueSaveReqVO, Integer[] affinityCheckTypes) {
-        // 濡傛灉瀛樺湪 澶勪簬 [灏辫瘖鍑嗗涓璢 | [灏辫瘖涓璢 鐨勪翰鍜岄」锛屽垯璺熼殢鍏朵腑涓�涓翰鍜岄」
+        // 濡傛灉瀛樺湪 [灏辫瘖鍑嗗] [灏辫瘖涓璢 [杩囧彿] [宸插彫鍥瀅 鑳借渚濋檮鐨勬鏌ラ」锛屽垯渚濋檮鍒板叾涓竴涓�
         List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatusList(
                 queueSaveReqVO.getPatId(), affinityCheckTypes,
-                List.of(QueueStatusEnum.READY.getStatus(), QueueStatusEnum.ONSTAGE.getStatus()));
+                List.of(QueueStatusEnum.READY.getStatus(), QueueStatusEnum.ONSTAGE.getStatus(),
+                        QueueStatusEnum.PASSED.getStatus(), QueueStatusEnum.RECALLED.getStatus()));
         if (!affinityItems.isEmpty()) {
             QueueDO queueItem = affinityItems.get(0);
             queueSaveReqVO.setStatus(QueueStatusEnum.AFFINITY_WAITING.getStatus()); // [浜插拰-鎺掗槦] 鐘舵��
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java
index 4f22cfb..a08dd72 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java
@@ -548,6 +548,9 @@
         refreshPriorityQueue(bedQueueBO);
     }
 
+    /**
+     * 鏈夋鏌ラ」鍒嗘祦鍒拌瘖瀹ゅ悗锛屼篃灏辨槸杩涘叆[灏辫瘖鍑嗗]鍚庯紝鎷� [鎺掗槦涓璢 + 鍏锋湁浜插拰鎬х殑 妫�鏌ラ」 鏉ヤ緷闄勮妫�鏌ラ」
+     */
     private void procAffinityWhenPreempt(QueueDO preemptQueueItem, Integer[] affinityCheckTypes) {
         List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatus(
                 preemptQueueItem.getPatId(), affinityCheckTypes, QueueStatusEnum.WAITING.getStatus());
@@ -626,8 +629,10 @@
         });
     }
 
+    /**
+     * 妫�鏌ラ」杩涘叆鍒� [瀹夎涓璢 鏃讹紝鎷� [宸查鐢╙ + 鍏锋湁浜插拰鎬х殑 妫�鏌ラ」 鏉ヤ緷闄勮妫�鏌ラ」
+     */
     private void procAffinityWhenSomeOneEntryInstalling(String patId, Long roomId_operator, String bedNo_operator, Integer[] affinityCheckTypes) {
-        // 瀵逛簬 鍒氳繘鍏ュ埌 [瀹夎涓璢鐨勯」,  濡傛灉瀛樺湪 [宸查鐢╙ 鐨勪翰鍜岄」锛屽垯闇�瑕佸叾璺熼殢
         List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatus(
                                 patId, affinityCheckTypes, QueueStatusEnum.RECEIVED.getStatus());
         for (int i = 0; i < affinityItems.size(); i++) {

--
Gitblit v1.9.3