jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/MonitorInfoVO.java
@@ -1,8 +1,10 @@ package cn.lihu.jh.module.ecg.controller.admin.room.vo; import cn.lihu.jh.module.ecg.service.queue.BedQueueBO; import lombok.Data; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @Data public class MonitorInfoVO { @@ -11,4 +13,5 @@ private Integer priorityQueueNum; private Integer openingFlag; private Map<Integer, String> checkTypeBedInfo; private ConcurrentHashMap<String, BedQueueBO> mapBedVsQueue; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java
@@ -227,18 +227,11 @@ // 检查项目.亲和性 处理逻辑 if (checkTypeDO.getAffinityCheckTypes().length > 0) { List<QueueDO> affinityReadyItems = queueMapper.getCurPatGivenCheckTypesAndStatus(firstOnStageQueueItem.getPatId(), checkTypeDO.getAffinityCheckTypes(), QueueStatusEnum.READY.getStatus()); if (!affinityReadyItems.isEmpty()) { QueueDO tmpQueueDO = affinityReadyItems.get(0); tmpQueueDO.setStatus(QueueStatusEnum.ONSTAGE.getStatus()); queueMapper.updateById(tmpQueueDO); } else { List<QueueDO> affinityAffinityWaitingItems = queueMapper.getCurPatGivenCheckTypesAndStatus(firstOnStageQueueItem.getPatId(), checkTypeDO.getAffinityCheckTypes(), QueueStatusEnum.AFFINITY_WAITING.getStatus()); if (!affinityAffinityWaitingItems.isEmpty()) { QueueDO tmpQueueDO = affinityAffinityWaitingItems.get(0); tmpQueueDO.setStatus(QueueStatusEnum.ONSTAGE.getStatus()); queueMapper.updateById(tmpQueueDO); } } } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceTxFunctions.java
@@ -274,18 +274,6 @@ firstReadyQueueItem.setStatus(QueueStatusEnum.ONSTAGE.getStatus()); queueMapper.updateById( firstReadyQueueItem ); // 检查项目.亲和性 处理逻辑 CheckTypeDO checkTypeDO = getCheckTypeItem( firstReadyQueueItem.getBookCheckType() ); if (checkTypeDO.getAffinityCheckTypes().length > 0) { List<QueueDO> affinityItems = queueMapper.getCurPatGivenCheckTypesAndStatus(firstReadyQueueItem.getPatId(), checkTypeDO.getAffinityCheckTypes(), QueueStatusEnum.AFFINITY_WAITING.getStatus()); if (!affinityItems.isEmpty()) { QueueDO tmpQueueDO = affinityItems.get(0); tmpQueueDO.setStatus( QueueStatusEnum.READY.getStatus() ); queueMapper.updateById( tmpQueueDO ); return GlobalErrorCodeConstants.SUCCESS; // 准备中 数量没有变化,故直接返回 } } // 优先队列中 该工位 就诊准备中人的数量 减一 BedQueueBO bo = mapBedVsQueue.get( Utils.formatRoomBed( roomId, bedNo ) ); bo.queueNum.getAndDecrement(); // 可能已经【并发的】在 hurry-up 中改变了值 @@ -631,6 +619,7 @@ monitorInfoVO.setQueueNum(mapBedVsQueue.size()); monitorInfoVO.setActiveQueueNum((int) mapBedVsQueue.values().stream().filter(item -> item.getStatus() == BedStatusEnum.DOCTOR_ON.getStatus()).count()); monitorInfoVO.setPriorityQueueNum( hashSetOperatingBedQueue.size() ); monitorInfoVO.setMapBedVsQueue( mapBedVsQueue ); } }