From 4b81304e73c093795ae418cfb4ce537b603660c9 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 16 四月 2026 09:36:46 +0800
Subject: [PATCH] 修改任务模板的基本templateid不存在,去基本模板查询

---
 ruoyi-admin/src/main/resources/application-druid.yml                                |   25 +++++++-----
 smartor/src/main/java/com/smartor/mapper/SvyTaskTemplateMapper.java                 |    2 
 ruoyi-admin/src/main/resources/application-sltd.yml                                 |    3 +
 ruoyi-admin/src/main/resources/application.yml                                      |   14 ++++++
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java |   66 ++++++++++++++++++++++++++++-----
 5 files changed, 88 insertions(+), 22 deletions(-)

diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml
index 3669f6b..2989938 100644
--- a/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/ruoyi-admin/src/main/resources/application-druid.yml
@@ -6,7 +6,7 @@
     druid:
       # 涓诲簱鏁版嵁婧�
       master:
-        #    涔変箤浜岄櫌
+        #        涔変箤浜岄櫌
         #        url: jdbc:mysql://127.0.0.1:3306/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         #        username: root
         #        password: 123456
@@ -34,7 +34,7 @@
         #        password: Hxerp2000
         #        driverClassName: com.mysql.cj.jdbc.Driver
         #  鍏徃鏈湴
-        url: jdbc:mysql://haiershi.a1.luyouxia.net:23844/smartor_lishui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        url: jdbc:mysql://haiershi.a1.luyouxia.net:23844/smartor_lishui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&connectTimeout=60000&socketTimeout=120000
         username: smartor
         password: Smartor.2023
         driverClassName: com.mysql.cj.jdbc.Driver
@@ -78,7 +78,11 @@
       # 鏈�澶ц繛鎺ユ睜鏁伴噺
       maxActive: 20
       # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
-      maxWait: 60000
+      maxWait: 120000
+      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿锛堟绉掞級锛岄槻姝㈡參鏌ヨ瀵艰嚧杩炴帴鏂紑
+      queryTimeout: 120
+      # 閰嶇疆杩炴帴鏈夋晥鎬ф娴嬭秴鏃�
+      validationQueryTimeout: 5
       # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
       timeBetweenEvictionRunsMillis: 60000
       # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
@@ -105,8 +109,8 @@
         stat:
           enabled: false
           # 鎱QL璁板綍
-          log-slow-sql: false
-          slow-sql-millis: 1000
+          log-slow-sql: true
+          slow-sql-millis: 3000
           merge-sql: true
         wall:
           config:
@@ -148,7 +152,7 @@
 # Swagger閰嶇疆
 swagger:
   # 鏄惁寮�鍚痵wagger
-  enabled: true
+  enabled: false
   # 璇锋眰鍓嶇紑
   pathMapping: /dev-api
 
@@ -215,10 +219,9 @@
 #  鎸囧畾asr鍥炶皟鐨剈rl璺緞(鏈湴)
 ASRCallBackPath: http://192.168.100.10:8095/smartor/serviceSubtask/phoneCallBackYQ
 #鎸傛柇IP(鏈湴)
-hangup: http://192.168.100.6:8089/hangup
+hangup: http://192.168.100.10:8089/hangup
 #fs鎵�浣跨敤鐨勯樋閲岀殑app_key(鏈湴)
 app_key_yq: ZurNHpaQLq6P55YS
-
 ##  鎸囧畾asr鍥炶皟鐨剈rl璺緞(鏂板崕)
 #ASRCallBackPath: http://192.168.101.135:8095/smartor/serviceSubtask/phoneCallBackYQ
 ##鎸傛柇IP(鏂板崕)
@@ -255,7 +258,7 @@
 #绗釜灏忔椂鐢佃瘽鎷ㄦ墦鐨勪笂闄�
 phoneUpEveryHour: 12
 #鐢佃瘽姣忓ぉ缁撴潫鏃堕棿
-phoneEndHour: 20
+phoneEndHour: 23
 
 #鏂板憳宸ラ粯璁ゅ瘑鐮�
 defaultPwd: 123456
@@ -267,10 +270,12 @@
 isAdmin: 1,2,3,4,5,6,7,8,9,10,11,12,13
 
 
-isEncryp:
+isEncryp: 0
 
 dealDeptCode:
 
 #鏂囦欢涓婁紶鍦板潃
 fileUpload:
 profile:
+
+ai_answer: http://localhost:8088/ai_answer
diff --git a/ruoyi-admin/src/main/resources/application-sltd.yml b/ruoyi-admin/src/main/resources/application-sltd.yml
index e8fd437..e145f70 100644
--- a/ruoyi-admin/src/main/resources/application-sltd.yml
+++ b/ruoyi-admin/src/main/resources/application-sltd.yml
@@ -244,3 +244,6 @@
 #鏂囦欢涓婁紶鍦板潃
 fileUpload: http://192.88.117.236:8090
 profile: /prod-api/profile
+
+# 鏉ユ湭鏉pp_key
+lwl_app_key: ak-zUMiOWhqXiJQWPB1pCbz0pjr
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 0f69eba..b6d2613 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -74,7 +74,7 @@
     # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
     basename: i18n/messages
   profiles:
-    active: ls
+    active: druid
 
   # 鏂囦欢涓婁紶
   servlet:
@@ -115,6 +115,8 @@
   mapperLocations: classpath*:mapper/**/*Mapper.xml
   # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
   configLocation: classpath:mybatis/mybatis-config.xml
+  # 娉ㄥ唽鑷畾涔塗ypeHandler鍖�
+  typeHandlersPackage: com.smartor.typehandler
   #configuration:
   #  log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
 
@@ -160,3 +162,13 @@
 
 #鐢ㄦ埛榛樿瀵嗙爜
 userPwd: 123456
+
+#杩欎簺绌哄�奸兘鏄潵鏈潵鐨勫彉閲忥紝鍏堝崰浣�
+lwl_app_key:
+sms_accountName:
+sms_password:
+sms_url:
+sms_sourceAddr:
+sms_serviceCode:
+sms_appkey:
+sms_flag:
diff --git a/smartor/src/main/java/com/smartor/mapper/SvyTaskTemplateMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyTaskTemplateMapper.java
index ae37c52..24bdea2 100644
--- a/smartor/src/main/java/com/smartor/mapper/SvyTaskTemplateMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/SvyTaskTemplateMapper.java
@@ -19,7 +19,7 @@
      * @param svyid 浠诲姟闂嵎妯℃澘涓婚敭
      * @return 浠诲姟闂嵎妯℃澘
      */
-    public SvyTaskTemplate selectSvyTaskTemplateBySvyid(Long svyid);
+    public SvyTaskTemplate selectSvyTaskTemplateBySvyid(Long id);
 
     /**
      * 鏌ヨ浠诲姟闂嵎妯℃澘鍒楄〃
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
index 8b43b97..efc5708 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -14,9 +14,7 @@
 import com.smartor.domain.VO.ServiceSubtaskDetailTraceVO;
 import com.smartor.domain.entity.ServiceSubtaskEntity;
 import com.smartor.mapper.*;
-import com.smartor.service.IServiceSubtaskAnswerService;
-import com.smartor.service.IServiceSubtaskDetailTraceService;
-import com.smartor.service.IServiceTaskService;
+import com.smartor.service.*;
 import com.sun.org.apache.bcel.internal.generic.NEW;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
@@ -75,6 +73,18 @@
 
     @Autowired
     private IServiceSubtaskDetailTraceService traceService;
+
+    @Autowired
+    private ISvyTaskTemplateService svyTaskTemplateService;
+
+    @Autowired
+    private ISvyLibTemplateScriptService svyLibTemplateScriptService;
+
+    @Autowired
+    private IIvrTaskTemplateService ivrTaskTemplateService;
+
+    @Autowired
+    private IIvrLibaTemplateScriptService ivrLibaTemplateScriptService;
 
     @Value("${pri_key}")
     private String pri_key;
@@ -377,9 +387,7 @@
                 }
             } else if (serviceSubTaskCacheReq.getType() == 1) {
                 List<IvrTaskTemplateScriptVO> cacheList = serviceSubTaskCacheReq.getIvrTaskTemplateScriptVOList();
-                cacheList.sort(Comparator.comparingLong(
-                        vo -> Optional.ofNullable(vo.getSort()).orElse(0)
-                ));
+                cacheList.sort(Comparator.comparingLong(vo -> Optional.ofNullable(vo.getSort()).orElse(0)));
                 log.error("鐢佃瘽闅忚闂嵎鍥炵瓟缁撴灉锛歿}", cacheList.size());
                 for (int i = 0; i < cacheList.size(); i++) {
                     if (i == 0) {
@@ -819,6 +827,9 @@
 
             }
             nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno();
+            if (StringUtils.isEmpty(nextScriptNo)) {
+                nextScriptNo = getNextScriptNo(svyTaskTemplateScriptVO.getTemplateID(), svyTaskTemplateScriptVO.getScriptContent());
+            }
             if (svyTaskTemplateScriptVO.getScore() != null) {
                 score = String.valueOf(svyTaskTemplateScriptVO.getScore());
             }
@@ -833,7 +844,10 @@
                     score = String.valueOf(svyTaskTemplateScriptVO.getScore());
                 }
             }
-            nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno().toString();
+            nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno();
+            if (StringUtils.isEmpty(nextScriptNo)) {
+                nextScriptNo = getNextScriptNo(svyTaskTemplateScriptVO.getTemplateID(), svyTaskTemplateScriptVO.getScriptContent());
+            }
         }
         ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(taskid);
         serviceSubtaskDetailVO.setQuestiontext(svyTaskTemplateScriptVO.getScriptContent());
@@ -848,9 +862,7 @@
         serviceSubtaskDetailVO.setCreateTime(new Date());
         serviceSubtaskDetailVO.setUpdateTime(new Date());
         serviceSubtaskDetailVO.setTemplateType(2);
-        serviceSubtaskDetailVO.setLibTemplateid(CollectionUtils.isNotEmpty(selectServiceSubtaskList) ?
-                (ObjectUtils.isNotEmpty(selectServiceSubtaskList.get(0).getLibtemplateid()) ?
-                        selectServiceSubtaskList.get(0).getLibtemplateid().intValue() : null): null);
+        serviceSubtaskDetailVO.setLibTemplateid(CollectionUtils.isNotEmpty(selectServiceSubtaskList) ? (ObjectUtils.isNotEmpty(selectServiceSubtaskList.get(0).getLibtemplateid()) ? selectServiceSubtaskList.get(0).getLibtemplateid().intValue() : null) : null);
         if (ObjectUtils.isNotEmpty(serviceTask)) {
             serviceSubtaskDetailVO.setGuid(serviceTask.getGuid());
             serviceSubtaskDetailVO.setOrgid(serviceTask.getOrgid());
@@ -954,6 +966,33 @@
         map.put("isabnormal", isabnormalFlag.toString());
         return map;
     }
+
+    private String getNextScriptNo(Long taskTemplateID, String scriptContent) {
+        SvyTaskTemplate svyTaskTemplate = svyTaskTemplateService.selectSvyTaskTemplateBySvyid(taskTemplateID);
+        SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript();
+        svyLibTemplateScript.setSvyid(svyTaskTemplate.getTemplateid());
+        svyLibTemplateScript.setScriptContent(scriptContent);
+        List<SvyLibTemplateScript> svyLibTemplateScriptList = svyLibTemplateScriptService.selectSvyLibTemplateScriptList(svyLibTemplateScript);
+        if (CollectionUtils.isNotEmpty(svyLibTemplateScriptList)) {
+            return svyLibTemplateScriptList.get(0).getNextScriptno();
+        }
+        return null;
+    }
+
+    private Long getVoiceNextScriptNo(Long taskTemplateID, String scriptContent) {
+        IvrTaskTemplate ivrTaskTemplate = ivrTaskTemplateService.selectIvrTaskTemplateByID(taskTemplateID);
+        IvrLibaTemplateScript ivrLibaTemplateScript = new IvrLibaTemplateScript();
+        if (StringUtils.isEmpty(ivrTaskTemplate.getLibtemplateid())) return null;
+        ivrLibaTemplateScript.setTemplateid(Long.valueOf(ivrTaskTemplate.getLibtemplateid()));
+        ivrLibaTemplateScript.setScriptContent(scriptContent);
+        List<IvrLibaTemplateScript> ivrLibaTemplateScriptList = ivrLibaTemplateScriptService.selectIvrLibaTemplateScriptList(ivrLibaTemplateScript);
+
+        if (CollectionUtils.isNotEmpty(ivrLibaTemplateScriptList)) {
+            return ivrLibaTemplateScriptList.get(0).getNextScriptno();
+        }
+        return null;
+    }
+
 
     private Boolean sendTaskIds(List<Integer> sendTaskids, ServiceSubtask serviceSubtask) {
         for (Integer taskId : sendTaskids) {
@@ -1061,6 +1100,10 @@
 
             }
             nextScriptNo = ivrTaskTemplateScriptVO.getNextScriptno() == null ? null : ivrTaskTemplateScriptVO.getNextScriptno().toString();
+            if (StringUtils.isEmpty(nextScriptNo)) {
+                nextScriptNo = "" + getVoiceNextScriptNo(ivrTaskTemplateScriptVO.getTemplateID(), ivrTaskTemplateScriptVO.getScriptContent());
+            }
+
             if (ivrTaskTemplateScriptVO.getScore() != null) {
                 score = String.valueOf(ivrTaskTemplateScriptVO.getScore());
             }
@@ -1079,6 +1122,9 @@
                 serviceSubtaskDetailVO.setMatchedtext(ivrTaskTemplateScriptVO.getQuestionResult() != null ? ivrTaskTemplateScriptVO.getQuestionResult().replaceAll("^\"|\"$", "") : ivrTaskTemplateScriptVO.getIvrtext());
                 serviceSubtaskDetailVO.setScore(ivrTaskTemplateScriptVO.getScore() != null ? ivrTaskTemplateScriptVO.getScore().toString() : "0");
                 nextScriptNo = ivrTaskTemplateScriptVO.getNextScriptno() == null ? null : ivrTaskTemplateScriptVO.getNextScriptno().toString();
+                if (StringUtils.isEmpty(nextScriptNo)) {
+                    nextScriptNo = "" + getVoiceNextScriptNo(ivrTaskTemplateScriptVO.getTemplateID(), ivrTaskTemplateScriptVO.getScriptContent());
+                }
                 if (ivrTaskTemplateScriptVO.getScore() != null) {
                     score = String.valueOf(ivrTaskTemplateScriptVO.getScore());
                 }

--
Gitblit v1.9.3