From ff6e84a8f969e2196041c500af051e3e33c46009 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期六, 22 二月 2025 18:16:32 +0800 Subject: [PATCH] 代码提交 --- smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 33 ++++++++++++++++++++++++--------- 1 files changed, 24 insertions(+), 9 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 38d74a8..3dd094c 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java @@ -124,6 +124,8 @@ @Value("${phoneUpEveryHour}") private Integer phoneUpEveryHour; + @Value("${phoneEndHour}") + private Integer phoneEndHour; /** * 鏌ヨ鍗曚竴浠诲姟锛堥殢璁匡級 @@ -197,7 +199,7 @@ patTaskRelevance.setPhone(serviceSubtask1.getPhone()); patTaskRelevance.setTelcode(serviceSubtask1.getPhone()); patTaskRelevance.setAddr(serviceSubtask1.getAddr()); - patTaskRelevance.setDiagname(serviceSubtask1.getDiagname()); + patTaskRelevance.setDiagname(serviceSubtask1.getLeavediagname()); patTaskRelevance.setPatid(serviceSubtask1.getPatid()); patTaskRelevance.setSendStatus(serviceSubtask1.getSendstate()); patTaskRelevance.setDeptCode(serviceSubtask1.getDeptcode()); @@ -224,7 +226,7 @@ patTaskRelevance.setDeptName(serviceSubtask1.getDeptname()); patTaskRelevance.setDeptCode(serviceSubtask1.getDeptcode()); patTaskRelevance.setBedNo(serviceSubtask1.getBedNo()); - patTaskRelevance.setDiagname(serviceSubtask1.getDiagname()); + patTaskRelevance.setDiagname(serviceSubtask1.getLeavediagname()); patTaskRelevance.setPatid(serviceSubtask1.getPatid()); patTaskRelevance.setSendStatus(serviceSubtask1.getSendstate()); patTaskRelevance.setLeavehospitaldistrictcode(serviceSubtask1.getLeavehospitaldistrictcode()); @@ -249,8 +251,8 @@ public List<ServiceSubtask> patItem(ServiceSubtaskVO serviceSubtaskVO) { List<ServiceSubtask> selectServiceSubtaskList = this.selectServiceSubtaskList(serviceSubtaskVO); //鏍规嵁鍑洪櫌 鏃堕棿鍊掑簭 -// List<ServiceSubtask> sortedServiceSubtaskList = selectServiceSubtaskList.stream().sorted(Comparator.comparing(ServiceSubtask::getEndtime).reversed()).collect(Collectors.toList()); - return selectServiceSubtaskList; + List<ServiceSubtask> sortedServiceSubtaskList = selectServiceSubtaskList.stream().sorted(Comparator.comparing(ServiceSubtask::getEndtime, Comparator.nullsLast(Comparator.naturalOrder())).reversed()).collect(Collectors.toList()); + return sortedServiceSubtaskList; } @Override @@ -1452,7 +1454,9 @@ //phoneCount() 閫氳繃缁欏嚭鐨勬瘡涓皬鏃堕渶瑕佹墦鍑虹殑鐢佃瘽閲忥紝绠楀嚭鍒版櫄涓�8鐐逛竴鐐硅兘鎵撳嚭澶氬皯涓數璇濓紝鑾峰彇鍒版�婚噺 //濡傛灉闇�瑕佺珛鍗虫墽琛岀殑鏁版嵁閲忓ぇ浜庝竴澶╄鎵ц鐨勪笂闄愶紝鍒欏彧鍙栦笂闄愮殑鏁伴噺锛屽叾瀹冪殑鍒欐斁鍥瀝edis涓� count = Math.min(phoneCount(), (int) size); - cacheList = listOps.range("cache-0", 0, count - 1); + if (count != 0) { + cacheList = listOps.range("cache-0", 0, count - 1); + } } log.error("浠诲姟鎷夊彇cache-0鐨勫�兼槸澶氬皯锛歿}", cacheList); @@ -1507,6 +1511,10 @@ PullTaskVO pullTaskVO = new PullTaskVO(); String subId = subIds.get(i).trim(); ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(Long.valueOf(subId)); + if (ObjectUtils.isEmpty(serviceSubtask)) { + log.error("璇ubId鏈夐棶棰橈紝鍦ㄨ〃涓煡璇笉鍒帮細{}", subId); + continue; + } ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); IvrTaskTemplate ivrTaskTemplate = ivrTaskTemplateService.selectIvrTaskTemplateByID(serviceSubtask.getTemplateid()); if (ObjectUtils.isEmpty(ivrTaskTemplate)) continue; @@ -1850,6 +1858,7 @@ //鏃犱汉鎺ュ惉 getSmsCompensate(Long.valueOf(phoneCallRecordVO.getTaskid())); redisCache.deleteObject(phoneCallRecordVO.getTaskid() + "recordAccept-hungup"); + redisCache.removeElementFromList("cache-exist", phoneCallRecordVO.getTaskid()); } else if (ObjectUtils.isNotEmpty(cacheObject) && String.valueOf(cacheObject).equals("2")) { // if (phoneCallRecordVO.getAnswered() != null && phoneCallRecordVO.getAnswered() == true) { log.error("鏈変汉鎺ョ數璇濅簡锛屽苟涓斿畬浜�"); @@ -1867,6 +1876,8 @@ redisCache.deleteObject(phoneCallRecordVO.getTaskid() + "recordAccept-hungup"); } else { //鎮h�呮嫆缁濋殢璁� + //鍏堟妸璇ubId浠巆ache_exist涓墧闄わ紝鍙鏈夊洖璋冨氨鍓旈櫎锛堢洰鐨勬槸锛屽敖蹇cache-exist涓虹┖锛屽幓缂撳瓨涓嬩竴鎵硅鎵撶殑鐢佃瘽;杩欓噷鍓旈櫎涓嶅奖鍝嶇數璇濈殑姝e父涓氬姟锛� + redisCache.removeElementFromList("cache-exist", phoneCallRecordVO.getTaskid()); ServiceSubtask serviceSubtask = new ServiceSubtask(); serviceSubtask.setRemark("鐢佃瘽鎺ラ�氭垚鍔燂紝鎮h�呮嫆缁濋殢璁�"); serviceSubtask.setId(Long.valueOf(phoneCallRecordVO.getTaskid())); @@ -1925,7 +1936,7 @@ public List<ServiceSubtaskStatistic> getSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq) { log.error("getSfStatistics鐨勫叆鍙備负锛歿}", serviceSubtaskCountReq); List<ServiceSubtaskStatistic> serviceSubtaskStatistics = new ArrayList<>(); - Map<String, List<ServiceSubtask>> collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(ServiceSubtask::getLeavehospitaldistrictname)); + Map<String, List<ServiceSubtask>> collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getLeavehospitaldistrictname()).orElse("Unknown"))); for (List<ServiceSubtask> serviceSubtaskList : collect.values()) { if (CollectionUtils.isEmpty(serviceSubtaskList)) { continue; @@ -2079,13 +2090,17 @@ // 褰撳墠鏃堕棿 LocalTime currentTime = LocalTime.now(); // 鐩爣鏃堕棿锛堟櫄涓� 8 鐐癸級 - LocalTime targetTime = LocalTime.of(20, 0); + LocalTime targetTime = LocalTime.of(phoneEndHour, 0); // 璁$畻褰撳墠鏃堕棿鍒扮洰鏍囨椂闂寸殑鏃堕暱 Duration duration = Duration.between(currentTime, targetTime); // 鑾峰彇鍓╀綑鏃堕棿鐨勫皬鏃舵暟 - long remainingHours = duration.toHours(); + long remainingHours = 0; + long remainingMinutes = duration.toMinutes(); //濡傛灉瓒呰繃8鐐�,灏辫缃负0 - if (remainingHours < 0) remainingHours = 0; + //璺濈缁撴潫鏃堕棿灏忎簬20鍒嗛挓锛屽氨涓嶆媺鍙栦簡 + if (remainingMinutes < 20) remainingHours = 0; + else if (remainingMinutes < 60 && remainingMinutes > 20) remainingHours = 1; + else if (remainingMinutes > 60) remainingHours = remainingMinutes / 60; // 璁$畻鍓╀綑鍙互鎵撶殑鐢佃瘽鏁� int remainingCalls = (int) (remainingHours * phoneUpEveryHour); return remainingCalls; -- Gitblit v1.9.3