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