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/controller/admin/doctor/DoctorController.java | 27 +++++++++++++
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/vo/PatientStatisticVO.java | 2 +
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java | 53 ++++++++++++++++++++++++++
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java | 15 +++++++
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java | 4 ++
5 files changed, 101 insertions(+), 0 deletions(-)
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/doctor/DoctorController.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/doctor/DoctorController.java
index 10926c0..9ce1e5b 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/doctor/DoctorController.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/doctor/DoctorController.java
@@ -322,6 +322,33 @@
return success(patientStatisticVO);
}
+ @GetMapping("/get-dev-ready-statistic")
+ @Operation(summary = "璁惧棰嗙敤缁熻")
+ @Parameter(name = "roomId", description = "璇婂缂栧彿", required = true, example = "116")
+ @Parameter(name = "bedNo", description = "宸ヤ綅缂栧彿", required = true, example = "B2")
+ @PreAuthorize("@ss.hasPermission('ecg:doctor:task')")
+ public CommonResult<PatientStatisticVO> getDevReadyStatistic(
+ @RequestParam("roomId") Long roomId,
+ @RequestParam("bedNo") String bedNo)
+ {
+ PatientStatisticVO patientStatisticVO = queueService.getBedDevReadyStatistic(roomId, bedNo);
+ return success(patientStatisticVO);
+ }
+
+
+ @GetMapping("/get-dev-install-statistic")
+ @Operation(summary = "璁惧瑁呮満缁熻")
+ @Parameter(name = "roomId", description = "璇婂缂栧彿", required = true, example = "116")
+ @Parameter(name = "bedNo", description = "宸ヤ綅缂栧彿", required = true, example = "B2")
+ @PreAuthorize("@ss.hasPermission('ecg:doctor:task')")
+ public CommonResult<PatientStatisticVO> getDevInstallStatistic(
+ @RequestParam("roomId") Long roomId,
+ @RequestParam("bedNo") String bedNo)
+ {
+ PatientStatisticVO patientStatisticVO = queueService.getBedDevInstallStatistic(roomId, bedNo);
+ return success(patientStatisticVO);
+ }
+
@GetMapping("/recall-patient")
@Operation(summary = "杩囧彿鐥呬汉鍙洖")
@Parameter(name = "roomId", description = "璇婂缂栧彿", required = true, example = "116")
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/vo/PatientStatisticVO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/vo/PatientStatisticVO.java
index df9b271..db59e55 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/vo/PatientStatisticVO.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/vo/PatientStatisticVO.java
@@ -11,6 +11,8 @@
private Integer readyNum;
+ private Integer receivedNum;
+
private Integer passedNum;
private Integer queuingNum;
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java
index 34aedca..eb8dfef 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java
@@ -82,6 +82,21 @@
Integer statusStatistic(@Param("statusList")List<Byte> statusList);
@Select("<script>" +
+ "SELECT count(1) as total_in_status FROM lihu.queue where " +
+ " room_id = #{roomId} and bed_no = #{bedNo} " +
+ " and status in ( " +
+ " <foreach collection='statusList' separator=',' item='status'>" +
+ " #{status} " +
+ " </foreach> ) " +
+ " and book_check_type in ( " +
+ " <foreach collection='checkTypes' separator=',' item='checkType'>" +
+ " #{checkType} " +
+ " </foreach> ) " +
+ "</script>")
+
+ Integer checkTypeAndStatusStatistic( @Param("roomId")Long roomId, @Param("bedNo")String bedNo, @Param("checkTypes")Integer[] checkTypes, @Param("statusList")List<Byte> statusList);
+
+ @Select("<script>" +
"SELECT room_id, bed_no, count(1) as total_in_status FROM lihu.queue where status in (" +
" <foreach collection='statusList' separator=',' item='status'>" +
" #{status} " +
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java
index f3cbfdb..c528bae 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java
@@ -115,6 +115,10 @@
PatientStatisticVO getPatientStatistic(Long roomId, String bedNo);
+ PatientStatisticVO getBedDevReadyStatistic(Long roomId, String bedNo);
+
+ PatientStatisticVO getBedDevInstallStatistic(Long roomId, String bedNo);
+
Integer recallPatient(Long roomId, String bedNo, String patId);
Integer patientJump(String patId, Byte jumped );
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