From f2692e646a27ed59a06a3785a4e1bdb36dbeef9c Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期二, 01 四月 2025 16:46:30 +0800
Subject: [PATCH] update
---
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java | 94 ++++++++++++++++++++++++++--------------------
1 files changed, 53 insertions(+), 41 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..208d2cb 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,12 +514,49 @@
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());
for (int i = 0; i < affinityItems.size(); i++) {
QueueDO queueItem = affinityItems.get(i);
- queueItem.setStatus(QueueStatusEnum.AFFINITY_WAITING.getStatus()); //鏀瑰彉 鎺掗槦鐘舵��
+ queueItem.setStatus(QueueStatusEnum.AFFINITY.getStatus()); //鏀瑰彉 鎺掗槦鐘舵��
queueItem.setAffinityItem( 1 );
queueItem.setRoomId(preemptQueueItem.getRoomId());
queueItem.setRoomName(preemptQueueItem.getRoomName());
@@ -558,7 +568,7 @@
private void procAffinityWhenRecalled(QueueDO recalledQueueItem, Integer[] affinityCheckTypes) {
List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatus(
- recalledQueueItem.getPatId(), affinityCheckTypes, QueueStatusEnum.AFFINITY_WAITING.getStatus());
+ recalledQueueItem.getPatId(), affinityCheckTypes, QueueStatusEnum.AFFINITY.getStatus());
for (int i = 0; i < affinityItems.size(); i++) {
QueueDO queueItem = affinityItems.get(i);
queueItem.setSeqNum( recalledQueueItem.getSeqNum() ); // 鍙洖鍚庯紝鍘熷唴閮ㄥ簭鍙锋洿鏂�
@@ -619,13 +629,15 @@
});
}
+ /**
+ * 妫�鏌ラ」杩涘叆鍒� [瀹夎涓璢 鏃讹紝鎷� [宸查鐢╙ + 鍏锋湁浜插拰鎬х殑 妫�鏌ラ」 鏉ヤ緷闄勮妫�鏌ラ」
+ */
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++) {
QueueDO queueItem = affinityItems.get(i);
- queueItem.setStatus(QueueStatusEnum.AFFINITY_RECEIVED.getStatus()); //鏀瑰彉 鎺掗槦鐘舵��
+ queueItem.setStatus(QueueStatusEnum.AFFINITY_INSTALL.getStatus()); //鏀瑰彉 鎺掗槦鐘舵��
queueItem.setRoomId(roomId_operator);
queueItem.setBedNo(bedNo_operator); // 璺熼殢鍒� 瑁呮満 宸ヤ綅
queueMapper.updateById(queueItem);
--
Gitblit v1.9.3