From 340b537e00c8c9a3b2e813d50c470573ab513b5c Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期四, 10 十月 2024 17:13:11 +0800 Subject: [PATCH] update --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java | 49 ++++++++++++++++++++++++++++++------------------- 1 files changed, 30 insertions(+), 19 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 2c13a09..7d5d6e3 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 @@ -15,7 +15,6 @@ import cn.lihu.jh.module.ecg.enums.QueueStatusEnum; import cn.lihu.jh.module.system.api.oauth2.OAuth2TokenApi; import lombok.extern.slf4j.Slf4j; -import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; import org.springframework.validation.annotation.Validated; @@ -58,8 +57,11 @@ ConcurrentHashMap<String, BedQueueBO > mapBedVsQueue = new ConcurrentHashMap<>(); - //PriorityBlockingQueue<BedQueueBO> priorityQueue = new PriorityBlockingQueue<>(); - Map<Integer, PriorityBlockingQueue<BedQueueBO>> mapCheckTypeVsPriorityQueue = new HashMap(); + // 鍩轰簬绫诲瀷鐨�, 妫�鏌ユ垨瑁呮満鐨勪紭鍏堥槦鍒� + Map<Integer, PriorityBlockingQueue<BedQueueBO>> mapCheckPriorityQueue = new HashMap(); + + // 鍩轰簬绫诲瀷鐨�, 瑁呮満鍑嗗鐨勪紭鍏堥槦鍒� + Map<Integer, PriorityBlockingQueue<BedQueueBO>> mapReadyPriorityQueue = new HashMap(); Map<Integer, Integer> mapCheckTypeVsReadyMax = null; @@ -250,7 +252,7 @@ * 2. 鏈嶅姟杩愮淮閲嶅惎鏃� */ public ErrorCode bedReload() { - mapCheckTypeVsPriorityQueue.clear(); + mapCheckPriorityQueue.clear(); mapBedVsQueue.clear(); // 娓呴櫎闈炲綋澶╃殑鎺掗槦浜哄憳 @@ -351,7 +353,7 @@ public void hurryupOneCheckType(Integer checkType) { - PriorityBlockingQueue<BedQueueBO> priorityQueue = mapCheckTypeVsPriorityQueue.get(checkType); + PriorityBlockingQueue<BedQueueBO> priorityQueue = mapCheckPriorityQueue.get(checkType); if (null == priorityQueue) return; @@ -411,16 +413,15 @@ public MonitorInfoVO getMonitorInfo() { MonitorInfoVO monitorInfoVO = new MonitorInfoVO(); monitorInfoVO.setOpeningFlag( openingFlag.get() ); - String[] arrStatInfo = roomBedStatistic(); - monitorInfoVO.setOpeningInfo(arrStatInfo[0]); - monitorInfoVO.setOperatingInfo(arrStatInfo[1]); + roomBedStatistic(monitorInfoVO); return monitorInfoVO; } public void monitorInfo() { - String[] arrStatInfo = roomBedStatistic(); - log.info(" opening " + openingFlag.get() + " openingInfo " + arrStatInfo[0] + " operatingInfo " + arrStatInfo[1] ); + MonitorInfoVO monitorInfoVO = new MonitorInfoVO(); + roomBedStatistic(monitorInfoVO); + log.info(" opening " + openingFlag.get() + " " + monitorInfoVO.getQueueNum() + " " + monitorInfoVO.getActiveQueueNum() + " " + monitorInfoVO.getCheckTypeBedInfo().toString() ); } private Integer getBedReadyMax(Long roomId, String bedNo) { @@ -437,7 +438,7 @@ private void addPriorityQueue(BedQueueBO bedQueueBO) { Integer[] checkTypes = bedQueueBO.getCheckTypes(); Arrays.stream(checkTypes).forEach(checkType -> { - PriorityBlockingQueue<BedQueueBO> priorityQueue = mapCheckTypeVsPriorityQueue.get(checkType); + PriorityBlockingQueue<BedQueueBO> priorityQueue = mapCheckPriorityQueue.get(checkType); if (!priorityQueue.contains(bedQueueBO)) { priorityQueue.offer(bedQueueBO); } else { @@ -449,7 +450,7 @@ private void removePriorityQueue(BedQueueBO bedQueueBO) { Integer[] checkTypes = bedQueueBO.getCheckTypes(); Arrays.stream(checkTypes).forEach(checkType -> { - PriorityBlockingQueue<BedQueueBO> priorityBlockingQueue = mapCheckTypeVsPriorityQueue.get(checkType); + PriorityBlockingQueue<BedQueueBO> priorityBlockingQueue = mapCheckPriorityQueue.get(checkType); if (null != priorityBlockingQueue) priorityBlockingQueue.remove(bedQueueBO); }); @@ -458,13 +459,13 @@ private void refreshPriorityQueue(BedQueueBO bedQueueBO) { Integer[] checkTypes = bedQueueBO.getCheckTypes(); Arrays.stream(checkTypes).forEach(checkType -> { - PriorityBlockingQueue<BedQueueBO> priorityQueue = mapCheckTypeVsPriorityQueue.get(checkType); + PriorityBlockingQueue<BedQueueBO> priorityQueue = mapCheckPriorityQueue.get(checkType); priorityQueue.remove(bedQueueBO); priorityQueue.offer(bedQueueBO); }); } - private String[] roomBedStatistic() { + private void roomBedStatistic(MonitorInfoVO monitorInfoVO) { Map<Integer, Integer> mapOpeningCheckBedStatInfo = new HashMap<>(); Map<Integer, Integer> mapOpeningReadyBedStatInfo = new HashMap<>(); Map<Integer, Integer> mapOperatingCheckBedStatInfo = new HashMap<>(); @@ -487,11 +488,12 @@ }); }); - String openingBedInfo = "鎬绘暟锛�" + mapBedVsQueue.size() + " 妫�鏌ュ伐浣嶆暟: " + mapOpeningCheckBedStatInfo.toString() + " 棰嗙敤宸ヤ綅鏁�: " + mapOpeningReadyBedStatInfo.toString(); - //杩愯惀涓伐浣嶇粺璁� HashSet<BedQueueBO> hashSetOperatingBedQueue = new HashSet<>(); - mapCheckTypeVsPriorityQueue.values().forEach(priorityQueue->{ + mapCheckPriorityQueue.values().forEach(priorityQueue->{ + priorityQueue.stream().forEach(bedQueueBO -> hashSetOperatingBedQueue.add(bedQueueBO)); + }); + mapReadyPriorityQueue.values().forEach(priorityQueue->{ priorityQueue.stream().forEach(bedQueueBO -> hashSetOperatingBedQueue.add(bedQueueBO)); }); @@ -505,9 +507,18 @@ }); }); - String operatingBedInfo = "鎬绘暟锛�" + hashSetOperatingBedQueue.size() + " 妫�鏌ュ伐浣嶆暟: " + mapOperatingCheckBedStatInfo.toString() + " 棰嗙敤宸ヤ綅鏁�: " + mapOperatingReadyBedStatInfo.toString(); + Map<Integer, String> mapCheckTypeBedInfo = new HashMap<>(); + mapCheckTypeVsReadyMax.keySet().forEach( checkType -> { + String str = mapOpeningCheckBedStatInfo.get(checkType) + " " + + mapOpeningReadyBedStatInfo.get(checkType) + " " + + mapOperatingCheckBedStatInfo.get(checkType) + " " + + mapOperatingReadyBedStatInfo.get(checkType) + " "; + mapCheckTypeBedInfo.put( checkType, str); + }); - return new String[]{openingBedInfo, operatingBedInfo}; + monitorInfoVO.setCheckTypeBedInfo(mapCheckTypeBedInfo); + monitorInfoVO.setQueueNum(mapBedVsQueue.size()); + monitorInfoVO.setActiveQueueNum(hashSetOperatingBedQueue.size()); } } -- Gitblit v1.9.3