| | |
| | | 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; |
| | |
| | | } |
| | | } |
| | | } |
| | | } 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); |
| | |
| | | serviceSubtask.setTaskid(tid); |
| | | serviceSubtask.setPatid(pid); |
| | | serviceSubtask.setSubmit(1L); |
| | | serviceSubtask.setSendstate(6L); |
| | | serviceSubtask.setExcep(serviceSubTaskAnswerReq.getExcep()); |
| | | serviceSubtask.setFinishtime(new Date()); |
| | | if (score != null) serviceSubtask.setScore(BigDecimal.valueOf(score)); |
| | |
| | | */ |
| | | @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 |
| | |
| | | log.error("selectPatQuesTionResult的入参为:{}", serviceSubTaskQueryReq); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | |
| | | Map<String, Object> scriptInfoByCondition = serviceTaskService.getScriptInfoByCondition(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid()); |
| | | Map<String, Object> scriptInfoByCondition = serviceTaskService.getScriptInfoByCondition(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), serviceSubTaskQueryReq.getIsFinish()); |
| | | if (scriptInfoByCondition.get("type").equals("1")) { |
| | | List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList = (List) scriptInfoByCondition.get("script"); |
| | | for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVOList) { |
| | | String scriptResult = getScriptResult(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), ivrLibaTemplateScriptVO.getId()); |
| | | String scriptResult = getScriptResult(serviceSubTaskQueryReq.getSubId(), serviceSubTaskQueryReq.getPatid(), ivrLibaTemplateScriptVO.getId()); |
| | | ivrLibaTemplateScriptVO.setScriptResult(scriptResult); |
| | | } |
| | | map.put("scriptResult", ivrLibaTemplateScriptVOList); |
| | |
| | | } else if (scriptInfoByCondition.get("type").equals("2")) { |
| | | List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOList = (List) scriptInfoByCondition.get("script"); |
| | | for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : svyLibTemplateScriptVOList) { |
| | | String scriptResult = getScriptResult(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), svyLibTemplateScriptVO.getId()); |
| | | String scriptResult = getScriptResult(serviceSubTaskQueryReq.getSubId(), serviceSubTaskQueryReq.getPatid(), svyLibTemplateScriptVO.getId()); |
| | | svyLibTemplateScriptVO.setScriptResult(scriptResult); |
| | | } |
| | | map.put("scriptResult", scriptInfoByCondition); |
| | |
| | | return null; |
| | | } |
| | | |
| | | private String getScriptResult(Long tid, Long pid, Long sid) { |
| | | private String getScriptResult(Long subid, Long pid, Long sid) { |
| | | ServiceSubtaskDetail serviceSubtaskDetail = new ServiceSubtaskDetail(); |
| | | serviceSubtaskDetail.setTaskid(tid); |
| | | serviceSubtaskDetail.setSubId(subid); |
| | | serviceSubtaskDetail.setPatid(pid); |
| | | serviceSubtaskDetail.setScriptid(sid); |
| | | List<ServiceSubtaskDetail> serviceSubtaskDetails = serviceSubtaskDetailMapper.selectServiceSubtaskDetailList(serviceSubtaskDetail); |
| | |
| | | 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中 |
| | |
| | | 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); |
| | | |