From 10aaa035f5be0312304d20f022bdb714a8f4900a Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期三, 11 十二月 2024 22:16:23 +0800 Subject: [PATCH] 代码提交 --- smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java | 191 ++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 169 insertions(+), 22 deletions(-) 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 ef20484..f5a8fb8 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java @@ -1,5 +1,6 @@ package com.smartor.service.impl; +import afu.org.checkerframework.checker.oigj.qual.O; import com.alibaba.fastjson2.JSON; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.DateUtils; @@ -131,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; @@ -142,12 +149,13 @@ String[] split = key.split("-"); if (key.contains("-WJscriptCache")) { List<SvyLibTemplateScriptVO> cacheList = redisCache.getCacheList(key); - + cacheList.sort(Comparator.comparingLong(SvyLibTemplateScriptVO::getSort)); + log.error("闂嵎鍥炵瓟缁撴灉锛歿}", cacheList); for (int i = 0; i < cacheList.size(); i++) { if (i == 0) { //杩欎釜鏃堕棿瑕佹壘鍒扮涓�棰� for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : cacheList) { - if (svyLibTemplateScriptVO.getSort() == 1) { + if (svyLibTemplateScriptVO.getSort() == 1L) { //璇存槑鏄涓�棰� SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(cacheList.get(0), SvyTaskTemplateScriptVO.class); List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = cacheList.get(0).getSvyLibTemplateTargetoptions(); @@ -170,6 +178,48 @@ if (svyTaskTemplateScriptVO.getSort() == nextScriptno) { Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, 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")); + } + } + } + } + } 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")); @@ -185,6 +235,9 @@ ServiceSubtask serviceSubtask = new ServiceSubtask(); 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)); serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask); @@ -200,26 +253,59 @@ */ @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 - public List<SvyLibTemplateScriptVO> getQuestionCache(ServiceSubTaskCacheReq serviceSubTaskCacheReq) { + public Map<String, Object> getQuestionCache(ServiceSubTaskCacheReq serviceSubTaskCacheReq) { + Map<String, Object> map = new HashMap<>(); RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); Long tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam1(), pri_key)); Long pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam2(), pri_key)); + ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); + serviceSubtaskVO.setTaskid(tid); + serviceSubtaskVO.setPatid(pid); + List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); + if (CollectionUtils.isEmpty(selectServiceSubtaskList) || selectServiceSubtaskList.size() == 0) { + map.put("submit", 0); + } else { + map.put("submit", selectServiceSubtaskList.get(0).getSubmit()); + if (selectServiceSubtaskList.get(0).getSubmit() == 1) { + return map; + } + } //闂嵎 List<SvyLibTemplateScriptVO> svyTaskTemplateScriptVOList = redisCache.getCacheList(pid + "-" + tid + "-WJscriptCache"); - return svyTaskTemplateScriptVOList; + map.put("result", svyTaskTemplateScriptVOList); + return map; } @Override @@ -227,11 +313,11 @@ 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); @@ -240,7 +326,7 @@ } 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); @@ -257,9 +343,9 @@ 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); @@ -287,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涓� @@ -339,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); -- Gitblit v1.9.3