From 6bef96058f738b264d14707d2d03d8e730717731 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 14 十月 2026 11:24:32 +0800
Subject: [PATCH] 【丽水】smartor/serviceSubtask/patItemByCondition 空指针报错问题

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |   27 ++++++++++++++++++++++-----
 1 files changed, 22 insertions(+), 5 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 b8d7732..f10bc6b 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -558,11 +558,22 @@
 
     @Override
     public List<ServiceSubtask> patItem2(ServiceSubtaskEntity serviceSubtaskEntity) {
+        if (serviceSubtaskEntity.getSendstateView() != null) {
+            //            1锛氬緟闅忚锛�1 琚鍙栥��2 寰呭彂閫併��3 宸插彂閫併��5 鍙戦�佸け璐ャ��7銆佽秴鏃讹級锛�2锛氬凡瀹屾垚锛� 6 宸插畬鎴愶級銆�3锛氭棤闇�闅忚锛�4 涓嶆墽琛岋級
+            if (serviceSubtaskEntity.getSendstateView() == 1)
+                serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(1L, 2L, 3L, 5L, 7L)));
+            if (serviceSubtaskEntity.getSendstateView() == 2)
+                serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(6L)));
+            if (serviceSubtaskEntity.getSendstateView() == 3)
+                serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(4L)));
+        }
         List<ServiceSubtask> serviceSubtaskList = new ArrayList<>();
-        for (Long sendstate : serviceSubtaskEntity.getSendstates()) {
-            serviceSubtaskEntity.setSendstate(sendstate);
-            List<ServiceSubtask> serviceSubtasks = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskEntity);
-            serviceSubtaskList.addAll(serviceSubtasks);
+        if(CollectionUtils.isNotEmpty(serviceSubtaskEntity.getSendstates())){
+            for (Long sendstate : serviceSubtaskEntity.getSendstates()) {
+                serviceSubtaskEntity.setSendstate(sendstate);
+                List<ServiceSubtask> serviceSubtasks = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskEntity);
+                serviceSubtaskList.addAll(serviceSubtasks);
+            }
         }
         return serviceSubtaskList;
     }
@@ -2940,7 +2951,7 @@
      * @return
      */
     @Override
-    @Cacheable(value = "sfStatistics", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
+//    @Cacheable(value = "sfStatistics", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
     public List<ServiceSubtaskStatistic> getSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq) {
         log.info("getSfStatistics鐨勫叆鍙備负锛歿}", serviceSubtaskCountReq);
         String drcode = "drcode";
@@ -3062,6 +3073,8 @@
         ssRate.setOrgid(serviceSubtaskCountReq.getOrgid());
         ssRate.setStarttime(serviceSubtaskCountReq.getStartTime());
         ssRate.setEndtime(serviceSubtaskCountReq.getEndTime());
+        ssRate.setStartOutHospTime(serviceSubtaskCountReq.getHospitalStartTime());
+        ssRate.setEndOutHospTime(serviceSubtaskCountReq.getHospitalEndTime());
         ssRate.setVisitCount(serviceSubtaskCountReq.getVisitCount());
         ssRate.setServiceTypeList(serviceSubtaskCountReq.getServiceType());
         if (serviceSubtaskCountReq.getEndTime() != null && new Date().before(serviceSubtaskCountReq.getEndTime())) {
@@ -3153,6 +3166,8 @@
             if (serviceSubtaskCountReq.getEndTime() != null && new Date().before(serviceSubtaskCountReq.getEndTime())) {
                 ss.setEndtime(new Date());
             }
+            ss.setStartOutHospTime(serviceSubtaskCountReq.getHospitalStartTime());
+            ss.setEndOutHospTime(serviceSubtaskCountReq.getHospitalEndTime());
             Double jsRate = serviceSubtaskMapper.selectTimelyRate(ss);
             statistic.setRate(jsRate);
             if (ObjectUtils.isNotEmpty(statistic)) {
@@ -6137,6 +6152,8 @@
         String voiceText = phoneCallReqYQVO.getAsrtext();
         String questionText = StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrtext()) ? ivrTaskTemplateScriptVO.getIvrtext() : ivrTaskTemplateScriptVO.getScriptContent();
         Integer matched = -1;
+        log.info("AI鍖归厤:url = {},questionText = {},voiceText = {},options = {},uuid ={}",
+                url,questionText,voiceText,options,uuid);
         matched = matchOptionIndex(url, questionText, voiceText, options, uuid);
         //璇存槑鍖归厤姝g‘浜�
         if (matched != null && matched >= 0) {

--
Gitblit v1.9.3