From cac7f142c909d712d6d49c45b0d4efbdef673e48 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期三, 13 十一月 2024 16:25:16 +0800 Subject: [PATCH] 过号 - 检查项目.亲和性 --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java | 53 +++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 37 insertions(+), 16 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 6c7db20..4139321 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 @@ -401,11 +401,15 @@ bedQueueBO.getRoomId(), bedQueueBO.getRoomName(), bedQueueBO.getBedNo(), - curSeqNum.get() + 1, + curSeqNum.get() + 1, // 杩囧彿鍥炴潵锛屾帓鍒板綋鍓嶇殑涓嬩竴浣� QueueStatusEnum.RECALLED.getStatus(), // 涓嶉渶瑕佸鐞� [瀹夎鍙洖], 鍘熷洜: 瀹夎宸ヤ綅 娌℃湁浼樺厛闃熷垪 QueueStatusEnum.READY.getStatus()); if (null == updateNum || 0 == updateNum) break; + + // 鍙洖 [杩囧彿] 鎮h�呭悗锛屽鐞� 妫�鏌ラ」鐩�.浜插拰鎬� 閫昏緫 + QueueDO recalledQueueItem = queueMapper.getQueueItemBySeqNum(curSeqNum.get() + 1); + updateAffinityItemsWhenRecalled( recalledQueueItem ); curSeqNum.getAndIncrement(); @@ -455,21 +459,8 @@ } // 鎶㈠埌鎺掗槦鎮h�呭悗锛屽鐞� 妫�鏌ラ」鐩�.浜插拰鎬� 閫昏緫 - QueueDO queueDO = queueMapper.getQueueItemBySeqNum(curSeqNum.get() + 1); - CheckTypeDO checkTypeDO = getCheckTypeItem( queueDO.getBookCheckType() ); - if ( checkTypeDO.getAffinityCheckTypes().length > 0) { - List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatus(queueDO.getPatId(), - checkTypeDO.getAffinityCheckTypes(), QueueStatusEnum.WAITING.getStatus()); - for (int i = 0; i < affinityItems.size(); i++) { - QueueDO queueItem = affinityItems.get(i); - queueItem.setStatus(QueueStatusEnum.AFFINITY_WAITING.getStatus()); //鏀瑰彉 鎺掗槦鐘舵�� - queueItem.setRoomId(queueDO.getRoomId()); - queueItem.setRoomName(queueDO.getRoomName()); - queueItem.setBedNo(queueDO.getBedNo()); - queueItem.setSeqNum(curSeqNum.get() + 1); // 浣跨敤鍚屼竴涓� 鍐呴儴搴忓彿 - queueMapper.updateById(queueItem); - } - } + QueueDO preemptQueueItem = queueMapper.getQueueItemBySeqNum(curSeqNum.get() + 1); + updateAffinityItemsWhenPreempt( preemptQueueItem ); curSeqNum.getAndIncrement(); @@ -516,6 +507,36 @@ log.info(" opening " + openingFlag.get() + " " + monitorInfoVO.getQueueNum() + " " + monitorInfoVO.getActiveQueueNum() + " " + monitorInfoVO.getCheckTypeBedInfo().toString() ); } + private void updateAffinityItemsWhenPreempt(QueueDO preemptQueueItem) { + CheckTypeDO checkTypeDO = getCheckTypeItem( preemptQueueItem.getBookCheckType() ); + if ( checkTypeDO.getAffinityCheckTypes().length > 0) { + List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatus(preemptQueueItem.getPatId(), + checkTypeDO.getAffinityCheckTypes(), QueueStatusEnum.WAITING.getStatus()); + for (int i = 0; i < affinityItems.size(); i++) { + QueueDO queueItem = affinityItems.get(i); + queueItem.setStatus(QueueStatusEnum.AFFINITY_WAITING.getStatus()); //鏀瑰彉 鎺掗槦鐘舵�� + queueItem.setRoomId(preemptQueueItem.getRoomId()); + queueItem.setRoomName(preemptQueueItem.getRoomName()); + queueItem.setBedNo(preemptQueueItem.getBedNo()); + queueItem.setSeqNum( preemptQueueItem.getSeqNum()); // 浣跨敤鍚屼竴涓� 鍐呴儴搴忓彿 + queueMapper.updateById(queueItem); + } + } + } + + private void updateAffinityItemsWhenRecalled(QueueDO recalledQueueItem) { + CheckTypeDO checkTypeDO = getCheckTypeItem( recalledQueueItem.getBookCheckType() ); + if ( checkTypeDO.getAffinityCheckTypes().length > 0) { + List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatus(recalledQueueItem.getPatId(), + checkTypeDO.getAffinityCheckTypes(), QueueStatusEnum.AFFINITY_WAITING.getStatus()); + for (int i = 0; i < affinityItems.size(); i++) { + QueueDO queueItem = affinityItems.get(i); + queueItem.setSeqNum( recalledQueueItem.getSeqNum() ); // 鍙洖鍚庯紝鍘熷唴閮ㄥ簭鍙锋洿鏂� + queueMapper.updateById(queueItem); + } + } + } + private Integer getBedReadyMax(Long roomId, String bedNo) { RoomDO roomDO = roomMapper.getRoom(roomId, bedNo); Integer[] checkTypes = roomDO.getCheckTypes(); -- Gitblit v1.9.3