From 132cb0d089c7734f3eb3e858bd741fbc60dbdc9d Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 20 一月 2026 16:46:25 +0800
Subject: [PATCH] 【丽水】获取随访统计比例 查询优化

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |   47 ++++++++++++++++++++++++++++++-----------------
 1 files changed, 30 insertions(+), 17 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
index 552ae1c..f98f258 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -2230,24 +2230,25 @@
     public List<ServiceSubtaskStatistic> getSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq) {
         log.info("getSfStatistics鐨勫叆鍙備负锛歿}", serviceSubtaskCountReq);
         List<ServiceSubtaskStatistic> serviceSubtaskStatistics = new ArrayList<>();
-//        List<ServiceSubtask> rawData = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq);
+        List<ServiceSubtask> rawData = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq);
 
         // 鏍规嵁鏉′欢杩涜鍒嗙粍
         Map<String, List<ServiceSubtask>> collect = new HashMap<>();
 
         if (serviceSubtaskCountReq.getLeavehospitaldistrictcodes() != null && serviceSubtaskCountReq.getLeavehospitaldistrictcodes().size() > 0) {
             if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) {
-                collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrname()).orElse("Unknown")));
+                collect = rawData.stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrname()).orElse("Unknown")));
             } else {
-                collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getLeavehospitaldistrictname()).orElse("Unknown")));
+                collect = rawData.stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getLeavehospitaldistrictname()).orElse("Unknown")));
             }
         } else if (serviceSubtaskCountReq.getDeptcodes() != null && serviceSubtaskCountReq.getDeptcodes().size() > 0) {
             if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) {
-                collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrname()).orElse("Unknown")));
+                collect = rawData.stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrname()).orElse("Unknown")));
             } else {
-                collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDeptname()).orElse("Unknown")));
+                collect = rawData.stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDeptname()).orElse("Unknown")));
             }
         }
+
 
         for (List<ServiceSubtask> serviceSubtaskList : collect.values()) {
             if (CollectionUtils.isEmpty(serviceSubtaskList)) {
@@ -2566,18 +2567,24 @@
                 } else {
                     serviceSubtaskStatistic.setFollowUpRate("0.00%");
                 }
-                //棣栨闅忚浜哄伐
-                if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("1")) {
+                //棣栨闅忚浜哄伐 (涓嶇粺璁′笉鎵ц)
+                if (serviceSubtask.getSendstate() != null
+                        && !serviceSubtask.getSendstate().equals(4L)
+                        && serviceSubtask.getPreachform().equals("1")) {
                     serviceSubtaskStatistic.setManual(serviceSubtaskStatistic.getManual() + 1L);
                     manualInfo.add(serviceSubtask);
                 }
-                //棣栨闅忚鐭俊
-                if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")) {
+                //棣栨闅忚鐭俊(涓嶇粺璁′笉鎵ц)
+                if (serviceSubtask.getSendstate() != null
+                        && !serviceSubtask.getSendstate().equals(4L)
+                        && serviceSubtask.getPreachform().equals("4")) {
                     serviceSubtaskStatistic.setSms(serviceSubtaskStatistic.getSms() + 1L);
                     smsInfo.add(serviceSubtask);
                 }
-                //棣栨闅忚寰俊
-                if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")) {
+                //棣栨闅忚寰俊(涓嶇粺璁′笉鎵ц)
+                if (serviceSubtask.getSendstate() != null
+                        && !serviceSubtask.getSendstate().equals(4L)
+                        && serviceSubtask.getPreachform().equals("5")) {
                     serviceSubtaskStatistic.setWeChat(serviceSubtaskStatistic.getWeChat() + 1L);
                     wechatInfo.add(serviceSubtask);
                 }
@@ -2613,18 +2620,24 @@
                 } else {
                     serviceSubtaskStatistic.setFollowUpRateAgain("0.00%");
                 }
-                //鍐嶆闅忚浜哄伐
-                if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("1")) {
+                //鍐嶆闅忚浜哄伐(涓嶇粺璁′笉鎵ц)
+                if (serviceSubtask.getSendstate() != null
+                        && !serviceSubtask.getSendstate().equals(4L)
+                        && serviceSubtask.getPreachform().equals("1")) {
                     serviceSubtaskStatistic.setManualAgain(serviceSubtaskStatistic.getManualAgain() + 1L);
                     manualAgainInfo.add(serviceSubtask);
                 }
-                //鍐嶆闅忚鐭俊
-                if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")) {
+                //鍐嶆闅忚鐭俊(涓嶇粺璁′笉鎵ц)
+                if (serviceSubtask.getSendstate() != null
+                        && !serviceSubtask.getSendstate().equals(4L)
+                        && serviceSubtask.getPreachform().equals("4")) {
                     serviceSubtaskStatistic.setSmsAgain(serviceSubtaskStatistic.getSmsAgain() + 1L);
                     smsAgainInfo.add(serviceSubtask);
                 }
-                //鍐嶆闅忚寰俊
-                if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")) {
+                //鍐嶆闅忚寰俊(涓嶇粺璁′笉鎵ц)
+                if (serviceSubtask.getSendstate() != null
+                        && !serviceSubtask.getSendstate().equals(4L)
+                        && serviceSubtask.getPreachform().equals("5")) {
                     serviceSubtaskStatistic.setWeChatAgain(serviceSubtaskStatistic.getWeChatAgain() + 1L);
                     wechatAgainInfo.add(serviceSubtask);
                 }

--
Gitblit v1.9.3