From e4e220916dd2a4aa649a9b0162e5b5ed0dc9d7e5 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期二, 20 五月 2025 10:36:54 +0800 Subject: [PATCH] 代码提交 --- smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java | 124 ++++++++++++++++++++++++++++------------- 1 files changed, 85 insertions(+), 39 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 75515fe..2d47ab3 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java @@ -151,8 +151,18 @@ } Long nextScriptno = null; + aa: for (String key : allKeys) { 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)) { + continue; + } + } catch (Exception e) { + //杩欓噷涔嬫墍浠ヨ澶勭悊寮傚父锛屾槸鍥犱负鏈夌殑KEY灏变笉鏄垜浠鐨凨EY,娌℃湁鍘绘埅鍙栵紱鏈夊紓甯镐笉澶勭悊锛岀洿鎺ヤ笅涓�涓� + continue; + } if (key.contains("-WJscriptCache")) { List<SvyLibTemplateScriptVO> cacheList = redisCache.getCacheList(key); cacheList.sort(Comparator.comparingLong(SvyLibTemplateScriptVO::getSort)); @@ -168,6 +178,7 @@ List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(svyLibTemplateTargetoptions, SvyTaskTemplateTargetoption.class); svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions); Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, tid, pid); + if (map == null) continue aa; nextScriptno = Long.valueOf(map.get("nextScriptNo")); if (score == null) { score = Double.valueOf(map.get("score")); @@ -182,7 +193,7 @@ List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(cacheList.get(i).getSvyLibTemplateTargetoptions(), SvyTaskTemplateTargetoption.class); svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions); - if (svyTaskTemplateScriptVO.getSort() != null && svyTaskTemplateScriptVO.getSort() == 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])); log.error("map鐨勪俊鎭负锛歿}", map); @@ -224,7 +235,7 @@ List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(cacheList.get(i).getIvrLibaScriptTargetoptionList(), IvrTaskTemplateTargetoption.class); ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions); - if (ivrTaskTemplateScriptVO.getSort() != null && Long.valueOf(ivrTaskTemplateScriptVO.getSort()) == nextScriptno) { + if (ivrTaskTemplateScriptVO.getSort() != null && Long.valueOf(ivrTaskTemplateScriptVO.getSort()).equals(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")); @@ -236,6 +247,8 @@ } } } + } else { + continue; } //灏嗚key鍜寁alue浠巖edis涓紝鍒犻櫎 redisCache.deleteObject(key); @@ -246,12 +259,13 @@ serviceSubtask.setSendstate(6L); serviceSubtask.setExcep(serviceSubTaskAnswerReq.getExcep()); serviceSubtask.setFinishtime(new Date()); + serviceSubtask.setUpdateTime(new Date()); + log.error("灏嗚key鍜寁alue浠巖edis涓�,serviceSubtask鐨勫�间负--------锛歿}", serviceSubtask); if (score != null) serviceSubtask.setScore(BigDecimal.valueOf(score)); serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask); } return 1; } - /** @@ -276,7 +290,7 @@ if (serviceSubTaskCacheReq.getType() != null && serviceSubTaskCacheReq.getType() == 2) { //闂嵎 redisCache.deleteObject(pid + "-" + tid + "-WJscriptCache"); - redisCache.setCacheList(pid + "-" + tid + "-WJscriptCache", serviceSubTaskCacheReq.getSvyLibTemplateScriptVOS()); + redisCache.setCacheListRight(pid + "-" + tid + "-WJscriptCache", serviceSubTaskCacheReq.getSvyLibTemplateScriptVOS()); //璁剧疆杩囨湡鏃堕棿 3澶� Long tims = Long.valueOf(3 * 24 * 3600); boolean expire = redisCache.expire(pid + "-" + tid + "-WJscriptCache", tims); @@ -284,7 +298,7 @@ } else if (serviceSubTaskCacheReq.getType() != null && serviceSubTaskCacheReq.getType() == 1) { //闂嵎 redisCache.deleteObject(pid + "-" + tid + "-SFscriptCache"); - redisCache.setCacheList(pid + "-" + tid + "-SFscriptCache", serviceSubTaskCacheReq.getIvrLibaTemplateScriptVOList()); + redisCache.setCacheListRight(pid + "-" + tid + "-SFscriptCache", serviceSubTaskCacheReq.getIvrLibaTemplateScriptVOList()); //璁剧疆杩囨湡鏃堕棿 3澶� Long tims = Long.valueOf(3 * 24 * 3600); redisCache.expire(pid + "-" + tid + "-SFscriptCache", tims); @@ -297,6 +311,7 @@ } return 0; } + @Override public Map<String, Object> getQuestionCache(ServiceSubTaskCacheReq serviceSubTaskCacheReq, Long flag) { Map<String, Object> map = new HashMap<>(); @@ -307,7 +322,10 @@ 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)); + //杩欎釜鏄湁闂鐨勶紝鍏堣繖鏍凤紝鍚堝苟浠g爜鐨勬椂鍊欐病鏈夋妸param6鍚堣繘鏉� + if (StringUtils.isNotEmpty(serviceSubTaskCacheReq.getParam6())) { + subId = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam6(), pri_key)); + } } else if (flag == 1L) { tid = Long.valueOf(serviceSubTaskCacheReq.getParam1()); pid = Long.valueOf(serviceSubTaskCacheReq.getParam2()); @@ -340,41 +358,64 @@ log.error("selectPatQuesTionResult鐨勫叆鍙備负锛歿}", serviceSubTaskQueryReq); Map<String, Object> map = new HashMap<>(); + //鑾峰彇鏈鐨勯棶绛旂粨鏋� Map<String, Object> scriptInfoByCondition = serviceTaskService.getScriptInfoByCondition(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), serviceSubTaskQueryReq.getIsFinish(), serviceSubTaskQueryReq.getPatfrom()); - if (scriptInfoByCondition.get("type").equals("1")) { - List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList = (List) scriptInfoByCondition.get("script"); - for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVOList) { - Map<String, String> scriptResult = getScriptResult(serviceSubTaskQueryReq.getSubId(), serviceSubTaskQueryReq.getPatid(), ivrLibaTemplateScriptVO.getId()); - if (ObjectUtils.isNotEmpty(scriptResult)) { - ivrLibaTemplateScriptVO.setScriptResult(scriptResult.get("asrtext")); - ivrLibaTemplateScriptVO.setScriptResultId(scriptResult.get("asrtextId")); - } + map = getMap(scriptInfoByCondition, serviceSubTaskQueryReq.getSubId(), serviceSubTaskQueryReq.getPatid()); + + //鑾峰彇涓婃鐨勯棶绛旂粨鏋� + ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(serviceSubTaskQueryReq.getSubId()); + map.put("upScriptResult", null); + map.put("upTaskName", null); + if (ObjectUtils.isNotEmpty(serviceSubtask) && serviceSubtask.getUpid() != null) { + Map<String, Object> scriptInfoByCondition2 = serviceTaskService.getScriptInfoByCondition(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), serviceSubTaskQueryReq.getIsFinish(), serviceSubTaskQueryReq.getPatfrom()); + Map<String, Object> map1 = getMap(scriptInfoByCondition2, Long.valueOf(serviceSubtask.getUpid()), serviceSubTaskQueryReq.getPatid()); + if (!map1.isEmpty()) { + map.put("upScriptResult", map1.get("scriptResult")); + map.put("upTaskName", map1.get("taskName")); } - map.put("scriptResult", ivrLibaTemplateScriptVOList); - map.put("taskName", scriptInfoByCondition.get("taskName")); - return map; - } else if (scriptInfoByCondition.get("type").equals("2")) { - List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOList = (List) scriptInfoByCondition.get("script"); - for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : svyLibTemplateScriptVOList) { - Map<String, String> scriptResult = getScriptResult(serviceSubTaskQueryReq.getSubId(), serviceSubTaskQueryReq.getPatid(), svyLibTemplateScriptVO.getId()); - if (ObjectUtils.isNotEmpty(scriptResult)) { - svyLibTemplateScriptVO.setScriptResult(scriptResult.get("asrtext")); - svyLibTemplateScriptVO.setScriptResultId(scriptResult.get("asrtextId")); - } - } - map.put("scriptResult", scriptInfoByCondition); - map.put("taskName", scriptInfoByCondition.get("taskName")); - return map; - } else if (scriptInfoByCondition.get("type").equals("3")) { - //瀹f暀涓嶉渶瑕佹煡鐪� - List<HeLibrary> heLibraryList = (List) scriptInfoByCondition.get("script"); - map.put("scriptResult", heLibraryList); - map.put("taskName", scriptInfoByCondition.get("taskName")); - return map; } - return null; + return map; } + + + private Map<String, Object> getMap(Map<String, Object> scriptInfoByCondition, Long subid, Long patid) { + Map<String, Object> map = new HashMap<>(); + if (ObjectUtils.isNotEmpty(scriptInfoByCondition) && ObjectUtils.isNotEmpty(scriptInfoByCondition.get("script"))) { +// log.error("-----------scriptInfoByCondition鐨勫�间负锛歿}", scriptInfoByCondition); + if (scriptInfoByCondition.get("type").equals("1")) { + List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList = (List) scriptInfoByCondition.get("script"); + for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVOList) { + Map<String, String> scriptResult = getScriptResult(subid, patid, ivrLibaTemplateScriptVO.getId()); + if (ObjectUtils.isNotEmpty(scriptResult)) { + ivrLibaTemplateScriptVO.setScriptResult(scriptResult.get("asrtext")); + ivrLibaTemplateScriptVO.setScriptResultId(scriptResult.get("asrtextId")); + } + } + map.put("scriptResult", ivrLibaTemplateScriptVOList); + map.put("taskName", scriptInfoByCondition.get("taskName")); + } else if (scriptInfoByCondition.get("type").equals("2")) { + List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOList = (List) scriptInfoByCondition.get("script"); + for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : svyLibTemplateScriptVOList) { + Map<String, String> scriptResult = getScriptResult(subid, patid, svyLibTemplateScriptVO.getId()); + if (ObjectUtils.isNotEmpty(scriptResult)) { + if (StringUtils.isNotEmpty(scriptResult.get("asrtext"))) + svyLibTemplateScriptVO.setScriptResult(StringUtils.isNotEmpty(scriptResult.get("asrtext")) ? scriptResult.get("asrtext").replaceAll("^(\"|')(.*)\\1$", "$2") : ""); + svyLibTemplateScriptVO.setScriptResultId(scriptResult.get("asrtextId")); + } + } + map.put("scriptResult", svyLibTemplateScriptVOList); + map.put("taskName", scriptInfoByCondition.get("taskName")); + } else if (scriptInfoByCondition.get("type").equals("3")) { + //瀹f暀涓嶉渶瑕佹煡鐪� + List<HeLibrary> heLibraryList = (List) scriptInfoByCondition.get("script"); + map.put("scriptResult", heLibraryList); + map.put("taskName", scriptInfoByCondition.get("taskName")); + } + } + return map; + } + private Map<String, String> getScriptResult(Long subid, Long pid, Long sid) { Map<String, String> map = new HashMap<>(); @@ -437,7 +478,8 @@ if (svyTaskTemplateScriptVO.getScore() != null) { score = String.valueOf(svyTaskTemplateScriptVO.getScore()); } - serviceSubtaskDetailVO.setAsrtext(svyTaskTemplateScriptVO.getScriptResult()); + serviceSubtaskDetailVO.setAsrtext(StringUtils.isEmpty(svyTaskTemplateScriptVO.getScriptResult()) ? "" : svyTaskTemplateScriptVO.getScriptResult().replaceAll("^\"|\"$", "")); + serviceSubtaskDetailVO.setMatchedtext(StringUtils.isEmpty(svyTaskTemplateScriptVO.getScriptResult()) ? "" : svyTaskTemplateScriptVO.getScriptResult().replaceAll("^\"|\"$", "")); // if (StringUtils.isEmpty(serviceSubtaskDetailVO.getAsrtext())) { // nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno().toString(); // } @@ -455,8 +497,10 @@ ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(taskid); serviceSubtaskDetailVO.setQuestiontext(svyTaskTemplateScriptVO.getScriptContent()); serviceSubtaskDetailVO.setTaskid(Long.valueOf(taskid)); + serviceSubtaskDetailVO.setTargetid(svyTaskTemplateScriptVO.getTargetid() != null ? svyTaskTemplateScriptVO.getTargetid().intValue() : null); serviceSubtaskDetailVO.setPatid(Long.valueOf(patid)); serviceSubtaskDetailVO.setScriptid(svyTaskTemplateScriptVO.getId()); + serviceSubtaskDetailVO.setTemplatequestionnum(StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptno()) ? Long.valueOf(svyTaskTemplateScriptVO.getScriptno()) : null); serviceSubtaskDetailVO.setValueType(svyTaskTemplateScriptVO.getScriptType()); serviceSubtaskDetailVO.setComment(null); serviceSubtaskDetailVO.setCreateTime(new Date()); @@ -465,7 +509,7 @@ serviceSubtaskDetailVO.setGuid(serviceTask.getGuid()); serviceSubtaskDetailVO.setOrgid(serviceTask.getOrgid()); } - serviceSubtaskDetailVO.setSubId(selectServiceSubtaskList.get(0).getId()); + serviceSubtaskDetailVO.setSubId(CollectionUtils.isNotEmpty(selectServiceSubtaskList) ? selectServiceSubtaskList.get(0).getId() : null); serviceSubtaskDetailVO.setTemplatequestionnum(svyTaskTemplateScriptVO.getId()); ServiceSubtaskDetail serviceSubtaskDetail = DtoConversionUtils.sourceToTarget(serviceSubtaskDetailVO, ServiceSubtaskDetail.class); serviceSubtaskDetailMapper.insertServiceSubtaskDetail(serviceSubtaskDetail); @@ -517,10 +561,12 @@ } } } + serviceSubtaskDetailVO.setTargetid(ivrTaskTemplateScriptVO.getTargetid() != null ? ivrTaskTemplateScriptVO.getTargetid().intValue() : null); serviceSubtaskDetailVO.setQuestiontext(ivrTaskTemplateScriptVO.getScriptContent()); serviceSubtaskDetailVO.setTaskid(Long.valueOf(taskid)); serviceSubtaskDetailVO.setPatid(Long.valueOf(patid)); - serviceSubtaskDetailVO.setScriptid(ivrTaskTemplateScriptVO.getId()); + serviceSubtaskDetailVO.setScriptid(ivrTaskTemplateScriptVO.getScriptID()); + serviceSubtaskDetailVO.setTemplatequestionnum(ivrTaskTemplateScriptVO.getId()); serviceSubtaskDetailVO.setValueType(ivrTaskTemplateScriptVO.getScriptType()); serviceSubtaskDetailVO.setComment(null); serviceSubtaskDetailVO.setCreateTime(new Date()); -- Gitblit v1.9.3