| | |
| | | import com.smartor.domain.VO.ServiceSubtaskDetailTraceVO; |
| | | import com.smartor.domain.entity.ServiceSubtaskEntity; |
| | | import com.smartor.mapper.*; |
| | | import com.smartor.service.IServiceSubtaskAnswerService; |
| | | import com.smartor.service.IServiceSubtaskDetailTraceService; |
| | | import com.smartor.service.IServiceTaskService; |
| | | import com.smartor.service.*; |
| | | import com.sun.org.apache.bcel.internal.generic.NEW; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.collections4.CollectionUtils; |
| | |
| | | |
| | | @Autowired |
| | | private IServiceSubtaskDetailTraceService traceService; |
| | | |
| | | @Autowired |
| | | private ISvyTaskTemplateService svyTaskTemplateService; |
| | | |
| | | @Autowired |
| | | private ISvyLibTemplateScriptService svyLibTemplateScriptService; |
| | | |
| | | @Autowired |
| | | private IIvrTaskTemplateService ivrTaskTemplateService; |
| | | |
| | | @Autowired |
| | | private IIvrLibaTemplateScriptService ivrLibaTemplateScriptService; |
| | | |
| | | @Value("${pri_key}") |
| | | private String pri_key; |
| | |
| | | public Integer saveQuestionAnswer(ServiceSubTaskAnswerReq serviceSubTaskAnswerReq, Long flag) { |
| | | Long tid = null; |
| | | Long pid = null; |
| | | Long subid = null; |
| | | Double score = null; |
| | | Long isabno = 0L; |
| | | Set<String> allKeys = redisCache.getAllKeys(); |
| | |
| | | if (flag == 0) { |
| | | tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskAnswerReq.getParam1(), pri_key)); |
| | | pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskAnswerReq.getParam2(), pri_key)); |
| | | subid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskAnswerReq.getParam6(), pri_key)); |
| | | } else if (flag == 1) { |
| | | tid = Long.valueOf(serviceSubTaskAnswerReq.getParam1()); |
| | | pid = Long.valueOf(serviceSubTaskAnswerReq.getParam2()); |
| | | subid = Long.valueOf(serviceSubTaskAnswerReq.getParam6()); |
| | | } |
| | | if (serviceSubTaskAnswerReq.getType() != null && serviceSubTaskAnswerReq.getType() == 2) { |
| | | allKeys = new HashSet<>(); |
| | | allKeys.add(pid + "-" + tid + "-WJscriptCache"); |
| | | allKeys.add(pid + "-" + tid + "-" + subid + "-WJscriptCache"); |
| | | } else if (serviceSubTaskAnswerReq.getType() != null && serviceSubTaskAnswerReq.getType() == 1) { |
| | | allKeys = new HashSet<>(); |
| | | allKeys.add(pid + "-" + tid + "-SFscriptCache"); |
| | | allKeys.add(pid + "-" + tid + "-" + subid + "-SFscriptCache"); |
| | | } |
| | | } |
| | | |
| | |
| | | String[] split = key.split("-"); |
| | | //先判断,是不是当前提交人的,不是当前提交人的,跳过 |
| | | try { |
| | | if (ObjectUtils.isNotEmpty(split[0]) && ObjectUtils.isNotEmpty(split[1]) && !Long.valueOf(split[0]).equals(pid) && !Long.valueOf(split[1]).equals(tid)) { |
| | | if (ObjectUtils.isNotEmpty(split[0]) && ObjectUtils.isNotEmpty(split[1]) && !Long.valueOf(split[0]).equals(pid) && !Long.valueOf(split[1]).equals(tid) && !Long.valueOf(split[2]).equals(subid)) { |
| | | continue; |
| | | } |
| | | } catch (Exception e) { |
| | |
| | | //说明是第一题 |
| | | List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = cacheList.get(0).getSvyTaskTemplateTargetoptions(); |
| | | svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions); |
| | | Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, tid, pid, null); |
| | | Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, tid, pid, subid); |
| | | if (map == null) continue aa; |
| | | if (!Objects.isNull(map.get("nextScriptNo"))) |
| | | nextScriptno = Long.valueOf(map.get("nextScriptNo")); |
| | |
| | | |
| | | if (svyTaskTemplateScriptVO.getSort() != null && svyTaskTemplateScriptVO.getSort().equals(nextScriptno)) { |
| | | // log.error("svyTaskTemplateScriptVO的值为:{}", svyTaskTemplateScriptVO); |
| | | Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0]), null); |
| | | Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0]), Long.valueOf(split[2])); |
| | | log.error("nextScriptNo的信息为:{}", map.get("nextScriptNo")); |
| | | if (!Objects.isNull(map.get("nextScriptNo"))) |
| | | nextScriptno = Long.valueOf(map.get("nextScriptNo")); |
| | |
| | | List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = cacheList.get(0).getIvrTaskScriptTargetoptionList(); |
| | | // List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(ivrLibaTemplateTargetoptions, IvrTaskTemplateTargetoption.class); |
| | | ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions); |
| | | Map<String, String> map = setSFInfo(ivrTaskTemplateScriptVO, tid, pid, null); |
| | | Map<String, String> map = setSFInfo(ivrTaskTemplateScriptVO, tid, pid, subid); |
| | | if (!Objects.isNull(map.get("nextScriptNo"))) |
| | | nextScriptno = Long.valueOf(map.get("nextScriptNo")); |
| | | if (score == null) { |
| | |
| | | ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions); |
| | | |
| | | if (ivrTaskTemplateScriptVO.getSort() != null && Long.valueOf(ivrTaskTemplateScriptVO.getSort()).equals(nextScriptno)) { |
| | | Map<String, String> map = setSFInfo(ivrTaskTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0]), null); |
| | | Map<String, String> map = setSFInfo(ivrTaskTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0]), Long.valueOf(split[2])); |
| | | log.error("----nextScriptNo2的信息为:{}", map.get("nextScriptNo")); |
| | | if (!Objects.isNull(map.get("nextScriptNo"))) |
| | | nextScriptno = Long.valueOf(map.get("nextScriptNo")); |
| | |
| | | } |
| | | } else if (serviceSubTaskCacheReq.getType() == 1) { |
| | | List<IvrTaskTemplateScriptVO> cacheList = serviceSubTaskCacheReq.getIvrTaskTemplateScriptVOList(); |
| | | cacheList.sort(Comparator.comparingLong( |
| | | vo -> Optional.ofNullable(vo.getSort()).orElse(0) |
| | | )); |
| | | cacheList.sort(Comparator.comparingLong(vo -> Optional.ofNullable(vo.getSort()).orElse(0))); |
| | | log.error("电话随访问卷回答结果:{}", cacheList.size()); |
| | | for (int i = 0; i < cacheList.size(); i++) { |
| | | if (i == 0) { |
| | |
| | | List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = svyTaskTemplateScriptVOS.get(0).getSvyTaskTemplateTargetoptions(); |
| | | // List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(svyTaskTemplateTargetoptions, SvyTaskTemplateTargetoption.class); |
| | | svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions); |
| | | Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, Long.valueOf(serviceSubTaskMYDAnswerReq.getTaskId()), patid, null); |
| | | Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, Long.valueOf(serviceSubTaskMYDAnswerReq.getTaskId()), patid, serviceSubTaskMYDAnswerReq.getSubId()); |
| | | if (map == null) continue; |
| | | if (!Objects.isNull(map.get("nextScriptNo"))) |
| | | nextScriptno = Long.valueOf(map.get("nextScriptNo")); |
| | |
| | | |
| | | if (svyTaskTemplateScriptVO.getSort() != null && svyTaskTemplateScriptVO.getSort().equals(nextScriptno)) { |
| | | log.error("svyTaskTemplateScriptVO的值为:{}", svyTaskTemplateScriptVO); |
| | | Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, Long.valueOf(serviceSubTaskMYDAnswerReq.getTaskId()), patid, null); |
| | | Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, Long.valueOf(serviceSubTaskMYDAnswerReq.getTaskId()), patid, serviceSubTaskMYDAnswerReq.getSubId()); |
| | | log.error("map的信息为:{}", map); |
| | | if (!Objects.isNull(map.get("nextScriptNo"))) |
| | | nextScriptno = Long.valueOf(map.get("nextScriptNo")); |
| | |
| | | RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); |
| | | Long tid = null; |
| | | Long pid = null; |
| | | Long subid = null; |
| | | if (flag == 0L) { |
| | | tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam1(), pri_key)); |
| | | pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam2(), pri_key)); |
| | | subid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam6(), pri_key)); |
| | | } else if (flag == 1L) { |
| | | tid = Long.valueOf(serviceSubTaskCacheReq.getParam1()); |
| | | pid = Long.valueOf(serviceSubTaskCacheReq.getParam2()); |
| | | subid = Long.valueOf(serviceSubTaskCacheReq.getParam6()); |
| | | } |
| | | if (CollectionUtils.isNotEmpty(serviceSubTaskCacheReq.getSvyTaskTemplateScriptVOS()) && serviceSubTaskCacheReq.getSvyTaskTemplateScriptVOS().size() > 0) { |
| | | //问卷 |
| | | redisCache.deleteObject(pid + "-" + tid + "-WJscriptCache"); |
| | | redisCache.setCacheListRight(pid + "-" + tid + "-WJscriptCache", serviceSubTaskCacheReq.getSvyTaskTemplateScriptVOS()); |
| | | redisCache.deleteObject(pid + "-" + tid + "-" + subid + "-WJscriptCache"); |
| | | redisCache.setCacheListRight(pid + "-" + tid + "-" + subid + "-WJscriptCache", serviceSubTaskCacheReq.getSvyTaskTemplateScriptVOS()); |
| | | //设置过期时间 3天 |
| | | Long tims = Long.valueOf(3 * 24 * 3600); |
| | | boolean expire = redisCache.expire(pid + "-" + tid + "-WJscriptCache", tims); |
| | | boolean expire = redisCache.expire(pid + "-" + tid + "-" + subid + "-WJscriptCache", tims); |
| | | return 1; |
| | | } else if (CollectionUtils.isNotEmpty(serviceSubTaskCacheReq.getIvrTaskTemplateScriptVOList()) && serviceSubTaskCacheReq.getIvrTaskTemplateScriptVOList().size() > 0) { |
| | | //问卷 |
| | | redisCache.deleteObject(pid + "-" + tid + "-SFscriptCache"); |
| | | redisCache.setCacheListRight(pid + "-" + tid + "-SFscriptCache", serviceSubTaskCacheReq.getIvrTaskTemplateScriptVOList()); |
| | | redisCache.deleteObject(pid + "-" + tid + "-" + subid + "-SFscriptCache"); |
| | | redisCache.setCacheListRight(pid + "-" + tid + "-" + subid + "-SFscriptCache", serviceSubTaskCacheReq.getIvrTaskTemplateScriptVOList()); |
| | | //设置过期时间 3天 |
| | | Long tims = Long.valueOf(3 * 24 * 3600); |
| | | redisCache.expire(pid + "-" + tid + "-SFscriptCache", tims); |
| | | redisCache.expire(pid + "-" + tid + "-" + subid + "-SFscriptCache", tims); |
| | | return 1; |
| | | } |
| | | } catch (Exception e) { |
| | |
| | | ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity(); |
| | | serviceSubtaskVO.setTaskid(taskid); |
| | | serviceSubtaskVO.setPatid(patid); |
| | | serviceSubtaskVO.setSubId(subid); |
| | | List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); |
| | | String score = "0"; |
| | | //下题跳转 |
| | |
| | | |
| | | } |
| | | nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno(); |
| | | if (StringUtils.isEmpty(nextScriptNo)) { |
| | | nextScriptNo = getNextScriptNo(svyTaskTemplateScriptVO.getTemplateID(), svyTaskTemplateScriptVO.getScriptContent()); |
| | | } |
| | | if (svyTaskTemplateScriptVO.getScore() != null) { |
| | | score = String.valueOf(svyTaskTemplateScriptVO.getScore()); |
| | | } |
| | |
| | | score = String.valueOf(svyTaskTemplateScriptVO.getScore()); |
| | | } |
| | | } |
| | | nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno().toString(); |
| | | nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno(); |
| | | if (StringUtils.isEmpty(nextScriptNo)) { |
| | | nextScriptNo = getNextScriptNo(svyTaskTemplateScriptVO.getTemplateID(), svyTaskTemplateScriptVO.getScriptContent()); |
| | | } |
| | | } |
| | | ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(taskid); |
| | | serviceSubtaskDetailVO.setQuestiontext(svyTaskTemplateScriptVO.getScriptContent()); |
| | |
| | | serviceSubtaskDetailVO.setCreateTime(new Date()); |
| | | serviceSubtaskDetailVO.setUpdateTime(new Date()); |
| | | serviceSubtaskDetailVO.setTemplateType(2); |
| | | serviceSubtaskDetailVO.setLibTemplateid(CollectionUtils.isNotEmpty(selectServiceSubtaskList) ? |
| | | (ObjectUtils.isNotEmpty(selectServiceSubtaskList.get(0).getLibtemplateid()) ? |
| | | selectServiceSubtaskList.get(0).getLibtemplateid().intValue() : null): null); |
| | | serviceSubtaskDetailVO.setLibTemplateid(CollectionUtils.isNotEmpty(selectServiceSubtaskList) ? (ObjectUtils.isNotEmpty(selectServiceSubtaskList.get(0).getLibtemplateid()) ? selectServiceSubtaskList.get(0).getLibtemplateid().intValue() : null) : null); |
| | | if (ObjectUtils.isNotEmpty(serviceTask)) { |
| | | serviceSubtaskDetailVO.setGuid(serviceTask.getGuid()); |
| | | serviceSubtaskDetailVO.setOrgid(serviceTask.getOrgid()); |
| | |
| | | return map; |
| | | } |
| | | |
| | | private String getNextScriptNo(Long taskTemplateID, String scriptContent) { |
| | | SvyTaskTemplate svyTaskTemplate = svyTaskTemplateService.selectSvyTaskTemplateBySvyid(taskTemplateID); |
| | | SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript(); |
| | | svyLibTemplateScript.setSvyid(svyTaskTemplate.getTemplateid()); |
| | | svyLibTemplateScript.setScriptContent(scriptContent); |
| | | List<SvyLibTemplateScript> svyLibTemplateScriptList = svyLibTemplateScriptService.selectSvyLibTemplateScriptList(svyLibTemplateScript); |
| | | if (CollectionUtils.isNotEmpty(svyLibTemplateScriptList)) { |
| | | return svyLibTemplateScriptList.get(0).getNextScriptno(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | private Long getVoiceNextScriptNo(Long taskTemplateID, String scriptContent) { |
| | | IvrTaskTemplate ivrTaskTemplate = ivrTaskTemplateService.selectIvrTaskTemplateByID(taskTemplateID); |
| | | IvrLibaTemplateScript ivrLibaTemplateScript = new IvrLibaTemplateScript(); |
| | | if (StringUtils.isEmpty(ivrTaskTemplate.getLibtemplateid())) return null; |
| | | ivrLibaTemplateScript.setTemplateid(Long.valueOf(ivrTaskTemplate.getLibtemplateid())); |
| | | ivrLibaTemplateScript.setScriptContent(scriptContent); |
| | | List<IvrLibaTemplateScript> ivrLibaTemplateScriptList = ivrLibaTemplateScriptService.selectIvrLibaTemplateScriptList(ivrLibaTemplateScript); |
| | | |
| | | if (CollectionUtils.isNotEmpty(ivrLibaTemplateScriptList)) { |
| | | return ivrLibaTemplateScriptList.get(0).getNextScriptno(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | private Boolean sendTaskIds(List<Integer> sendTaskids, ServiceSubtask serviceSubtask) { |
| | | for (Integer taskId : sendTaskids) { |
| | | ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(Long.valueOf(taskId)); |
| | |
| | | ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity(); |
| | | serviceSubtaskVO.setTaskid(taskid); |
| | | serviceSubtaskVO.setPatid(patid); |
| | | serviceSubtaskVO.setPatid(subid); |
| | | List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); |
| | | |
| | | String score = "0"; |
| | |
| | | |
| | | } |
| | | nextScriptNo = ivrTaskTemplateScriptVO.getNextScriptno() == null ? null : ivrTaskTemplateScriptVO.getNextScriptno().toString(); |
| | | if (StringUtils.isEmpty(nextScriptNo)) { |
| | | nextScriptNo = "" + getVoiceNextScriptNo(ivrTaskTemplateScriptVO.getTemplateID(), ivrTaskTemplateScriptVO.getScriptContent()); |
| | | } |
| | | |
| | | if (ivrTaskTemplateScriptVO.getScore() != null) { |
| | | score = String.valueOf(ivrTaskTemplateScriptVO.getScore()); |
| | | } |
| | |
| | | serviceSubtaskDetailVO.setMatchedtext(ivrTaskTemplateScriptVO.getQuestionResult() != null ? ivrTaskTemplateScriptVO.getQuestionResult().replaceAll("^\"|\"$", "") : ivrTaskTemplateScriptVO.getIvrtext()); |
| | | serviceSubtaskDetailVO.setScore(ivrTaskTemplateScriptVO.getScore() != null ? ivrTaskTemplateScriptVO.getScore().toString() : "0"); |
| | | nextScriptNo = ivrTaskTemplateScriptVO.getNextScriptno() == null ? null : ivrTaskTemplateScriptVO.getNextScriptno().toString(); |
| | | if (StringUtils.isEmpty(nextScriptNo)) { |
| | | nextScriptNo = "" + getVoiceNextScriptNo(ivrTaskTemplateScriptVO.getTemplateID(), ivrTaskTemplateScriptVO.getScriptContent()); |
| | | } |
| | | if (ivrTaskTemplateScriptVO.getScore() != null) { |
| | | score = String.valueOf(ivrTaskTemplateScriptVO.getScore()); |
| | | } |