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)) { 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和pid的值为:{},{}", tid, pid); log.error("tid和pid的值为:{},{}", tid, pid); return success(serviceTaskService.getScriptInfoByCondition(tid, pid, true)); } ruoyi-admin/src/main/resources/application-druid.yml
@@ -143,7 +143,7 @@ #公司内外链请求IP和端口号 #req_path: 8095 #localIP: 192.168.2.10 #localIP: 192.168.2.13 #新华医院外链请求IP和端口号 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 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; 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; } 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和value从redis中,删除 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) { // //将选中的结果放到asrtext中 @@ -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); 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; 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("电话发送成功(患者挂断)"); 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)); //删除结束语的患存 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); } } 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); //查询患者是否重覆做题 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); // //查询患者是否重覆做题 // 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 { //宣教 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>