From 6a41d197da658985458784029070971bd02ce8df Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 03 四月 2026 14:23:41 +0800
Subject: [PATCH] 【丽水】随访统计 首次再次分开

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |  256 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 255 insertions(+), 1 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 bbbda9e..80727d1 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -2604,8 +2604,262 @@
 
         if (visitCount != null && visitCount > 1) {
             serviceSubtaskStatistic = getStatisticAgain(serviceSubtaskList, followUpCountStyle);
-        }else {
+        }else if(visitCount != null && visitCount == 1){
             serviceSubtaskStatistic = getStatisticFirst(serviceSubtaskList, followUpCountStyle);
+        }else {
+            //鏍煎紡鍖栦负涓や綅灏忔暟鐨勭櫨鍒嗘瘮
+            DecimalFormat percentFormat = new DecimalFormat("##.##%");
+            serviceSubtaskStatistic.setDeptname(serviceSubtaskList.get(0).getDeptname());
+            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());
+            //璁板綍杩囨护鎮h�呰鎯�
+            List<ServiceSubtask> filterServiceSubtasks = new ArrayList<>();
+            //璁板綍棣栨搴旈殢璁胯鎯�
+            List<ServiceSubtask> needFollowUpInfo = new ArrayList<>();
+            //璁板綍棣栨寰呴殢璁胯鎯�
+            List<ServiceSubtask> pendingFollowUpInfo = new ArrayList<>();
+            //璁板綍棣栨闅忚鎴愬姛璇︽儏
+            List<ServiceSubtask> followUpSuccessInfo = new ArrayList<>();
+            //璁板綍棣栨闅忚澶辫触璇︽儏
+            List<ServiceSubtask> followUpFailInfo = new ArrayList<>();
+            //璁板綍棣栨闅忚浜哄伐璇︽儏
+            List<ServiceSubtask> manualInfo = new ArrayList<>();
+            //璁板綍棣栨闅忚鐭俊璇︽儏
+            List<ServiceSubtask> smsInfo = new ArrayList<>();
+            //璁板綍棣栨闅忚寰俊璇︽儏
+            List<ServiceSubtask> wechatInfo = new ArrayList<>();
+
+            //璁板綍鍐嶆搴旈殢璁胯鎯�
+            List<ServiceSubtask> needFollowUpAgainInfo = new ArrayList<>();
+            //璁板綍鍐嶆寰呴殢璁胯鎯�
+            List<ServiceSubtask> pendingFollowUpAgainInfo = new ArrayList<>();
+            //璁板綍鍐嶆闅忚鎴愬姛璇︽儏
+            List<ServiceSubtask> followUpSuccessAgainInfo = new ArrayList<>();
+            //璁板綍鍐嶆闅忚澶辫触璇︽儏
+            List<ServiceSubtask> followUpFailAgainInfo = new ArrayList<>();
+            //璁板綍棣栨闅忚浜哄伐璇︽儏
+            List<ServiceSubtask> manualAgainInfo = new ArrayList<>();
+            //璁板綍棣栨闅忚鐭俊璇︽儏
+            List<ServiceSubtask> smsAgainInfo = new ArrayList<>();
+            //璁板綍棣栨闅忚寰俊璇︽儏
+            List<ServiceSubtask> wechatAgainInfo = new ArrayList<>();
+
+            for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
+                //鏃犻渶闅忚浜烘
+                if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 4) {
+                    serviceSubtaskStatistic.setNonFollowUp(serviceSubtaskStatistic.getNonFollowUp() + 1L);
+                    if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 6) {
+                        serviceSubtaskStatistic.setFilterCount(serviceSubtaskStatistic.getFilterCount() + 1L);
+                        filterServiceSubtasks.add(serviceSubtask);
+                    }
+                }
+                //搴旈殢璁夸汉娆�
+                if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
+                    serviceSubtaskStatistic.setFollowUpNeeded(serviceSubtaskStatistic.getFollowUpNeeded() + 1L);
+                }
+
+                //棣栨鍑洪櫌闅忚
+                if (serviceSubtask.getVisitCount() != null && serviceSubtask.getVisitCount() == 1) {
+                    //棣栨搴旈殢璁�
+                    if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
+                        serviceSubtaskStatistic.setNeedFollowUp(serviceSubtaskStatistic.getNeedFollowUp() + 1L);
+                        needFollowUpInfo.add(serviceSubtask);
+                    }
+                    //棣栨寰呴殢璁�
+                    if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 2) {
+                        serviceSubtaskStatistic.setPendingFollowUp(serviceSubtaskStatistic.getPendingFollowUp() + 1L);
+                        pendingFollowUpInfo.add(serviceSubtask);
+                    }
+                    //棣栨闅忚澶辫触(鍖呮嫭闅忚澶辫触+浜哄伐瓒呮椂)
+                    if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 5 || serviceSubtask.getSendstate() == 7)) {
+                        serviceSubtaskStatistic.setFollowUpFail(serviceSubtaskStatistic.getFollowUpFail() + 1L);
+                        followUpFailInfo.add(serviceSubtask);
+                    }
+                    /**
+                     * 涓嶅悓缁熻鏂瑰紡涓嬩笉鍚岀殑闅忚鎴愬姛鏁� 鍙傛暟 followUpCountStyle 鎺у埗
+                     */
+                    if (StringUtils.isNotEmpty(followUpCountStyle) && followUpCountStyle.equals("1")) {
+                        //棣栨闅忚鎴愬姛
+                        if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 6L)) {
+                            serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L);
+                            followUpSuccessInfo.add(serviceSubtask);
+                        }
+                        //棣栨闅忚浜哄伐 (涓嶇粺璁′笉鎵ц)
+                        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.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("4")) {
+                            serviceSubtaskStatistic.setSms(serviceSubtaskStatistic.getSms() + 1L);
+                            smsInfo.add(serviceSubtask);
+                        }
+                        //棣栨闅忚寰俊(涓嶇粺璁′笉鎵ц)
+                        if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("5")) {
+                            serviceSubtaskStatistic.setWeChat(serviceSubtaskStatistic.getWeChat() + 1L);
+                            wechatInfo.add(serviceSubtask);
+                        }
+                    } else {
+                        //棣栨闅忚鎴愬姛 - 缁熻鏃跺�欏姞涓婁笉鎵ц鐨勶紝宸插彂閫佺殑
+                        if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(6L) || serviceSubtask.getSendstate().equals(3L) || serviceSubtask.getSendstate().equals(4L))) {
+                            serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L);
+                            followUpSuccessInfo.add(serviceSubtask);
+                        }
+                        //棣栨闅忚浜哄伐 (缁熻涓嶆墽琛�)
+                        if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("1")) {
+                            serviceSubtaskStatistic.setManual(serviceSubtaskStatistic.getManual() + 1L);
+                            manualInfo.add(serviceSubtask);
+                        }
+                        //棣栨闅忚鐭俊(缁熻涓嶆墽琛�)
+                        if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")) {
+                            serviceSubtaskStatistic.setSms(serviceSubtaskStatistic.getSms() + 1L);
+                            smsInfo.add(serviceSubtask);
+                        }
+                        //棣栨闅忚寰俊(缁熻涓嶆墽琛�)
+                        if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")) {
+                            serviceSubtaskStatistic.setWeChat(serviceSubtaskStatistic.getWeChat() + 1L);
+                            wechatInfo.add(serviceSubtask);
+                        }
+                    }
+                    if (serviceSubtaskStatistic.getNeedFollowUp() > 0) {
+                        double rate = (double) (serviceSubtaskStatistic.getFollowUpSuccess() + serviceSubtaskStatistic.getFollowUpFail()) / serviceSubtaskStatistic.getNeedFollowUp();
+                        serviceSubtaskStatistic.setFollowUpRate(percentFormat.format(rate));
+                    } else {
+                        serviceSubtaskStatistic.setFollowUpRate("0.00%");
+                    }
+                    //缁撴灉寮傚父
+                    if (serviceSubtask.getSendstate() != null && serviceSubtask.getExcep().equals("1")) {
+                        serviceSubtaskStatistic.setAbnormal(serviceSubtaskStatistic.getAbnormal() + 1L);
+                    }
+                }//浜屾鍑洪櫌闅忚
+                else if (serviceSubtask.getVisitCount() != null && serviceSubtask.getVisitCount() > 1) {
+                    //鍐嶆搴旈殢璁�
+                    if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
+                        serviceSubtaskStatistic.setNeedFollowUpAgain(serviceSubtaskStatistic.getNeedFollowUpAgain() + 1L);
+                        needFollowUpAgainInfo.add(serviceSubtask);
+                    }
+                    //鍐嶆寰呴殢璁�
+                    if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 2) {
+                        serviceSubtaskStatistic.setPendingFollowUpAgain(serviceSubtaskStatistic.getPendingFollowUpAgain() + 1L);
+                        pendingFollowUpAgainInfo.add(serviceSubtask);
+                    }
+                    //鍐嶆闅忚澶辫触
+                    if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 5) {
+                        serviceSubtaskStatistic.setFollowUpFailAgain(serviceSubtaskStatistic.getFollowUpFailAgain() + 1L);
+                        followUpFailAgainInfo.add(serviceSubtask);
+                    }
+                    /**
+                     * 涓嶅悓缁熻鏂瑰紡涓嬩笉鍚岀殑闅忚鎴愬姛鏁� 鍙傛暟 followUpCountStyle 鎺у埗
+                     */
+                    if (StringUtils.isNotEmpty(followUpCountStyle) && followUpCountStyle.equals("1")) {
+                        //鍐嶆闅忚鎴愬姛
+                        if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 1 || serviceSubtask.getSendstate() == 3 || serviceSubtask.getSendstate() == 6)) {
+                            serviceSubtaskStatistic.setFollowUpSuccessAgain(serviceSubtaskStatistic.getFollowUpSuccessAgain() + 1L);
+                            followUpSuccessAgainInfo.add(serviceSubtask);
+                        }
+                        //鍐嶆闅忚浜哄伐(涓嶇粺璁′笉鎵ц)
+                        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.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("4")) {
+                            serviceSubtaskStatistic.setSmsAgain(serviceSubtaskStatistic.getSmsAgain() + 1L);
+                            smsAgainInfo.add(serviceSubtask);
+                        }
+                        //鍐嶆闅忚寰俊(涓嶇粺璁′笉鎵ц)
+                        if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("5")) {
+                            serviceSubtaskStatistic.setWeChatAgain(serviceSubtaskStatistic.getWeChatAgain() + 1L);
+                            wechatAgainInfo.add(serviceSubtask);
+                        }
+                    } else {
+                        //鍐嶆闅忚鎴愬姛
+                        if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(1L) || serviceSubtask.getSendstate().equals(6L) || serviceSubtask.getSendstate().equals(3L) || serviceSubtask.getSendstate().equals(4L))) {
+                            serviceSubtaskStatistic.setFollowUpSuccessAgain(serviceSubtaskStatistic.getFollowUpSuccessAgain() + 1L);
+                            followUpSuccessAgainInfo.add(serviceSubtask);
+                        }
+                        //鍐嶆闅忚浜哄伐(缁熻涓嶆墽琛�)
+                        if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("1")) {
+                            serviceSubtaskStatistic.setManualAgain(serviceSubtaskStatistic.getManualAgain() + 1L);
+                            manualAgainInfo.add(serviceSubtask);
+                        }
+                        //鍐嶆闅忚鐭俊(缁熻涓嶆墽琛�)
+                        if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")) {
+                            serviceSubtaskStatistic.setSmsAgain(serviceSubtaskStatistic.getSmsAgain() + 1L);
+                            smsAgainInfo.add(serviceSubtask);
+                        }
+                        //鍐嶆闅忚寰俊(缁熻涓嶆墽琛�)
+                        if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")) {
+                            serviceSubtaskStatistic.setWeChatAgain(serviceSubtaskStatistic.getWeChatAgain() + 1L);
+                            wechatAgainInfo.add(serviceSubtask);
+                        }
+                    }
+                    if (serviceSubtaskStatistic.getNeedFollowUp() > 0) {
+                        double rate = (double) (serviceSubtaskStatistic.getFollowUpSuccessAgain() + serviceSubtaskStatistic.getFollowUpFailAgain()) / serviceSubtaskStatistic.getNeedFollowUpAgain();
+                        serviceSubtaskStatistic.setFollowUpRateAgain(percentFormat.format(rate));
+                    } else {
+                        serviceSubtaskStatistic.setFollowUpRateAgain("0.00%");
+                    }
+                    //鍐嶆寮傚父
+                    if (serviceSubtask.getSendstate() != null && serviceSubtask.getExcep().equals("1")) {
+                        serviceSubtaskStatistic.setAbnormalAgain(serviceSubtaskStatistic.getAbnormalAgain() + 1L);
+                    }
+                }
+                //闅忚鎯呭喌
+                if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 1) {
+                    serviceSubtaskStatistic.setTaskSituation1(serviceSubtaskStatistic.getTaskSituation1() + 1);
+                }
+                if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 2) {
+                    serviceSubtaskStatistic.setTaskSituation2(serviceSubtaskStatistic.getTaskSituation2() + 1);
+                }
+                if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 3) {
+                    serviceSubtaskStatistic.setTaskSituation3(serviceSubtaskStatistic.getTaskSituation3() + 1);
+                }
+                if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 4) {
+                    serviceSubtaskStatistic.setTaskSituation4(serviceSubtaskStatistic.getTaskSituation4() + 1);
+                }
+                if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 5) {
+                    serviceSubtaskStatistic.setTaskSituation5(serviceSubtaskStatistic.getTaskSituation5() + 1);
+                }
+                if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 7) {
+                    serviceSubtaskStatistic.setTaskSituation6(serviceSubtaskStatistic.getTaskSituation6() + 1);
+                }
+            }
+            serviceSubtaskStatistic.setFilterCountList(filterServiceSubtasks);
+            //璁板綍棣栨搴旈殢璁胯鎯�
+            serviceSubtaskStatistic.setNeedFollowUpInfo(needFollowUpInfo);
+            //璁板綍棣栨寰呴殢璁胯鎯�
+            serviceSubtaskStatistic.setPendingFollowUpInfo(pendingFollowUpInfo);
+            //璁板綍棣栨闅忚鎴愬姛璇︽儏
+            serviceSubtaskStatistic.setFollowUpSuccessInfo(followUpSuccessInfo);
+            //璁板綍棣栨闅忚澶辫触璇︽儏
+            serviceSubtaskStatistic.setFollowUpFailInfo(followUpFailInfo);
+            //璁板綍棣栨闅忚浜哄伐璇︽儏
+            serviceSubtaskStatistic.setManualInfo(manualInfo);
+            //璁板綍棣栨闅忚鐭俊璇︽儏
+            serviceSubtaskStatistic.setSmsInfo(smsInfo);
+            //璁板綍棣栨闅忚寰俊璇︽儏
+            serviceSubtaskStatistic.setWechatInfo(wechatInfo);
+            //璁板綍鍐嶆搴旈殢璁胯鎯�
+            serviceSubtaskStatistic.setNeedFollowUpAgainInfo(needFollowUpAgainInfo);
+            //璁板綍鍐嶆寰呴殢璁胯鎯�
+            serviceSubtaskStatistic.setPendingFollowUpAgainInfo(pendingFollowUpAgainInfo);
+            //璁板綍鍐嶆闅忚鎴愬姛璇︽儏
+            serviceSubtaskStatistic.setFollowUpSuccessAgainInfo(followUpSuccessAgainInfo);
+            //璁板綍鍐嶆闅忚澶辫触璇︽儏
+            serviceSubtaskStatistic.setFollowUpFailAgainInfo(followUpFailAgainInfo);
+            //璁板綍鍐嶆闅忚浜哄伐璇︽儏
+            serviceSubtaskStatistic.setManualAgainInfo(manualAgainInfo);
+            //璁板綍鍐嶆闅忚鐭俊璇︽儏
+            serviceSubtaskStatistic.setSmsAgainInfo(smsAgainInfo);
+            //璁板綍鍐嶆闅忚寰俊璇︽儏
+            serviceSubtaskStatistic.setWechatAgainInfo(wechatAgainInfo);
+            return serviceSubtaskStatistic;
         }
         return serviceSubtaskStatistic;
     }

--
Gitblit v1.9.3