From f55c563e2a0b52e4569ce6b5f81632cac598f7fe Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 30 十月 2024 18:36:55 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java      |  332 +++++++++++++++---------
 smartor/src/main/java/com/smartor/domain/SocketMessage.java                              |    2 
 smartor/src/main/java/com/smartor/domain/CommonTaskcallMQ.java                           |    4 
 smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScriptVO.java                    |   23 +
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java                             |   35 +-
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java |    2 
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java            |  218 ++++++++++------
 ruoyi-admin/src/main/resources/application-druid.yml                                     |   24 +
 ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java                   |   12 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java    |   15 +
 ruoyi-admin/src/main/java/com/ruoyi/web/test/MQTest.java                                 |   10 
 smartor/src/main/java/com/smartor/domain/PhoneCallBackYQVO.java                          |    3 
 smartor/src/main/java/com/smartor/domain/PatTaskRelevance.java                           |    7 
 smartor/src/main/java/com/smartor/common/SendService.java                                |   54 +++
 smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java                           |    2 
 15 files changed, 487 insertions(+), 256 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
index 2db096c..3b101e7 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
@@ -1,6 +1,5 @@
 package com.ruoyi.web.component;
 
-import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.gson.Gson;
@@ -9,15 +8,15 @@
 import com.ruoyi.common.utils.RSAPublicKeyExample;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.http.HttpUtils;
-import com.ruoyi.web.task.PhoneTask;
 import com.smartor.common.SendService;
 import com.smartor.config.RobotPhoneUtils;
 import com.smartor.domain.*;
 import com.smartor.mapper.ServiceSubtaskMapper;
 import com.smartor.mapper.ServiceTaskMapper;
-import com.smartor.mapper.SvyTaskMapper;
-import com.smartor.mapper.SvyTaskSingleMapper;
-import com.smartor.service.*;
+import com.smartor.service.IBaseSmsaccountService;
+import com.smartor.service.IIvrTaskTemplateService;
+import com.smartor.service.IServiceSubtaskRecordService;
+import com.smartor.service.ISvyTaskTemplateService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,7 +26,6 @@
 import org.springframework.data.redis.listener.RedisMessageListenerContainer;
 import org.springframework.stereotype.Component;
 
-import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 import java.time.LocalDateTime;
@@ -306,6 +304,8 @@
                             } else if (type == 3) {
                                 sendMagParam.setUrl(ip + ":" + req_path + "/outsideChainxj?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false");
                             }
+                            //鐭俊杩橀渶瑕佹ā鏉�
+                            sendMagParam.setContent("銆愭柊鍗庡尰闄€��+<a href="+sendMagParam.getUrl()+"閾炬帴娴嬭瘯</a>");
                             Boolean aBoolean = sendService.sendMsg(sendMagParam);
 
                             if (!aBoolean) {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java
index 37e4338..fae4378 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java
@@ -8,8 +8,8 @@
 import com.smartor.domain.*;
 import com.smartor.mapper.IvrLibaExtemplatescriptMapper;
 import com.smartor.service.IIvrLibaTemplateService;
-import com.smartor.service.IIvrTaskTemplateService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.web.socket.BinaryMessage;
@@ -32,7 +32,7 @@
 
     private static RedisCache redisCache;
 
-    private static IIvrTaskTemplateService ivrTaskTemplateService;
+    private static IIvrLibaTemplateService ivrLibaTemplateService;
 
     private static IvrLibaExtemplatescriptMapper ivrLibaExtemplatescriptMapper;
 
@@ -45,8 +45,8 @@
     }
 
     @Autowired
-    public void setTodayReaderService(IIvrTaskTemplateService ivrTaskTemplateService) {
-        ChatWebSocketHandler.ivrTaskTemplateService = ivrTaskTemplateService;
+    public void setTodayReaderService(IIvrLibaTemplateService ivrLibaTemplateService) {
+        ChatWebSocketHandler.ivrLibaTemplateService = ivrLibaTemplateService;
     }
 
     @Autowired
@@ -116,17 +116,17 @@
         if (session != null && session.isOpen()) {
             if (socketMessage.getTemplateId() != null) {
                 //閫氳繃妯℃澘ID鑾峰彇妯℃澘闂
-                IvrTaskTemplateVO ivrTaskTemplateVO = new IvrTaskTemplateVO();
-                ivrTaskTemplateVO.setId(socketMessage.getTemplateId());
-                IvrTaskTemplateVO ivrTaskTemplateVO1 = ivrTaskTemplateService.selectInfoByCondition(ivrTaskTemplateVO);
-                redisCache.setCacheObject(userId + "ivrTaskTemplateVO1", ivrTaskTemplateVO1, 120, TimeUnit.MINUTES);
+                IvrLibaTemplateVO ivrLibaTemplateVO = new IvrLibaTemplateVO();
+                ivrLibaTemplateVO.setId(socketMessage.getTemplateId());
+                IvrLibaTemplateVO ivrLibaTemplateVO1 = ivrLibaTemplateService.selectInfoByCondition(ivrLibaTemplateVO);
+                redisCache.setCacheObject(userId + "ivrLibaTemplateVO1", ivrLibaTemplateVO1, 120, TimeUnit.MINUTES);
                 //灏嗘煡鍑烘潵鐨勯棶棰�,鏀惧埌鍏ㄥ眬鍙橀噺涓幓
-                List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOList = ivrTaskTemplateVO1.getIvrTaskTemplateScriptVOList();
+                List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList = ivrLibaTemplateVO1.getIvrLibaTemplateScriptVOList();
                 //鏍规嵁搴忓彿杩涜鎺掑簭
-                Collections.sort(ivrTaskTemplateScriptVOList, Comparator.comparing(IvrTaskTemplateScriptVO::getTargetid));
+                Collections.sort(ivrLibaTemplateScriptVOList, Comparator.comparing(IvrLibaTemplateScriptVO::getSort));
 
                 //灏嗘煡鍑烘潵鐨勬暟鎹斁鍒皉edis涓�
-                redisCache.setCacheObject(userId + "ivrTaskTemplateScriptVOList", ivrTaskTemplateScriptVOList, 120, TimeUnit.MINUTES);
+                redisCache.setCacheObject(userId + "ivrLibaTemplateScriptVOList", ivrLibaTemplateScriptVOList, 120, TimeUnit.MINUTES);
                 //鐢ㄦ潵杩斿洖璋冩煡鐨勬�荤粨鏋�
                 redisCache.setCacheObject(userId + "backQuset", new ArrayList<>(), 120, TimeUnit.MINUTES);
                 //鐢ㄦ潵璁板綍鏃犲0鍝嶅簲娆℃暟
@@ -137,16 +137,17 @@
                 redisCache.setCacheObject(userId + "isOver", 0, 120, TimeUnit.MINUTES);
 
                 //鐢ㄦ潵杩斿洖褰撳墠闇�瑕侀棶鐨勯棶棰樹俊鎭�
-                QuestionMessage returnQues = new QuestionMessage();
+                QuestionMessagePhone returnQues = new QuestionMessagePhone();
 
-                for (IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO : ivrTaskTemplateScriptVOList) {
-                    if (ivrTaskTemplateScriptVO.getTargetid() == ivrTaskTemplateVO1.getFirstQuestionNum().intValue())
+
+                for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVOList) {
+                    if (ivrLibaTemplateScriptVO.getSort() == ivrLibaTemplateVO1.getFirstQuestionNum().intValue())
                         //鑾峰彇绗竴棰樼殑闂
-                        returnQues.setNowQuestion(ivrTaskTemplateScriptVO);
+                        returnQues.setNowQuestion(ivrLibaTemplateScriptVO);
 //                        returnQues.setCode(ivrTaskTemplateScriptVO.getTargetid() + 1);
                 }
 //              璁剧疆寮�鍦虹櫧
-                returnQues.setKcb(ivrTaskTemplateVO1.getRevisitBefore());
+                returnQues.setKcb(ivrLibaTemplateVO1.getRevisitBefore());
 
                 //璁板綍鍝嶅簲
                 redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
@@ -154,44 +155,45 @@
                 //鑾峰彇socketMessage閲岀殑QuestionMessage,瀵圭瓟妗堣繘琛屽鐞嗙劧鍚�,鍐嶉棶涓嬩竴閬�
                 Gson gson = new Gson();
                 if (!StringUtils.isEmpty(socketMessage.getContent())) {
-                    socketMessage.setQuestionMessage(gson.fromJson(socketMessage.getContent(), QuestionMessage.class));
+                    socketMessage.setQuestionMessage(gson.fromJson(socketMessage.getContent(), QuestionMessagePhone.class));
                 }
 
-                QuestionMessage questionMessage = socketMessage.getQuestionMessage();
-                List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOList = redisCache.getCacheObject(userId + "ivrTaskTemplateScriptVOList");
+                QuestionMessagePhone questionMessage = socketMessage.getQuestionMessage();
+                List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList = redisCache.getCacheObject(userId + "ivrLibaTemplateScriptVOList");
                 //鏍规嵁鍓嶇浼犲洖鐨勬潯浠讹紝鑾峰彇褰撳墠棰樼洰
-                IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO = questionMessage.getNowQuestion();
-                if (ivrTaskTemplateScriptVO.getId() == null) {
-                    QuestionMessage returnQues = redisCache.getCacheObject(userId + "returnQues");
-                    ivrTaskTemplateScriptVO = returnQues.getNowQuestion();
+                IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO = questionMessage.getNowQuestion();
+                if (ivrLibaTemplateScriptVO.getId() == null) {
+                    QuestionMessagePhone returnQues = redisCache.getCacheObject(userId + "returnQues");
+                    ivrLibaTemplateScriptVO = returnQues.getNowQuestion();
                 }
                 //鑾峰彇妯℃澘淇℃伅
-                IvrTaskTemplateVO ivrTaskTemplateVO1 = redisCache.getCacheObject(userId + "ivrTaskTemplateVO1");
+                IvrLibaTemplateVO ivrLibaTemplateVO1 = redisCache.getCacheObject(userId + "ivrLibaTemplateVO1");
+
 
                 if (StringUtils.isEmpty(questionMessage.getContent())) {
                     //璋冪敤ivrTaskTemplateScriptVO涓殑slienceText(闈欓粯璇濇湳)
                     Integer noVoice = redisCache.getCacheObject(userId + "noVoice");
                     //瀹為檯闈欓粯娆℃暟鏄惁 绛変簬 妯℃澘涓厤缃殑娆℃暟
-                    if (noVoice == ivrTaskTemplateVO1.getNoVoiceNum().intValue()) {
+                    if (noVoice == ivrLibaTemplateVO1.getNoVoiceNum().intValue()) {
                         //鐢ㄦ潵杩斿洖璋冩煡鐨勬�荤粨鏋�
-                        List<IvrTaskTemplateScriptVO> backQuset = new ArrayList<>();
-                        backQuset.add(ivrTaskTemplateScriptVO);
+                        List<IvrLibaTemplateScriptVO> backQuset = new ArrayList<>();
+                        backQuset.add(ivrLibaTemplateScriptVO);
                         redisCache.setCacheObject(userId + "backQuset", backQuset, 120, TimeUnit.MINUTES);
 
                         //濡傛灉鍑犳閮芥病鍝嶅簲锛屽氨涓嬩竴棰橈紙闇�瑕佸厛鍒ゆ柇鏄惁鏈変笅涓�棰橈級
-                        if (ivrTaskTemplateScriptVO.getTargetid() == ivrTaskTemplateScriptVOList.size()) {
+                        if (ivrLibaTemplateScriptVO.getSort() == 0) {
                             //濡傛灉涓嬩竴棰樻病鏈変簡锛屽氨缁撴潫浜�
-                            QuestionMessage returnQues = new QuestionMessage();
+                            QuestionMessagePhone returnQues = new QuestionMessagePhone();
 //                            returnQues.setCode(null);
-                            List<IvrTaskTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
+                            List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
                             returnQues.setContent(JSON.toJSONString(backQusetRedis));
-                            returnQues.setJsy(ivrTaskTemplateVO1.getRevisitAfter());
+                            returnQues.setJsy(ivrLibaTemplateVO1.getRevisitAfter());
                             redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
                             redisCache.setCacheObject(userId + "isOver", 1, 120, TimeUnit.MINUTES);
 
                         } else {
                             //濡傛灉鏈変笅涓�棰橈紝灏辨牴鎹綋鍓峵eagetID+1 鑾峰彇涓嬩竴棰�
-                            QuestionMessage returnQues = getNextQuestion(ivrTaskTemplateScriptVOList, ivrTaskTemplateScriptVO);
+                            QuestionMessagePhone returnQues = getNextQuestion(ivrLibaTemplateScriptVOList, ivrLibaTemplateScriptVO);
                             redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
                             redisCache.setCacheObject(userId + "noVoice", 0, 120, TimeUnit.MINUTES);
                         }
@@ -203,81 +205,146 @@
 
                         Integer noVoice2 = redisCache.getCacheObject(userId + "noVoice");
                         noVoice2 = noVoice2 + 1;
+
+                        //缁欓棶棰樺姞涓婃棤鍖归厤璇濇湳
+                        QuestionMessagePhone returnQues = redisCache.getCacheObject(userId + "returnQues");
+                        IvrLibaTemplateScriptVO nowQuestion = returnQues.getNowQuestion();
+                        boolean contains = nowQuestion.getScriptContent().contains(nowQuestion.getNoMatchText());
+                        if (!contains) {
+                            String scriptContent = nowQuestion.getSlienceText() + "," + nowQuestion.getScriptContent();
+                            nowQuestion.setScriptContent(scriptContent);
+                        }
+                        returnQues.setNowQuestion(nowQuestion);
+                        redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
                         redisCache.setCacheObject(userId + "noVoice", noVoice2, 120, TimeUnit.MINUTES);
                     }
                 } else {
-                    //閫氳繃valueType鍒ゆ柇鏄粈涔堥鍨嬶紙鍊肩被鍨嬶紙1 閫夐」  2 鏂囨湰  3 鏁板�硷級锛�
-                    if (ivrTaskTemplateScriptVO.getValueType() == 2 || ivrTaskTemplateScriptVO.getValueType() == 3) {
-                        ivrTaskTemplateScriptVO.setQuestionResult(questionMessage.getContent());
 
-                        List<IvrTaskTemplateScriptVO> backQusetList = redisCache.getCacheObject(userId + "backQuset");
+                    String extemplateID = ivrLibaTemplateVO1.getSubmoduleID();
+                    if (org.apache.commons.lang3.StringUtils.isNotEmpty(extemplateID)) {
+                        String[] split = extemplateID.split(",");
+                        List<String> list = Arrays.asList(split);
+                        List<Long> list1 = new ArrayList<>();
+                        for (String str : list) {
+                            list1.add(Long.valueOf(str));
+                        }
+                        List<IvrLibaExtemplatescript> ivrLibaExtemplatescripts = ivrLibaExtemplatescriptMapper.queryIvrLibaExtemplatescriptList(list1);
+                        IvrLibaExtemplatescript les = null;
+                        for (IvrLibaExtemplatescript ivrLibaExtemplatescript : ivrLibaExtemplatescripts) {
+                            Matcher matcher = null;
+                            if (org.apache.commons.lang3.StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex())) {
+                                Pattern pattern = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex());
+                                matcher = pattern.matcher(questionMessage.getContent());
+                            }
+
+                            Matcher matcher2 = null;
+                            if (org.apache.commons.lang3.StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2())) {
+                                Pattern pattern2 = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex2());
+                                matcher2 = pattern2.matcher(questionMessage.getContent());
+                            }
+                            if (org.apache.commons.lang3.StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches() && org.apache.commons.lang3.StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || org.apache.commons.lang3.StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex()) && org.apache.commons.lang3.StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || org.apache.commons.lang3.StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && org.apache.commons.lang3.StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches()) {
+                                //灏嗛�氱敤搴撳尮閰嶇殑锛屾斁鍒拌繑鍥炲�间腑
+                                ivrLibaTemplateScriptVO.setCommonValue(ivrLibaExtemplatescript.getSwitchText());
+                                les = ivrLibaExtemplatescript;
+                            }
+                            break;
+                        }
+                        if (ObjectUtils.isNotEmpty(les)) {
+                            //瀵瑰尮閰嶇殑缁撴灉澶勭悊涓�涓�(鐪嬬湅鏄笉鏄渶瑕佹寕鏈�)
+                            if (les.getIsEnd() != null && les.getIsEnd() == 1) {
+                                //鍙互鎸傛満浜�
+                                redisCache.deleteObject(userId + "ivrLibaTemplateScriptVOList");
+                                redisCache.deleteObject(userId + "backQuset");
+                                redisCache.deleteObject(userId + "noVoice");
+                                redisCache.deleteObject(userId + "returnQues");
+                                redisCache.deleteObject(userId + "isOver");
+                                redisCache.deleteObject(userId + "ivrLibaTemplateVO1");
+                                QuestionMessagePhone returnQues = new QuestionMessagePhone();
+                                List<IvrLibaTemplateScriptVO> backQuset = new ArrayList<>();
+                                IvrLibaTemplateScriptVO ls = new IvrLibaTemplateScriptVO();
+                                ls.setScriptContent(les.getSwitchText());
+                                backQuset.add(ls);
+                                returnQues.setQuestionList(backQuset);
+                                returnQues.setNowQuestion(ls);
+                                session.sendMessage(new TextMessage(JSON.toJSONString(returnQues).getBytes(StandardCharsets.UTF_8)));
+                                return;
+                            }
+                        }
+                    }
+
+
+                    //閫氳繃valueType鍒ゆ柇鏄粈涔堥鍨嬶紙鍊肩被鍨嬶紙1 閫夐」  2 鏂囨湰  3 鏁板�硷級锛�
+                    if (ivrLibaTemplateScriptVO.getValueType() == 2 || ivrLibaTemplateScriptVO.getValueType() == 3) {
+                        ivrLibaTemplateScriptVO.setQuestionResult(questionMessage.getContent());
+
+                        List<IvrLibaTemplateScriptVO> backQusetList = redisCache.getCacheObject(userId + "backQuset");
                         //鍖归厤瀹屾垚鍚�,灏嗙粨鏋滀繚瀛樺埌鏂扮殑鏁扮粍
-                        backQusetList.add(ivrTaskTemplateScriptVO);
+                        backQusetList.add(ivrLibaTemplateScriptVO);
                         redisCache.setCacheObject(userId + "backQuset", backQusetList, 120, TimeUnit.MINUTES);
                         //灏嗛潤榛樼疆涓�0
                         redisCache.setCacheObject(userId + "noVoice", 0, 120, TimeUnit.MINUTES);
                         //鑾峰彇涓嬩竴棰�
-                        Long nextQuestion = ivrTaskTemplateScriptVO.getTargetid() + 1;
-                        if (nextQuestion > ivrTaskTemplateScriptVOList.size()) {
+                        Long nextQuestion = Long.valueOf(ivrLibaTemplateScriptVO.getSort() + 1);
+                        if (nextQuestion > ivrLibaTemplateScriptVOList.size()) {
                             //濡傛灉涓嬩竴棰樻病鏈変簡锛屽氨缁撴潫浜�
-                            QuestionMessage returnQues = new QuestionMessage();
-                            List<IvrTaskTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
+                            QuestionMessagePhone returnQues = new QuestionMessagePhone();
+                            List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
                             returnQues.setContent(JSON.toJSONString(backQusetRedis));
-                            returnQues.setJsy(ivrTaskTemplateVO1.getRevisitAfter());
+                            returnQues.setJsy(ivrLibaTemplateVO1.getRevisitAfter());
                             redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
                             redisCache.setCacheObject(userId + "isOver", 1, 120, TimeUnit.MINUTES);
                         } else {
-                            for (IvrTaskTemplateScriptVO script : ivrTaskTemplateScriptVOList) {
-                                if (script.getTargetid() == nextQuestion) {
-                                    QuestionMessage returnQues = new QuestionMessage();
+                            for (IvrLibaTemplateScriptVO script : ivrLibaTemplateScriptVOList) {
+                                if (Long.valueOf(script.getSort()) == nextQuestion) {
+                                    QuestionMessagePhone returnQues = new QuestionMessagePhone();
                                     returnQues.setNowQuestion(script);
                                     redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
                                 }
                             }
                         }
 
-                    } else if (ivrTaskTemplateScriptVO.getValueType() == 1) {
+                    } else if (ivrLibaTemplateScriptVO.getValueType() == 1) {
 
                         //瀵瑰洖绛旂殑闂,杩涜姝e垯鍖归厤锛堣繖閲屽彧閽堝閫夋嫨棰橈紝鍏跺畠棰樺瀷涓嶈锛墄
-                        for (int j = 0; j < ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().size(); j++) {
+                        for (int j = 0; j < ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().size(); j++) {
                             //鍖呭惈
                             Matcher matcher = null;
-                            if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex())) {
-                                Pattern pattern = Pattern.compile(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex());
+                            if (StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex())) {
+                                Pattern pattern = Pattern.compile(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex());
                                 matcher = pattern.matcher(questionMessage.getContent());
                             }
                             //涓嶅寘鍚�
                             Matcher matcher2 = null;
-                            if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2())) {
-                                Pattern pattern2 = Pattern.compile(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2());
+                            if (StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2())) {
+                                Pattern pattern2 = Pattern.compile(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2());
                                 matcher2 = pattern2.matcher(questionMessage.getContent());
                             }
-                            log.info("==============================Targetregex鐨勫�间负锛歿},   Targetregex2鐨勫�间负锛歿}", ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex(), ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2());
+                            log.info("==============================Targetregex鐨勫�间负锛歿},   Targetregex2鐨勫�间负锛歿}", ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex(), ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2());
 
-                            if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches() || StringUtils.isEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches()) {
-
+                            if (StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() && StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches() || StringUtils.isEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2()) && StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches()) {
+                                log.error("鍖归厤姝g‘浜�");
                                 //璇存槑鍖归厤姝g‘浜�
-                                ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).setIsUserOperation(1);
-                                List<IvrTaskTemplateScriptVO> backQuset = redisCache.getCacheObject(userId + "backQuset");
+                                ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).setIsUserOperation(1);
+                                List<IvrLibaTemplateScriptVO> backQuset = redisCache.getCacheObject(userId + "backQuset");
                                 //鍖归厤瀹屾垚鍚�,灏嗙粨鏋滀繚瀛樺埌鏂扮殑鏁扮粍
-                                backQuset.add(ivrTaskTemplateScriptVO);
+                                backQuset.add(ivrLibaTemplateScriptVO);
                                 redisCache.setCacheObject(userId + "backQuset", backQuset, 120, TimeUnit.MINUTES);
                                 //灏嗛潤榛樼疆涓�0
                                 redisCache.setCacheObject(userId + "noVoice", 0, 120, TimeUnit.MINUTES);
                                 //鑾峰彇涓嬩竴棰�
-                                Long nextQuestion = ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getNextQuestion();
-                                if (nextQuestion > ivrTaskTemplateScriptVOList.size()) {
+                                Integer nextQuestion = ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getNextQuestion();
+                                if (nextQuestion > ivrLibaTemplateScriptVOList.size()) {
                                     //濡傛灉涓嬩竴棰樻病鏈変簡锛屽氨缁撴潫浜�
-                                    QuestionMessage returnQues = new QuestionMessage();
-                                    List<IvrTaskTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
+                                    QuestionMessagePhone returnQues = new QuestionMessagePhone();
+                                    List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
                                     returnQues.setContent(JSON.toJSONString(backQusetRedis));
-                                    returnQues.setJsy(ivrTaskTemplateVO1.getRevisitAfter());
+                                    returnQues.setJsy(ivrLibaTemplateVO1.getRevisitAfter());
                                     redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
                                     redisCache.setCacheObject(userId + "isOver", 1, 120, TimeUnit.MINUTES);
                                 } else {
-                                    for (IvrTaskTemplateScriptVO script : ivrTaskTemplateScriptVOList) {
-                                        if (script.getTargetid() == nextQuestion) {
-                                            QuestionMessage returnQues = new QuestionMessage();
+                                    for (IvrLibaTemplateScriptVO script : ivrLibaTemplateScriptVOList) {
+                                        if (script.getSort() == nextQuestion) {
+                                            QuestionMessagePhone returnQues = new QuestionMessagePhone();
                                             returnQues.setNowQuestion(script);
                                             redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
                                             break;
@@ -286,100 +353,113 @@
                                 }
                                 break;
                             } else {
+                                log.error("鏃犲尮閰�");
                                 //娌℃湁鍖归厤鍒�
                                 Integer mateNum = redisCache.getCacheObject(userId + "mateNum");
 
                                 //鏃犲尮閰嶆鏁板幓鍒ゆ柇鏄惁鍒版渶澶ц闂鏁帮紝骞朵笖鎵�鏈夌殑閫夐」閮藉尮閰嶅畬浜�
-                                if (mateNum == ivrTaskTemplateVO1.getMateNum().intValue() && j == ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().size() - 1) {
+                                if (mateNum == ivrLibaTemplateVO1.getMateNum().intValue() && j == ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().size() - 1) {
                                     //闂簡鏈�澶ц闂鏁板悗锛岃繕鏄病鏈夊尮閰嶄笂,灏嗙粨鏋滀繚瀛樺埌鏂扮殑鏁扮粍
-                                    List<IvrTaskTemplateScriptVO> backQuset = redisCache.getCacheObject(userId + "backQuset");
-                                    backQuset.add(ivrTaskTemplateScriptVO);
+                                    List<IvrLibaTemplateScriptVO> backQuset = redisCache.getCacheObject(userId + "backQuset");
+                                    backQuset.add(ivrLibaTemplateScriptVO);
                                     redisCache.setCacheObject(userId + "backQuset", backQuset, 120, TimeUnit.MINUTES);
 
                                     //濡傛灉涓嬩竴棰樹负绌�.鍒欐柊鐨勬暟鎹繑鍥�,骞跺姞涓婃劅璋㈣
-                                    if (ivrTaskTemplateScriptVO.getTargetid() < ivrTaskTemplateScriptVOList.size()) {
-                                        QuestionMessage returnQues = getNextQuestion(ivrTaskTemplateScriptVOList, ivrTaskTemplateScriptVO);
+                                    if (ivrLibaTemplateScriptVO.getSort() == 0) {
+                                        QuestionMessagePhone returnQues = getNextQuestion(ivrLibaTemplateScriptVOList, ivrLibaTemplateScriptVO);
                                         redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
                                         redisCache.setCacheObject(userId + "mateNum", 0, 120, TimeUnit.MINUTES);
                                     } else {
-                                        QuestionMessage returnQues2 = new QuestionMessage();
+                                        QuestionMessagePhone returnQues2 = new QuestionMessagePhone();
 //                                    returnQues2.setCode(null);
-                                        List<IvrTaskTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
+                                        List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
                                         returnQues2.setQuestionList(backQusetRedis);
-                                        returnQues2.setJsy("鎰熻阿鎮ㄧ殑鑰愬績鍥炵瓟锛屽啀瑙�");
+                                        returnQues2.setJsy(ivrLibaTemplateVO1.getRevisitAfter());
                                         redisCache.setCacheObject(userId + "returnQues", returnQues2, 120, TimeUnit.MINUTES);
                                         redisCache.setCacheObject(userId + "isOver", 1, 120, TimeUnit.MINUTES);
                                         break;
                                     }
-                                } else if (mateNum < ivrTaskTemplateVO1.getMateNum().intValue() && j == ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().size() - 1) {
+                                } else if (mateNum < ivrLibaTemplateVO1.getMateNum().intValue() && j == ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().size() - 1) {
                                     //娌℃湁闂埌瑙勫畾娆℃暟
                                     mateNum = mateNum + 1;
                                     redisCache.setCacheObject(userId + "mateNum", mateNum, 120, TimeUnit.MINUTES);
-                                }
-                            }
-                        }
-                    }
-                    //閫夐」鍖归厤瀹屾垚鍚庯紝闇�瑕佸啀鍘婚�氳繃搴撳啀杩涜鍖归厤涓�娆�
-                    String extemplateID = ivrTaskTemplateVO1.getSubmoduleID();
-                    String[] split = extemplateID.split(",");
-                    List<String> list = Arrays.asList(split);
-                    List<Long> list1 = new ArrayList<>();
-                    if (StringUtils.isNotEmpty(extemplateID)) {
-                        for (String str : list) {
-                            list1.add(Long.valueOf(str));
-                        }
-                        List<IvrLibaExtemplatescript> ivrLibaExtemplatescripts = ivrLibaExtemplatescriptMapper.queryIvrLibaExtemplatescriptList(list1);
-                        for (IvrLibaExtemplatescript ivrLibaExtemplatescript : ivrLibaExtemplatescripts) {
-                            Matcher matcher = null;
-                            if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex())) {
-                                Pattern pattern = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex());
-                                matcher = pattern.matcher(questionMessage.getContent());
-                            }
-
-                            Matcher matcher2 = null;
-                            if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2())) {
-                                Pattern pattern2 = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex2());
-                                matcher2 = pattern2.matcher(questionMessage.getContent());
-                            }
-                            log.info("++++++++++++++++++++++++++閫氱敤搴撴槸鍚︿负绌猴細selfRegex : {} , selfRegex2 : {}", ivrLibaExtemplatescript.getSelfRegex(), ivrLibaExtemplatescript.getSelfRegex2());
-
-                            if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches() && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex()) && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches()) {
-                                QuestionMessage returnQues = redisCache.getCacheObject(userId + "returnQues");
-                                IvrTaskTemplateScriptVO nowQuestion = returnQues.getNowQuestion();
-                                nowQuestion.setSubmoduleText(ivrLibaExtemplatescript.getSwitchText());
-                                nowQuestion.setSubmoduleVoice(ivrLibaExtemplatescript.getSwitchWav());
-                                redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
-                                if (ivrLibaExtemplatescript.getIsEnd() == 1) {
-                                    //灏嗛棶棰樼疆绌�
-                                    IvrTaskTemplateScriptVO nowQuestion1 = returnQues.getNowQuestion();
-                                    nowQuestion1.setScriptContent(null);
-                                    nowQuestion1.setScriptVoice(null);
-                                    returnQues.setNowQuestion(nowQuestion1);
+                                    //缁欓棶棰樺姞涓婃棤鍖归厤璇濇湳
+                                    QuestionMessagePhone returnQues = redisCache.getCacheObject(userId + "returnQues");
+                                    IvrLibaTemplateScriptVO nowQuestion = returnQues.getNowQuestion();
+                                    boolean contains = false;
+                                    if (StringUtils.isNotEmpty(nowQuestion.getNoMatchText()))
+                                        contains = nowQuestion.getScriptContent().contains(nowQuestion.getNoMatchText());
+                                    if (!contains) {
+                                        String scriptContent = nowQuestion.getNoMatchText() + "," + nowQuestion.getScriptContent();
+                                        nowQuestion.setScriptContent(scriptContent);
+                                    }
+                                    returnQues.setNowQuestion(nowQuestion);
                                     redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
-
-                                    redisCache.setCacheObject(userId + "isOver", 1, 120, TimeUnit.MINUTES);
                                 }
                             }
-                            break;
                         }
                     }
+//                    //閫夐」鍖归厤瀹屾垚鍚庯紝闇�瑕佸啀鍘婚�氳繃搴撳啀杩涜鍖归厤涓�娆�
+//                    String extemplateID = ivrLibaTemplateVO1.getSubmoduleID();
+//                    String[] split = extemplateID.split(",");
+//                    List<String> list = Arrays.asList(split);
+//                    List<Long> list1 = new ArrayList<>();
+//                    if (StringUtils.isNotEmpty(extemplateID)) {
+//                        for (String str : list) {
+//                            list1.add(Long.valueOf(str));
+//                        }
+//                        List<IvrLibaExtemplatescript> ivrLibaExtemplatescripts = ivrLibaExtemplatescriptMapper.queryIvrLibaExtemplatescriptList(list1);
+//                        for (IvrLibaExtemplatescript ivrLibaExtemplatescript : ivrLibaExtemplatescripts) {
+//                            Matcher matcher = null;
+//                            if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex())) {
+//                                Pattern pattern = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex());
+//                                matcher = pattern.matcher(questionMessage.getContent());
+//                            }
+//
+//                            Matcher matcher2 = null;
+//                            if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2())) {
+//                                Pattern pattern2 = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex2());
+//                                matcher2 = pattern2.matcher(questionMessage.getContent());
+//                            }
+//                            log.info("++++++++++++++++++++++++++閫氱敤搴撴槸鍚︿负绌猴細selfRegex : {} , selfRegex2 : {}", ivrLibaExtemplatescript.getSelfRegex(), ivrLibaExtemplatescript.getSelfRegex2());
+//
+//                            if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches() && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex()) && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches()) {
+//                                QuestionMessagePhone returnQues = redisCache.getCacheObject(userId + "returnQues");
+//                                IvrLibaTemplateScriptVO nowQuestion = returnQues.getNowQuestion();
+//                                nowQuestion.setSubmoduleText(ivrLibaExtemplatescript.getSwitchText());
+//                                nowQuestion.setSubmoduleVoice(ivrLibaExtemplatescript.getSwitchWav());
+//                                redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
+//                                if (ivrLibaExtemplatescript.getIsEnd() == 1) {
+//                                    //灏嗛棶棰樼疆绌�
+//                                    IvrLibaTemplateScriptVO nowQuestion1 = returnQues.getNowQuestion();
+//                                    nowQuestion1.setScriptContent(null);
+//                                    nowQuestion1.setScriptVoice(null);
+//                                    returnQues.setNowQuestion(nowQuestion1);
+//                                    redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
+//
+//                                    redisCache.setCacheObject(userId + "isOver", 1, 120, TimeUnit.MINUTES);
+//                                }
+//                            }
+//                            break;
+//                        }
+//                    }
                 }
 
             }
-            QuestionMessage returnQues = redisCache.getCacheObject(userId + "returnQues");
-            List<IvrTaskTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
+            QuestionMessagePhone returnQues = redisCache.getCacheObject(userId + "returnQues");
+            List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
             returnQues.setQuestionList(backQusetRedis);
             session.sendMessage(new TextMessage(JSON.toJSONString(returnQues).getBytes(StandardCharsets.UTF_8)));
 
             //鏁翠釜娴佺▼鏄惁缁撴潫锛屽皢redis涓殑璇serId涓嬬殑鏁版嵁鍒犻櫎;
             Integer isOver = redisCache.getCacheObject(userId + "isOver");
             if (isOver == 1) {
-                redisCache.deleteObject(userId + "ivrTaskTemplateScriptVOList");
+                redisCache.deleteObject(userId + "ivrLibaTemplateScriptVOList");
                 redisCache.deleteObject(userId + "backQuset");
                 redisCache.deleteObject(userId + "noVoice");
                 redisCache.deleteObject(userId + "returnQues");
                 redisCache.deleteObject(userId + "isOver");
-                redisCache.deleteObject(userId + "ivrTaskTemplateVO1");
+                redisCache.deleteObject(userId + "ivrLibaTemplateVO1");
                 try {
                     //鏂紑閾炬帴
                     afterConnectionClosed(session, null);
@@ -391,12 +471,12 @@
     }
 
     //鑾峰彇涓嬩竴棰橈紙杩欎釜鏂规硶涓嶉�傚悎閫夐」涓殑nextQuestion锛�
-    private QuestionMessage getNextQuestion(List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOList, IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO) {
-        QuestionMessage returnQues = new QuestionMessage();
-        for (int j = 0; j < ivrTaskTemplateScriptVOList.size(); j++) {
-            if (ivrTaskTemplateScriptVOList.get(j).getTargetid() == ivrTaskTemplateScriptVO.getTargetid() + 1) {
+    private QuestionMessagePhone getNextQuestion(List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList, IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO) {
+        QuestionMessagePhone returnQues = new QuestionMessagePhone();
+        for (int j = 0; j < ivrLibaTemplateScriptVOList.size(); j++) {
+            if (ivrLibaTemplateScriptVOList.get(j).getSort() == ivrLibaTemplateScriptVO.getSort() + 1) {
                 // 瀵硅鏉emplateScriptVO杩涜澶勭悊
-                returnQues.setNowQuestion(ivrTaskTemplateScriptVOList.get(j));
+                returnQues.setNowQuestion(ivrLibaTemplateScriptVOList.get(j));
             }
         }
         return returnQues;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
index 952d587..064bc94 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -155,7 +155,7 @@
     }
 
     /**
-     * 鐢佃瘽鍥炶皟浠诲姟(闆ㄧ划)
+     *  鐢佃瘽鍥炶皟浠诲姟(闆ㄧ划)
      */
     @ApiOperation("鐢佃瘽鍥炶皟浠诲姟(闆ㄧ划)")
     @PostMapping("/taskPull")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java
index e117cc3..8cba22d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java
@@ -11,6 +11,7 @@
 import com.ruoyi.common.utils.RSAPublicKeyExample;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.smartor.common.SendService;
 import com.smartor.domain.*;
 import com.smartor.service.IServiceSubtaskService;
 import com.smartor.service.IServiceTaskService;
@@ -24,6 +25,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
+import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -54,6 +56,19 @@
     @Autowired
     private RSAPublicKeyExample rsaPublicKeyExample;
 
+    @Autowired
+    private SendService sendService;
+
+    @PostMapping("/test")
+    public TableDataInfo test(@RequestBody SendMagParam sendMagParam) {
+        try {
+            Boolean aBoolean = sendService.sendMsg(sendMagParam);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
     /**
      * 鏌ヨ璇煶浠诲姟鍒楄〃
      */
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/test/MQTest.java b/ruoyi-admin/src/main/java/com/ruoyi/web/test/MQTest.java
index 5ab7fc7..1f15e17 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/test/MQTest.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/test/MQTest.java
@@ -40,6 +40,16 @@
 
     }
 
+    @Test
+    public void bb(){
+
+        for (int j = 0; j < 5; j++) {
+            if(j==5-1){
+                System.out.println("11111111111111111111");
+            }
+        }
+    }
+
     public void aa(MultipartFile file) throws IOException {
         System.out.println("寮�濮婣a锛�" + System.currentTimeMillis());
         String filePath = "D:\\test\\Ab";
diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml
index c588888..94ed064 100644
--- a/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/ruoyi-admin/src/main/resources/application-druid.yml
@@ -11,7 +11,6 @@
         #        username: root
         #        password: 123456
         #        鍏徃
-        ##        url: jdbc:mysql://450scrp46939.vicp.fun:59876/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         url: jdbc:mysql://192.168.2.9:3308/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         #        url: jdbc:mysql://192.168.191.181:3308/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         username: smartor
@@ -137,12 +136,12 @@
 qrpath: D:\qrcode
 
 #鍏徃鍐呭閾捐姹侷P鍜岀鍙e彿
-req_path: 8095
-localIP: 192.168.2.10
+#req_path: 8095
+#localIP: 192.168.2.10
 
-##鏂板崕鍖婚櫌澶栭摼璇锋眰IP鍜岀鍙e彿
-#req_path: 8093
-#localIP: 218.108.11.22
+#鏂板崕鍖婚櫌澶栭摼璇锋眰IP鍜岀鍙e彿
+req_path: 8093
+localIP: 218.108.11.22
 
 #鑾峰彇鎮h�呬俊鎭疷RL(鍗庡崜鎻愪緵)
 hosp_info_url: http://esb-core-rest.wowjoy.cn/esb/exchange
@@ -151,6 +150,17 @@
 uploadSwitch: 1
 
 #  鎸囧畾asr鍥炶皟鐨剈rl璺緞
-ASRCallBackPath: http://192.168.2.10:8095/smartor/serviceSubtask/phoneCallBackYQ
+ASRCallBackPath: http://192.168.2.13:8095/smartor/serviceSubtask/phoneCallBackYQ
 #鎸傛柇IP
 hangup: http://192.168.2.10:8091/hangup
+
+
+#鏂板崕鐭俊
+#璇锋眰鍦板潃
+xhsmsPath: http://183.134.75.159:7862/sms
+#甯愬彿
+xhsmsAccount: 911124
+#鎺ュ彛瀵嗙爜
+xhsmsPwd: zW5eXe
+#铏氭嫙鎺ュ叆鐮�
+xhsmsjrm: 1069055
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
index 02e8c7f..ff69715 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -339,23 +339,28 @@
                     String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key);
 
                     for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
-                        String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
-                        SendMagParam sendMagParam = new SendMagParam();
-                        sendMagParam.setType("4");
-                        sendMagParam.setPhone(serviceSubtask.getPhone());
-                        sendMagParam.setUrl(ip + ":" + req_path + "/followvisit/particty?param1=" + taskId + "&param2=" + patid + "&param5=false");
-                        Boolean aBoolean = sendService.sendMsg(sendMagParam);
+                        try {
 
-                        //浠诲姟鍙戦�佽褰�
-                        ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
-                        serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
-                        serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
-                        serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
-                        serviceSubtaskRecord.setPreachform("4");
-                        serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
-                        serviceSubtaskRecord.setResult(aBoolean == true ? "鎴愬姛" : "澶辫触");
-                        serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
 
+                            String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
+                            SendMagParam sendMagParam = new SendMagParam();
+                            sendMagParam.setType("4");
+                            sendMagParam.setPhone(serviceSubtask.getPhone());
+                            sendMagParam.setUrl(ip + ":" + req_path + "/followvisit/particty?param1=" + taskId + "&param2=" + patid + "&param5=false");
+                            Boolean aBoolean = sendService.sendMsg(sendMagParam);
+
+                            //浠诲姟鍙戦�佽褰�
+                            ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
+                            serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
+                            serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
+                            serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
+                            serviceSubtaskRecord.setPreachform("4");
+                            serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
+                            serviceSubtaskRecord.setResult(aBoolean == true ? "鎴愬姛" : "澶辫触");
+                            serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
+                        } catch (Exception e) {
+                            continue;
+                        }
                     }
                 } else if (descByCode.equals("鍏紬鍙�")) {
                     log.error("鍏紬鍙疯繘鏉ヤ簡鍚楋紵{}", descByCode);
diff --git a/smartor/src/main/java/com/smartor/common/SendService.java b/smartor/src/main/java/com/smartor/common/SendService.java
index 4a40d8b..ee78315 100644
--- a/smartor/src/main/java/com/smartor/common/SendService.java
+++ b/smartor/src/main/java/com/smartor/common/SendService.java
@@ -4,7 +4,9 @@
 import com.alibaba.fastjson2.JSONObject;
 import com.aliyun.dysmsapi20170525.models.SendSmsResponseBody;
 import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.gson.Gson;
 import com.ruoyi.common.utils.http.HttpUtils;
 import com.smartor.domain.*;
 import com.smartor.mapper.PatWildcardMapper;
@@ -13,10 +15,16 @@
 import com.smartor.service.WeChatService;
 import com.smartor.service.impl.BaseSmsaccountServiceImpl;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
+import java.io.UnsupportedEncodingException;
 import java.lang.reflect.Field;
+import java.net.URLEncoder;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -43,7 +51,19 @@
     @Autowired
     ISmsParamService iSmsParamService;
 
-    public Boolean sendMsg(SendMagParam sendMagParam) {
+    @Value("${xhsmsPath}")
+    private String xhsmsPath;
+    // 甯愬彿
+    @Value("${xhsmsAccount}")
+    private String xhsmsAccount;
+    //  鎺ュ彛瀵嗙爜
+    @Value("${xhsmsPwd}")
+    private String xhsmsPwd;
+    // 铏氭嫙鎺ュ叆鐮�
+    @Value("${xhsmsjrm}")
+    private String xhsmsjrm;
+
+    public Boolean sendMsg(SendMagParam sendMagParam) throws UnsupportedEncodingException, JsonProcessingException {
         // 1,澶氬獟浣� 2,绾歌川  3,鐢佃瘽  4,鐭俊  5.寰俊鍏紬鍙� 6.寰俊灏忕▼搴� 7.鏀粯瀹�  8.鏅鸿兘灏忕▼搴�  9.閽夐拤
         switch (sendMagParam.getType()) {
             case ("1"):
@@ -54,11 +74,37 @@
 
             case ("4"):
                 //鐭俊
-                int i = iSmsParamService.sendSmsInfo(sendMagParam.getUrl(), sendMagParam.getPhone());
-                if (i == 1) {
-                    return true;
+                Map<String, String> map2 = new HashMap<>();
+                map2.put("action", "send");
+                map2.put("account", xhsmsAccount);
+                map2.put("password", xhsmsPwd);
+                map2.put("mobile", sendMagParam.getPhone());
+                map2.put("content", sendMagParam.getContent());
+                map2.put("extno", xhsmsjrm);
+                map2.put("rt", "json");
+                StringBuilder encodedParams = new StringBuilder();
+
+                for (Map.Entry<String, String> entry : map2.entrySet()) {
+                    if (encodedParams.length() > 0) {
+                        encodedParams.append("&");
+                    }
+                    // 瀵归敭鍜屽�艰繘琛孶RL缂栫爜
+                    String encodedKey = URLEncoder.encode(entry.getKey(), "UTF-8");
+                    String encodedValue = URLEncoder.encode(entry.getValue(), "UTF-8");
+                    encodedParams.append(encodedKey).append("=").append(encodedValue);
                 }
 
+                String result = HttpUtils.sendPost(xhsmsPath, encodedParams.toString());
+                ObjectMapper objectMapper2 = new ObjectMapper();
+                Map<String, Object> map3 = objectMapper2.readValue(result, new TypeReference<Map<String, Object>>() {
+                });
+                if (ObjectUtils.isNotEmpty(map3)) {
+                    String status = map3.get("status").toString();
+                    if (status.equals("0")) {
+                        return true;
+                    }
+                }
+                log.error("鐭俊鍙戦�佸け璐ap:{},  杩斿洖鐨勪俊鎭负:{}", map2, result);
                 return false;
             case ("5"):
                 //鍏紬鍙�
diff --git a/smartor/src/main/java/com/smartor/domain/CommonTaskcallMQ.java b/smartor/src/main/java/com/smartor/domain/CommonTaskcallMQ.java
index 246375c..79faeb9 100644
--- a/smartor/src/main/java/com/smartor/domain/CommonTaskcallMQ.java
+++ b/smartor/src/main/java/com/smartor/domain/CommonTaskcallMQ.java
@@ -35,8 +35,8 @@
     /**
      * 浠诲姟鍙戦�佹柟寮忥細鈥滅數璇濓紝鐭俊锛屽叕浼楀彿锛岄摼鎺�...鈥濅互閫楀彿鍒嗛殧
      */
-    @Excel(name = "浠诲姟鍙戦�佹柟寮忥細鐢佃瘽锛岀煭淇★紝鍏紬鍙凤紝閾炬帴...")
-    @ApiModelProperty(value = "鍔″彂閫佹柟寮忥細鐢佃瘽锛岀煭淇★紝鍏紬鍙�...   浠ラ�楀彿鍒嗛殧")
+    @Excel(name = "浠诲姟鍙戦�佹柟寮忥細1,浜哄伐 2,绾歌川  3,鐢佃瘽  4,鐭俊  5.寰俊鍏紬鍙� 6.寰俊灏忕▼搴� 7.鏀粯瀹濆皬绋嬪簭  8.鏅鸿兘鏈哄櫒浜�  9.閽夐拤")
+    @ApiModelProperty(value = "鍔″彂閫佹柟寮忥細1,浜哄伐 2,绾歌川  3,鐢佃瘽  4,鐭俊  5.寰俊鍏紬鍙� 6.寰俊灏忕▼搴� 7.鏀粯瀹濆皬绋嬪簭  8.鏅鸿兘鏈哄櫒浜�  9.閽夐拤")
     private String preachform;
 
 
diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScriptVO.java b/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScriptVO.java
index dc7f6ff..7b4e983 100644
--- a/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScriptVO.java
+++ b/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScriptVO.java
@@ -70,6 +70,13 @@
     private String scriptContent;
 
     /**
+     * 璇濇湳璇煶
+     */
+    @Excel(name = "璇濇湳璇煶")
+    @ApiModelProperty(value = "璇濇湳璇煶")
+    private String scriptVoice;
+
+    /**
      * 璇濇湳鎻忚堪
      */
     @Excel(name = "璇濇湳鎻忚堪")
@@ -318,12 +325,16 @@
     @ApiModelProperty(value = "鏄惁蹇呭~锛堢粰浜哄伐鐢ㄧ殑锛孉I涓嶇敤閬靛畧锛�")
     private String isMust;
 
-//    /**
-//     * 闂缁撴灉锛堢粰鈥滃�肩被鍨嬧�濇槸鏂囨湰鎴栬�呮暟鍊肩敤鐨勶級
-//     */
-//    @Excel(name = "闂缁撴灉锛堢粰鈥滃�肩被鍨嬧�濇槸鏂囨湰鎴栬�呮暟鍊肩敤鐨勶級")
-//    @ApiModelProperty(value = "闂缁撴灉锛堢粰鈥滃�肩被鍨嬧�濇槸鏂囨湰鎴栬�呮暟鍊肩敤鐨勶級")
-//    private String questionResult;
+    /**
+     * 闂缁撴灉锛堢粰鈥滃�肩被鍨嬧�濇槸鏂囨湰鎴栬�呮暟鍊肩敤鐨勶級
+     */
+    @Excel(name = "闂缁撴灉锛堢粰鈥滃�肩被鍨嬧�濇槸鏂囨湰鎴栬�呮暟鍊肩敤鐨勶級")
+    @ApiModelProperty(value = "闂缁撴灉锛堢粰鈥滃�肩被鍨嬧�濇槸鏂囨湰鎴栬�呮暟鍊肩敤鐨勶級")
+    private String questionResult;
+
+    @Excel(name = "閫氱敤搴撳尮閰嶇殑鍊�")
+    @ApiModelProperty(value = "閫氱敤搴撳尮閰嶇殑鍊�")
+    private String commonValue = "";
 
     /**
      * 璇濇湳閫夐」
diff --git a/smartor/src/main/java/com/smartor/domain/PatTaskRelevance.java b/smartor/src/main/java/com/smartor/domain/PatTaskRelevance.java
index 06a8c93..f7d2351 100644
--- a/smartor/src/main/java/com/smartor/domain/PatTaskRelevance.java
+++ b/smartor/src/main/java/com/smartor/domain/PatTaskRelevance.java
@@ -167,6 +167,13 @@
     private String phone;
 
     /**
+     * 鎵嬫満鍙�
+     */
+    @Excel(name = "鎵嬫満code")
+    @ApiModelProperty("鎵嬫満code")
+    private String telcode;
+
+    /**
      * 鐥呭巻鍙�
      */
     @Excel(name = "鐥呭巻鍙�")
diff --git a/smartor/src/main/java/com/smartor/domain/PhoneCallBackYQVO.java b/smartor/src/main/java/com/smartor/domain/PhoneCallBackYQVO.java
index 25643aa..f295227 100644
--- a/smartor/src/main/java/com/smartor/domain/PhoneCallBackYQVO.java
+++ b/smartor/src/main/java/com/smartor/domain/PhoneCallBackYQVO.java
@@ -41,4 +41,7 @@
     @ApiModelProperty(value = "涓嶅悓鎿嶄綔绫诲瀷鎵�瀵瑰簲鐨勫弬鏁板��")
     private String value;
 
+    @ApiModelProperty(value = "閫氳繃搴撳尮閰嶇殑缁撴灉")
+    private String commonValue = "";
+
 }
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java
index 68b6d59..0f2f966 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java
@@ -387,7 +387,7 @@
      */
     @Excel(name = " 瀹f暀褰㈠紡 :鏂囨湰銆佸浘鐗囥�佽闊炽�佽棰戙�佹贩鍚�")
     @ApiModelProperty(value = "瀹f暀褰㈠紡 : 1,鏂囨湰銆�2,鍥剧墖銆�3,璇煶銆�4,瑙嗛銆�5,娣峰悎")
-    private String serviceform;
+    private String preachform;
 
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/SocketMessage.java b/smartor/src/main/java/com/smartor/domain/SocketMessage.java
index 1a0435d..4cf8f29 100644
--- a/smartor/src/main/java/com/smartor/domain/SocketMessage.java
+++ b/smartor/src/main/java/com/smartor/domain/SocketMessage.java
@@ -11,7 +11,7 @@
     //妯℃澘ID
     private Long templateId;
     //闂淇℃伅
-    private QuestionMessage questionMessage;
+    private QuestionMessagePhone questionMessage;
 
     //鐢ㄦ埛ID锛堟帴鏀舵斁锛�
     private String userId;
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 04dcde3..c55649a 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -327,7 +327,7 @@
                     serviceSubtask.setSendname(patTaskRelevance.getName());
                     serviceSubtask.setAge(patTaskRelevance.getAge());
                     serviceSubtask.setSfzh(patTaskRelevance.getIdcardno());
-                    serviceSubtask.setPhone(patTaskRelevance.getPhone());
+                    serviceSubtask.setPhone(patTaskRelevance.getTelcode());
                     serviceSubtask.setAddr(patTaskRelevance.getAddr());
                     serviceSubtask.setPatid(patTaskRelevance.getPatid());
                     serviceSubtask.setCreateTime(DateUtils.getNowDate());
@@ -646,6 +646,27 @@
      */
     @Override
     public PhoneCallBackYQVO phoneCallBackYQ(PhoneCallReqYQVO phoneCallReqYQVO) {
+        //鍒ゆ柇鏄惁鎸傛満
+        String hangupState = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "- hangup");
+        if (StringUtils.isNotEmpty(hangupState) && hangup.equals("1")) {
+            return new PhoneCallBackYQVO();
+        }
+        if ("AsrCallback".equals(phoneCallReqYQVO.getOperate()) && phoneCallReqYQVO.getEnd_time() != null && phoneCallReqYQVO.getEnd_time() != -1) {
+            //澶勭悊鎸傛柇
+            if (phoneCallReqYQVO.getAsrtext().contains("鎷ㄥ彨鐨勭敤鎴锋蹇�")) {
+                ServiceSubtask serviceSubtask2 = new ServiceSubtask();
+                serviceSubtask2.setRemark("鐢佃瘽鍙戦�佹垚鍔燂紙鎮h�呮寕鏂級");
+                serviceSubtask2.setSenduuid(phoneCallReqYQVO.getUuid());
+                serviceSubtask2.setId(Long.valueOf(phoneCallReqYQVO.getTaskid()));
+                serviceSubtaskMapper.updateServiceSubtask(serviceSubtask2);
+                Map<String, String> req = new HashMap<>();
+                req.put("uuid", phoneCallReqYQVO.getUuid());
+                req.put("caller", phoneCallReqYQVO.getPhone());
+                HttpUtil.postJsonRequest(hangup, new Gson().toJson(req));
+                redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- hangup", "1", 2, TimeUnit.MINUTES);
+                return new PhoneCallBackYQVO();
+            }
+        }
         //瀹氫箟涓�涓垎鏁扮殑鍙橀噺
         Boolean aBoolean1 = redisCache.hasKey(phoneCallReqYQVO.getUuid() + "SCORE");
         if (!aBoolean1) redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", 0.0, 120, TimeUnit.MINUTES);
@@ -669,7 +690,8 @@
                     Map<String, String> req = new HashMap<>();
                     req.put("uuid", phoneCallReqYQVO.getUuid());
                     req.put("caller", phoneCallReqYQVO.getPhone());
-                    HttpUtils.sendPost(hangup, new Gson().toJson(req));
+//                    HttpUtils.sendPost(hangup, new Gson().toJson(req));
+                    HttpUtil.postJsonRequest(hangup, new Gson().toJson(req));
                     //鍒犻櫎缁撴潫璇殑鎮e瓨
                     redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "- jsy");
                 } else {
@@ -723,10 +745,11 @@
                 return phoneCallBackYQVO;
             } else {
                 log.error("闈欓粯娆℃暟杈惧埌,鎸傛帀鐢佃瘽锛歿}", num);
+                ServiceTask serviceTask1 = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
                 //澶т笌绛変簬鐨勮瘽,鐩存帴鎸傛柇
                 phoneCallBackYQVO.setType("text");
                 phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
-                phoneCallBackYQVO.setValue(ivrTaskTemplate.getRevisitAfter());
+                phoneCallBackYQVO.setValue(serviceTask1.getJsy());
                 //灏嗙粨鏋滃啓鍒癲etail涓�
                 ServiceSubTaskDetailReq serviceSubTaskDetailReq = new ServiceSubTaskDetailReq();
                 List<ServiceSubtaskDetail> serviceSubtaskDetailList = new ArrayList<>();
@@ -746,29 +769,65 @@
                 redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE");
                 redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop");
                 //鍦╮edis涓繚瀛樹竴涓嬬粨鏉熻锛屽湪璋冪敤鎸傜數璇濈殑鏂规硶鏃跺垹闄�
-                redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", ivrTaskTemplate.getRevisitAfter(), 120, TimeUnit.MINUTES);
+                ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
+                redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES);
             }
             return phoneCallBackYQVO;
         } else if ("AsrCallback".equals(phoneCallReqYQVO.getOperate()) && phoneCallReqYQVO.getEnd_time() != null && phoneCallReqYQVO.getEnd_time() != -1) {
-            //鎾姤绗竴棰�
-            Integer integer = redisCache.getCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim() + "-firstSort");
-//            if(integer==0){
-//                //integer==0,琛ㄧず寮�鍦虹櫧鍒氭挱鎶ュ畬锛岄渶瑕佸仠椤夸竴涓嬶紝绛夋偅鑰呰璇�
-//                redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim() + "-firstSort", 1, 120, TimeUnit.MINUTES);
-//                return phoneCallBackYQVO;
-//            }
-            if (ivrTaskTemplateScriptVO.getSort() == 1 && integer == 1) {
-                phoneCallBackYQVO.setType("text");
-                phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
-                String scriptContent = ivrTaskTemplateScriptVO.getScriptContent();
-                phoneCallBackYQVO.setValue(getObject(serviceSubtask, scriptContent));
-                redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim() + "-firstSort", 2, 120, TimeUnit.MINUTES);
-                return phoneCallBackYQVO;
+
+            // 鍏堝閫氳瘽杩涜閫氱敤搴撳尮閰嶄竴娆�
+            String extemplateID = ivrTaskTemplate.getSubmoduleID();
+            if (StringUtils.isNotEmpty(extemplateID)) {
+                String[] split = extemplateID.split(",");
+                List<String> list = Arrays.asList(split);
+                List<Long> list1 = new ArrayList<>();
+                for (String str : list) {
+                    list1.add(Long.valueOf(str));
+                }
+                List<IvrLibaExtemplatescript> ivrLibaExtemplatescripts = ivrLibaExtemplatescriptMapper.queryIvrLibaExtemplatescriptList(list1);
+                IvrLibaExtemplatescript les = null;
+                for (IvrLibaExtemplatescript ivrLibaExtemplatescript : ivrLibaExtemplatescripts) {
+                    Matcher matcher = null;
+                    if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex())) {
+                        Pattern pattern = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex());
+                        matcher = pattern.matcher(phoneCallReqYQVO.getAsrtext());
+                    }
+
+                    Matcher matcher2 = null;
+                    if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2())) {
+                        Pattern pattern2 = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex2());
+                        matcher2 = pattern2.matcher(phoneCallReqYQVO.getAsrtext());
+                    }
+                    if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches() && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex()) && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches()) {
+                        //灏嗛�氱敤搴撳尮閰嶇殑锛屾斁鍒拌繑鍥炲�间腑
+//                        phoneCallBackYQVO.setValue(phoneCallBackYQVO.getValue() + ivrLibaExtemplatescript.getSwitchText());
+                        phoneCallBackYQVO.setCommonValue(ivrLibaExtemplatescript.getSwitchText());
+                        les = ivrLibaExtemplatescript;
+                    }
+                    break;
+                }
+                if (ObjectUtils.isNotEmpty(les)) {
+                    //瀵瑰尮閰嶇殑缁撴灉澶勭悊涓�涓�(鐪嬬湅鏄笉鏄渶瑕佹寕鏈�)
+                    if (les.getIsEnd() != null && les.getIsEnd() == 1) {
+                        //鍙互鎸傛満浜�
+                        redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone());
+                        redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                        redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop");
+                        redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "noVoice");
+                        //鍦╮edis涓繚瀛樹竴涓嬬粨鏉熻锛屽湪璋冪敤鎸傜數璇濈殑鏂规硶鏃跺垹闄�
+                        ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
+                        redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES);
+                        phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask.getJsy());
+                        return phoneCallBackYQVO;
+                    }
+                }
             }
 
             //濡傛灉鏄枃鏈洖璋�
             //鏍规嵁闂ID鑾峰彇璇ラ棶棰樼殑绫诲瀷
             if (ivrTaskTemplateScriptVO.getScriptType().equals("1")) {
+                //鐢ㄦ潵鏍囪锛屾槸鍚︽湁鍖归厤涓婄殑
+                Integer flag = 0;
                 //鏄�夋嫨棰�
                 for (int j = 0; j < ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().size(); j++) {
                     log.error("phoneCallReqYQVO.getAsrtext()鐨勫�间负锛歿}", phoneCallReqYQVO.getAsrtext());
@@ -800,6 +859,7 @@
                         serviceSubtaskDetailList.add(getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate));
                         serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList);
                         saveQuestionAnswerPhone(serviceSubTaskDetailReq);
+                        flag = 1;
                         //灏嗗綋鍓嶅墠鐨勬挱鎶ョ姸鎬佸垹闄わ紝缁欎笅涓�棰樿浣�
                         redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop");
 //                        //鑾峰彇涓嬩竴棰�
@@ -818,7 +878,7 @@
                                 Object obj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
                                 Double score = (obj == null ? new Double(0.00) : new Double(((Double) obj).doubleValue()));
                                 score = BigDecimal.valueOf(score).add(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getScore()).doubleValue();
-                                redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score,120,TimeUnit.MINUTES);
+                                redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score, 120, TimeUnit.MINUTES);
                             }
 
                             for (IvrTaskTemplateScript script : ivrTaskTemplateScripts) {
@@ -827,38 +887,47 @@
                                     phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
                                     String scriptContent = script.getScriptContent();
                                     log.error("涓嬩竴棰橀棶棰橈細{}", scriptContent);
-                                    phoneCallBackYQVO.setValue(getObject(serviceSubtask, scriptContent));
+                                    phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + getObject(serviceSubtask, scriptContent));
                                     //灏嗚鎮h�呯殑Redis涓殑棰樼洰ID锛岃繘琛屼慨鏀�
                                     redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim(), script.getId().toString(), 120, TimeUnit.MINUTES);
                                     //鍒犻櫎鏃犲搷搴�
                                     redisCache.deleteObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid());
                                 }
                             }
-                        } else if (ivrTaskTemplateScriptVO.getBranchFlag().equals("0")) {
-                            if (ivrTaskTemplateScriptVO.getNextScriptno() == null || ivrTaskTemplateScriptVO.getNextScriptno() == 0) {
-                                phoneCallBackYQVO.setType("text");
-                                phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
-                                //鏇存柊涓�涓嬪垎鏁�
-                                double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
-                                serviceSubtask.setScore(BigDecimal.valueOf(score));
-                                serviceSubtask.setFinishtime(new Date());
-                                serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
-                                //璁剧疆缁撴潫璇�
-                                phoneCallBackYQVO.setValue(ivrTaskTemplate.getRevisitAfter());
-                                Long id = serviceSubtask.getId();
-                                Map<String, String> map = delRedisValue(null, id.toString());
-                                redisCache.setCacheObject(map.get("cacheName"), map.get("val"));
-                                redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone());
-                                redisCache.deleteObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid());
-                                redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE");
-                                redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop");
-                                //鍦╮edis涓繚瀛樹竴涓嬬粨鏉熻锛屽湪璋冪敤鎸傜數璇濈殑鏂规硶鏃跺垹闄�
-                                redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", ivrTaskTemplate.getRevisitAfter(), 120, TimeUnit.MINUTES);
+                        } else if (ivrTaskTemplateScriptVO.getNextScriptno() == null || ivrTaskTemplateScriptVO.getNextScriptno() == 0) {
+                            ServiceTask serviceTask1 = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
+                            phoneCallBackYQVO.setType("text");
+                            phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
+                            //鏇存柊涓�涓嬪垎鏁�
+                            double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                            serviceSubtask.setScore(BigDecimal.valueOf(score));
+                            serviceSubtask.setFinishtime(new Date());
+                            serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+                            //璁剧疆缁撴潫璇�
+                            phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask1.getJsy());
+                            Long id = serviceSubtask.getId();
+                            Map<String, String> map = delRedisValue(null, id.toString());
+                            redisCache.setCacheObject(map.get("cacheName"), map.get("val"));
+                            redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone());
+                            redisCache.deleteObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid());
+                            redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                            redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop");
+                            //鍦╮edis涓繚瀛樹竴涓嬬粨鏉熻锛屽湪璋冪敤鎸傜數璇濈殑鏂规硶鏃跺垹闄�
+                            ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
+                            redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES);
 //                                return phoneCallBackYQVO;
-                            }
+
                         }
                     } else {
-                        continue;
+                        //flag=0,璇存槑娌� 鍖归厤涓婏紝涔熻鎶婃偅鑰呰鐨勮瘽璁板綍涓嬫潵
+                        if (j == ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().size() - 1 && flag == 0) {
+                            ServiceSubTaskDetailReq serviceSubTaskDetailReq = new ServiceSubTaskDetailReq();
+                            List<ServiceSubtaskDetail> serviceSubtaskDetailList = new ArrayList<>();
+                            serviceSubtaskDetailList.add(getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate));
+                            serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList);
+                            saveQuestionAnswerPhone(serviceSubTaskDetailReq);
+                            continue;
+                        }
                     }
                 }
                 //閮芥病鏈夊尮閰嶅埌
@@ -868,11 +937,12 @@
                         //濡傛灉count宸茬粡澶т簬鎴栫瓑浜庢病鏈夊尮閰嶆鏁�
                         if (ivrTaskTemplateScriptVO.getBranchFlag().equals("0") && ivrTaskTemplateScriptVO.getNextScriptno() == null || ivrTaskTemplateScriptVO.getBranchFlag().equals("0") && ivrTaskTemplateScriptVO.getNextScriptno() == 0 || ivrTaskTemplateScriptVO.getBranchFlag().equals("1") && ivrTaskTemplateScriptVO.getNextScriptno() == null || ivrTaskTemplateScriptVO.getBranchFlag().equals("1") && ivrTaskTemplateScriptVO.getNextScriptno() == 0) {
                             //濡傛灉鏄渶鍚庝竴閬撻锛屾垨鑰呮病鏈変笅涓�棰樹簡锛屽氨鐩存帴鎸傛満
+                            ServiceTask serviceTask1 = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
                             phoneCallBackYQVO.setType("text");
                             phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
                             if (StringUtils.isNotEmpty(phoneCallBackYQVO.getValue()))
-                                phoneCallBackYQVO.setValue(phoneCallBackYQVO.getValue() + ivrTaskTemplate.getRevisitAfter());
-                            else phoneCallBackYQVO.setValue(ivrTaskTemplate.getRevisitAfter());
+                                phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + phoneCallBackYQVO.getValue() + serviceTask1.getJsy());
+                            else phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask1.getJsy());
 
                             //鏇存柊涓�涓嬪垎鏁�
                             double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
@@ -881,7 +951,8 @@
                             serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
 
                             //鍦╮edis涓繚瀛樹竴涓嬬粨鏉熻锛屽湪璋冪敤鎸傜數璇濈殑鏂规硶鏃跺垹闄�
-                            redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", ivrTaskTemplate.getRevisitAfter(), 120, TimeUnit.MINUTES);
+                            ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
+                            redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES);
                             //鍘籸edis涓紝鎶婅瀛愪换鍔D鍒犻櫎
                             Long id = serviceSubtask.getId();
                             Map<String, String> map = delRedisValue(null, id.toString());
@@ -896,7 +967,7 @@
                                     phoneCallBackYQVO.setType("text");
                                     phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
                                     String scriptContent = script.getScriptContent();
-                                    phoneCallBackYQVO.setValue(getObject(serviceSubtask, scriptContent));
+                                    phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + getObject(serviceSubtask, scriptContent));
                                     //灏嗚鎮h�呯殑Redis涓殑棰樼洰ID锛岃繘琛屼慨鏀�
                                     redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim(), script.getId().toString(), 120, TimeUnit.MINUTES);
 
@@ -904,7 +975,7 @@
                                     double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
                                     score = BigDecimal.valueOf(score).add(script.getScore()).doubleValue();
 
-                                    redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score,120, TimeUnit.MINUTES);
+                                    redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score, 120, TimeUnit.MINUTES);
                                 }
                             }
                         }
@@ -926,7 +997,7 @@
                 serviceSubtaskDetailList.add(getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate));
                 serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList);
                 saveQuestionAnswerPhone(serviceSubTaskDetailReq);
-//                String xh = idSort.split("-")[1];
+                //    String xh = idSort.split("-")[1];
 
                 //濡傛灉閫夐」鍒嗘敮涓�1鐨勮瘽锛屽垯闇�瑕佹牴鎹棶棰樹笂鐨刵extScriptno杩涜璺宠浆
                 //闂瓟棰樻病鏈夎烦杞�
@@ -936,23 +1007,23 @@
                             phoneCallBackYQVO.setType("text");
                             phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
                             String scriptContent = ivrTaskTemplateScript1.getScriptContent();
-                            phoneCallBackYQVO.setValue(getObject(serviceSubtask, scriptContent));
+                            phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + getObject(serviceSubtask, scriptContent));
                             redisCache.deleteObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid());
                             redisCache.setCacheObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone(), ivrTaskTemplateScript1.getId().toString());
 
                             //鏇存柊涓�涓嬪垎鏁�
                             double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
                             score = BigDecimal.valueOf(score).add(ivrTaskTemplateScriptVO.getScore()).doubleValue();
-                            redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score,120, TimeUnit.MINUTES);
+                            redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score, 120, TimeUnit.MINUTES);
 
-//                            return phoneCallBackYQVO;
                         }
                     }
                 } else if (ivrTaskTemplateScriptVO.getNextScriptno() == null || ivrTaskTemplateScriptVO.getNextScriptno() == 0) {
                     //娌℃湁涓嬩竴棰樹簡锛屽氨缁撴潫浜�
+                    ServiceTask serviceTask1 = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
                     phoneCallBackYQVO.setType("text");
                     phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
-                    phoneCallBackYQVO.setValue(ivrTaskTemplate.getRevisitAfter());
+                    phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask1.getJsy());
 
                     //鏇存柊涓�涓嬪垎鏁�
                     double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
@@ -965,42 +1036,13 @@
                     Map<String, String> map = delRedisValue(null, id.toString());
                     redisCache.setCacheObject(map.get("cacheName"), map.get("val"));
                     //鍦╮edis涓繚瀛樹竴涓嬬粨鏉熻锛屽湪璋冪敤鎸傜數璇濈殑鏂规硶鏃跺垹闄�
-                    redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", ivrTaskTemplate.getRevisitAfter(), 120, TimeUnit.MINUTES);
+                    redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask1.getJsy(), 120, TimeUnit.MINUTES);
                     redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone());
                     redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE");
                 }
-
-                //閫夐」鍖归厤瀹屾垚鍚庯紝闇�瑕佸啀鍘婚�氳繃搴撳啀杩涜鍖归厤涓�娆�
-                String extemplateID = ivrTaskTemplate.getSubmoduleID();
-                if (StringUtils.isNotEmpty(extemplateID)) {
-                    String[] split = extemplateID.split(",");
-                    List<String> list = Arrays.asList(split);
-                    List<Long> list1 = new ArrayList<>();
-                    for (String str : list) {
-                        list1.add(Long.valueOf(str));
-                    }
-                    List<IvrLibaExtemplatescript> ivrLibaExtemplatescripts = ivrLibaExtemplatescriptMapper.queryIvrLibaExtemplatescriptList(list1);
-                    for (IvrLibaExtemplatescript ivrLibaExtemplatescript : ivrLibaExtemplatescripts) {
-                        Matcher matcher = null;
-                        if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex())) {
-                            Pattern pattern = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex());
-                            matcher = pattern.matcher(phoneCallReqYQVO.getAsrtext());
-                        }
-
-                        Matcher matcher2 = null;
-                        if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2())) {
-                            Pattern pattern2 = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex2());
-                            matcher2 = pattern2.matcher(phoneCallReqYQVO.getAsrtext());
-                        }
-                        if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches() && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex()) && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches()) {
-                            //灏嗛�氱敤搴撳尮閰嶇殑锛屾斁鍒拌繑鍥炲�间腑
-                            phoneCallBackYQVO.setValue(phoneCallBackYQVO.getValue() + ivrLibaExtemplatescript.getSwitchText());
-                        }
-                        break;
-                    }
-                }
             }
         }
+        log.error("phoneCallBackYQVO鐨勮繑鍥炲�兼槸锛歿}", phoneCallBackYQVO);
         return phoneCallBackYQVO;
     }
 
@@ -1129,7 +1171,9 @@
                 String subId = split[i].trim().replace(",", "");
 
                 ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(Long.valueOf(subId));
+                ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
                 IvrTaskTemplate ivrTaskTemplate = ivrTaskTemplateService.selectIvrTaskTemplateByID(serviceSubtask.getTemplateid());
+                if (ObjectUtils.isEmpty(ivrTaskTemplate)) continue;
                 //閫氳繃浠诲姟妯℃澘涓殑"绗竴娆¢棶棰樼紪鍙�"鑾峰彇绗竴涓棶棰�;
                 IvrTaskTemplateScript ivrTaskTemplateScript = null;
                 IvrTaskTemplateScript ivrTaskTemplateScript1 = new IvrTaskTemplateScript();
@@ -1145,9 +1189,9 @@
                 //濡傛灉ivrTaskTemplateScript涓虹┖锛屼篃灏辨病鏈夊線涓嬫墽琛岀殑蹇呰浜�
                 if (ObjectUtils.isEmpty(ivrTaskTemplateScript)) return null;
                 //鑾峰彇閫氶厤绗﹀尮閰嶈繃鍚庣殑闂
-//                String scrContent = getObject(serviceSubtask, ivrTaskTemplateScript.getScriptContent());
-//                String kcb = ivrTaskTemplate.getRevisitBefore() + "," + scrContent;
-                String kcb = ivrTaskTemplate.getRevisitBefore();
+                String scrContent = getObject(serviceSubtask, ivrTaskTemplateScript.getScriptContent());
+                String kcb = serviceTask.getKcb() + "," + scrContent;
+//                String kcb = ivrTaskTemplate.getRevisitBefore();
 
                 //灏佽杩斿洖鏁版嵁
                 //taskId = 瀛愪换鍔D + 闂ID +闂搴忓彿
@@ -1159,7 +1203,7 @@
                 pullTaskVO.setDisplayNo("85129866");
                 pullTaskVOList.add(pullTaskVO);
                 redisCache.setCacheObject(subId.trim() + "-" + serviceSubtask.getPhone().trim(), ivrTaskTemplateScript.getId().toString());
-                redisCache.setCacheObject(subId.trim() + "-" + serviceSubtask.getPhone().trim() + "-firstSort", 1, 120, TimeUnit.MINUTES);
+//                redisCache.setCacheObject(subId.trim() + "-" + serviceSubtask.getPhone().trim() + "-firstSort", 1, 120, TimeUnit.MINUTES);
             } else {
                 if (StringUtils.isEmpty(newValue0)) {
                     newValue0 = "," + split[i].trim() + ",";

--
Gitblit v1.9.3