From 6a53d35b5d56e2f6bc64bbfe41579f6f32039c90 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 24 三月 2026 15:24:33 +0800
Subject: [PATCH] 【丽水】随访增加 人工随访超时状态

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |   63 +++++++++++++++++++++++++------
 1 files changed, 51 insertions(+), 12 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 85f2ff7..fa36706 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -104,10 +104,16 @@
     private IServiceOutPathService iServiceOutPathService;
 
     @Autowired
+    private IPatMedOuthospService iPatMedOuthospService;
+
+    @Autowired
     private FtpService ftpService;
 
     @Autowired
     private PatMedInhospMapper patMedInhospMapper;
+
+    @Autowired
+    private PatMedOuthospMapper patMedOuthospMapper;
 
     @Autowired
     private PatArchiveMapper patArchiveMapper;
@@ -315,7 +321,7 @@
         List<ServiceSubtaskRes> serviceSubtaskResList = new ArrayList<>();
         for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
             ServiceSubtaskRes serviceSubtaskRes = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtaskRes.class);
-            if(ObjectUtils.isNotEmpty(serviceSubtask.getContinueContent())){
+            if (ObjectUtils.isNotEmpty(serviceSubtask.getContinueContent())) {
                 serviceSubtaskRes.setContinueContent(serviceSubtask.getContinueContent());
             }
             serviceSubtaskResList.add(serviceSubtaskRes);
@@ -621,8 +627,7 @@
                             serviceTaskdept.setDeptCode(deptCode);
                             serviceTaskdept.setDeptType("1");
                             serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
-                            //鍏堥�氳繃浠诲姟ID銆侀儴闂╟ode,鍒ゆ柇ServiceTaskdept鏄惁瀛樺湪锛屼笉瀛樺湪鍒欐柊澧烇紝瀛樺湪鍒欎慨鏀�
-                            serviceTaskdeptService.insertOrUpdateServiceTaskdept(serviceTaskdept);
+                            serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
                         }
                     }
                     if (StringUtils.isNotEmpty(serviceTaskVO.getLeavehospitaldistrictcode())) {
@@ -631,8 +636,7 @@
                             serviceTaskdept.setDeptCode(districtcode);
                             serviceTaskdept.setDeptType("2");
                             serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
-                            //鍏堥�氳繃浠诲姟ID銆侀儴闂╟ode,鍒ゆ柇ServiceTaskdept鏄惁瀛樺湪锛屼笉瀛樺湪鍒欐柊澧烇紝瀛樺湪鍒欎慨鏀�
-                            serviceTaskdeptService.insertOrUpdateServiceTaskdept(serviceTaskdept);
+                            serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
                         }
                     }
                 }
@@ -765,8 +769,15 @@
                             serviceTaskdept.setDeptCode(deptCode);
                             serviceTaskdept.setDeptType("1");
                             serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
-                            //鍏堥�氳繃浠诲姟ID銆侀儴闂╟ode,鍒ゆ柇ServiceTaskdept鏄惁瀛樺湪锛屼笉瀛樺湪鍒欐柊澧烇紝瀛樺湪鍒欎慨鏀�
-                            serviceTaskdeptService.insertOrUpdateServiceTaskdept(serviceTaskdept);
+                            ServiceTaskdept st = new ServiceTaskdept();
+                            st.setDeptCode(deptCode);
+                            st.setTaskId(serviceTask.getTaskid());
+                            List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptService.selectServiceTaskdeptList(st);
+                            if (CollectionUtils.isEmpty(serviceTaskdepts)) {
+                                serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
+                            } else {
+                                serviceTaskdeptService.updateServiceTaskdept(serviceTaskdept);
+                            }
                         }
                     }
                     if (StringUtils.isNotEmpty(serviceTaskVO.getLeavehospitaldistrictcode())) {
@@ -781,7 +792,15 @@
                             serviceTaskdept.setDeptType("2");
                             serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
                             //鍏堥�氳繃浠诲姟ID銆侀儴闂╟ode,鍒ゆ柇ServiceTaskdept鏄惁瀛樺湪锛屼笉瀛樺湪鍒欐柊澧烇紝瀛樺湪鍒欎慨鏀�
-                            serviceTaskdeptService.insertOrUpdateServiceTaskdept(serviceTaskdept);
+                            ServiceTaskdept st = new ServiceTaskdept();
+                            st.setDeptCode(districtcode);
+                            st.setTaskId(serviceTask.getTaskid());
+                            List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptService.selectServiceTaskdeptList(st);
+                            if (CollectionUtils.isEmpty(serviceTaskdepts)) {
+                                serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
+                            } else {
+                                serviceTaskdeptService.updateServiceTaskdept(serviceTaskdept);
+                            }
                         }
                     }
                 } else if (serviceTaskVO.getAppltype().equals("3")) {
@@ -2183,6 +2202,26 @@
 
         List<ServiceStatisticsResponse> result = serviceSubtaskMapper.getServiceStatistics(request);
 
+        //鑾峰彇闂ㄦ�ヨ瘖鏁版嵁
+
+        //濉厖闂ㄨ瘖鏁版嵁
+        for (ServiceStatisticsResponse serviceStatisticsResponse : result) {
+            PatMedOuthospQueryReq req = new PatMedOuthospQueryReq();
+            String deptcodes = CollectionUtils.isEmpty(request.getDeptcodes()) ? null : String.join(",", request.getDeptcodes());
+            if (!request.getTimeType().equals("month")) {
+                req.setBeginAdmitdate(DateUtils.parseDate(serviceStatisticsResponse.getTimePeriod()));
+                req.setEndAdmitdate(DateUtils.parseDate(serviceStatisticsResponse.getTimePeriod()));
+            } else {
+                // year 绫诲瀷锛歵imePeriod 鏍煎紡涓� "yyyy-MM"锛屽彇褰撴湀绗竴澶╁拰鏈�鍚庝竴澶�
+                java.time.YearMonth ym = java.time.YearMonth.parse(serviceStatisticsResponse.getTimePeriod());
+                req.setBeginAdmitdate(DateUtils.toDate(ym.atDay(1)));
+                req.setEndAdmitdate(DateUtils.toDate(ym.atEndOfMonth()));
+            }
+            req.setDeptcode(deptcodes);
+            req.setOrgid(request.getOrgid());
+            Long count = patMedOuthospMapper.callSpQueryOuthospCount(req);
+            serviceStatisticsResponse.setPmoCount(count);
+        }
 
         log.info("getServiceStatistics杩斿洖缁撴灉鏁伴噺锛歿}", result.size());
         return result;
@@ -2598,8 +2637,8 @@
                     serviceSubtaskStatistic.setPendingFollowUp(serviceSubtaskStatistic.getPendingFollowUp() + 1L);
                     pendingFollowUpInfo.add(serviceSubtask);
                 }
-                //棣栨闅忚澶辫触
-                if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 5) {
+                //棣栨闅忚澶辫触(鍖呮嫭闅忚澶辫触+浜哄伐瓒呮椂)
+                if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 5 || serviceSubtask.getSendstate() == 7)) {
                     serviceSubtaskStatistic.setFollowUpFail(serviceSubtaskStatistic.getFollowUpFail() + 1L);
                     followUpFailInfo.add(serviceSubtask);
                 }
@@ -2828,7 +2867,7 @@
                 if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 6)) {
                     serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L);
                 }
-                if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 5) {
+                if (serviceSubtask.getSendstate() != null &&  (serviceSubtask.getSendstate() == 5 || serviceSubtask.getSendstate() == 7)) {
                     serviceSubtaskStatistic.setFollowUpFail(serviceSubtaskStatistic.getFollowUpFail() + 1L);
                 }
                 if (serviceSubtaskStatistic.getNeedFollowUp() > 0) {
@@ -2946,7 +2985,7 @@
                 if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 6)) {
                     serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L);
                 }
-                if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 5) {
+                if (serviceSubtask.getSendstate() != null &&  (serviceSubtask.getSendstate() == 5 || serviceSubtask.getSendstate() == 7)) {
                     serviceSubtaskStatistic.setFollowUpFail(serviceSubtaskStatistic.getFollowUpFail() + 1L);
                 }
                 if (serviceSubtaskStatistic.getNeedFollowUp() > 0) {

--
Gitblit v1.9.3