From e6456d2196b3e57bd06be0fbc74dd3e0fc28fdeb Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 22 七月 2025 19:17:55 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |  115 +++++++++++++++++++++++++++------------------------------
 1 files changed, 54 insertions(+), 61 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
index 4123c7d..de6eb96 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -1243,6 +1243,7 @@
                     }
                     break;
                 }
+                log.info("鏄惁闇�瑕佹寕鏈猴細{}", les);
                 if (ObjectUtils.isNotEmpty(les)) {
                     //瀵瑰尮閰嶇殑缁撴灉澶勭悊涓�涓�(鐪嬬湅鏄笉鏄渶瑕佹寕鏈�)
                     if (les.getIsEnd() != null && les.getIsEnd() == 1) {
@@ -1301,6 +1302,7 @@
                     if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches() || StringUtils.isEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() || StringUtils.isEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches()) {
                         //璇存槑鍖归厤姝g‘浜�
                         //杩欓噷搴旇鍏堝垽鏂被鍨嬶紝鍘诲啀淇敼锛岃缃甀sUserOperation鏄崟閫夐鐨勬敼娉�
+                        log.info("鍖归厤姝g‘浜嗗悧--------------");
                         ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).setIsUserOperation(1);
                         serviceTaskScriptTargetoptionMapper.updateIvrTaskTemplateTargetoption(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j));
 
@@ -1389,8 +1391,9 @@
                                 if (script.getSort() == nextQuestion.intValue()) {
                                     phoneCallBackYQVO.setType("text");
                                     phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
-                                    String scriptContent = script.getIvrtext();
+                                    String scriptContent = StringUtils.isNotEmpty(script.getIvrtext()) ? script.getIvrtext() : script.getScriptContent();
                                     log.error("涓嬩竴棰橀棶棰橈細{}", scriptContent);
+                                    log.error("涓嬩竴棰樼殑瀛愪换鍔℃槸锛歿}", serviceSubtask);
                                     phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + getObject(serviceSubtask, scriptContent));
                                     //灏嗚鎮h�呯殑Redis涓殑棰樼洰ID锛岃繘琛屼慨鏀�
                                     redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim(), script.getId().toString(), 120, TimeUnit.MINUTES);
@@ -1429,6 +1432,7 @@
 
                         }
                     } else {
+                        log.info("娌℃湁鍖归厤涓�----------------------------");
                         //flag=0,璇存槑娌� 鍖归厤涓婏紝涔熻鎶婃偅鑰呰鐨勮瘽璁板綍涓嬫潵
                         if (j == ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().size() - 1 && flag == 0) {
                             ServiceSubTaskDetailReq serviceSubTaskDetailReq = new ServiceSubTaskDetailReq();
@@ -1456,6 +1460,7 @@
                 }
                 //閮芥病鏈夊尮閰嶅埌
                 if (StringUtils.isEmpty(phoneCallBackYQVO.getValue())) {
+                    log.info("閮芥病鏈夊尮閰嶅埌-------------------------");
                     Integer count = null;
                     Object countObj = redisCache.getCacheObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid());
                     if (ObjectUtils.isNotEmpty(countObj)) count = (Integer) countObj;
@@ -1486,9 +1491,11 @@
                             //鍘籸edis涓紝鎶婅瀛愪换鍔D鍒犻櫎
                             Long id = serviceSubtask.getId();
                             Map<String, String> map = delRedisValue(null, id.toString());
-                            redisCache.setCacheObject(map.get("cacheName"), map.get("val"));
-                            redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone());
-                            redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                            if (ObjectUtils.isNotEmpty(map)) {
+                                redisCache.setCacheObject(map.get("cacheName"), map.get("val"));
+                                redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone());
+                                redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE");
+                            }
 //                            return phoneCallBackYQVO;
                         } else {
                             //鏍规嵁ivrTaskTemplateScriptVO.getNextScriptno()鑾峰彇涓嬩竴棰樿繘琛屾彁闂�
@@ -1496,7 +1503,7 @@
                                 if (script.getSort() == ivrTaskTemplateScriptVO.getNextScriptno().intValue()) {
                                     phoneCallBackYQVO.setType("text");
                                     phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
-                                    String scriptContent = script.getIvrtext();
+                                    String scriptContent = StringUtils.isNotEmpty(script.getIvrtext()) ? script.getIvrtext() : script.getScriptContent();
                                     phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + getObject(serviceSubtask, scriptContent));
                                     //灏嗚鎮h�呯殑Redis涓殑棰樼洰ID锛岃繘琛屼慨鏀�
                                     redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim(), script.getId().toString(), 120, TimeUnit.MINUTES);
@@ -1550,7 +1557,8 @@
                         if (ivrTaskTemplateScriptVO.getNextScriptno().intValue() == ivrTaskTemplateScript1.getSort()) {
                             phoneCallBackYQVO.setType("text");
                             phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue());
-                            String scriptContent = ivrTaskTemplateScript1.getIvrtext();
+                            String scriptContent = StringUtils.isNotEmpty(ivrTaskTemplateScript1.getIvrtext()) ? ivrTaskTemplateScript1.getIvrtext() : ivrTaskTemplateScript1.getScriptContent();
+
                             phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + getObject(serviceSubtask, scriptContent));
                             redisCache.deleteObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid());
                             redisCache.setCacheObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone(), ivrTaskTemplateScript1.getId().toString());
@@ -1603,6 +1611,9 @@
             for (String key : map.keySet()) {
                 scriptContent = scriptContent.replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "");
             }
+        }
+        if (StringUtils.isEmpty(scriptContent)) {
+            return scriptContent;
         }
         scriptContent = scriptContent.replace("${name}", StringUtils.isNotEmpty(serviceSubtask.getSendname()) ? serviceSubtask.getSendname() : "");
         scriptContent = scriptContent.replace("${dzz}", StringUtils.isNotEmpty(serviceSubtask.getAddr()) ? serviceSubtask.getAddr() : "");
@@ -1676,10 +1687,9 @@
         //蹇呴』绛塧che-exist鍏ㄩ儴鎵撳畬鎵嶈兘鎷夊彇涓嬩竴鎵癸紙涓昏鏄�曟墍鏈夌殑鏁版嵁閮藉爢鍦ㄧ數璇濈殑缂撳瓨閲岋紝鍦ㄨ瀹氱殑鏃堕棿鎵撲笉瀹岋級
         long existSize = listOps.size("cache-exist");
         if (existSize > 0) return pullTaskVOList;
-
+        int count = 0;
         long size = listOps.size("cache-0");
         log.error("---------鎵撶數璇濅箣鍓嶇紦瀛樹腑鐨勬暟鎹噺锛歿}", size);
-        int count = 0;
         if (size > 0) {
             //phoneCount()  閫氳繃缁欏嚭鐨勬瘡涓皬鏃堕渶瑕佹墦鍑虹殑鐢佃瘽閲忥紝绠楀嚭鍒版櫄涓�8鐐逛竴鐐硅兘鎵撳嚭澶氬皯涓數璇濓紝鑾峰彇鍒版�婚噺
             //濡傛灉闇�瑕佺珛鍗虫墽琛岀殑鏁版嵁閲忓ぇ浜庝竴澶╄鎵ц鐨勪笂闄愶紝鍒欏彧鍙栦笂闄愮殑鏁伴噺锛屽叾瀹冪殑鍒欐斁鍥瀝edis涓�
@@ -1688,6 +1698,7 @@
                 cacheList = listOps.range("cache-0", 0, count - 1);
             }
         }
+
 
         log.error("浠诲姟鎷夊彇cache-0鐨勫�兼槸澶氬皯锛歿}", cacheList);
         //  cache-0涓虹珛鍗冲彂璧风殑,鍏跺畠鐨勫厛鎺ㄨ繜
@@ -1699,17 +1710,21 @@
         } else {
             for (int i = 1; i < 6; i++) {
                 //鍙栧嚭浠巆ache-1 鍒� cache-5鐨勭涓�涓瓙浠诲姟淇℃伅
-                Long size1 = listOps.size("cache-" + i);
-                if (size1 == null || size1 == 0) continue;
-                int count1 = Math.min(phoneCount(), size1.intValue());
-                List<String> value = listOps.range("cache-0" + i, 0, count1 - 1);
+                try {
+                    Long size1 = listOps.size("cache-" + i);
+                    if (size1 == null || size1 == 0) continue;
+                    int count1 = Math.min(phoneCount(), size1.intValue());
+                    List<String> value = listOps.range("cache-0" + i, 0, count1 - 1);
 
-                List<PullTaskVO> pullTaskVOList2 = getPullTaskList(value, "cache-" + i);
-                if (CollectionUtils.isNotEmpty(pullTaskVOList2) && pullTaskVOList2.size() > 0) {
-                    pullTaskVOList.addAll(pullTaskVOList2);
+                    List<PullTaskVO> pullTaskVOList2 = getPullTaskList(value, "cache-" + i);
+                    if (CollectionUtils.isNotEmpty(pullTaskVOList2) && pullTaskVOList2.size() > 0) {
+                        pullTaskVOList.addAll(pullTaskVOList2);
+                    }
+                    //灏嗗鐞嗚繃鐨勬暟鎹垹闄�
+                    listOps.trim("cache-0" + i, count1, -1);
+                } catch (Exception e) {
+//                    log.error("鐪嬬潃鐑�");
                 }
-                //灏嗗鐞嗚繃鐨勬暟鎹垹闄�
-                listOps.trim("cache-0" + i, count1, -1);
             }
         }
         //existList鐢ㄦ潵璁板綍鎺ヤ笅鏉ラ渶瑕佹墽琛岀殑瀛愪换鍔D
@@ -2068,7 +2083,7 @@
                     ServiceSubtaskDetail ssd = new ServiceSubtaskDetail();
                     ssd.setSubId(serviceSubtaskDetail.getSubId());
                     ssd.setTaskid(serviceSubtaskDetail.getTaskid());
-                    ssd.setTemplatequestionnum(serviceSubtaskDetail.getTemplatequestionnum());
+                    ssd.setScriptid(serviceSubtaskDetail.getScriptid());
                     if (serviceSubtaskDetail.getSubId() != null) {
                         ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(serviceSubtaskDetail.getSubId());
                         ssd.setGuid(serviceSubtask.getGuid());
@@ -2194,6 +2209,23 @@
                 continue;
             }
             ServiceSubtaskStatistic statistic = getStatistic(serviceSubtaskList);
+
+            //鍙婃椂鐜�
+            ServiceSubtask ss = new ServiceSubtask();
+            ss.setOrgid(serviceSubtaskList.get(0).getOrgid());
+            if (CollectionUtils.isNotEmpty(serviceSubtaskCountReq.getLeavehospitaldistrictcodes())) {
+                ss.setLeavehospitaldistrictcode(serviceSubtaskList.get(0).getLeavehospitaldistrictcode());
+            } else {
+                ss.setDeptcode(serviceSubtaskList.get(0).getDeptcode());
+            }
+            ss.setStarttime(serviceSubtaskCountReq.getStartTime());
+            ss.setEndtime(serviceSubtaskCountReq.getEndTime());
+            if (serviceSubtaskCountReq.getEndTime() != null && new Date().before(serviceSubtaskCountReq.getEndTime())) {
+                ss.setEndtime(new Date());
+            }
+            Double jsRate = serviceSubtaskMapper.selectTimelyRate(ss);
+            statistic.setRate(jsRate);
+
             if (ObjectUtils.isNotEmpty(statistic)) {
                 serviceSubtaskStatistics.add(statistic);
             }
@@ -2220,6 +2252,7 @@
             if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
                 serviceSubtaskStatistic.setFollowUpNeeded(serviceSubtaskStatistic.getFollowUpNeeded() + 1L);
             }
+
             //棣栨鍑洪櫌闅忚
             if (serviceSubtask.getVisitCount() != null && serviceSubtask.getVisitCount() == 1) {
                 if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
@@ -2288,48 +2321,6 @@
 
 
         }
-        /*serviceSubtaskStatistic.setServiceCount(serviceSubtaskList.size());
-        for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
-            //涓嶉殢璁挎暟閲�
-            if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 4) {
-                serviceSubtaskStatistic.setBzxCount(serviceSubtaskStatistic.getBzxCount() + 1L);
-            }
-            //搴旈殢璁挎暟閲�
-            if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
-                serviceSubtaskStatistic.setYsfCount(serviceSubtaskStatistic.getYsfCount() + 1L);
-            }
-            //鍙戦�佸け璐ユ暟閲�
-            if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 5) {
-                serviceSubtaskStatistic.setFssbCount(serviceSubtaskStatistic.getFssbCount() + 1L);
-            }
-            //寰呭彂閫佹暟閲�
-            if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 2) {
-                serviceSubtaskStatistic.setDfsCount(serviceSubtaskStatistic.getDfsCount() + 1L);
-            }
-            //宸插彂閫佹暟閲�
-            if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 3) {
-                serviceSubtaskStatistic.setYfsCount(serviceSubtaskStatistic.getYfsCount() + 1L);
-            }
-            //宸插畬鎴愭暟閲�
-            if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 6) {
-                //宸插彂閫侊紝鍖呭惈宸插畬鎴�
-                serviceSubtaskStatistic.setYfsCount(serviceSubtaskStatistic.getYfsCount() + 1L);
-                serviceSubtaskStatistic.setYwcCount(serviceSubtaskStatistic.getYwcCount() + 1L);
-            }
-
-            if (StringUtils.isNotEmpty(serviceSubtask.getExcep()) && serviceSubtask.getExcep().equals("1")) {
-                //寮傚父鏍囪瘑
-                serviceSubtaskStatistic.setYczs(serviceSubtaskStatistic.getYczs() + 1L);
-            }
-        }
-        //闅忚瀹屾垚鐜�=宸插畬鎴�/搴旈殢璁块噺
-        if (serviceSubtaskStatistic.getYwcCount() == 0 || CollectionUtils.isEmpty(serviceSubtaskList)) {
-            serviceSubtaskStatistic.setSfwcl("0");
-        } else {
-//            BigDecimal multiply = BigDecimal.valueOf(serviceSubtaskStatistic.getYfsCount()).divide(BigDecimal.valueOf(serviceSubtaskList.size()), 2, BigDecimal.ROUND_HALF_UP);
-            BigDecimal multiply = new BigDecimal(serviceSubtaskStatistic.getYwcCount().toString()).divide(new BigDecimal(serviceSubtaskStatistic.getYsfCount().toString()), 2, BigDecimal.ROUND_HALF_UP);
-            serviceSubtaskStatistic.setSfwcl(multiply.toString());
-        }*/
 
 
         return serviceSubtaskStatistic;
@@ -2347,6 +2338,8 @@
     }
 
     private ServiceSubtaskDetail getServiceSubtaskDetail(PhoneCallReqYQVO phoneCallReqYQVO, IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO, ServiceSubtask serviceSubtask, IvrTaskTemplate ivrTaskTemplate) {
+        log.info("-----------------phoneCallReqYQVO鐨勫�间负锛歿}", phoneCallReqYQVO);
+
         ServiceSubtaskDetail serviceSubtaskDetail = new ServiceSubtaskDetail();
         serviceSubtaskDetail.setSubId(Long.valueOf(phoneCallReqYQVO.getTaskid()));
         ServiceSubtask serviceSubtask1 = serviceSubtaskMapper.selectServiceSubtaskById(Long.valueOf(phoneCallReqYQVO.getTaskid()));
@@ -2370,7 +2363,7 @@
         serviceSubtaskDetail.setSentEnd(1L);
         serviceSubtaskDetail.setTemplateid(ivrTaskTemplate.getId().toString());
         serviceSubtaskDetail.setTemplatequestionnum(ivrTaskTemplateScriptVO.getScriptno());
-        serviceSubtaskDetail.setQuestiontext(ivrTaskTemplateScriptVO.getIvrtext());
+        serviceSubtaskDetail.setQuestiontext(StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrtext()) ? ivrTaskTemplateScriptVO.getIvrtext() : ivrTaskTemplateScriptVO.getScriptContent());
         serviceSubtaskDetail.setQuestionvoice(phoneCallReqYQVO.getRecordpath());
         serviceSubtaskDetail.setCategoryname(ivrTaskTemplateScriptVO.getScriptType());
         serviceSubtaskDetail.setTargetoptions(ivrTaskTemplateScriptVO.getTargetOptions());

--
Gitblit v1.9.3