From 1a7b7c276a56d96573aa814fe19532469e366908 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期六, 12 十月 2024 18:02:40 +0800 Subject: [PATCH] 领用&装机 信息统计 --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 53 insertions(+), 0 deletions(-) diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java index 4485429..da4e17e 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java @@ -4,6 +4,7 @@ import java.util.concurrent.*; import javax.annotation.Resource; +import cn.lihu.jh.module.ecg.Utils; import cn.lihu.jh.module.ecg.controller.admin.room.vo.MonitorInfoVO; import cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO; import cn.lihu.jh.module.ecg.dal.mysql.call.CallMapper; @@ -61,6 +62,8 @@ private DevRentMapper devRentMapper; ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor(); + + ConcurrentHashMap<String, RoomDO> mapRoomBed = new ConcurrentHashMap<>(); @Override public Integer createqueue(QueueSaveReqVO createReqVO) { @@ -409,6 +412,48 @@ return patientStatisticVO; } + public PatientStatisticVO getBedDevInstallStatistic(Long roomId, String bedNo) { + PatientStatisticVO patientStatisticVO = new PatientStatisticVO(); + List<BedQueueStatisticDO> bedQueueStatisticDOList = queueMapper.bedQueueStatistic(roomId, bedNo); + bedQueueStatisticDOList.forEach(item -> { + if (QueueStatusEnum.RECEIVED.getStatus() == item.getStatus()) { + patientStatisticVO.setReceivedNum(item.getTotalInStatus()); + } else if (QueueStatusEnum.FINISH.getStatus() == item.getStatus()) { + patientStatisticVO.setFinishedNum(item.getTotalInStatus()); + } + }); + + return patientStatisticVO; + } + + public PatientStatisticVO getBedDevReadyStatistic(Long roomId, String bedNo) { + PatientStatisticVO patientStatisticVO = new PatientStatisticVO(); + patientStatisticVO.setFinishedNum(0); + List<BedQueueStatisticDO> bedQueueStatisticDOList = queueMapper.bedQueueStatistic(roomId, bedNo); + bedQueueStatisticDOList.forEach(item -> { + if (QueueStatusEnum.READY.getStatus() == item.getStatus()) { + patientStatisticVO.setReadyNum(item.getTotalInStatus()); + } else if (QueueStatusEnum.PASSED.getStatus() == item.getStatus()) { + patientStatisticVO.setPassedNum(item.getTotalInStatus()); + } else if (QueueStatusEnum.RECEIVED.getStatus() == item.getStatus()) { + patientStatisticVO.setFinishedNum( item.getTotalInStatus() + patientStatisticVO.getFinishedNum() ); + } else if (QueueStatusEnum.INSTALLING.getStatus() == item.getStatus()) { + patientStatisticVO.setFinishedNum( item.getTotalInStatus() + patientStatisticVO.getFinishedNum() ); + } else if (QueueStatusEnum.FINISH.getStatus() == item.getStatus()) { + patientStatisticVO.setFinishedNum(item.getTotalInStatus() + patientStatisticVO.getFinishedNum()); + } + }); + + RoomDO roomDO = getRoomDO(roomId, bedNo); + Integer[] checkTypes = roomDO.getCheckTypes(); + List<Byte> statusList = new ArrayList<>(); + statusList.add(QueueStatusEnum.WAITING.getStatus()); + Integer num = queueMapper.checkTypeAndStatusStatistic(roomId, bedNo, checkTypes, statusList); + patientStatisticVO.setQueuingNum(num); + + return patientStatisticVO; + } + public void initCheckType() { queueServiceTxFunctions.initCheckType( ); } @@ -448,4 +493,12 @@ return roomMapper.getRoomByDocId(docId); } + private RoomDO getRoomDO(Long roomId, String bedNo) { + RoomDO roomDO = mapRoomBed.get( Utils.formatRoomBed(roomId, bedNo) ); + if ( null == roomDO) + roomDO = roomMapper.getRoom(roomId, bedNo); + + return roomDO; + } + } -- Gitblit v1.9.3