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