From 5389773b2d1ae86daec68b00f67c3682dc907e01 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 22 十一月 2024 14:35:48 +0800
Subject: [PATCH] 代码提交(长期任务电话完成)
---
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 222 ++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 186 insertions(+), 36 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 c55649a..aca304e 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -1,6 +1,5 @@
package com.smartor.service.impl;
-import afu.org.checkerframework.checker.oigj.qual.O;
import com.alibaba.fastjson2.JSON;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -8,26 +7,21 @@
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.*;
-import com.ruoyi.common.utils.http.HttpUtils;
+import com.smartor.common.FtpService;
import com.smartor.config.PhoneUtils;
import com.smartor.domain.*;
import com.smartor.mapper.*;
-import com.smartor.service.IIvrTaskTemplateScriptService;
-import com.smartor.service.IIvrTaskTemplateService;
-import com.smartor.service.IServiceSubtaskService;
-import com.smartor.service.IServiceTaskService;
+import com.smartor.service.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
-import java.sql.Time;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalTime;
@@ -71,8 +65,15 @@
@Autowired
private IIvrTaskTemplateService ivrTaskTemplateService;
+
+ @Autowired
+ private ISvyTaskTemplateService svyTaskTemplateService;
+
@Autowired
private IIvrTaskTemplateScriptService iIvrTaskTemplateScriptService;
+
+ @Autowired
+ private FtpService ftpService;
@Value("${pri_key}")
private String pri_key;
@@ -82,6 +83,15 @@
@Value("${hangup}")
private String hangup;
+
+ @Value("${app_key_yq}")
+ private String app_key_yq;
+
+ @Value("${ruoyi.profile}")
+ private String profile;
+
+ @Value("${voicePathPrefix}")
+ private String voicePathPrefix;
/**
@@ -154,6 +164,7 @@
patTaskRelevance.setFinishtime(serviceSubtask1.getFinishtime());
patTaskRelevance.setSfzh(serviceSubtask1.getSfzh());
patTaskRelevance.setPhone(serviceSubtask1.getPhone());
+ patTaskRelevance.setTelcode(serviceSubtask1.getPhone());
patTaskRelevance.setAddr(serviceSubtask1.getAddr());
patTaskRelevance.setDiagname(serviceSubtask1.getDiagname());
patTaskRelevance.setPatid(serviceSubtask1.getPatid());
@@ -176,6 +187,7 @@
patTaskRelevance.setAge(serviceSubtask1.getAge());
patTaskRelevance.setSfzh(serviceSubtask1.getSfzh());
patTaskRelevance.setPhone(serviceSubtask1.getPhone());
+ patTaskRelevance.setTelcode(serviceSubtask1.getPhone());
patTaskRelevance.setFinishtime(serviceSubtask1.getFinishtime());
patTaskRelevance.setAddr(serviceSubtask1.getAddr());
patTaskRelevance.setDeptName(serviceSubtask1.getDeptname());
@@ -310,7 +322,19 @@
serviceTask.setLeavehospitaldistrictcode(serviceTask.getLeavehospitaldistrictcode());
serviceTaskService.insertServiceTask(serviceTask);
if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1) {
+ //杩欓噷闇�瑕佸皢浠诲姟id涓庝换鍔℃ā鏉縄D锛屽湪浠诲姟妯℃澘涓粦瀹�
Map<String, Integer> map = new HashMap<>();
+ if (StringUtils.isNotEmpty(serviceTaskVO.getType()) && serviceTaskVO.getType().equals("1")) {
+ IvrTaskTemplate ivrTaskTemplate = new IvrTaskTemplate();
+ ivrTaskTemplate.setTaskid(serviceTask.getTaskid());
+ ivrTaskTemplate.setId(serviceTaskVO.getTemplateid());
+ ivrTaskTemplateService.updateIvrTaskTemplate(ivrTaskTemplate);
+ } else if (StringUtils.isNotEmpty(serviceTaskVO.getType()) && serviceTaskVO.getType().equals("2")) {
+ SvyTaskTemplate svyTaskTemplate = new SvyTaskTemplate();
+ svyTaskTemplate.setTaskid(serviceTask.getTaskid());
+ svyTaskTemplate.setId(serviceTaskVO.getTemplateid());
+ svyTaskTemplateService.updateSvyTaskTemplate(svyTaskTemplate);
+ }
map.put("subTaskId", null);
map.put("taskId", serviceTask.getTaskid().intValue());
return map;
@@ -332,6 +356,7 @@
serviceSubtask.setPatid(patTaskRelevance.getPatid());
serviceSubtask.setCreateTime(DateUtils.getNowDate());
serviceSubtask.setSendstate(1L);
+ if (serviceTaskVO.getLongTask() == 1) serviceSubtask.setSendstate(2L);
serviceSubtask.setDeptcode(patTaskRelevance.getDeptCode());
serviceSubtask.setDeptname(patTaskRelevance.getDeptName());
serviceSubtask.setLeavehospitaldistrictcode(patTaskRelevance.getLeavehospitaldistrictcode());
@@ -345,6 +370,8 @@
serviceSubtask.setEndtime(patTaskRelevance.getEndtime());
serviceSubtask.setNurseId(patTaskRelevance.getNurseId());
serviceSubtask.setNurseName(patTaskRelevance.getNurseName());
+ if (serviceTaskVO.getLongTask() == 1)
+ serviceSubtask.setLongSendTime(patTaskRelevance.getLongSendTime());
serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
integer = serviceSubtask.getId().intValue();
}
@@ -361,14 +388,33 @@
if (serviceTaskVO.getLibtemplateid() != null)
serviceTask.setLibtemplateid(serviceTaskVO.getLibtemplateid().toString());
serviceTask.setTemplateid(serviceTaskVO.getTemplateid());
+ serviceTask.setLongTask(serviceTaskVO.getLongTask());
serviceTaskService.updateServiceTask(serviceTask);
+ if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1) {
+ //杩欓噷闇�瑕佸皢浠诲姟id涓庝换鍔℃ā鏉縄D锛屽湪浠诲姟妯℃澘涓粦瀹�
+ Map<String, Integer> map = new HashMap<>();
+ if (StringUtils.isNotEmpty(serviceTaskVO.getType()) && serviceTaskVO.getType().equals("1")) {
+ IvrTaskTemplate ivrTaskTemplate = new IvrTaskTemplate();
+ ivrTaskTemplate.setTaskid(serviceTask.getTaskid());
+ ivrTaskTemplate.setId(serviceTaskVO.getTemplateid());
+ ivrTaskTemplateService.updateIvrTaskTemplate(ivrTaskTemplate);
+ } else if (StringUtils.isNotEmpty(serviceTaskVO.getType()) && serviceTaskVO.getType().equals("2")) {
+ SvyTaskTemplate svyTaskTemplate = new SvyTaskTemplate();
+ svyTaskTemplate.setTaskid(serviceTask.getTaskid());
+ svyTaskTemplate.setId(serviceTaskVO.getTemplateid());
+ svyTaskTemplateService.updateSvyTaskTemplate(svyTaskTemplate);
+ }
+ map.put("subTaskId", null);
+ map.put("taskId", serviceTask.getTaskid().intValue());
+ return map;
+ }
if (CollectionUtils.isNotEmpty(serviceTaskVO.getPatTaskRelevances())) {
for (PatTaskRelevance patTaskRelevance : serviceTaskVO.getPatTaskRelevances()) {
ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTaskVO, ServiceSubtask.class);
serviceSubtask.setSendname(patTaskRelevance.getName());
serviceSubtask.setAge(patTaskRelevance.getAge());
serviceSubtask.setSfzh(patTaskRelevance.getSfzh());
- serviceSubtask.setPhone(patTaskRelevance.getPhone());
+ serviceSubtask.setPhone(patTaskRelevance.getTelcode());
serviceSubtask.setAddr(patTaskRelevance.getAddr());
serviceSubtask.setPatid(patTaskRelevance.getPatid());
serviceSubtask.setOpenid(patTaskRelevance.getOpenid());
@@ -702,9 +748,12 @@
return phoneCallBackYQVO;
}
//鑾峰彇鏀鹃煶鏄惁缁撴潫
- boolean isPlayEventOver = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop");
- if (!isPlayEventOver) {
- return phoneCallBackYQVO;
+ Object isPlayEventOverObj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop");
+ if (ObjectUtils.isNotEmpty(isPlayEventOverObj)) {
+ Boolean isPlayEventOver = (Boolean) isPlayEventOverObj;
+ if (!isPlayEventOver) {
+ return phoneCallBackYQVO;
+ }
}
//閫氳繃瀛愪换鍔D鑾峰彇鍒版ā鏉夸俊鎭�
@@ -764,7 +813,7 @@
serviceSubtask.setFinishtime(new Date());
serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
Map<String, String> map = delRedisValue(null, id.toString());
- redisCache.setCacheObject(map.get("cacheName"), map.get("val"));
+ if (ObjectUtils.isNotEmpty(map)) redisCache.setCacheObject(map.get("cacheName"), map.get("val"));
redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone());
redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE");
redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop");
@@ -817,7 +866,15 @@
//鍦╮edis涓繚瀛樹竴涓嬬粨鏉熻锛屽湪璋冪敤鎸傜數璇濈殑鏂规硶鏃跺垹闄�
ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES);
- phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask.getJsy());
+ phoneCallBackYQVO.setType("text");
+ phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + les.getSwitchText());
+ //灏嗙粨鏋滃啓杩沝etail琛�
+ ServiceSubTaskDetailReq serviceSubTaskDetailReq = new ServiceSubTaskDetailReq();
+ List<ServiceSubtaskDetail> serviceSubtaskDetailList = new ArrayList<>();
+ ivrTaskTemplateScriptVO.setExtemplateText(les.getSwitchText());
+ serviceSubtaskDetailList.add(getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate));
+ serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList);
+ saveQuestionAnswerPhone(serviceSubTaskDetailReq);
return phoneCallBackYQVO;
}
}
@@ -856,9 +913,33 @@
ServiceSubTaskDetailReq serviceSubTaskDetailReq = new ServiceSubTaskDetailReq();
List<ServiceSubtaskDetail> serviceSubtaskDetailList = new ArrayList<>();
ivrTaskTemplateScriptVO.setQuestionResult(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getOptiondesc());
- serviceSubtaskDetailList.add(getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate));
+ ServiceSubtaskDetail serviceSubtaskDetail = getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate);
+ //淇敼涓�涓嬭闊宠矾寰勶紙鏀规垚鍓嶇鍙互璁块棶鐨勶紝瀛樺埌鏁版嵁搴撲腑锛�
+ if (StringUtils.isNotEmpty(serviceSubtaskDetail.getQuestionvoice())) {
+ String questionvoice = serviceSubtaskDetail.getQuestionvoice();
+ String[] split = questionvoice.split("\\\\");
+ if (split.length > 0) {
+ String lastPart = split[split.length - 1];
+ serviceSubtaskDetail.setQuestionvoice(voicePathPrefix + lastPart);
+ }
+ }
+ serviceSubtaskDetailList.add(serviceSubtaskDetail);
serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList);
saveQuestionAnswerPhone(serviceSubTaskDetailReq);
+ //鍒ゆ柇涓�涓嬶紝杩欎釜閫夐」缁撴灉鏄笉鏄繕鏈夌户缁棶涓嬪幓鐨勫繀瑕侊紝渚嬪閫夐」缁撴灉鏄埆浜轰笉鎯崇户缁洖绛旈棶棰橈紝灏辫缁撴潫鎺�
+ if (ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).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.setType("text");
+ phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask.getJsy());
+ return phoneCallBackYQVO;
+ }
+
flag = 1;
//灏嗗綋鍓嶅墠鐨勬挱鎶ョ姸鎬佸垹闄わ紝缁欎笅涓�棰樿浣�
redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop");
@@ -899,7 +980,9 @@
phoneCallBackYQVO.setType("text");
phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
//鏇存柊涓�涓嬪垎鏁�
- double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+ double score = 0.0;
+ Object scoreObj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+ if (ObjectUtils.isNotEmpty(scoreObj)) score = (double) scoreObj;
serviceSubtask.setScore(BigDecimal.valueOf(score));
serviceSubtask.setFinishtime(new Date());
serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
@@ -907,7 +990,9 @@
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"));
+ log.error("map鐨勫�间负锛歿}", map);
+ if (ObjectUtils.isNotEmpty(map))
+ 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");
@@ -923,16 +1008,30 @@
if (j == ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().size() - 1 && flag == 0) {
ServiceSubTaskDetailReq serviceSubTaskDetailReq = new ServiceSubTaskDetailReq();
List<ServiceSubtaskDetail> serviceSubtaskDetailList = new ArrayList<>();
- serviceSubtaskDetailList.add(getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate));
+ ServiceSubtaskDetail serviceSubtaskDetail = getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate);
+ //淇敼涓�涓嬭闊宠矾寰勶紙鏀规垚鍓嶇鍙互璁块棶鐨勶紝瀛樺埌鏁版嵁搴撲腑锛�
+ if (StringUtils.isNotEmpty(serviceSubtaskDetail.getQuestionvoice())) {
+ String questionvoice = serviceSubtaskDetail.getQuestionvoice();
+ String[] split = questionvoice.split("\\\\");
+ if (split.length > 0) {
+ String lastPart = split[split.length - 1];
+ serviceSubtaskDetail.setQuestionvoice(voicePathPrefix + lastPart);
+ }
+ }
+ serviceSubtaskDetailList.add(serviceSubtaskDetail);
+ //濡傛灉娌℃湁 鍖归厤涓婏紝杩欎釜蹇呴』涓簄ull
+ serviceSubtaskDetailList.get(0).setMatchedtext("");
serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList);
saveQuestionAnswerPhone(serviceSubTaskDetailReq);
- continue;
}
+ continue;
}
}
//閮芥病鏈夊尮閰嶅埌
if (StringUtils.isEmpty(phoneCallBackYQVO.getValue())) {
- Integer count = redisCache.getCacheObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid());
+ Integer count = null;
+ Object countObj = redisCache.getCacheObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid());
+ if (ObjectUtils.isNotEmpty(countObj)) count = (Integer) countObj;
if (count != null && count >= ivrTaskTemplate.getMateNum()) {
//濡傛灉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) {
@@ -945,7 +1044,9 @@
else phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask1.getJsy());
//鏇存柊涓�涓嬪垎鏁�
- double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+ Double score = null;
+ Object scoreObj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+ if (ObjectUtils.isNotEmpty(scoreObj)) score = (Double) scoreObj;
serviceSubtask.setScore(BigDecimal.valueOf(score));
serviceSubtask.setFinishtime(new Date());
serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
@@ -972,7 +1073,9 @@
redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim(), script.getId().toString(), 120, TimeUnit.MINUTES);
//鏇存柊涓�涓嬪垎鏁�
- double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+ Double score = null;
+ Object scoreObj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+ if (ObjectUtils.isNotEmpty(scoreObj)) score = (Double) scoreObj;
score = BigDecimal.valueOf(score).add(script.getScore()).doubleValue();
redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score, 120, TimeUnit.MINUTES);
@@ -994,7 +1097,17 @@
//涓嶆槸閫夋嫨棰�,鐩存帴璁板綍绛旀锛屽皢缁撴灉鍐欏埌detail涓�
ServiceSubTaskDetailReq serviceSubTaskDetailReq = new ServiceSubTaskDetailReq();
List<ServiceSubtaskDetail> serviceSubtaskDetailList = new ArrayList<>();
- serviceSubtaskDetailList.add(getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate));
+ ServiceSubtaskDetail serviceSubtaskDetail = getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate);
+ //淇敼涓�涓嬭闊宠矾寰勶紙鏀规垚鍓嶇鍙互璁块棶鐨勶紝瀛樺埌鏁版嵁搴撲腑锛�
+ if (StringUtils.isNotEmpty(serviceSubtaskDetail.getQuestionvoice())) {
+ String questionvoice = serviceSubtaskDetail.getQuestionvoice();
+ String[] split = questionvoice.split("\\\\");
+ if (split.length > 0) {
+ String lastPart = split[split.length - 1];
+ serviceSubtaskDetail.setQuestionvoice(voicePathPrefix + lastPart);
+ }
+ }
+ serviceSubtaskDetailList.add(serviceSubtaskDetail);
serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList);
saveQuestionAnswerPhone(serviceSubTaskDetailReq);
// String xh = idSort.split("-")[1];
@@ -1012,7 +1125,9 @@
redisCache.setCacheObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone(), ivrTaskTemplateScript1.getId().toString());
//鏇存柊涓�涓嬪垎鏁�
- double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+ Double score = null;
+ Object scoreObj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+ if (ObjectUtils.isNotEmpty(scoreObj)) score = (Double) scoreObj;
score = BigDecimal.valueOf(score).add(ivrTaskTemplateScriptVO.getScore()).doubleValue();
redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score, 120, TimeUnit.MINUTES);
@@ -1026,7 +1141,9 @@
phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask1.getJsy());
//鏇存柊涓�涓嬪垎鏁�
- double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+ Double score = null;
+ Object scoreObj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
+ if (ObjectUtils.isNotEmpty(scoreObj)) score = (Double) scoreObj;
serviceSubtask.setScore(BigDecimal.valueOf(score));
serviceSubtask.setFinishtime(new Date());
serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
@@ -1054,9 +1171,9 @@
scriptContent = scriptContent.replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "");
}
}
- scriptContent.replace("${name}", StringUtils.isNotEmpty(serviceSubtask.getName()) ? serviceSubtask.getName() : "");
- scriptContent.replace("${dzz}", StringUtils.isNotEmpty(serviceSubtask.getPlaceOfResidence()) ? serviceSubtask.getPlaceOfResidence() : "");
- scriptContent.replace("${phone}", StringUtils.isNotEmpty(serviceSubtask.getTelcode()) ? serviceSubtask.getTelcode() : "");
+ scriptContent = scriptContent.replace("${name}", StringUtils.isNotEmpty(serviceSubtask.getSendname()) ? serviceSubtask.getSendname() : "");
+ scriptContent = scriptContent.replace("${dzz}", StringUtils.isNotEmpty(serviceSubtask.getAddr()) ? serviceSubtask.getAddr() : "");
+ scriptContent = scriptContent.replace("${phone}", StringUtils.isNotEmpty(serviceSubtask.getTelcode()) ? serviceSubtask.getTelcode() : "");
return scriptContent;
}
@@ -1122,10 +1239,11 @@
//pullTaskVOList鐢ㄤ簬鏁版嵁杩斿洖
List<PullTaskVO> pullTaskVOList = new ArrayList<>();
String value0 = redisCache.getCacheObject("cache-0");
+ log.error("浠诲姟鎷夊彇value0鐨勫�兼槸澶氬皯锛歿}", value0);
// cache-0涓虹珛鍗冲彂璧风殑,鍏跺畠鐨勫厛鎺ㄨ繜
if (!StringUtils.isEmpty(value0)) {
pullTaskVOList = getPullTaskList(value0, "cache-0");
- //灏哻ache-0鐨勬暟鎹紝杞Щ涓嶅鍔瞔ache-00涓�
+ //灏哻ache-0鐨勬暟鎹紝杞Щ鍒癱ache-00涓�
redisCache.deleteObject("cache-00");
String cache00 = redisCache.getCacheObject("cache-00");
if (!StringUtils.isEmpty(cache00))
@@ -1159,6 +1277,7 @@
private List<PullTaskVO> getPullTaskList(String subIds, String cacheName) {
+ log.error("浠诲姟鎷夊彇subIds鐨勫�兼槸澶氬皯锛歿}", subIds);
//pullTaskVOList鐢ㄤ簬鏁版嵁杩斿洖
List<PullTaskVO> pullTaskVOList = new ArrayList<>();
//newValue0鐢ㄤ簬淇濆瓨娌℃湁澶勭悊鐨勫瓙 浠诲姟
@@ -1169,7 +1288,6 @@
if (cacheName.equals("cache-0") && i < 5 || !cacheName.equals("cache-0") && i < 1) {
PullTaskVO pullTaskVO = new PullTaskVO();
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());
@@ -1196,13 +1314,14 @@
//灏佽杩斿洖鏁版嵁
//taskId = 瀛愪换鍔D + 闂ID +闂搴忓彿
pullTaskVO.setTaskid(subId);
- pullTaskVO.setAppkey("ZurNHpaQLq6P55YS");
+ pullTaskVO.setAppkey(app_key_yq);
pullTaskVO.setSections(LocalTime.now().format(DateTimeFormatter.ofPattern("hh:mm")) + "-" + LocalTime.now().plusMinutes(1).format(DateTimeFormatter.ofPattern("hh:mm")));
pullTaskVO.setPhones(serviceSubtask.getPhone());
pullTaskVO.setPrologue(kcb);
- pullTaskVO.setDisplayNo("85129866");
+ if (cacheName.equals("cache-0")) pullTaskVO.setDisplayNo("2");
+ else pullTaskVO.setDisplayNo("2");
pullTaskVOList.add(pullTaskVO);
- redisCache.setCacheObject(subId.trim() + "-" + serviceSubtask.getPhone().trim(), ivrTaskTemplateScript.getId().toString());
+ redisCache.setCacheObject(subId.trim() + "-" + serviceSubtask.getPhone().trim(), ivrTaskTemplateScript.getId().toString(), 120, TimeUnit.MINUTES);
// redisCache.setCacheObject(subId.trim() + "-" + serviceSubtask.getPhone().trim() + "-firstSort", 1, 120, TimeUnit.MINUTES);
} else {
if (StringUtils.isEmpty(newValue0)) {
@@ -1478,10 +1597,35 @@
} else {
for (ServiceSubtaskDetail serviceSubtaskDetail : serviceSubTaskDetailReq.getServiceSubtaskDetailList()) {
serviceSubtaskDetail.setCreateTime(new Date());
- i = serviceSubtaskDetailMapper.insertServiceSubtaskDetail(serviceSubtaskDetail);
+ //鍏堟牴鎹瓙浠诲姟id,浠诲姟ID鍜岄棶棰樺簭鍙锋煡璇竴涓嬶紝璇ラ棶棰樻槸鍚﹀凡缁忔湁鍊硷紝濡傛灉鏈夊�硷紝鐩存帴淇敼锛屽鏋滀负绌猴紝鐩存帴鎻掑叆
+ ServiceSubtaskDetail ssd = new ServiceSubtaskDetail();
+ ssd.setSubId(serviceSubtaskDetail.getSubId());
+ ssd.setTaskid(serviceSubtaskDetail.getTaskid());
+ ssd.setTemplatequestionnum(serviceSubtaskDetail.getTemplatequestionnum());
+ List<ServiceSubtaskDetail> serviceSubtaskDetails = serviceSubtaskDetailMapper.selectServiceSubtaskDetailList(ssd);
+ if (CollectionUtils.isNotEmpty(serviceSubtaskDetails) && StringUtils.isNotEmpty(serviceSubtaskDetails.get(0).getMatchedtext())) {
+ serviceSubtaskDetail.setId(serviceSubtaskDetails.get(0).getId());
+ serviceSubtaskDetailMapper.updateServiceSubtaskDetail(serviceSubtaskDetail);
+ } else {
+ i = serviceSubtaskDetailMapper.insertServiceSubtaskDetail(serviceSubtaskDetail);
+ }
}
}
return i;
+ }
+
+ @Override
+ public Integer recordAccept(PhoneCallRecordVO phoneCallRecordVO) {
+ 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);
+ //涓嬭浇鏂囦欢
+ ftpService.downloadFolder("/" + LocalDate.now().toString(), profile + "/upload/vadio/voice/" + LocalDate.now().toString());
+ }
+ return 1;
}
@Override
@@ -1527,10 +1671,14 @@
return null;
}
-
private ServiceSubtaskDetail getServiceSubtaskDetail(PhoneCallReqYQVO phoneCallReqYQVO, IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO, ServiceSubtask serviceSubtask, IvrTaskTemplate ivrTaskTemplate) {
ServiceSubtaskDetail serviceSubtaskDetail = new ServiceSubtaskDetail();
serviceSubtaskDetail.setSubId(Long.valueOf(phoneCallReqYQVO.getTaskid()));
+ ServiceSubtask serviceSubtask1 = serviceSubtaskMapper.selectServiceSubtaskById(Long.valueOf(phoneCallReqYQVO.getTaskid()));
+ if (serviceSubtask1 != null) {
+ serviceSubtaskDetail.setTaskid(serviceSubtask1.getTaskid());
+ serviceSubtaskDetail.setPatid(serviceSubtask1.getPatid());
+ }
serviceSubtaskDetail.setUuid(phoneCallReqYQVO.getUuid());
serviceSubtaskDetail.setPhone(phoneCallReqYQVO.getPhone());
serviceSubtaskDetail.setOperate(serviceSubtask.getCreateBy());
@@ -1547,15 +1695,17 @@
serviceSubtaskDetail.setTemplateid(ivrTaskTemplate.getId().toString());
serviceSubtaskDetail.setTemplatequestionnum(ivrTaskTemplateScriptVO.getId());
serviceSubtaskDetail.setQuestiontext(ivrTaskTemplateScriptVO.getScriptContent());
+ serviceSubtaskDetail.setQuestionvoice(phoneCallReqYQVO.getRecordpath());
serviceSubtaskDetail.setCategoryname(ivrTaskTemplateScriptVO.getScriptType());
serviceSubtaskDetail.setTargetoptions(ivrTaskTemplateScriptVO.getTargetOptions());
+ serviceSubtaskDetail.setExtemplateText(ivrTaskTemplateScriptVO.getExtemplateText());
int i = 1;
for (IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption : ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList()) {
if (ivrTaskTemplateTargetoption.getIsUserOperation() == 1) {
serviceSubtaskDetail.setMatchedtext(ivrTaskTemplateTargetoption.getTargetvalue());
}
- serviceSubtaskDetail.setTargetvalue(StringUtils.isEmpty(serviceSubtaskDetail.getTargetvalue()) ? i + ivrTaskTemplateTargetoption.getTargetvalue() : serviceSubtaskDetail.getTargetvalue() + " " + (i + 1) + ivrTaskTemplateTargetoption.getTargetvalue());
+ serviceSubtaskDetail.setTargetvalue(StringUtils.isEmpty(serviceSubtaskDetail.getTargetvalue()) ? ivrTaskTemplateTargetoption.getTargetvalue() : serviceSubtaskDetail.getTargetvalue() + "&" + ivrTaskTemplateTargetoption.getTargetvalue());
}
serviceSubtaskDetail.setAddtime(new Date());
--
Gitblit v1.9.3