From dbbb114c25b2406b6d1fd52019d2f2228ffcacd0 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 27 十一月 2024 18:04:16 +0800
Subject: [PATCH] 代码提交
---
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 66 ++++++++++++
ruoyi-admin/src/main/resources/application-druid.yml | 10 +
ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java | 8
smartor/src/main/java/com/smartor/domain/ServiceSubTaskCacheReq.java | 6 +
smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java | 20 ++-
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java | 4
smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml | 6 +
smartor/src/main/java/com/smartor/domain/ServiceSubTaskAnswerReq.java | 4
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java | 3
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java | 153 ++++++++++++++++++++++++++++--
10 files changed, 245 insertions(+), 35 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 30ddbb9..ddaa6f2 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
@@ -241,8 +241,8 @@
serviceSubtaskRecord.setPreachform("3");
serviceSubtaskRecord.setResult("fail");
serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
- serviceSubtaskRecord.setRemark("鐢佃瘽鍙戦�佸け璐�");
- log.error("鐢佃瘽鍙戦�佸け璐ワ細{}", exception.getMessage());
+ serviceSubtaskRecord.setRemark("闃熷垪浠诲姟鐢佃瘽鍙戦�佸け璐�");
+ log.error("闃熷垪浠诲姟鐢佃瘽鍙戦�佸け璐ワ細{}", exception.getMessage());
lssubIds.add(serviceSubtask.getId());
serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
continue;
@@ -250,7 +250,7 @@
//鍦ㄥ瓙浠诲姟琛ㄩ噷璁板綍涓�涓�
String uuid = UUID.randomUUID().toString();
serviceSubtask.setResult("success");
- serviceSubtask.setRemark("鐢佃瘽鍙戦�佹垚鍔�");
+ serviceSubtask.setRemark("闃熷垪浠诲姟鐢佃瘽鍙戦�佹垚鍔�");
serviceSubtask.setGuid(uuid);
serviceSubtask.setSendstate(3L);
serviceSubtask.setFinishtime(new Date());
@@ -264,7 +264,7 @@
serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
serviceSubtaskRecord.setPreachform("3");
serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
- serviceSubtaskRecord.setRemark("鐢佃瘽鍙戦�佹垚鍔�");
+ serviceSubtaskRecord.setRemark("闃熷垪浠诲姟鐢佃瘽鍙戦�佹垚鍔�");
serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
}
if (CollectionUtils.isEmpty(lssubIds)) {
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 8cba22d..2a3f0ad 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
@@ -194,7 +194,7 @@
public AjaxResult getScriptInfoByCondition(@RequestBody ServiceTaskScriptQues serviceTaskScriptQues) {
Long tid = null;
Long pid = null;
- log.info("getScriptInfoByCondition鍏ュ弬涓猴細{}", serviceTaskScriptQues);
+ log.error("getScriptInfoByCondition鍏ュ弬涓猴細{}", serviceTaskScriptQues);
try {
tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceTaskScriptQues.getParam1(), pri_key));
pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceTaskScriptQues.getParam2(), pri_key));
@@ -202,7 +202,7 @@
log.error("getScriptInfoByCondition鎶ラ敊浜嗭細{}", e.getMessage());
}
- log.info("tid鍜宲id鐨勫�间负锛歿},{}", tid, pid);
+ log.error("tid鍜宲id鐨勫�间负锛歿},{}", tid, pid);
return success(serviceTaskService.getScriptInfoByCondition(tid, pid, true));
}
diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml
index fbc19da..e3166a7 100644
--- a/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/ruoyi-admin/src/main/resources/application-druid.yml
@@ -143,7 +143,7 @@
#鍏徃鍐呭閾捐姹侷P鍜岀鍙e彿
#req_path: 8095
-#localIP: 192.168.2.10
+#localIP: 192.168.2.13
#鏂板崕鍖婚櫌澶栭摼璇锋眰IP鍜岀鍙e彿
req_path: 8093
@@ -169,7 +169,8 @@
#fs鎵�浣跨敤鐨勯樋閲岀殑app_key(鏂板崕)
app_key_yq: ZurNHpaQLq6P55YS
-
+#鏈� 鍦� 鐭俊璇锋眰鍦板潃(杩欎釜鏈嶅姟鏄垜浠嚜宸卞啓鐨�)
+#xhsmsPath: http://192.168.2.13:8092/sendSms
#鏂板崕鐭俊璇锋眰鍦板潃(杩欎釜鏈嶅姟鏄垜浠嚜宸卞啓鐨�)
xhsmsPath: http://192.16.4.220:8092/sendSms
#甯愬彿
@@ -179,6 +180,11 @@
#铏氭嫙鎺ュ叆鐮�
xhsmsjrm: 1069055
+##鏈湴FTP杩炴帴
+#FTP_SERVER: "192.168.2.13"
+#FTP_USERNAME: voice
+#FTP_PASSWORD: xh@2023
+
#鏂板崕FTP杩炴帴
FTP_SERVER: "192.16.4.220"
FTP_USERNAME: voice
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubTaskAnswerReq.java b/smartor/src/main/java/com/smartor/domain/ServiceSubTaskAnswerReq.java
index 4bbe534..9a49938 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubTaskAnswerReq.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubTaskAnswerReq.java
@@ -25,8 +25,8 @@
@ApiModelProperty(value = "寮傚父鏍囪瘑")
private String excep;
-// @ApiModelProperty(value = "璇曞嵎绫诲瀷:1 闅忚 2 闂嵎")
-// private Integer type;
+ @ApiModelProperty(value = "璇曞嵎绫诲瀷:1 闅忚 2 闂嵎")
+ private Integer type;
@ApiModelProperty(value = "闂缁撴灉璇︽儏")
private List<ServiceSubtaskDetail> serviceSubtaskDetailList;
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubTaskCacheReq.java b/smartor/src/main/java/com/smartor/domain/ServiceSubTaskCacheReq.java
index 8287e7b..5e356ac 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubTaskCacheReq.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubTaskCacheReq.java
@@ -23,9 +23,13 @@
private String param2;
@ApiModelProperty(value = "闂鍥炵瓟鏄庣粏(闅忚)")
- private List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOList;
+ private List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList;
@ApiModelProperty(value = "闂鍥炵瓟鏄庣粏(闂嵎)")
List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOS;
+ @ApiModelProperty(value = "璇曞嵎绫诲瀷:1 闅忚 2 闂嵎")
+ private Integer type;
+
+
}
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
index 6b27a89..f5a8fb8 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -132,10 +132,16 @@
if (ObjectUtils.isNotEmpty(serviceSubTaskAnswerReq)) {
//闇�瑕佺珛鍗虫墽琛�
RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
+
tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskAnswerReq.getParam1(), pri_key));
pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskAnswerReq.getParam2(), pri_key));
- allKeys = new HashSet<>();
- allKeys.add(pid + "-" + tid + "-WJscriptCache");
+ if (serviceSubTaskAnswerReq.getType() != null && serviceSubTaskAnswerReq.getType() == 2) {
+ allKeys = new HashSet<>();
+ allKeys.add(pid + "-" + tid + "-WJscriptCache");
+ } else if (serviceSubTaskAnswerReq.getType() != null && serviceSubTaskAnswerReq.getType() == 1) {
+ allKeys = new HashSet<>();
+ allKeys.add(pid + "-" + tid + "-SFscriptCache");
+ }
}
Long nextScriptno = null;
@@ -182,6 +188,47 @@
}
}
}
+ } else if (key.contains("-SFscriptCache")) {
+ List<IvrLibaTemplateScriptVO> cacheList = redisCache.getCacheList(key);
+ cacheList.sort(Comparator.comparingLong(IvrLibaTemplateScriptVO::getSort));
+ log.error("鐢佃瘽闅忚闂嵎鍥炵瓟缁撴灉锛歿}", cacheList);
+ for (int i = 0; i < cacheList.size(); i++) {
+ if (i == 0) {
+ //杩欎釜鏃堕棿瑕佹壘鍒扮涓�棰�
+ for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : cacheList) {
+ if (ivrLibaTemplateScriptVO.getSort() == 1L) {
+ //璇存槑鏄涓�棰�
+ IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(cacheList.get(0), IvrTaskTemplateScriptVO.class);
+ List<IvrLibaTemplateTargetoption> ivrLibaTemplateTargetoptions = cacheList.get(0).getIvrLibaScriptTargetoptionList();
+ List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(ivrLibaTemplateTargetoptions, IvrTaskTemplateTargetoption.class);
+ ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions);
+ Map<String, String> map = setSFInfo(ivrTaskTemplateScriptVO, tid, pid);
+ nextScriptno = Long.valueOf(map.get("nextScriptNo"));
+ if (score == null) {
+ score = Double.valueOf(map.get("score"));
+ } else {
+ score = score + Double.valueOf(map.get("score"));
+ }
+ }
+ }
+
+ } else {
+ IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(cacheList.get(i), IvrTaskTemplateScriptVO.class);
+ List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(cacheList.get(i).getIvrLibaScriptTargetoptionList(), IvrTaskTemplateTargetoption.class);
+ ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions);
+
+ if (ivrTaskTemplateScriptVO.getSort() != null && Long.valueOf(ivrTaskTemplateScriptVO.getSort()) == nextScriptno) {
+ Map<String, String> map = setSFInfo(ivrTaskTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0]));
+ log.error("map鐨勪俊鎭负锛歿}", map);
+ nextScriptno = Long.valueOf(map.get("nextScriptNo"));
+ if (score == null) {
+ score = Double.valueOf(map.get("score"));
+ } else {
+ score = score + Double.valueOf(map.get("score"));
+ }
+ }
+ }
+ }
}
//灏嗚key鍜寁alue浠巖edis涓紝鍒犻櫎
redisCache.deleteObject(key);
@@ -206,16 +253,35 @@
*/
@Override
public Integer saveQuestionCache(ServiceSubTaskCacheReq serviceSubTaskCacheReq) {
- RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
- Long tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam1(), pri_key));
- Long pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam2(), pri_key));
- //闂嵎
- redisCache.deleteObject(pid + "-" + tid + "-WJscriptCache");
- redisCache.setCacheList(pid + "-" + tid + "-WJscriptCache", serviceSubTaskCacheReq.getSvyLibTemplateScriptVOS());
- //璁剧疆杩囨湡鏃堕棿 3澶�
- Long tims = Long.valueOf(3 * 24 * 3600);
- redisCache.expire(pid + "-" + tid + "-WJscriptCache", tims);
- return 1;
+ try {
+
+
+ RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
+ Long tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam1(), pri_key));
+ Long pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam2(), pri_key));
+ if (serviceSubTaskCacheReq.getType() != null && serviceSubTaskCacheReq.getType() == 2) {
+ //闂嵎
+ redisCache.deleteObject(pid + "-" + tid + "-WJscriptCache");
+ redisCache.setCacheList(pid + "-" + tid + "-WJscriptCache", serviceSubTaskCacheReq.getSvyLibTemplateScriptVOS());
+ //璁剧疆杩囨湡鏃堕棿 3澶�
+ Long tims = Long.valueOf(3 * 24 * 3600);
+ boolean expire = redisCache.expire(pid + "-" + tid + "-WJscriptCache", tims);
+ return 1;
+ } else if (serviceSubTaskCacheReq.getType() != null && serviceSubTaskCacheReq.getType() == 1) {
+ //闂嵎
+ redisCache.deleteObject(pid + "-" + tid + "-SFscriptCache");
+ redisCache.setCacheList(pid + "-" + tid + "-SFscriptCache", serviceSubTaskCacheReq.getIvrLibaTemplateScriptVOList());
+ //璁剧疆杩囨湡鏃堕棿 3澶�
+ Long tims = Long.valueOf(3 * 24 * 3600);
+ redisCache.expire(pid + "-" + tid + "-SFscriptCache", tims);
+ return 1;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ log.error("缂撳瓨淇濆瓨澶辫触锛歿}", e.getMessage());
+ return 0;
+ }
+ return 0;
}
@Override
@@ -307,7 +373,7 @@
if (StringUtils.isEmpty(serviceSubtaskDetailVO.getTargetvalue())) {
serviceSubtaskDetailVO.setTargetvalue(svyTaskTemplateTargetoption.getOptioncontent());
} else {
- serviceSubtaskDetailVO.setTargetvalue(serviceSubtaskDetailVO.getTargetvalue() + " " + svyTaskTemplateTargetoption.getOptioncontent());
+ serviceSubtaskDetailVO.setTargetvalue(serviceSubtaskDetailVO.getTargetvalue() + "&" + svyTaskTemplateTargetoption.getOptioncontent());
}
// if (svyTaskTemplateTargetoption.getIsUserOperation() == true) {
// //灏嗛�変腑鐨勭粨鏋滄斁鍒癮srtext涓�
@@ -359,6 +425,67 @@
serviceSubtaskDetailVO.setCreateTime(new Date());
serviceSubtaskDetailVO.setUpdateTime(new Date());
serviceSubtaskDetailVO.setSubId(selectServiceSubtaskList.get(0).getId());
+ serviceSubtaskDetailVO.setTemplatequestionnum(svyTaskTemplateScriptVO.getId());
+ ServiceSubtaskDetail serviceSubtaskDetail = DtoConversionUtils.sourceToTarget(serviceSubtaskDetailVO, ServiceSubtaskDetail.class);
+ serviceSubtaskDetailMapper.insertServiceSubtaskDetail(serviceSubtaskDetail);
+
+ Map<String, String> map = new HashMap<>();
+ map.put("nextScriptNo", nextScriptNo);
+ map.put("score", score);
+ return map;
+ }
+
+ private Map<String, String> setSFInfo(IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO, Long taskid, Long patid) {
+ ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
+ serviceSubtaskVO.setTaskid(taskid);
+ serviceSubtaskVO.setPatid(patid);
+ List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+
+ String score = "0";
+ //涓嬮璺宠浆
+ String nextScriptNo = null;
+ ServiceSubtaskDetailVO serviceSubtaskDetailVO = new ServiceSubtaskDetailVO();
+ List<ServiceSubtaskOptionAnswer> answerList = new ArrayList<>();
+ if (ivrTaskTemplateScriptVO.getScriptType().equals("1") || ivrTaskTemplateScriptVO.getScriptType().equals("2")) {
+ //1銆�2涓哄崟閫夋垨澶氶��
+ for (IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption : ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList()) {
+ //灏嗛棶棰橀�夐」璁板綍涓嬫潵
+ if (StringUtils.isEmpty(serviceSubtaskDetailVO.getTargetvalue())) {
+ serviceSubtaskDetailVO.setTargetvalue(ivrTaskTemplateTargetoption.getTargetvalue());
+ } else {
+ serviceSubtaskDetailVO.setTargetvalue(serviceSubtaskDetailVO.getTargetvalue() + "&" + ivrTaskTemplateTargetoption.getTargetvalue());
+ }
+
+ }
+ nextScriptNo = ivrTaskTemplateScriptVO.getNextScriptno().toString();
+ if (ivrTaskTemplateScriptVO.getScore() != null) {
+ score = String.valueOf(ivrTaskTemplateScriptVO.getScore());
+ }
+ if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getQuestionResult())) {
+ serviceSubtaskDetailVO.setAsrtext(ivrTaskTemplateScriptVO.getQuestionResult().replaceAll("^\"|\"$", ""));
+ serviceSubtaskDetailVO.setMatchedtext(ivrTaskTemplateScriptVO.getQuestionResult().replaceAll("^\"|\"$", ""));
+ }
+ } else {
+ //闈炲崟澶氶��
+ if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getQuestionResult())) {
+ serviceSubtaskDetailVO.setAsrtext(ivrTaskTemplateScriptVO.getQuestionResult().replaceAll("^\"|\"$", ""));
+ serviceSubtaskDetailVO.setMatchedtext(ivrTaskTemplateScriptVO.getQuestionResult().replaceAll("^\"|\"$", ""));
+ nextScriptNo = ivrTaskTemplateScriptVO.getNextScriptno().toString();
+ if (ivrTaskTemplateScriptVO.getScore() != null) {
+ score = String.valueOf(ivrTaskTemplateScriptVO.getScore());
+ }
+ }
+ }
+ serviceSubtaskDetailVO.setQuestiontext(ivrTaskTemplateScriptVO.getScriptContent());
+ serviceSubtaskDetailVO.setTaskid(Long.valueOf(taskid));
+ serviceSubtaskDetailVO.setPatid(Long.valueOf(patid));
+ serviceSubtaskDetailVO.setScriptid(ivrTaskTemplateScriptVO.getId());
+ serviceSubtaskDetailVO.setValueType(ivrTaskTemplateScriptVO.getScriptType());
+ serviceSubtaskDetailVO.setComment(null);
+ serviceSubtaskDetailVO.setCreateTime(new Date());
+ serviceSubtaskDetailVO.setUpdateTime(new Date());
+ serviceSubtaskDetailVO.setSubId(selectServiceSubtaskList.get(0).getId());
+ serviceSubtaskDetailVO.setTemplatequestionnum(ivrTaskTemplateScriptVO.getId());
ServiceSubtaskDetail serviceSubtaskDetail = DtoConversionUtils.sourceToTarget(serviceSubtaskDetailVO, ServiceSubtaskDetail.class);
serviceSubtaskDetailMapper.insertServiceSubtaskDetail(serviceSubtaskDetail);
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
index 31c6f03..64e2c60 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
@@ -59,12 +59,14 @@
@Override
public Map<String, Object> selectServiceSubtaskDetailList(ServiceSubtaskDetail serviceSubtaskDetail) {
List<ServiceSubtaskDetail> serviceSubtaskDetails = ServiceSubtaskDetailMapper.selectServiceSubtaskDetailList(serviceSubtaskDetail);
+ String taskName = null;
if (CollectionUtils.isNotEmpty(serviceSubtaskDetails)) {
//澶勭悊涓�涓嬮�氶厤绗�
for (ServiceSubtaskDetail serviceSubtaskDetail1 : serviceSubtaskDetails) {
ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(serviceSubtaskDetail1.getSubId());
serviceSubtaskDetail1.setQuestiontext(getObject(serviceSubtask, serviceSubtaskDetail1.getQuestiontext()));
}
+ taskName = serviceTaskService.selectServiceTaskByTaskid(serviceSubtaskDetails.get(0).getTaskid()).getTaskName();
}
//鑾峰彇鏈�鍚庣殑鎬诲綍闊冲湴鍧�
Map<String, Object> map = new HashMap<>();
@@ -73,6 +75,7 @@
Map<String, Object> map1 = new HashMap<>();
map1.put("serviceSubtaskDetails", serviceSubtaskDetails);
map1.put("filteredDetails", null);
+ map1.put("taskName", taskName);
//鐢ㄤ簬瀛樺偍鍘婚噸鐨勬暟鎹�
List<ServiceSubtaskDetail> serviceSubtaskDetailSET = new ArrayList<>();
Boolean flag = false;
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..9294e4f 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -8,6 +8,7 @@
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 +22,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 +75,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 +104,14 @@
@Value("${voicePathPrefix}")
private String voicePathPrefix;
+ @Value("${localIP}")
+ private String localIP;
+
+ @Value("${req_path}")
+ private String req_path;
+
+ @Value("${xhsmsPath}")
+ private String xhsmsPath;
/**
* 鏌ヨ鍗曚竴浠诲姟锛堥殢璁匡級
@@ -708,12 +727,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 +749,8 @@
req.put("caller", phoneCallReqYQVO.getPhone());
HttpUtil.postJsonRequest(hangup, new Gson().toJson(req));
redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- hangup", "1", 2, TimeUnit.MINUTES);
+ //杩欎釜鏃跺�欏氨闇�瑕佽蛋琛ュ伩鏈哄埗浜嗭紝鍏堟殏瀹氳蛋鐭俊
+ getSmsCompensate(Long.valueOf(phoneCallReqYQVO.getTaskid()));
return new PhoneCallBackYQVO();
}
}
@@ -754,6 +781,7 @@
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);
@@ -1672,7 +1700,9 @@
@Override
public Integer recordAccept(PhoneCallRecordVO phoneCallRecordVO) {
- if (phoneCallRecordVO.getAnswered() != null && phoneCallRecordVO.getAnswered() == true) {
+ Object cacheObject = redisCache.getCacheObject("recordAccept-hungup");
+ 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鏄烦杩�/绗﹀彿
@@ -1680,7 +1710,11 @@
String result = phoneCallRecordVO.getRecord_path().substring(startIndex, endIndex);
//涓嬭浇鏂囦欢
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("recordAccept-hungup");
return 1;
}
@@ -1772,4 +1806,32 @@
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("鐭俊琛ュ伩鍙戦�佹垚鍔�");
+ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+ }
}
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
index 0773844..25c5761 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
@@ -155,23 +155,25 @@
ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
serviceSubtaskVO.setPatid(patid);
serviceSubtaskVO.setTaskid(taskid);
- List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
- //鏌ヨ鎮h�呮槸鍚﹂噸瑕嗗仛棰�
- if (CollectionUtils.isEmpty(selectServiceSubtaskList)) {
- Long submit = selectServiceSubtaskList.get(0).getSubmit();
- if (submit == 1L) {
- map.put("submit", "1");
- return map;
- }
- }
+// List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+// //鏌ヨ鎮h�呮槸鍚﹂噸瑕嗗仛棰�
+// if (CollectionUtils.isEmpty(selectServiceSubtaskList)) {
+// Long submit = selectServiceSubtaskList.get(0).getSubmit();
+// if (submit == 1L) {
+// map.put("submit", "1");
+// return map;
+// }
+// }
//閫氳繃浠诲姟ID鑾峰彇妯℃澘ID
ServiceTask serviceTask = selectServiceTaskByTaskid(taskid);
List info = new ArrayList();
if (serviceTask.getType().equals("1")) {
//闅忚
+ log.error("鏂囨湰闅忚闂");
info = sfInfo(serviceTask, patid);
} else if (serviceTask.getType().equals("2")) {
//闂嵎
+ log.error("鏂囨湰闂嵎闂");
info = wjInfo(serviceTask, patid, isFinish);
} else {
//瀹f暀
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml
index 19c6a8f..a16bb8b 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml
@@ -54,6 +54,7 @@
<if test="radix != null and radix != ''">
and radix = #{radix}
</if>
+
</where>
</select>
@@ -77,6 +78,9 @@
</if>
<if test="radix != null">radix,
</if>
+ <if test="createTime != null">create_time,
+ </if>
+
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="param1 != null">#{param1},
@@ -89,6 +93,8 @@
</if>
<if test="radix != null">#{radix},
</if>
+ <if test="createTime != null">#{createTime},
+ </if>
</trim>
</insert>
--
Gitblit v1.9.3