From 0c621621889c90a119e2ff9e41c4f5528f395f7e Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 16 五月 2025 16:04:18 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java |   60 ++++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 48 insertions(+), 12 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 445cf2a..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"));
@@ -347,13 +358,35 @@
         log.error("selectPatQuesTionResult鐨勫叆鍙備负锛歿}", serviceSubTaskQueryReq);
         Map<String, Object> map = new HashMap<>();
 
+        //鑾峰彇鏈鐨勯棶绛旂粨鏋�
         Map<String, Object> scriptInfoByCondition = serviceTaskService.getScriptInfoByCondition(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), serviceSubTaskQueryReq.getIsFinish(), serviceSubTaskQueryReq.getPatfrom());
+        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"));
+            }
+        }
+
+        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);
+//            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(serviceSubTaskQueryReq.getSubId(), serviceSubTaskQueryReq.getPatid(), ivrLibaTemplateScriptVO.getId());
+                    Map<String, String> scriptResult = getScriptResult(subid, patid, ivrLibaTemplateScriptVO.getId());
                     if (ObjectUtils.isNotEmpty(scriptResult)) {
                         ivrLibaTemplateScriptVO.setScriptResult(scriptResult.get("asrtext"));
                         ivrLibaTemplateScriptVO.setScriptResultId(scriptResult.get("asrtextId"));
@@ -361,30 +394,28 @@
                 }
                 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());
+                    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", scriptInfoByCondition);
+                map.put("scriptResult", svyLibTemplateScriptVOList);
                 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 map;
     }
+
 
     private Map<String, String> getScriptResult(Long subid, Long pid, Long sid) {
         Map<String, String> map = new HashMap<>();
@@ -447,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();
 //            }
@@ -465,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());
@@ -475,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);
@@ -527,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