From dbbb114c25b2406b6d1fd52019d2f2228ffcacd0 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 27 十一月 2024 18:04:16 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java |  153 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 140 insertions(+), 13 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 6b27a89..f5a8fb8 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -132,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;
@@ -182,6 +188,47 @@
                         }
                     }
                 }
+            } 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鍜寁alue浠巖edis涓紝鍒犻櫎
             redisCache.deleteObject(key);
@@ -206,16 +253,35 @@
      */
     @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
@@ -307,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涓�
@@ -359,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