From d5222c7ae76d34cf8a7e32fee1ed15c988c3b330 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期五, 14 三月 2025 20:30:42 +0800 Subject: [PATCH] 代码提交 --- smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 341 ++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 264 insertions(+), 77 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..11399ff 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java @@ -66,6 +66,12 @@ private IServiceTaskdeptService serviceTaskdeptService; @Autowired + private IServiceTaskdiagService serviceTaskdiagService; + + @Autowired + private IServiceTaskoperService serviceTaskoperService; + + @Autowired private RedisCache redisCache; @Autowired @@ -124,6 +130,8 @@ @Value("${phoneUpEveryHour}") private Integer phoneUpEveryHour; + @Value("${phoneEndHour}") + private Integer phoneEndHour; /** * 鏌ヨ鍗曚竴浠诲姟锛堥殢璁匡級 @@ -197,7 +205,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 +232,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 +257,17 @@ 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 = null; + if (serviceSubtaskVO.getSort() == null || serviceSubtaskVO.getSort() == 0) + sortedServiceSubtaskList = selectServiceSubtaskList.stream().sorted(Comparator.comparing(ServiceSubtask::getEndtime, Comparator.nullsLast(Comparator.naturalOrder()))).collect(Collectors.toList()); + if (serviceSubtaskVO.getSort() != null && serviceSubtaskVO.getSort() == 1) + sortedServiceSubtaskList = selectServiceSubtaskList.stream().sorted(Comparator.comparing(ServiceSubtask::getEndtime, Comparator.nullsLast(Comparator.naturalOrder())).reversed()).collect(Collectors.toList()); + if (serviceSubtaskVO.getSort() != null && serviceSubtaskVO.getSort() == 2) + sortedServiceSubtaskList = selectServiceSubtaskList.stream().sorted(Comparator.comparing(ServiceSubtask::getLongSendTime, Comparator.nullsLast(Comparator.naturalOrder()))).collect(Collectors.toList()); + if (serviceSubtaskVO.getSort() != null && serviceSubtaskVO.getSort() == 3) + sortedServiceSubtaskList = selectServiceSubtaskList.stream().sorted(Comparator.comparing(ServiceSubtask::getLongSendTime, Comparator.nullsLast(Comparator.naturalOrder())).reversed()).collect(Collectors.toList()); + + return sortedServiceSubtaskList; } @Override @@ -316,6 +333,8 @@ @Override public Boolean updateServiceSubtask(ServiceSubtask serviceSubtask) { serviceSubtask.setUpdateTime(DateUtils.getNowDate()); + if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 6) + serviceSubtask.setFinishtime(new Date()); return serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); } @@ -375,35 +394,75 @@ serviceTask.setTemplatename(tempName); serviceTask.setLeaveldeptcodes(serviceTaskVO.getLeaveldeptcodes()); serviceTask.setLeavehospitaldistrictcode(serviceTask.getLeavehospitaldistrictcode()); - if (serviceTaskVO.getLongTask() == 1L) serviceTask.setSendState(2L); + serviceTask.setSendState(2L); serviceTaskService.insertServiceTask(serviceTask); - ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); - serviceTaskdept.setTaskId(serviceTask.getTaskid()); - serviceTaskdept.setTaskName(serviceTask.getTaskName()); - serviceTaskdept.setLongtask(0L); - serviceTaskdept.setGuid(serviceTask.getGuid()); - serviceTaskdept.setOrgid(serviceTask.getOrgid()); - serviceTaskdept.setOrgid(serviceTask.getOrgid()); - if (serviceTaskVO.getLongTask() == 1) serviceTaskdept.setLongtask(1L); - if (StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) { - String[] deptcodes = serviceTaskVO.getDeptcode().split(","); - for (String deptCode : deptcodes) { - serviceTaskdept.setDeptCode(deptCode); - serviceTaskdept.setDeptType("1"); - serviceTaskdept.setServiceType(serviceTaskVO.getServiceType()); - serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept); + log.error("----serviceTaskVO.getAppltype()鐨勫�间负锛歿}", serviceTaskVO.getAppltype()); + if (StringUtils.isNotEmpty(serviceTaskVO.getAppltype())) { + if (serviceTaskVO.getAppltype().equals("3")) { + ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag(); + serviceTaskdiag.setTaskId(serviceTask.getTaskid()); + serviceTaskdiag.setTaskName(serviceTask.getTaskName()); + serviceTaskdiag.setLongtask(0L); + if (serviceTaskVO.getLongTask() == 1) serviceTaskdiag.setLongtask(1L); + serviceTaskdiag.setIcd10code(serviceTaskVO.getIcd10code()); + serviceTaskdiag.setIcd10name(serviceTaskVO.getIcd10name()); + serviceTaskdiag.setGuid(serviceTask.getGuid()); + serviceTaskdiag.setOrgid(serviceTask.getOrgid()); + serviceTaskdiag.setCreateTime(new Date()); + log.error("----serviceTaskdiag鐨勫�间负锛歿}", serviceTaskdiag); + if (StringUtils.isNotEmpty(serviceTaskVO.getIcd10code())) { + String[] Icd10codes = serviceTaskVO.getIcd10code().split(","); + for (String icd10code : Icd10codes) { + serviceTaskdiag.setIcd10code(icd10code); + serviceTaskdiagService.insertServiceTaskdiag(serviceTaskdiag); + } + } + } else if (serviceTaskVO.getAppltype().equals("4")) { + ServiceTaskoper serviceTaskoper = new ServiceTaskoper(); + serviceTaskoper.setOpcode(serviceTaskVO.getOpcode()); + serviceTaskoper.setOpdesc(serviceTaskVO.getOpdesc()); + serviceTaskoper.setTaskId(serviceTask.getTaskid()); + serviceTaskoper.setTaskName(serviceTask.getTaskName()); + serviceTaskoper.setLongtask(0L); + serviceTaskoper.setGuid(serviceTask.getGuid()); + serviceTaskoper.setOrgid(serviceTask.getOrgid()); + serviceTaskoper.setCreateTime(new Date()); + if (serviceTaskVO.getLongTask() == 1) serviceTaskoper.setLongtask(1L); + if (StringUtils.isNotEmpty(serviceTaskVO.getOpcode())) { + String[] opcodes = serviceTaskVO.getOpcode().split(","); + for (String opcode : opcodes) { + serviceTaskoper.setOpcode(opcode); + log.error("----serviceTaskoper鐨勫�间负锛歿}", serviceTaskoper); + serviceTaskoperService.insertServiceTaskoper(serviceTaskoper); + } + } + + } else { + ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); + serviceTaskdept.setTaskId(serviceTask.getTaskid()); + serviceTaskdept.setTaskName(serviceTask.getTaskName()); + serviceTaskdept.setLongtask(0L); + if (serviceTaskVO.getLongTask() == 1) serviceTaskdept.setLongtask(1L); + if (StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) { + String[] deptcodes = serviceTaskVO.getDeptcode().split(","); + for (String deptCode : deptcodes) { + serviceTaskdept.setDeptCode(deptCode); + serviceTaskdept.setDeptType("1"); + serviceTaskdept.setServiceType(serviceTaskVO.getServiceType()); + serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept); + } + } + if (StringUtils.isNotEmpty(serviceTaskVO.getLeavehospitaldistrictcode())) { + String[] leavehospitaldistrictcodes = serviceTaskVO.getLeavehospitaldistrictcode().split(","); + for (String districtcode : leavehospitaldistrictcodes) { + serviceTaskdept.setDeptCode(districtcode); + serviceTaskdept.setDeptType("2"); + serviceTaskdept.setServiceType(serviceTaskVO.getServiceType()); + serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept); + } + } } } - if (StringUtils.isNotEmpty(serviceTaskVO.getLeavehospitaldistrictcode())) { - String[] leavehospitaldistrictcodes = serviceTaskVO.getLeavehospitaldistrictcode().split(","); - for (String districtcode : leavehospitaldistrictcodes) { - serviceTaskdept.setDeptCode(districtcode); - serviceTaskdept.setDeptType("2"); - serviceTaskdept.setServiceType(serviceTaskVO.getServiceType()); - serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept); - } - } -// if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1 && serviceTaskVO.getPatCycle() == 0L) { Map<String, Integer> map = new HashMap<>(); map.put("taskId", serviceTask.getTaskid().intValue()); @@ -443,6 +502,8 @@ serviceSubtask.setEndtime(patTaskRelevance.getEndtime()); serviceSubtask.setNurseId(patTaskRelevance.getNurseId()); serviceSubtask.setNurseName(patTaskRelevance.getNurseName()); + serviceSubtask.setCreateBy(serviceTask.getCreateBy()); + serviceSubtask.setUpdateBy(serviceTask.getCreateBy()); if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1) serviceSubtask.setLongSendTime(patTaskRelevance.getLongSendTime()); serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); @@ -456,53 +517,147 @@ serviceTask.setSendTimeSlot(JSON.toJSONString(serviceTaskVO.getSendTimeslot())); //淇敼鎿嶄綔锛岄渶瑕佸皢stopState鐘舵��+1 ServiceTask serviceTask1 = serviceTaskService.selectServiceTaskByTaskid(serviceTask.getTaskid()); - long l = serviceTask1.getStopState() + 1; - serviceTask.setStopState(l); +// long l = serviceTask1.getStopState() + 1; +// serviceTask.setStopState(l); + //鑾峰彇鍒拌浠诲姟鎵�鏈夌殑鏈嶅姟锛屽苟浠庨槦鍒楅噷鍒犻櫎 + ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); + serviceSubtaskVO.setTaskid(serviceTask1.getTaskid()); + serviceSubtaskVO.setSendstate(2L); + List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); + serviceSubtaskVO.setSendstate(1L); + List<ServiceSubtask> serviceSubtaskList1 = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); + if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { + if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList.addAll(serviceSubtaskList1); + } else { + if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList = serviceSubtaskList1; + } + if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { + for (ServiceSubtask serviceSubtask : serviceSubtaskList) { + log.error("insertOrUpdateTask闇�瑕佺Щ闄ょ殑subId涓猴細{}", serviceSubtask.getId().toString()); + serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId()); + redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-2", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-3", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-4", serviceSubtask.getId().toString()); + } + } + if (serviceTaskVO.getLibtemplateid() != null) serviceTask.setLibtemplateid(serviceTaskVO.getLibtemplateid().toString()); serviceTask.setTemplateid(serviceTaskVO.getTemplateid()); serviceTask.setLongTask(serviceTaskVO.getLongTask()); serviceTaskService.updateServiceTask(serviceTask); - ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); - serviceTaskdept.setTaskId(serviceTask.getTaskid()); - serviceTaskdept.setTaskName(serviceTask.getTaskName()); - serviceTaskdept.setLongtask(0L); - if (serviceTaskVO.getLongTask() == 1) serviceTaskdept.setLongtask(1L); - if (StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) { - String[] deptcodes = serviceTaskVO.getDeptcode().split(","); - for (String deptCode : deptcodes) { - serviceTaskdept.setDeptCode(deptCode); - serviceTaskdept.setDeptType("1"); - serviceTaskdept.setServiceType(serviceTaskVO.getServiceType()); + if (serviceTaskVO.getAppltype().equals("1") || serviceTaskVO.getAppltype().equals("2")) { + ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); + serviceTaskdept.setTaskId(serviceTask.getTaskid()); + serviceTaskdept.setTaskName(serviceTask.getTaskName()); + serviceTaskdept.setLongtask(0L); + serviceTaskdept.setOrgid(serviceTaskVO.getOrgid()); + if (serviceTaskVO.getLongTask() == 1) serviceTaskdept.setLongtask(1L); + if (StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) { + String[] deptcodes = serviceTaskVO.getDeptcode().split(","); + for (String deptCode : deptcodes) { + serviceTaskdept.setDeptCode(deptCode); + serviceTaskdept.setDeptType("1"); + serviceTaskdept.setServiceType(serviceTaskVO.getServiceType()); + ServiceTaskdept st = new ServiceTaskdept(); + st.setDeptCode(deptCode); + st.setTaskId(serviceTask.getTaskid()); + List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptService.selectServiceTaskdeptList(st); + if (CollectionUtils.isEmpty(serviceTaskdepts)) { + serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept); + } else { + serviceTaskdeptService.updateServiceTaskdept(serviceTaskdept); + } + } + } + if (StringUtils.isNotEmpty(serviceTaskVO.getLeavehospitaldistrictcode())) { + String[] leavehospitaldistrictcodes = serviceTaskVO.getLeavehospitaldistrictcode().split(","); + for (String districtcode : leavehospitaldistrictcodes) { + serviceTaskdept.setDeptCode(districtcode); + serviceTaskdept.setDeptType("2"); + serviceTaskdept.setServiceType(serviceTaskVO.getServiceType()); + //鍏堥�氳繃浠诲姟ID銆侀儴闂╟ode,鍒ゆ柇ServiceTaskdept鏄惁瀛樺湪锛屼笉瀛樺湪鍒欐柊澧烇紝瀛樺湪鍒欎慨鏀� + ServiceTaskdept st = new ServiceTaskdept(); + st.setDeptCode(districtcode); + st.setTaskId(serviceTask.getTaskid()); + List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptService.selectServiceTaskdeptList(st); + if (CollectionUtils.isEmpty(serviceTaskdepts)) { + serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept); + } else { + serviceTaskdeptService.updateServiceTaskdept(serviceTaskdept); + } + } + } + } else if (serviceTaskVO.getAppltype().equals("3")) { + ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag(); + serviceTaskdiag.setTaskId(serviceTask.getTaskid()); + serviceTaskdiag.setTaskName(serviceTask.getTaskName()); + if (StringUtils.isEmpty(serviceTaskVO.getIcd10code())) { + throw new BaseException("鐤剧梾缂栫爜涓虹┖"); + } +// serviceTaskdiag.setIcd10code(serviceTaskVO.getIcd10code()); - ServiceTaskdept st = new ServiceTaskdept(); - st.setDeptCode(deptCode); - st.setTaskId(serviceTask.getTaskid()); - List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptService.selectServiceTaskdeptList(st); - if (CollectionUtils.isEmpty(serviceTaskdepts)) { - serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept); - } else { - serviceTaskdeptService.updateServiceTaskdept(serviceTaskdept); + serviceTaskdiag.setLongtask(1L); + serviceTaskdiag.setIcd10name(serviceTaskVO.getIcd10name()); + serviceTaskdiag.setGuid(serviceTask.getGuid()); + serviceTaskdiag.setOrgid(serviceTask.getOrgid()); + serviceTaskdiag.setUpdateTime(new Date()); + if (StringUtils.isNotEmpty(serviceTaskVO.getIcd10code())) { + String[] icd10codes = serviceTaskVO.getIcd10code().split(","); + for (String icdcode : icd10codes) { + //鍏堟煡璇竴涓嬫槸鍚﹀瓨鍦� + ServiceTaskdiag serviceTaskdiag2 = new ServiceTaskdiag(); + serviceTaskdiag2.setTaskId(serviceTaskVO.getTaskid()); + serviceTaskdiag2.setIcd10code(icdcode); + List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagService.selectServiceTaskdiagList(serviceTaskdiag2); + serviceTaskdiag.setIcd10code(icdcode); + log.error("----serviceTaskdiag鏇存柊鐨勫�间负锛歿}", serviceTaskdiag); + if (CollectionUtils.isNotEmpty(serviceTaskdiags)) { + serviceTaskdiag.setId(serviceTaskdiags.get(0).getId()); + serviceTaskdiagService.updateServiceTaskdiag(serviceTaskdiag); + } else { + serviceTaskdiagService.insertServiceTaskdiag(serviceTaskdiag); + } } } - } - if (StringUtils.isNotEmpty(serviceTaskVO.getLeavehospitaldistrictcode())) { - String[] leavehospitaldistrictcodes = serviceTaskVO.getLeavehospitaldistrictcode().split(","); - for (String districtcode : leavehospitaldistrictcodes) { - serviceTaskdept.setDeptCode(districtcode); - serviceTaskdept.setDeptType("2"); - serviceTaskdept.setServiceType(serviceTaskVO.getServiceType()); - //鍏堥�氳繃浠诲姟ID銆侀儴闂╟ode,鍒ゆ柇ServiceTaskdept鏄惁瀛樺湪锛屼笉瀛樺湪鍒欐柊澧烇紝瀛樺湪鍒欎慨鏀� - ServiceTaskdept st = new ServiceTaskdept(); - st.setDeptCode(districtcode); - st.setTaskId(serviceTask.getTaskid()); - List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptService.selectServiceTaskdeptList(st); - if (CollectionUtils.isEmpty(serviceTaskdepts)) { - serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept); - } else { - serviceTaskdeptService.updateServiceTaskdept(serviceTaskdept); + + + } else if (serviceTaskVO.getAppltype().equals("4")) { + ServiceTaskoper serviceTaskoper = new ServiceTaskoper(); + if (StringUtils.isEmpty(serviceTaskVO.getOpcode())) { + throw new BaseException("鎵嬫湳缂栫爜涓虹┖"); + } +// serviceTaskoper.setOpcode(serviceTaskVO.getOpcode()); + serviceTaskoper.setOpdesc(serviceTaskVO.getOpdesc()); + serviceTaskoper.setTaskId(serviceTask.getTaskid()); + serviceTaskoper.setTaskName(serviceTask.getTaskName()); + serviceTaskoper.setLongtask(1L); + serviceTaskoper.setGuid(serviceTask.getGuid()); + serviceTaskoper.setOrgid(serviceTask.getOrgid()); + serviceTaskoper.setCreateTime(new Date()); + if (StringUtils.isNotEmpty(serviceTaskVO.getOpcode())) { + String[] opcodes = serviceTaskVO.getOpcode().split(","); + for (String opcode : opcodes) { + //鍏堟煡璇竴涓嬫槸鍚﹀瓨鍦� + ServiceTaskoper serviceTaskoper2 = new ServiceTaskoper(); + serviceTaskoper2.setTaskId(serviceTaskVO.getTaskid()); + serviceTaskoper2.setOpcode(serviceTaskVO.getOpcode()); + List<ServiceTaskoper> serviceTaskopers = serviceTaskoperService.selectServiceTaskoperList(serviceTaskoper2); + + serviceTaskoper.setOpcode(opcode); + log.error("----serviceTaskoper鐨勫�间负锛歿}", serviceTaskoper); + if (CollectionUtils.isNotEmpty(serviceTaskopers)) { + serviceTaskoper.setId(serviceTaskopers.get(0).getId()); + serviceTaskoperService.updateServiceTaskoper(serviceTaskoper); + } else { + serviceTaskoperService.insertServiceTaskoper(serviceTaskoper); + } } } + } if (ObjectUtils.isNotEmpty(serviceTaskVO.getIvrTaskTemplateVO())) { IvrTaskTemplate ivrTaskTemplate = new IvrTaskTemplate(); @@ -965,6 +1120,8 @@ double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE"); serviceSubtask.setScore(BigDecimal.valueOf(score)); serviceSubtask.setFinishtime(new Date()); + serviceSubtask.setUpdateTime(new Date()); + log.error("鍏堟洿鏂颁竴涓嬪垎鏁�,鐢佃瘽鐨剆erviceSubtask鐨勫�间负锛歿}", serviceSubtask); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); Map<String, String> map = delRedisValue(null, id.toString()); if (ObjectUtils.isNotEmpty(map)) redisCache.setCacheObject(map.get("cacheName"), map.get("val")); @@ -1452,7 +1609,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); @@ -1488,7 +1647,7 @@ } } if (existList.size() != 0) redisCache.setCacheListRight("cache-exist", existList); - log.error("-----------瀹為檯鎷夊彇鐨勭數璇濇暟鎹噺锛歿}", pullTaskVOList.size()); + log.error("-----------瀹為檯鎷夊彇鐨勭數璇濇暟鎹噺锛歿}", CollectionUtils.isNotEmpty(pullTaskVOList) ? pullTaskVOList.size() : null); return pullTaskVOList; } @@ -1507,6 +1666,18 @@ 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; + } + if (StringUtils.isEmpty(serviceSubtask.getPhone())) { + serviceSubtask.setRemark("鎵嬫満鍙蜂负绌�"); + serviceSubtask.setSendstate(4L); + serviceSubtask.setResult("error"); + serviceSubtask.setFinishtime(new Date()); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + continue; + } ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); IvrTaskTemplate ivrTaskTemplate = ivrTaskTemplateService.selectIvrTaskTemplateByID(serviceSubtask.getTemplateid()); if (ObjectUtils.isEmpty(ivrTaskTemplate)) continue; @@ -1523,7 +1694,10 @@ } } //濡傛灉ivrTaskTemplateScript涓虹┖锛屼篃灏辨病鏈夊線涓嬫墽琛岀殑蹇呰浜� - if (ObjectUtils.isEmpty(ivrTaskTemplateScript)) return null; + if (ObjectUtils.isEmpty(ivrTaskTemplateScript)) { + log.error("---------杩欎釜ivrTaskTemplate.getId()鐨勯棶棰樹负绌猴細{}", ivrTaskTemplate.getId()); + continue; + } //鑾峰彇閫氶厤绗﹀尮閰嶈繃鍚庣殑闂 String scrContent = getObject(serviceSubtask, ivrTaskTemplateScript.getIvrtext()); String kcb = serviceTask.getKcb() + "," + scrContent; @@ -1850,6 +2024,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("鏈変汉鎺ョ數璇濅簡锛屽苟涓斿畬浜�"); @@ -1861,16 +2036,22 @@ serviceSubtask.setRemark("鐢佃瘽鎷ㄦ墦宸插畬鎴�"); serviceSubtask.setSendstate(6L); serviceSubtask.setId(Long.valueOf(phoneCallRecordVO.getTaskid())); + serviceSubtask.setFinishtime(new Date()); + serviceSubtask.setUpdateTime(new Date()); + log.error("鐢佃瘽鎷ㄦ墦宸插畬鎴恠erviceSubtask鐨勫�间负:{}", serviceSubtask); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); //涓嬭浇鏂囦欢 ftpService.downloadFolder("/" + LocalDate.now().toString(), profile + "/upload/vadio/voice/" + LocalDate.now().toString()); 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())); serviceSubtask.setSendstate(6L); + serviceSubtask.setFinishtime(new Date()); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); int startIndex = phoneCallRecordVO.getRecord_path().indexOf("voice") + "voice".length() + 1; // 鍔�1鏄烦杩�/绗﹀彿 int endIndex = phoneCallRecordVO.getRecord_path().lastIndexOf("/"); @@ -1925,7 +2106,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; @@ -1976,12 +2157,12 @@ serviceSubtaskStatistic.setYczs(serviceSubtaskStatistic.getYczs() + 1L); } } - //闅忚瀹屾垚鐜�=宸插彂閫�/闅忚鏁� - if (serviceSubtaskStatistic.getYfsCount() == 0 || CollectionUtils.isEmpty(serviceSubtaskList)) { + //闅忚瀹屾垚鐜�=宸插畬鎴�/搴旈殢璁块噺 + 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.getYfsCount().toString()).divide(new BigDecimal(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()); } @@ -2049,10 +2230,12 @@ RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); String taskId = rsaPublicKeyExample.encryptedData(serviceSubtask.getTaskid().toString(), pub_key); String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key); + String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key); ServiceOutPath serviceOutPath = new ServiceOutPath(); serviceOutPath.setParam1(taskId); serviceOutPath.setParam2(patid); serviceOutPath.setCreateTime(new Date()); + serviceOutPath.setParam6(subId); iServiceOutPathService.insertServiceOutPath(serviceOutPath); //杞垚16杩涘埗 String format = String.format("%03X", serviceOutPath.getId()); @@ -2079,13 +2262,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