From 10aaa035f5be0312304d20f022bdb714a8f4900a Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 11 十二月 2024 22:16:23 +0800
Subject: [PATCH] 代码提交
---
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 222 +++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 197 insertions(+), 25 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 d96e13e..a34347b 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -4,10 +4,12 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
+import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.*;
import com.smartor.common.FtpService;
+import com.smartor.common.SendService;
import com.smartor.config.PhoneUtils;
import com.smartor.domain.*;
import com.smartor.mapper.*;
@@ -21,6 +23,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
@@ -73,13 +76,22 @@
private IIvrTaskTemplateScriptService iIvrTaskTemplateScriptService;
@Autowired
+ private IServiceOutPathService iServiceOutPathService;
+
+ @Autowired
private FtpService ftpService;
@Value("${pri_key}")
private String pri_key;
+ @Value("${pub_key}")
+ private String pub_key;
+
@Value("${ASRCallBackPath}")
private String ASRCallBackPath;
+
+ @Autowired
+ private SendService sendService;
@Value("${hangup}")
private String hangup;
@@ -93,6 +105,14 @@
@Value("${voicePathPrefix}")
private String voicePathPrefix;
+ @Value("${localIP}")
+ private String localIP;
+
+ @Value("${req_path}")
+ private String req_path;
+
+ @Value("${xhsmsPath}")
+ private String xhsmsPath;
/**
* 鏌ヨ鍗曚竴浠诲姟锛堥殢璁匡級
@@ -233,13 +253,18 @@
Integer yc = 0;
Integer fssb = 0;
Integer yfs = 0;
- Integer blq = 0;
+ Integer xj = 0;
+ Integer dfs = 0;
+ Integer ywc = 0;
+ Integer ywc2 = 0;
for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
if (serviceSubtask.getSendstate() == 4L) wzx = wzx + 1;
else if (serviceSubtask.getSendstate() != 4L) ysf = ysf + 1;
if (serviceSubtask.getSendstate() == 5L) fssb = fssb + 1;
if (serviceSubtask.getSendstate() == 3L) yfs = yfs + 1;
- if (serviceSubtask.getSendstate() == 1L) blq = blq + 1;
+ if (serviceSubtask.getSendstate() == 1L) xj = xj + 1;
+ if (serviceSubtask.getSendstate() == 2L) dfs = dfs + 1;
+ if (serviceSubtask.getSendstate() == 6L) ywc = ywc + 1;
if (serviceSubtask.getExcep().equals("1")) yc = yc + 1;
}
map.put("wzx", wzx);
@@ -247,8 +272,10 @@
map.put("yc", yc);
map.put("fssb", fssb);
map.put("yfs", yfs);
- map.put("blq", blq);
-
+ map.put("xj", xj);
+ map.put("dfs", dfs);
+ map.put("ywc", ywc);
+ map.put("yfs2", yfs + ywc);
return map;
}
@@ -350,13 +377,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());
@@ -370,7 +399,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();
@@ -514,7 +543,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);
@@ -523,7 +552,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;
}
@@ -544,7 +573,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鏄崟閫夐鐨勬敼娉�
@@ -558,7 +587,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());
@@ -575,7 +604,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()) {
//娌℃湁涓嬩竴棰樹簡锛屽氨缁撴潫浜�
@@ -620,7 +649,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 {
//灏卞彲浠ユ寕鏂數璇濅簡
@@ -688,13 +717,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());
}
}
}
@@ -708,12 +737,18 @@
public PhoneCallBackYQVO phoneCallBackYQ(PhoneCallReqYQVO phoneCallReqYQVO) {
//鍒ゆ柇鏄惁鎸傛満
String hangupState = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "- hangup");
- if (StringUtils.isNotEmpty(hangupState) && hangup.equals("1")) {
+ Object cacheObject1 = redisCache.getCacheObject(phoneCallReqYQVO.getTaskid() + "recordAccept-hungup");
+ if (StringUtils.isNotEmpty(hangupState) && hangup.equals("1") || ObjectUtils.isNotEmpty(cacheObject1) && String.valueOf(cacheObject1).equals("1")) {
return new PhoneCallBackYQVO();
}
if ("AsrCallback".equals(phoneCallReqYQVO.getOperate()) && phoneCallReqYQVO.getEnd_time() != null && phoneCallReqYQVO.getEnd_time() != -1) {
//澶勭悊鎸傛柇
if (phoneCallReqYQVO.getAsrtext().contains("鎷ㄥ彨鐨勭敤鎴锋蹇�")) {
+ //鍒ゆ柇 recordAccept-hungup 鏄惁鏈夊�硷紝濡傛灉鏈夛紝鍒欒鏄庝笉鐢ㄥ鐞嗕簡锛屼箣鍓嶅凡缁忓鐞嗚繃浜嗭紙recordAccept-hungup杩欎釜涓昏鏄粰鈥滈�氳瘽璁板綍鐢ㄧ殑锛屸�濓級
+ Object cacheObject = redisCache.getCacheObject(phoneCallReqYQVO.getTaskid() + "recordAccept-hungup");
+ if (ObjectUtils.isNotEmpty(cacheObject) && String.valueOf(cacheObject).equals("1")) {
+ return new PhoneCallBackYQVO();
+ }
ServiceSubtask serviceSubtask2 = new ServiceSubtask();
serviceSubtask2.setRemark("鐢佃瘽鍙戦�佹垚鍔燂紙鎮h�呮寕鏂級");
serviceSubtask2.setSenduuid(phoneCallReqYQVO.getUuid());
@@ -724,6 +759,11 @@
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();
}
}
@@ -799,7 +839,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
@@ -842,7 +882,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)) {
@@ -1014,7 +1056,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锛岃繘琛屼慨鏀�
@@ -1119,7 +1161,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);
@@ -1141,7 +1183,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()));
}
}
@@ -1171,7 +1213,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());
@@ -1339,7 +1381,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));
@@ -1361,7 +1403,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();
@@ -1672,15 +1714,40 @@
@Override
public Integer recordAccept(PhoneCallRecordVO phoneCallRecordVO) {
- if (phoneCallRecordVO.getAnswered() != null && phoneCallRecordVO.getAnswered() == true) {
+ 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());
+ 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");
}
+
return 1;
}
@@ -1714,6 +1781,80 @@
result2 = result;
}
return result2;
+ }
+
+ /**
+ * 鑾峰彇闅忚缁熻姣斾緥
+ *
+ * @param serviceSubtaskCountReq
+ * @return
+ */
+ @Override
+ public List<ServiceSubtaskStatistic> getSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq) {
+ log.error("getSfStatistics鐨勫叆鍙備负锛歿}", serviceSubtaskCountReq);
+ List<ServiceSubtaskStatistic> serviceSubtaskStatistics = new ArrayList<>();
+ Map<String, List<ServiceSubtask>> collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(ServiceSubtask::getLeavehospitaldistrictname));
+ for (List<ServiceSubtask> serviceSubtaskList : collect.values()) {
+ if (CollectionUtils.isEmpty(serviceSubtaskList)) {
+ continue;
+ }
+ ServiceSubtaskStatistic statistic = getStatistic(serviceSubtaskList);
+ if (ObjectUtils.isNotEmpty(statistic)) {
+ serviceSubtaskStatistics.add(statistic);
+ }
+ }
+ return serviceSubtaskStatistics;
+ }
+
+ private ServiceSubtaskStatistic getStatistic(List<ServiceSubtask> serviceSubtaskList) {
+ ServiceSubtaskStatistic serviceSubtaskStatistic = new ServiceSubtaskStatistic();
+ serviceSubtaskStatistic.setLeavehospitaldistrictname(serviceSubtaskList.get(0).getLeavehospitaldistrictname());
+ serviceSubtaskStatistic.setLeavehospitaldistrictcode(serviceSubtaskList.get(0).getLeavehospitaldistrictcode());
+ serviceSubtaskStatistic.setServiceCount(serviceSubtaskList.size());
+ for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
+ //涓嶉殢璁挎暟閲�
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 4) {
+ serviceSubtaskStatistic.setBzxCount(serviceSubtaskStatistic.getBzxCount() + 1L);
+ }
+ //搴旈殢璁挎暟閲�
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
+ serviceSubtaskStatistic.setYsfCount(serviceSubtaskStatistic.getYsfCount() + 1L);
+ }
+ //鍙戦�佸け璐ユ暟閲�
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 5) {
+ serviceSubtaskStatistic.setFssbCount(serviceSubtaskStatistic.getFssbCount() + 1L);
+ }
+ //寰呭彂閫佹暟閲�
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 2) {
+ serviceSubtaskStatistic.setDfsCount(serviceSubtaskStatistic.getDfsCount() + 1L);
+ }
+ //宸插彂閫佹暟閲�
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 3) {
+ serviceSubtaskStatistic.setYfsCount(serviceSubtaskStatistic.getYfsCount() + 1L);
+ }
+ //宸插畬鎴愭暟閲�
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 6) {
+ //宸插彂閫侊紝鍖呭惈宸插畬鎴�
+ serviceSubtaskStatistic.setYfsCount(serviceSubtaskStatistic.getYfsCount() + 1L);
+ serviceSubtaskStatistic.setYwcCount(serviceSubtaskStatistic.getYwcCount() + 1L);
+ }
+
+ if (StringUtils.isNotEmpty(serviceSubtask.getExcep()) && serviceSubtask.getExcep().equals("1")) {
+ //寮傚父鏍囪瘑
+ serviceSubtaskStatistic.setYczs(serviceSubtaskStatistic.getYczs() + 1L);
+
+ }
+
+ }
+ //闅忚瀹屾垚鐜�=宸插彂閫�/闅忚鏁�
+ if (serviceSubtaskStatistic.getYfsCount() == 0 || CollectionUtils.isEmpty(serviceSubtaskList)) {
+ serviceSubtaskStatistic.setSfwcl("0");
+ } else {
+ BigDecimal multiply = BigDecimal.valueOf(serviceSubtaskStatistic.getYfsCount()).divide(BigDecimal.valueOf(serviceSubtaskList.size()), 2, BigDecimal.ROUND_HALF_UP);
+ serviceSubtaskStatistic.setSfwcl(multiply.toString());
+ }
+
+ return serviceSubtaskStatistic;
}
private IvrTaskTemplateScriptVO getNextQuestion(List<IvrTaskTemplateScriptVO> IvrTaskTemplateScriptVOList, IvrTaskTemplateScriptVO IvrTaskTemplateScriptVO) {
@@ -1750,7 +1891,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());
@@ -1772,4 +1913,35 @@
return serviceSubtaskDetail;
}
+ private void getSmsCompensate(Long subTaskId) {
+ ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(subTaskId);
+ RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
+ String taskId = rsaPublicKeyExample.encryptedData(serviceSubtask.getTaskid().toString(), pub_key);
+ String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
+ ServiceOutPath serviceOutPath = new ServiceOutPath();
+ serviceOutPath.setParam1(taskId);
+ serviceOutPath.setParam2(patid);
+ serviceOutPath.setCreateTime(new Date());
+ iServiceOutPathService.insertServiceOutPath(serviceOutPath);
+ //杞垚16杩涘埗
+ String format = String.format("%03X", serviceOutPath.getId());
+ serviceOutPath.setRadix(format);
+ serviceOutPath.setUpdateTime(new Date());
+ iServiceOutPathService.updateServiceOutPath(serviceOutPath);
+ SendMagParam sendMagParam = new SendMagParam();
+ sendMagParam.setUrl(localIP + ":" + req_path + "/sf?p=" + format);
+ sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌闅忚璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�");
+ Map<String, String> map = new HashMap<>();
+ map.put("phone", serviceSubtask.getPhone());
+ 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("鐢佃瘽鍙戦�佹嫆鎺�,鐭俊琛ュ伩鍙戦�佹垚鍔�");
+ else serviceSubtask.setRemark("鐭俊琛ュ伩鍙戦�佹垚鍔�");
+ //璁板綍涓�涓嬭ˉ鍋挎柟寮�
+ if (StringUtils.isNotEmpty(serviceSubtask.getPreachform())) {
+ serviceSubtask.setPreachform(serviceSubtask.getPreachform() + ",1");
+ }
+ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+ }
}
--
Gitblit v1.9.3