From c4f9c032d2a4fcd57d59846bc208d7d225ba5aa8 Mon Sep 17 00:00:00 2001
From: zhs <zhs18203887318@163.com>
Date: 星期六, 16 八月 2025 15:28:48 +0800
Subject: [PATCH] 0816 zhs

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java                  |   17 +++++++-
 smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java         |    9 ++++
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |   36 ++++++++++++++----
 smartor/src/main/java/com/smartor/domain/ServiceSubtaskCountReq.java          |    4 ++
 4 files changed, 54 insertions(+), 12 deletions(-)

diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
index 4bb1950..51f383f 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -352,10 +352,21 @@
                 //涓芥按鏈夌殑鍖婚櫌杩樻病娉曞仛闀挎湡浠诲姟闅忚
                 List<ServiceSubtask> subtaskList2 = new ArrayList<>();
                 if (visitHosp == 2) {
-                    for (ServiceSubtask serviceSubtask : subtaskList) {
-                        Boolean b = VisitSendStateEnum.getDescByCode(serviceSubtask.getOrgid());
-                        if (b) subtaskList2.add(serviceSubtask);
+                    try {
+                        for (ServiceSubtask serviceSubtask : subtaskList) {
+                            Boolean b = VisitSendStateEnum.getDescByCode(serviceSubtask.getOrgid());
+
+                            if (b) subtaskList2.add(serviceSubtask);
+                        }
+                    } catch (Exception e) {
+                        log.error("-------闀挎湡浠诲姟寮傚父涓猴細", e);
+                        continue;
                     }
+//                    for (ServiceSubtask serviceSubtask : subtaskList) {
+//                        Boolean b = VisitSendStateEnum.getDescByCode(serviceSubtask.getOrgid());
+//
+//                        if (b) subtaskList2.add(serviceSubtask);
+//                    }
                     subtaskList = subtaskList2;
                 }
 
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskCountReq.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskCountReq.java
index eccfc8b..74f92f7 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskCountReq.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskCountReq.java
@@ -47,4 +47,8 @@
 
     private String visitDeptCode;
     private String visitDeptName;
+
+    @ApiModelProperty(value = "鍖荤敓缂栫爜")
+    private String drcode;
+
 }
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java
index e3b6883..36ea120 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java
@@ -161,9 +161,9 @@
     @ApiModelProperty(value = "浜屾鐭俊")
     @Excel(name = " 浜屾鐭俊 ")
     private Long smsAgain = 0L;
+    @Excel(name = " 浜屾寰俊 ")
 
     @ApiModelProperty(value = "浜屾寰俊")
-    @Excel(name = " 浜屾寰俊 ")
     private Long weChatAgain = 0L;
 
     @ApiModelProperty(value = "缁撴灉寮傚父")
@@ -172,4 +172,11 @@
 
     @ApiModelProperty(value = "绉戝鐥呭尯")
     private Integer statisticaltype;
+
+
+    @ApiModelProperty(value = "鍖荤敓缂栫爜")
+    private String drcode;
+
+    @ApiModelProperty(value = "鍖荤敓濮撳悕")
+    private String drname;
 }
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 bc69fb7..010442c 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -2227,14 +2227,25 @@
     public List<ServiceSubtaskStatistic> getSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq) {
         log.error("getSfStatistics鐨勫叆鍙備负锛歿}", serviceSubtaskCountReq);
         List<ServiceSubtaskStatistic> serviceSubtaskStatistics = new ArrayList<>();
-        //Map<String, List<ServiceSubtask>> collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getLeavehospitaldistrictname()).orElse("Unknown")));
+        List<ServiceSubtask> rawData = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq);
+        
+        // 鏍规嵁鏉′欢杩涜鍒嗙粍
         Map<String, List<ServiceSubtask>> collect = new HashMap<>();
+        
         if (serviceSubtaskCountReq.getLeavehospitaldistrictcodes() != null && serviceSubtaskCountReq.getLeavehospitaldistrictcodes().size() > 0) {
-            collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getLeavehospitaldistrictname()).orElse("Unknown")));
-
+            if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) {
+                collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).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")));
+            }
         } else if (serviceSubtaskCountReq.getDeptcodes() != null && serviceSubtaskCountReq.getDeptcodes().size() > 0) {
-            collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDeptname()).orElse("Unknown")));
+            if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) {
+                collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).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")));
+            }
         }
+        
         for (List<ServiceSubtask> serviceSubtaskList : collect.values()) {
             if (CollectionUtils.isEmpty(serviceSubtaskList)) {
                 continue;
@@ -2244,11 +2255,18 @@
             //鍙婃椂鐜�
             ServiceSubtask ss = new ServiceSubtask();
             ss.setOrgid(serviceSubtaskList.get(0).getOrgid());
-            if (CollectionUtils.isNotEmpty(serviceSubtaskCountReq.getLeavehospitaldistrictcodes())) {
-                ss.setLeavehospitaldistrictcode(serviceSubtaskList.get(0).getLeavehospitaldistrictcode());
-            } else {
-                ss.setDeptcode(serviceSubtaskList.get(0).getDeptcode());
+
+            // 濡傛灉鏈夊尰鐢熺紪鐮侊紝璁剧疆鍖荤敓缂栫爜鐢ㄤ簬鍙婃椂鐜囨煡璇�
+            if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) {
+                ss.setDrcode(serviceSubtaskList.get(0).getDrcode());
+            }else {
+                if (CollectionUtils.isNotEmpty(serviceSubtaskCountReq.getLeavehospitaldistrictcodes())) {
+                    ss.setLeavehospitaldistrictcode(serviceSubtaskList.get(0).getLeavehospitaldistrictcode());
+                } else if (CollectionUtils.isNotEmpty(serviceSubtaskCountReq.getDeptcodes())) {
+                    ss.setDeptcode(serviceSubtaskList.get(0).getDeptcode());
+                }
             }
+            
             ss.setStarttime(serviceSubtaskCountReq.getStartTime());
             ss.setEndtime(serviceSubtaskCountReq.getEndTime());
             if (serviceSubtaskCountReq.getEndTime() != null && new Date().before(serviceSubtaskCountReq.getEndTime())) {
@@ -2272,6 +2290,8 @@
         serviceSubtaskStatistic.setDeptcode(serviceSubtaskList.get(0).getDeptcode());
         serviceSubtaskStatistic.setLeavehospitaldistrictname(serviceSubtaskList.get(0).getLeavehospitaldistrictname());
         serviceSubtaskStatistic.setLeavehospitaldistrictcode(serviceSubtaskList.get(0).getLeavehospitaldistrictcode());
+        serviceSubtaskStatistic.setDrcode(serviceSubtaskList.get(0).getDrcode());
+        serviceSubtaskStatistic.setDrname(serviceSubtaskList.get(0).getDrname());
         //鍑洪櫌浜烘
         serviceSubtaskStatistic.setDischargeCount(serviceSubtaskList.size());
         for (ServiceSubtask serviceSubtask : serviceSubtaskList) {

--
Gitblit v1.9.3