From 22881a1dd395aa0d83025842ed57764b4e15b5bf Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期一, 14 十月 2024 10:40:38 +0800
Subject: [PATCH] BugFix: 领用 & 发放 统计

---
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java |   38 +++++++++++++++++++++++++++-----------
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/QueueMapper.java    |   13 +++++++++----
 2 files changed, 36 insertions(+), 15 deletions(-)

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 eb8dfef..86b13fb 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
@@ -83,8 +83,7 @@
 
     @Select("<script>" +
             "SELECT count(1) as total_in_status FROM lihu.queue where " +
-            " room_id = #{roomId} and bed_no = #{bedNo} " +
-            " and status in ( " +
+            " status in ( " +
             " <foreach collection='statusList' separator=',' item='status'>" +
             "  #{status} " +
             " </foreach> ) " +
@@ -93,8 +92,7 @@
             "  #{checkType} " +
             " </foreach> ) " +
             "</script>")
-
-    Integer checkTypeAndStatusStatistic( @Param("roomId")Long roomId, @Param("bedNo")String bedNo, @Param("checkTypes")Integer[] checkTypes, @Param("statusList")List<Byte> statusList);
+    Integer checkTypeAndStatusStatistic( @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 (" +
@@ -113,6 +111,13 @@
     List<BedQueueStatisticDO> bedQueueStatistic(@Param("roomId")Long roomId, @Param("bedNo")String bedNo);
 
     @Select("<script>" +
+            "SELECT status, count(1) as total_in_status FROM lihu.queue where " +
+            " room_id = #{roomId} " +
+            " group by status " +
+            "</script>")
+    List<BedQueueStatisticDO> roomQueueStatistic(@Param("roomId")Long roomId);
+
+    @Select("<script>" +
             "SELECT count(1) FROM lihu.queue " +
             "where room_id = #{roomId} and bed_no = #{bedNo} and status in (" +
             " <foreach collection='statusList' separator=',' item='status'>" +
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 f7fa9bc..10d01f0 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
@@ -423,10 +423,19 @@
         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()) {
+//            } else if (QueueStatusEnum.INSTALLING.getStatus() == item.getStatus()) {
+//                patientStatisticVO.setReceivedNum( patientStatisticVO.getReceivedNum() + item.getTotalInStatus() );
+            if (QueueStatusEnum.FINISH.getStatus() == item.getStatus()) {
                 patientStatisticVO.setFinishedNum(item.getTotalInStatus());
+            }
+        });
+
+        // 瑁呮満鐣岄潰锛氱粺璁� 璇ヨ瘖瀹� [宸查鐢╙ 鐨勬暟閲�, 鍥犱负瀹夎宸ヤ綅鐪嬩笉鍒� [宸查鐢╙ 鎮h�咃紝鎵�浠ユ棤娉曟牴鎹鏈哄伐浣嶆潵缁熻锛屽彧鑳芥寜璇婂缁熻
+        patientStatisticVO.setReceivedNum( 0 );
+        List<BedQueueStatisticDO> roomQueueStatisticDOList = queueMapper.roomQueueStatistic(roomId);
+        roomQueueStatisticDOList.forEach(item -> {
+            if (QueueStatusEnum.RECEIVED.getStatus() == item.getStatus()) {
+                patientStatisticVO.setReceivedNum( patientStatisticVO.getReceivedNum() + item.getTotalInStatus() );
             }
         });
 
@@ -435,27 +444,34 @@
 
     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());
             }
         });
 
+        // 棰嗙敤鐣岄潰锛氱粺璁� 璇ヨ瘖瀹� [宸查鐢╙ 鐨勬暟閲�, 鍥犱负瀹夎鏃舵偅鑰呭綊灞炲伐浣嶄粠棰嗙敤宸ヤ綅鍙樻洿鍒板畨瑁呭伐浣嶏紝鎵�浠ユ棤娉曟牴鎹鐢ㄥ伐浣嶆潵缁熻锛屽彧鑳芥寜璇婂缁熻
+        patientStatisticVO.setReceivedNum( 0 );
+        List<BedQueueStatisticDO> roomQueueStatisticDOList = queueMapper.roomQueueStatistic(roomId);
+        roomQueueStatisticDOList.forEach(item -> {
+            if (QueueStatusEnum.RECEIVED.getStatus() == item.getStatus()) {
+                patientStatisticVO.setReceivedNum( patientStatisticVO.getReceivedNum() + item.getTotalInStatus() );
+            } else if (QueueStatusEnum.INSTALLING.getStatus() == item.getStatus()) {
+                patientStatisticVO.setReceivedNum( patientStatisticVO.getReceivedNum() + item.getTotalInStatus() );
+            } else if (QueueStatusEnum.FINISH.getStatus() == item.getStatus()) {
+                patientStatisticVO.setReceivedNum(patientStatisticVO.getReceivedNum() + item.getTotalInStatus() );
+            }
+        });
+
+        // 缁熻 璇ュ伐浣嶇被鍨嬬殑銆愭帓闃熶腑銆戜汉鍛樻暟閲�
         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);
+        Integer num = queueMapper.checkTypeAndStatusStatistic(checkTypes, statusList);
         patientStatisticVO.setQueuingNum(num);
 
         return patientStatisticVO;

--
Gitblit v1.9.3