From ddff387baa9c7c62e66bbe2723d2c40e4571ea51 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 15 十二月 2025 11:20:57 +0800
Subject: [PATCH] 【丽水】首次随访失败详情,首次应随访详情,首次待随访详情,首次随访成功详情,统计数字超链接,展示对应数据的任务信息

---
 smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java   |   46 ++++++++++++++---------
 smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java         |   12 ++++++
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |   27 +++++++++++++
 3 files changed, 66 insertions(+), 19 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java
index 3d6597e..78786d3 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java
@@ -118,6 +118,18 @@
     @Excel(name = " 棣栨闅忚澶辫触 ")
     private Long followUpFail = 0L;
 
+    @ApiModelProperty(value = "棣栨闅忚澶辫触璇︽儏")
+    private List<ServiceSubtask> followUpFailInfo;
+
+    @ApiModelProperty(value = "棣栨搴旈殢璁胯鎯�")
+    private List<ServiceSubtask> needFollowUpInfo;
+
+    @ApiModelProperty(value = "棣栨寰呴殢璁胯鎯�")
+    private List<ServiceSubtask> pendingFollowUpInfo;
+
+    @ApiModelProperty(value = "棣栨闅忚鎴愬姛璇︽儏")
+    private List<ServiceSubtask> followUpSuccessInfo;
+
     @ApiModelProperty(value = "鍙婃椂鐜�")
     @Excel(name = " 鍙婃椂鐜� ")
     private Double rate = 0.0;
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
index 0e49694..9f44995 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -249,6 +249,7 @@
                     patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                 } else {
                     for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) {
+                        //todo 1
                         writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 1, config);
                     }
                     patMedInhosp1.setDeptcheckFlag("1");
@@ -300,6 +301,7 @@
                         patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
                     } else {
                         for (ServiceTaskdept serviceTaskdept1 : serviceTaskdeptList) {
+                            //todo 2
                             writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiBQ1, patArchive, 2, config);
                         }
                         pmiBQ1.setWardcheckFlag("1");
@@ -353,6 +355,7 @@
                         patMedInhospMapper.updatePatMedInhosp(pmiJB);
                     } else {
                         for (ServiceTaskdiag serviceTaskdept1 : serviceTaskdiags) {
+                            //todo 3
                             writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiJB, patArchive, 3, config);
                         }
                         pmiJB.setDiagcheckFlag("1");
@@ -536,6 +539,7 @@
         return calendar.getTime();
     }
 
+    //todo
     //灏嗘偅鑰呮斁鍒皊ubtask涓�
     private void writeInSubTask(Long taskid, Boolean check, PatMedInhosp patMedInhosp1, PatArchive patArchive, Integer type, String config) {
         String longTaskReason = patMedInhosp1.getLongTaskReason();
@@ -544,24 +548,27 @@
         st.setTaskid(taskid);
         st.setSendState(2L);
         List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(st);
-        if (CollectionUtils.isEmpty(serviceTasks) && type == 1) {
-            log.info("璇ユ偅鑰呭嚭闄㈤殢璁块暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓猴細{}", taskid);
-            patMedInhosp1.setDeptcheckFlag("2");
-            patMedInhosp1.setLongTaskReason(longTaskReason + " & 璇ユ偅鑰呯闄㈢瀹ら暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid);
-            patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
-            return;
-        } else if (CollectionUtils.isEmpty(serviceTasks) && type == 2) {
-            patMedInhosp1.setWardcheckFlag("2");
-            patMedInhosp1.setLongTaskReason(longTaskReason + " & 璇ユ偅鑰呯闄㈢梾鍖洪暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid);
-            patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
-            return;
-        } else if (CollectionUtils.isEmpty(serviceTasks) && type == 3) {
-            patMedInhosp1.setDiagcheckFlag("2");
-            patMedInhosp1.setLongTaskReason(longTaskReason + " & 璇ユ偅鑰呯柧鐥呴暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid);
-            patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
-            return;
+        ServiceTask serviceTask = null;
+        if(CollectionUtils.isEmpty(serviceTasks)){
+            if (type == 1) {
+                log.info("璇ユ偅鑰呭嚭闄㈤殢璁块暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓猴細{}", taskid);
+                patMedInhosp1.setDeptcheckFlag("2");
+                patMedInhosp1.setLongTaskReason(longTaskReason + " & 璇ユ偅鑰呯闄㈢瀹ら暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid);
+                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+                return;
+            } else if (type == 2) {
+                patMedInhosp1.setWardcheckFlag("2");
+                patMedInhosp1.setLongTaskReason(longTaskReason + " & 璇ユ偅鑰呯闄㈢梾鍖洪暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid);
+                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+                return;
+            } else if (type == 3) {
+                patMedInhosp1.setDiagcheckFlag("2");
+                patMedInhosp1.setLongTaskReason(longTaskReason + " & 璇ユ偅鑰呯柧鐥呴暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid);
+                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+                return;
+            }
+            serviceTask = serviceTasks.get(0);
         }
-        ServiceTask serviceTask = serviceTasks.get(0);
 
         if (Objects.isNull(patMedInhosp1.getEndtime())) {
             return;
@@ -596,7 +603,10 @@
                     }
                     //type = 1鎴�2 琛ㄧず 鈥濈瀹ゃ�佺梾鍖衡��
                     if (type == 1 || type == 2) {
-                        if (serviceSubtask1.getEndtime().before(serviceSubtask.getEndtime()) && serviceSubtask1.getServiceType().equals("2")) {
+                        Date endTime = serviceSubtask.getEndtime();
+                        Date endTime1 = serviceSubtask1.getEndtime();
+                        String serviceType1 = serviceSubtask1.getServiceType();
+                        if (endTime1.before(endTime) && "2".equals(serviceType1)) {
                             //濡傛灉褰撳墠寰幆鐨勫瓙浠诲姟鐨勫嚭闄㈡椂闂村湪鈥滃噯澶囨柊澧炵殑瀛愪换鍔♀�濈殑鍑洪櫌鏃堕棿涔嬪墠锛屽垯灏嗗惊鐜殑瀛愪换鍔″仠鎺�
                             serviceSubtask1.setSendstate(4L);
                             if (StringUtils.isNotEmpty(serviceSubtask.getRemark()))
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 d2d92c1..3d86527 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -14,6 +14,7 @@
 import com.smartor.mapper.*;
 import com.smartor.service.*;
 import com.sun.org.apache.bcel.internal.generic.NEW;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.ObjectUtils;
@@ -2431,6 +2432,15 @@
         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<>();
+
         for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
             //鏃犻渶闅忚浜烘
             if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 4) {
@@ -2447,17 +2457,25 @@
 
             //棣栨鍑洪櫌闅忚
             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() == 6)) {
                     serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L);
+                    followUpSuccessInfo.add(serviceSubtask);
                 }
+                //棣栨闅忚澶辫触
                 if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 5) {
                     serviceSubtaskStatistic.setFollowUpFail(serviceSubtaskStatistic.getFollowUpFail() + 1L);
+                    followUpFailInfo.add(serviceSubtask);
                 }
                 if (serviceSubtaskStatistic.getNeedFollowUp() > 0) {
                     double rate = (double) (serviceSubtaskStatistic.getFollowUpSuccess() + serviceSubtaskStatistic.getFollowUpFail()) / serviceSubtaskStatistic.getNeedFollowUp();
@@ -2531,7 +2549,14 @@
             }
         }
         serviceSubtaskStatistic.setFilterCountList(filterServiceSubtasks);
-
+        //璁板綍棣栨搴旈殢璁胯鎯�
+        serviceSubtaskStatistic.setNeedFollowUpInfo(needFollowUpInfo);
+        //璁板綍棣栨寰呴殢璁胯鎯�
+        serviceSubtaskStatistic.setPendingFollowUpInfo(pendingFollowUpInfo);
+        //璁板綍棣栨闅忚鎴愬姛璇︽儏
+        serviceSubtaskStatistic.setFollowUpSuccessInfo(followUpSuccessInfo);
+        //璁板綍棣栨闅忚澶辫触璇︽儏
+        serviceSubtaskStatistic.setFollowUpFailInfo(followUpFailInfo);
         return serviceSubtaskStatistic;
     }
 

--
Gitblit v1.9.3