From 7f876e6728533fa4e01a9b7976f5c4584a0af802 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期四, 14 十一月 2024 13:03:57 +0800 Subject: [PATCH] just comment --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java | 75 ++++++++++++++++++++++++++----------- 1 files changed, 52 insertions(+), 23 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..387bc26 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 @@ -286,7 +286,7 @@ public ErrorCode nextInstallPatient(Long roomId, String bedNo) { // 浠� DB 鎶� 搴忓彿鏈�灏忕殑 [宸查鐢╙ [宸插彫鍥�-瀹夎] 鐨勪汉 璁剧疆涓� [瀹夎涓璢 QueueDO firstItem = queueMapper.getFirstItemByRoomAndStatus(roomId, List.of(QueueStatusEnum.RECEIVED.getStatus(), QueueStatusEnum.RECALLED_INSTALL.getStatus())); - // 璇ュ伐浣� 娌℃湁 [宸查鐢╙ [宸插彫鍥�-瀹夎] 浜哄憳 + // 璇ュ伐浣� 娌℃湁 [宸查鐢╙ | [宸插彫鍥�-瀹夎] 浜哄憳 if (null == firstItem) { return QUEUE_NOT_READY_PATIENT; } @@ -298,14 +298,7 @@ // 妫�鏌ラ」鐩�.浜插拰鎬� 澶勭悊閫昏緫 CheckTypeDO checkTypeDO = getCheckTypeItem( firstItem.getBookCheckType() ); if (checkTypeDO.getAffinityCheckTypes().length > 0) { - List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatus(firstItem.getPatId(), - checkTypeDO.getAffinityCheckTypes(), QueueStatusEnum.RECEIVED.getStatus()); - for (int i = 0; i < affinityItems.size(); i++) { - QueueDO queueItem = affinityItems.get(i); - queueItem.setStatus(QueueStatusEnum.AFFINITY_RECEIVED.getStatus()); //鏀瑰彉 鎺掗槦鐘舵�� - queueItem.setBedNo( bedNo ); // 璺熼殢鍒� 瑁呮満 宸ヤ綅 - queueMapper.updateById(queueItem); - } + procAffinityWhenSomeOneEntryInstalling(firstItem.getPatId(), roomId, bedNo, checkTypeDO.getAffinityCheckTypes() ); } // 瑁呮満宸ヤ綅 鏃犱紭鍏堥槦鍒� @@ -401,11 +394,19 @@ 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); + + CheckTypeDO checkTypeDO = getCheckTypeItem( recalledQueueItem.getBookCheckType() ); + if ( checkTypeDO.getAffinityCheckTypes().length > 0) { + procAffinityWhenRecalled(recalledQueueItem, checkTypeDO.getAffinityCheckTypes()); + } curSeqNum.getAndIncrement(); @@ -454,21 +455,12 @@ return; } + QueueDO preemptQueueItem = queueMapper.getQueueItemBySeqNum(curSeqNum.get() + 1); + CheckTypeDO checkTypeDO = getCheckTypeItem( preemptQueueItem.getBookCheckType() ); + // 鎶㈠埌鎺掗槦鎮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); - } + procAffinityWhenPreempt(preemptQueueItem, checkTypeDO.getAffinityCheckTypes()); } curSeqNum.getAndIncrement(); @@ -514,6 +506,30 @@ MonitorInfoVO monitorInfoVO = new MonitorInfoVO(); roomBedStatistic(monitorInfoVO); log.info(" opening " + openingFlag.get() + " " + monitorInfoVO.getQueueNum() + " " + monitorInfoVO.getActiveQueueNum() + " " + monitorInfoVO.getCheckTypeBedInfo().toString() ); + } + + 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.setRoomId(preemptQueueItem.getRoomId()); + queueItem.setRoomName(preemptQueueItem.getRoomName()); + queueItem.setBedNo(preemptQueueItem.getBedNo()); + queueItem.setSeqNum( preemptQueueItem.getSeqNum()); // 浣跨敤鍚屼竴涓� 鍐呴儴搴忓彿 + queueMapper.updateById(queueItem); + } + } + + private void procAffinityWhenRecalled(QueueDO recalledQueueItem, Integer[] affinityCheckTypes) { + List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatus( + recalledQueueItem.getPatId(), affinityCheckTypes, 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) { @@ -569,6 +585,19 @@ }); } + 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.setRoomId(roomId_operator); + queueItem.setBedNo(bedNo_operator); // 璺熼殢鍒� 瑁呮満 宸ヤ綅 + queueMapper.updateById(queueItem); + } + } + private void roomBedStatistic(MonitorInfoVO monitorInfoVO) { Map<Integer, Integer> mapOpeningCheckBedStatInfo = new HashMap<>(); Map<Integer, Integer> mapOpeningInstallBedStatInfo = new HashMap<>(); -- Gitblit v1.9.3