From ad51febb28df10c3c5e6352f33d6610100802465 Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期一, 31 三月 2025 16:17:45 +0800
Subject: [PATCH] 领用完成、 常规检查完成 启动抢 排队 患者
---
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java | 81 ++++++++++++++++++++++------------------
1 files changed, 44 insertions(+), 37 deletions(-)
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 5ac7155..4f22cfb 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
@@ -418,43 +418,16 @@
}
// 澶勭悊 鎺掗槦涓� 鎮h��
- hurryupOneBedCheckTypes( bedQueueBO );
+ hurryupOneBedCheckTypeList( bedQueueBO );
}
- public void hurryupOneBedCheckTypes(BedQueueBO bedQueueBO) {
- while (bedQueueBO.queueNum.get() < bedQueueBO.maxQueueNum) {
- // 鎶㈠崰 鏄惁鏈夋帓闃熶腑鐨勬偅鑰�
- Integer updateNum = queueMapper.preemptWaitingPatientWithBedCheckTypes(
- bedQueueBO.getRoomId(),
- bedQueueBO.getRoomName(),
- bedQueueBO.getBedNo(),
- curSeqNum.get() + 1,
- QueueStatusEnum.WAITING.getStatus(),
- QueueStatusEnum.READY.getStatus(),
- bedQueueBO.checkTypes);
-
- // 娌℃湁鎶㈠埌鎺掗槦鎮h��
- if (null == updateNum || 0 == updateNum) {
- return;
- }
-
- QueueDO preemptQueueItem = queueMapper.getQueueItemBySeqNum(curSeqNum.get() + 1);
- CheckTypeDO checkTypeDO = getCheckTypeItem( preemptQueueItem.getBookCheckType() );
-
- // 鎶㈠埌鎺掗槦鎮h�呭悗锛屽鐞� 妫�鏌ラ」鐩�.浜插拰鎬� 閫昏緫
- if ( checkTypeDO.getAffinityCheckTypes().length > 0) {
- procAffinityWhenPreempt(preemptQueueItem, checkTypeDO.getAffinityCheckTypes());
- }
-
- curSeqNum.getAndIncrement();
-
- bedQueueBO.queueNum.incrementAndGet();
- }
-
- // 鏀瑰彉浜嗕紭鍏堥槦鍒楅『搴�
- refreshPriorityQueue(bedQueueBO);
- }
-
+ /**
+ * 涓�涓伐浣嶅彲浠ユ敮鎸佸涓鏌ラ」鐩紝鎵�浠ラ渶瑕佷繚璇佸涓鏌ラ」鐩殑灏辫瘖鏃堕棿鍏堝悗椤哄簭
+ * 鎸夌収涓�涓鏌ラ」鐩潵澶勭悊锛屽氨涓嶈兘淇濊瘉鍚屼竴涓伐浣嶇殑澶氫釜妫�鏌ラ」鐩殑灏辫瘖鏃堕棿鐨勫厛鍚庨『搴�
+ * 鎵�浠ュ疄鐜伴�昏緫鏄� 璁╂敮鎸佽妫�鏌ラ」鐩殑鎵�鏈夊伐浣嶅幓鎶㈠崰 銆愭帓闃熶腑銆戙�愬伐浣嶆敮鎸佺殑妫�鏌ラ」鐩�戠殑鎮h��
+ * 瀹為檯鎶㈠崰鐨勬湭蹇呮槸 鍙傛暟涓殑妫�鏌ラ」鐩殑鎮h�咃紝鍙兘鏄叾浠栨鏌ラ」鐩殑鎮h��
+ * @param checkType
+ */
public void hurryupOneCheckType(Integer checkType) {
PriorityBlockingQueue<BedQueueBO> priorityQueue = mapCheckTypePriorityQueue.get(checkType);
@@ -474,14 +447,14 @@
return;
// 鏌ョ湅 鏄惁鏈夋帓闃熶腑鐨勬偅鑰�
- Integer updateNum = queueMapper.preemptWaitingPatient(
+ Integer updateNum = queueMapper.preemptWaitingPatientWithBedCheckTypes(
bedQueueBO.getRoomId(),
bedQueueBO.getRoomName(),
bedQueueBO.getBedNo(),
curSeqNum.get() + 1,
QueueStatusEnum.WAITING.getStatus(),
QueueStatusEnum.READY.getStatus(),
- checkType);
+ bedQueueBO.checkTypes); //鍏抽敭鐐� 鍏抽敭鐐� 鍏抽敭鐐� checkType
// 娌℃湁鎶㈠埌鎺掗槦鎮h��
if (null == updateNum || 0 == updateNum) {
@@ -541,6 +514,40 @@
log.info(" opening " + openingFlag.get() + " " + monitorInfoVO.getQueueNum() + " " + monitorInfoVO.getActiveQueueNum() + " " + monitorInfoVO.getCheckTypeBedInfo().toString() );
}
+ private void hurryupOneBedCheckTypeList(BedQueueBO bedQueueBO) {
+ while (bedQueueBO.queueNum.get() < bedQueueBO.maxQueueNum) {
+ // 鎶㈠崰 鏄惁鏈夋帓闃熶腑鐨勬偅鑰�
+ Integer updateNum = queueMapper.preemptWaitingPatientWithBedCheckTypes(
+ bedQueueBO.getRoomId(),
+ bedQueueBO.getRoomName(),
+ bedQueueBO.getBedNo(),
+ curSeqNum.get() + 1,
+ QueueStatusEnum.WAITING.getStatus(),
+ QueueStatusEnum.READY.getStatus(),
+ bedQueueBO.checkTypes);
+
+ // 娌℃湁鎶㈠埌鎺掗槦鎮h��
+ if (null == updateNum || 0 == updateNum) {
+ return;
+ }
+
+ QueueDO preemptQueueItem = queueMapper.getQueueItemBySeqNum(curSeqNum.get() + 1);
+ CheckTypeDO checkTypeDO = getCheckTypeItem( preemptQueueItem.getBookCheckType() );
+
+ // 鎶㈠埌鎺掗槦鎮h�呭悗锛屽鐞� 妫�鏌ラ」鐩�.浜插拰鎬� 閫昏緫
+ if ( checkTypeDO.getAffinityCheckTypes().length > 0) {
+ procAffinityWhenPreempt(preemptQueueItem, checkTypeDO.getAffinityCheckTypes());
+ }
+
+ curSeqNum.getAndIncrement();
+
+ bedQueueBO.queueNum.incrementAndGet();
+ }
+
+ // 鏀瑰彉浜嗕紭鍏堥槦鍒楅『搴�
+ refreshPriorityQueue(bedQueueBO);
+ }
+
private void procAffinityWhenPreempt(QueueDO preemptQueueItem, Integer[] affinityCheckTypes) {
List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatus(
preemptQueueItem.getPatId(), affinityCheckTypes, QueueStatusEnum.WAITING.getStatus());
--
Gitblit v1.9.3