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 + "¶m2=" + patid + "¶m3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "¶m5=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 + "¶m2=" + patid + "¶m5=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 + "¶m2=" + patid + "¶m5=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