From 78c9129e9045fafe4c2f7333b3dcafde6b20b96d Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 05 十二月 2024 15:20:51 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |   80 ++++++++++++++++++++++++++--------------
 1 files changed, 52 insertions(+), 28 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
index 9294e4f..e6c1691 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -369,13 +369,15 @@
                     //灏嗕换鍔′俊鎭柊澧炲埌闅忚鏈嶅姟琛ㄤ腑
                     serviceSubtask.setSendname(patTaskRelevance.getName());
                     serviceSubtask.setAge(patTaskRelevance.getAge());
+                    serviceSubtask.setLibtemplateid(Long.valueOf(serviceTask.getLibtemplateid()));
                     serviceSubtask.setSfzh(patTaskRelevance.getIdcardno());
                     serviceSubtask.setPhone(patTaskRelevance.getTelcode());
                     serviceSubtask.setAddr(patTaskRelevance.getAddr());
                     serviceSubtask.setPatid(patTaskRelevance.getPatid());
                     serviceSubtask.setCreateTime(DateUtils.getNowDate());
                     serviceSubtask.setSendstate(1L);
-                    if (serviceTaskVO.getLongTask() == 1) serviceSubtask.setSendstate(2L);
+                    if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1)
+                        serviceSubtask.setSendstate(2L);
                     serviceSubtask.setDeptcode(patTaskRelevance.getDeptCode());
                     serviceSubtask.setDeptname(patTaskRelevance.getDeptName());
                     serviceSubtask.setLeavehospitaldistrictcode(patTaskRelevance.getLeavehospitaldistrictcode());
@@ -389,7 +391,7 @@
                     serviceSubtask.setEndtime(patTaskRelevance.getEndtime());
                     serviceSubtask.setNurseId(patTaskRelevance.getNurseId());
                     serviceSubtask.setNurseName(patTaskRelevance.getNurseName());
-                    if (serviceTaskVO.getLongTask() == 1)
+                    if (serviceTaskVO.getLongTask() != null &&serviceTaskVO.getLongTask() == 1)
                         serviceSubtask.setLongSendTime(patTaskRelevance.getLongSendTime());
                     serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
                     integer = serviceSubtask.getId().intValue();
@@ -533,7 +535,7 @@
                     // 闂锛�  鍘昏皟鐢ㄢ�渢ts鍚堟垚鍜屾挱鏀锯�濇帴鍙�
                     String date = simpleDateFormat1.format(new Date());
                     log.info("鍘昏皟鐢╰ts鍚堟垚鍜屾挱鏀炬帴鍙�: {},uuid涓猴細{}", date, phoneCallBackVO.getUuid());
-                    phoneUtils.ttsPlayback(nowQuestion.getScriptContent(), phoneCallBackVO.getUuid());
+                    phoneUtils.ttsPlayback(nowQuestion.getIvrtext(), phoneCallBackVO.getUuid());
                 }
             } else {
                 redisCache.setCacheObject(phoneCallBackVO.getUuid() + "noVoice", noVoice + 1, 120, TimeUnit.MINUTES);
@@ -542,7 +544,7 @@
                 //闈欓粯璇濇湳  + 闂锛�  鍘昏皟鐢ㄢ�渢ts鍚堟垚鍜屾挱鏀锯�濇帴鍙�
                 String date = simpleDateFormat1.format(new Date());
                 log.info("闈欓粯璇濇湳  + 闂,鍘昏皟鐢╰ts鍚堟垚鍜屾挱鏀炬帴鍙�: {},uuid涓猴細{}", date, phoneCallBackVO.getUuid());
-                phoneUtils.ttsPlayback(slienceText + nowQuestion.getScriptContent(), phoneCallBackVO.getUuid());
+                phoneUtils.ttsPlayback(slienceText + nowQuestion.getIvrtext(), phoneCallBackVO.getUuid());
                 return;
             }
 
@@ -563,7 +565,7 @@
                     Pattern pattern2 = Pattern.compile(nowQuestion.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2());
                     matcher2 = pattern2.matcher(phoneCallBackVO.getTextResult());
                 }
-                log.error("PCB--getQuestionText闂涓猴細{},UUID锛歿}", nowQuestion.getScriptContent(), phoneCallBackVO.getUuid());
+                log.error("PCB--getQuestionText闂涓猴細{},UUID锛歿}", nowQuestion.getIvrtext(), phoneCallBackVO.getUuid());
                 if (StringUtils.isNotEmpty(nowQuestion.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() && StringUtils.isNotEmpty(nowQuestion.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches() || StringUtils.isEmpty(nowQuestion.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && StringUtils.isNotEmpty(nowQuestion.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() || StringUtils.isEmpty(nowQuestion.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && StringUtils.isNotEmpty(nowQuestion.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches()) {
                     //璇存槑鍖归厤姝g‘浜�
                     //杩欓噷搴旇鍏堝垽鏂被鍨嬶紝鍘诲啀淇敼锛岃缃甀sUserOperation鏄崟閫夐鐨勬敼娉�
@@ -577,7 +579,7 @@
                     //灏嗘偅鑰呯殑鍥炵鍐欒繘琛ㄩ噷
                     IvrTaskVisitResult serviceTaskVisitResult = DtoConversionUtils.sourceToTarget(serviceSubtask, IvrTaskVisitResult.class);
                     serviceTaskVisitResult.setId(null);
-                    serviceTaskVisitResult.setQuestion(nowQuestion.getScriptContent());
+                    serviceTaskVisitResult.setQuestion(nowQuestion.getIvrtext());
                     serviceTaskVisitResult.setPatientAnswer(phoneCallBackVO.getTextResult());
                     serviceTaskVisitResult.setCreateTime(new Date());
                     serviceTaskVisitResult.setOptionResult(nowQuestion.getIvrTaskScriptTargetoptionList().get(j).getTargetvalue());
@@ -594,7 +596,7 @@
                             questionMessage.setNowQuestion(script);
                             questionMessage.setQuestionList(IvrTaskTemplateScriptVOs);
                             redisCache.setCacheObject(phoneCallBackVO.getUuid() + "returnQues", questionMessage, 120, TimeUnit.MINUTES);
-                            phoneUtils.ttsPlayback(script.getScriptContent(), phoneCallBackVO.getUuid());
+                            phoneUtils.ttsPlayback(script.getIvrtext(), phoneCallBackVO.getUuid());
                             return;
                         } else if (nextQuestion > IvrTaskTemplateScriptVOs.size()) {
                             //娌℃湁涓嬩竴棰樹簡锛屽氨缁撴潫浜�
@@ -639,7 +641,7 @@
                         redisCache.setCacheObject(phoneCallBackVO.getUuid() + "mateNum", 0, 120, TimeUnit.MINUTES);
                         String date = simpleDateFormat1.format(new Date());
                         log.info("濡傛灉涓嬩竴棰樹负绌�.鍒欐柊鐨勬暟鎹繑鍥�,骞跺姞涓婃劅璋㈣: {},uuid涓猴細{}", date, phoneCallBackVO.getUuid());
-                        phoneUtils.ttsPlayback(nextQuestion.getScriptContent(), phoneCallBackVO.getUuid());
+                        phoneUtils.ttsPlayback(nextQuestion.getIvrtext(), phoneCallBackVO.getUuid());
                         return;
                     } else {
                         //灏卞彲浠ユ寕鏂數璇濅簡
@@ -707,13 +709,13 @@
                         //璋冪敤鈥�15銆乼ts鍚堟垚鍜屾挱鏀撅紝 tts_playback鈥濆皢缁撴灉浼犲洖
                         String date = simpleDateFormat1.format(new Date());
                         log.info("璋冪敤鈥�15銆乼ts鍚堟垚鍜屾挱鏀�------: {},uuid涓猴細{}", date, phoneCallBackVO.getUuid());
-                        phoneUtils.ttsPlayback(nowQuestion.getScriptContent() + ivrTaskTemplateScriptVO.getSubmoduleText(), phoneCallBackVO.getUuid());
+                        phoneUtils.ttsPlayback(nowQuestion.getIvrtext() + ivrTaskTemplateScriptVO.getSubmoduleText(), phoneCallBackVO.getUuid());
                     }
                     break;
                 }
                 String date = simpleDateFormat1.format(new Date());
                 log.info("鏈�鍚庣殑淇℃伅鍥炲-: {},uuid涓猴細{}", date, phoneCallBackVO.getUuid());
-                phoneUtils.ttsPlayback(nowQuestion.getScriptContent(), phoneCallBackVO.getUuid());
+                phoneUtils.ttsPlayback(nowQuestion.getIvrtext(), phoneCallBackVO.getUuid());
             }
         }
     }
@@ -749,6 +751,9 @@
                 req.put("caller", phoneCallReqYQVO.getPhone());
                 HttpUtil.postJsonRequest(hangup, new Gson().toJson(req));
                 redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- hangup", "1", 2, TimeUnit.MINUTES);
+                //鍏堟妸榛樿鐨剅ecordAccept-hungup鍒犻櫎锛屽啀鏇存柊
+                redisCache.deleteObject(phoneCallReqYQVO.getTaskid() + "recordAccept-hungup");
+                redisCache.setCacheObject(phoneCallReqYQVO.getTaskid() + "recordAccept-hungup", "1", 10, TimeUnit.MINUTES);
                 //杩欎釜鏃跺�欏氨闇�瑕佽蛋琛ュ伩鏈哄埗浜嗭紝鍏堟殏瀹氳蛋鐭俊
                 getSmsCompensate(Long.valueOf(phoneCallReqYQVO.getTaskid()));
                 return new PhoneCallBackYQVO();
@@ -781,7 +786,6 @@
                     HttpUtil.postJsonRequest(hangup, new Gson().toJson(req));
                     //鍒犻櫎缁撴潫璇殑鎮e瓨
                     redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "- jsy");
-                    redisCache.setCacheObject(phoneCallReqYQVO.getTaskid() + "recordAccept-hungup", "2", 10, TimeUnit.MINUTES);
                 } else {
                     redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop", true, 120, TimeUnit.MINUTES);
                     log.error("-------PlayEventCallbackPlaystop鐨勫�间负锛歿}", true);
@@ -827,7 +831,7 @@
                 //灏忎笌鐨勮瘽,灏辩户缁棶鎮h��
                 phoneCallBackYQVO.setType("text");
                 phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
-                String scriptContent = ivrTaskTemplateScriptVO.getScriptContent();
+                String scriptContent = ivrTaskTemplateScriptVO.getIvrtext();
                 log.error("SilentCallback鐨勯棶棰樺唴瀹箂criptContent锛歿}", scriptContent);
                 phoneCallBackYQVO.setValue(getObject(serviceSubtask, scriptContent));
                 //灏嗛潤榛樻鏁板姞1
@@ -870,7 +874,9 @@
             }
             return phoneCallBackYQVO;
         } else if ("AsrCallback".equals(phoneCallReqYQVO.getOperate()) && phoneCallReqYQVO.getEnd_time() != null && phoneCallReqYQVO.getEnd_time() != -1) {
-
+            //鍋氫竴涓爣璇嗭紝鐢ㄦ潵鍦ㄩ�氳瘽璇︽儏鎺ュ彛閲岋紝鍒ゆ柇鏄惁鏈変汉鎺ョ數璇濓紙value=2,琛ㄧず鏈変汉鎺ワ級
+            redisCache.deleteObject(phoneCallReqYQVO.getTaskid() + "recordAccept-hungup");
+            redisCache.setCacheObject(phoneCallReqYQVO.getTaskid() + "recordAccept-hungup", "2", 10, TimeUnit.MINUTES);
             // 鍏堝閫氳瘽杩涜閫氱敤搴撳尮閰嶄竴娆�
             String extemplateID = ivrTaskTemplate.getSubmoduleID();
             if (StringUtils.isNotEmpty(extemplateID)) {
@@ -1042,7 +1048,7 @@
                                 if (script.getSort() == nextQuestion.intValue()) {
                                     phoneCallBackYQVO.setType("text");
                                     phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
-                                    String scriptContent = script.getScriptContent();
+                                    String scriptContent = script.getIvrtext();
                                     log.error("涓嬩竴棰橀棶棰橈細{}", scriptContent);
                                     phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + getObject(serviceSubtask, scriptContent));
                                     //灏嗚鎮h�呯殑Redis涓殑棰樼洰ID锛岃繘琛屼慨鏀�
@@ -1147,7 +1153,7 @@
                                 if (script.getSort() == ivrTaskTemplateScriptVO.getNextScriptno().intValue()) {
                                     phoneCallBackYQVO.setType("text");
                                     phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
-                                    String scriptContent = script.getScriptContent();
+                                    String scriptContent = script.getIvrtext();
                                     phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + getObject(serviceSubtask, scriptContent));
                                     //灏嗚鎮h�呯殑Redis涓殑棰樼洰ID锛岃繘琛屼慨鏀�
                                     redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim(), script.getId().toString(), 120, TimeUnit.MINUTES);
@@ -1169,7 +1175,7 @@
                             redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid(), count + 1, 120, TimeUnit.MINUTES);
 
                         phoneCallBackYQVO.setType("text");
-                        phoneCallBackYQVO.setValue(ivrTaskTemplateScriptVO.getNoMatchText() + getObject(serviceSubtask, ivrTaskTemplateScriptVO.getScriptContent()));
+                        phoneCallBackYQVO.setValue(ivrTaskTemplateScriptVO.getNoMatchText() + getObject(serviceSubtask, ivrTaskTemplateScriptVO.getIvrtext()));
                     }
                 }
 
@@ -1199,7 +1205,7 @@
                         if (ivrTaskTemplateScriptVO.getNextScriptno().intValue() == ivrTaskTemplateScript1.getSort()) {
                             phoneCallBackYQVO.setType("text");
                             phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
-                            String scriptContent = ivrTaskTemplateScript1.getScriptContent();
+                            String scriptContent = ivrTaskTemplateScript1.getIvrtext();
                             phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + getObject(serviceSubtask, scriptContent));
                             redisCache.deleteObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid());
                             redisCache.setCacheObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone(), ivrTaskTemplateScript1.getId().toString());
@@ -1367,7 +1373,7 @@
         //鏍规嵁,鑾峰彇瀛愪换鍔$殑ID
         String[] split = subIds.split(",,");
         for (int i = 0; i < split.length; i++) {
-            if (cacheName.equals("cache-0") && i < 5 || !cacheName.equals("cache-0") && i < 1) {
+            if (cacheName.equals("cache-0") && i < split.length || !cacheName.equals("cache-0") && i < 1) {
                 PullTaskVO pullTaskVO = new PullTaskVO();
                 String subId = split[i].trim().replace(",", "");
                 ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(Long.valueOf(subId));
@@ -1389,7 +1395,7 @@
                 //濡傛灉ivrTaskTemplateScript涓虹┖锛屼篃灏辨病鏈夊線涓嬫墽琛岀殑蹇呰浜�
                 if (ObjectUtils.isEmpty(ivrTaskTemplateScript)) return null;
                 //鑾峰彇閫氶厤绗﹀尮閰嶈繃鍚庣殑闂
-                String scrContent = getObject(serviceSubtask, ivrTaskTemplateScript.getScriptContent());
+                String scrContent = getObject(serviceSubtask, ivrTaskTemplateScript.getIvrtext());
                 String kcb = serviceTask.getKcb() + "," + scrContent;
 //                String kcb = ivrTaskTemplate.getRevisitBefore();
 
@@ -1700,21 +1706,40 @@
 
     @Override
     public Integer recordAccept(PhoneCallRecordVO phoneCallRecordVO) {
-        Object cacheObject = redisCache.getCacheObject("recordAccept-hungup");
-        if (ObjectUtils.isNotEmpty(cacheObject) && String.valueOf(cacheObject).equals("2")) {
+        Object cacheObject = redisCache.getCacheObject(phoneCallRecordVO.getTaskid() + "recordAccept-hungup");
+        if (phoneCallRecordVO.getHangup_cause().equals("NO_USER_RESPONSE") || ObjectUtils.isNotEmpty(cacheObject) && String.valueOf(cacheObject).equals("1")) {
+            //鏃犱汉鎺ュ惉
+            getSmsCompensate(Long.valueOf(phoneCallRecordVO.getTaskid()));
+            redisCache.deleteObject(phoneCallRecordVO.getTaskid() + "recordAccept-hungup");
+        } else if (ObjectUtils.isNotEmpty(cacheObject) && String.valueOf(cacheObject).equals("2")) {
 //        if (phoneCallRecordVO.getAnswered() != null && phoneCallRecordVO.getAnswered() == true) {
             log.error("鏈変汉鎺ョ數璇濅簡锛屽苟涓斿畬浜�");
             //璇存槑鏈変汉鎺ヤ簡
             int startIndex = phoneCallRecordVO.getRecord_path().indexOf("voice") + "voice".length() + 1;  // 鍔�1鏄烦杩�/绗﹀彿
             int endIndex = phoneCallRecordVO.getRecord_path().lastIndexOf("/");
             String result = phoneCallRecordVO.getRecord_path().substring(startIndex, endIndex);
+            ServiceSubtask serviceSubtask = new ServiceSubtask();
+            serviceSubtask.setRemark("鐢佃瘽鎷ㄦ墦宸插畬鎴�");
+            serviceSubtask.setSendstate(6L);
+            serviceSubtask.setId(Long.valueOf(phoneCallRecordVO.getTaskid()));
+            serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
             //涓嬭浇鏂囦欢
             ftpService.downloadFolder("/" + LocalDate.now().toString(), profile + "/upload/vadio/voice/" + LocalDate.now().toString());
-        } else if (phoneCallRecordVO.getHangup_cause().equals("NO_USER_RESPONSE") || ObjectUtils.isNotEmpty(cacheObject) && !String.valueOf(cacheObject).equals("2")) {
-            //鏃犱汉鎺ュ惉
-            getSmsCompensate(Long.valueOf(phoneCallRecordVO.getTaskid()));
+            redisCache.deleteObject(phoneCallRecordVO.getTaskid() + "recordAccept-hungup");
+        } else {
+            //鎮h�呮嫆缁濋殢璁�
+            ServiceSubtask serviceSubtask = new ServiceSubtask();
+            serviceSubtask.setRemark("鐢佃瘽鎺ラ�氭垚鍔燂紝鎮h�呮嫆缁濋殢璁�");
+            serviceSubtask.setId(Long.valueOf(phoneCallRecordVO.getTaskid()));
+            serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+            int startIndex = phoneCallRecordVO.getRecord_path().indexOf("voice") + "voice".length() + 1;  // 鍔�1鏄烦杩�/绗﹀彿
+            int endIndex = phoneCallRecordVO.getRecord_path().lastIndexOf("/");
+            String result = phoneCallRecordVO.getRecord_path().substring(startIndex, endIndex);
+            //涓嬭浇鏂囦欢
+            ftpService.downloadFolder("/" + LocalDate.now().toString(), profile + "/upload/vadio/voice/" + LocalDate.now().toString());
+            redisCache.deleteObject(phoneCallRecordVO.getTaskid() + "recordAccept-hungup");
         }
-        redisCache.deleteObject("recordAccept-hungup");
+
         return 1;
     }
 
@@ -1784,7 +1809,7 @@
         serviceSubtaskDetail.setSentEnd(1L);
         serviceSubtaskDetail.setTemplateid(ivrTaskTemplate.getId().toString());
         serviceSubtaskDetail.setTemplatequestionnum(ivrTaskTemplateScriptVO.getId());
-        serviceSubtaskDetail.setQuestiontext(ivrTaskTemplateScriptVO.getScriptContent());
+        serviceSubtaskDetail.setQuestiontext(ivrTaskTemplateScriptVO.getIvrtext());
         serviceSubtaskDetail.setQuestionvoice(phoneCallReqYQVO.getRecordpath());
         serviceSubtaskDetail.setCategoryname(ivrTaskTemplateScriptVO.getScriptType());
         serviceSubtaskDetail.setTargetoptions(ivrTaskTemplateScriptVO.getTargetOptions());
@@ -1829,8 +1854,7 @@
         map.put("content", sendMagParam.getContent());
         String result = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(map));
         redisCache.setCacheObject(subTaskId + "recordAccept-hungup", "1", 10, TimeUnit.MINUTES);
-        if (StringUtils.isNotEmpty(serviceSubtask.getRemark()))
-            serviceSubtask.setRemark("鐢佃瘽鍙戦�佹嫆鎺�,鐭俊琛ュ伩鍙戦�佹垚鍔�");
+        if (StringUtils.isNotEmpty(serviceSubtask.getRemark())) serviceSubtask.setRemark("鐢佃瘽鍙戦�佹嫆鎺�,鐭俊琛ュ伩鍙戦�佹垚鍔�");
         else serviceSubtask.setRemark("鐭俊琛ュ伩鍙戦�佹垚鍔�");
         serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
     }

--
Gitblit v1.9.3