From 8cef5428fbeda836463463344eef4a5c5ef1cd3e Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期二, 08 四月 2025 09:59:05 +0800 Subject: [PATCH] 获取小屏显示患者列表 --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/callingscreen/CallingScreenServiceImpl.java | 78 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 78 insertions(+), 0 deletions(-) diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/callingscreen/CallingScreenServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/callingscreen/CallingScreenServiceImpl.java index d50fcdf..db9a436 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/callingscreen/CallingScreenServiceImpl.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/callingscreen/CallingScreenServiceImpl.java @@ -171,6 +171,84 @@ return queueDOList; } + @Override + public List<QueueDO> getRoomCheckRelatedPatient(String ip) { + List<RoomDO> roomDOList = roomMapper.queueByIp(ip); + Optional<RoomDO> optionalQueueDO = roomDOList.stream().filter(item -> StringUtils.hasLength(item.getIp())).findFirst(); + if (!optionalQueueDO.isPresent()) { + return new ArrayList<QueueDO>(); + } + + Long roomId = optionalQueueDO.get().getRoomId(); + List<Integer> queueStatusList = new ArrayList<>(); + queueStatusList.add(QueueStatusEnum.RECALLED.getStatus()); + queueStatusList.add(QueueStatusEnum.READY.getStatus()); + queueStatusList.add(QueueStatusEnum.ONSTAGE.getStatus()); + queueStatusList.add(QueueStatusEnum.PASSED.getStatus()); + queueStatusList.add(QueueStatusEnum.AFFINITY.getStatus()); + List<QueueDO> queueDOList = queueMapper.getRoomQueueByStatus(roomId, queueStatusList); + + //鎶� [浜插拰鐨刔 鎸埌涓婚」鍚庨潰 + List<QueueDO> affinityWaitingList = new ArrayList<>(); + ListIterator<QueueDO> iterator = queueDOList.listIterator(); + while (iterator.hasNext()) { + QueueDO item = iterator.next(); + if (item.getStatus() == QueueStatusEnum.AFFINITY.getStatus()) { + iterator.remove(); + affinityWaitingList.add(item); + } + } + affinityWaitingList.forEach( affinityWaitingItem -> { + for (int i = queueDOList.size()-1; i >= 0; i--) { + if ( affinityWaitingItem.getSeqNum() == queueDOList.get(i).getSeqNum() ) { + queueDOList.add(i + 1, affinityWaitingItem); + break; + } + } + }); + + return queueDOList; + } + + @Override + public List<QueueDO> getRoomInstallRelatedPatient(String ip) { + List<RoomDO> roomDOList = roomMapper.queueByIp(ip); + Optional<RoomDO> optionalQueueDO = roomDOList.stream().filter(item -> StringUtils.hasLength(item.getIp())).findFirst(); + if (!optionalQueueDO.isPresent()) { + return new ArrayList<QueueDO>(); + } + + Long roomId = optionalQueueDO.get().getRoomId(); + List<Integer> queueStatusList = new ArrayList<>(); + queueStatusList.add(QueueStatusEnum.RECEIVED.getStatus()); + queueStatusList.add(QueueStatusEnum.PASSED_INSTALL.getStatus()); + queueStatusList.add(QueueStatusEnum.AFFINITY_INSTALL.getStatus()); + queueStatusList.add(QueueStatusEnum.INSTALLING.getStatus()); + queueStatusList.add(QueueStatusEnum.RECALLED_INSTALL.getStatus()); + List<QueueDO> queueDOList = queueMapper.getRoomQueueByStatus(roomId, queueStatusList); + + //鎶� [浜插拰鐨刔 鎸埌涓婚」鍚庨潰 + List<QueueDO> affinityReceivedList = new ArrayList<>(); + ListIterator<QueueDO> iterator = queueDOList.listIterator(); + while (iterator.hasNext()) { + QueueDO item = iterator.next(); + if (item.getStatus() == QueueStatusEnum.AFFINITY_INSTALL.getStatus()) { + iterator.remove(); + affinityReceivedList.add(item); + } + } + affinityReceivedList.forEach( affinityReceivedItem -> { + for (int i = queueDOList.size()-1; i >= 0; i--) { + if ( affinityReceivedItem.getSeqNum() == queueDOList.get(i).getSeqNum() ) { + queueDOList.add(i + 1, affinityReceivedItem); + break; + } + } + }); + + return queueDOList; + } + private Integer getDisplatSlotByQueueStatus( Integer queueStatus ) { if (QueueStatusEnum.READY.getStatus() == queueStatus) return 0; -- Gitblit v1.9.3