From 86b103f926cf92fff3d591c6ba07099ad8db3ad1 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期二, 01 七月 2025 15:53:04 +0800 Subject: [PATCH] 代码提交 --- smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 132 +++++++++++++++++++++++++++++++++++++++---- 1 files changed, 119 insertions(+), 13 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 032729b..58fe624 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java @@ -24,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.time.Duration; import java.time.LocalDate; @@ -156,6 +157,10 @@ return serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); } + public List<ServiceSubtask> selectServiceSubtaskListAgain(ServiceSubtaskVO serviceSubtaskVO) { + return serviceSubtaskMapper.selectServiceSubtaskListAgain(serviceSubtaskVO); + } + @Override public ServiceTaskVO queryTaskByCondition(ServiceSubtask serviceSubtask) { //瀹氫箟鎮h�呬笌鍗曚竴浠诲姟鍏宠仈琛ㄩ泦鍚� @@ -274,6 +279,7 @@ @Override public Map<String, Object> patItemCount(ServiceSubtaskVO serviceSubtaskVO) { + serviceSubtaskVO.setSendstate(null); serviceSubtaskVO.setPageSize(99999999); serviceSubtaskVO.setPageNum(1); List<ServiceSubtask> selectServiceSubtaskList = this.selectServiceSubtaskList(serviceSubtaskVO); @@ -284,11 +290,13 @@ Integer fssb = 0; Integer yfs = 0; Integer blq = 0; + Integer dsf = 0; for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) { if (serviceSubtask.getSendstate() == 4L) wzx = wzx + 1; else if (serviceSubtask.getSendstate() != 4L) ysf = ysf + 1; if (serviceSubtask.getSendstate() == 5L) fssb = fssb + 1; if (serviceSubtask.getSendstate() >= 3L || serviceSubtask.getSendstate() == 1L) yfs = yfs + 1; + if (serviceSubtask.getSendstate() == 2L) dsf = dsf + 1; if (serviceSubtask.getSendstate() == 1L) blq = blq + 1; if (serviceSubtask.getExcep().equals("1")) yc = yc + 1; } @@ -298,6 +306,7 @@ map.put("fssb", fssb); map.put("yfs", yfs); map.put("blq", blq); + map.put("dsf", dsf); return map; } @@ -337,7 +346,7 @@ serviceSubtask1.setIsVisitAgain(2); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1); return "鏃犻渶鍐嶆闅忚锛屼换鍔¤鏍囪涓嶅湪鎵ц"; - } else if (patArchive.getNotrequiredFlag().equals("1")) { + } else if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) { serviceSubtask1.setIsVisitAgain(2); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1); return "鏃犻渶鍐嶆闅忚锛屾偅鑰呰鏍囪涓嶉渶瑕佽鏈嶅姟"; @@ -352,6 +361,9 @@ serviceSubtask2.setSendstate(2L); serviceSubtask2.setCreateTime(new Date()); serviceSubtask2.setUpdateTime(new Date()); + serviceSubtask2.setVisitType(serviceSubtask.getVisitType()); + serviceSubtask2.setVisitDeptCode(serviceSubtask.getVisitDeptCode()); + serviceSubtask2.setVisitDeptName(serviceSubtask.getVisitDeptName()); int i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask2); if (i == 1) { //鏂板鎴愬姛鍚庯紝闇�瑕佸皢涔嬪墠鐨勪换鍔¤缃负涓嶈鍐嶉殢璁匡紙闃叉閲嶅鐐癸紝鐒跺悗閲嶅鐢熸垚锛� @@ -443,7 +455,7 @@ serviceTask.setCreateTime(new Date()); serviceTask.setUpdateTime(new Date()); serviceTaskService.insertServiceTask(serviceTask); - log.error("----serviceTaskVO.getAppltype()鐨勫�间负锛歿}", serviceTaskVO.getAppltype()); + log.info("----serviceTaskVO.getAppltype()鐨勫�间负锛歿}", serviceTaskVO.getAppltype()); if (StringUtils.isNotEmpty(serviceTaskVO.getAppltype())) { if (serviceTaskVO.getAppltype().equals("3")) { ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag(); @@ -456,7 +468,7 @@ serviceTaskdiag.setGuid(serviceTask.getGuid()); serviceTaskdiag.setOrgid(serviceTask.getOrgid()); serviceTaskdiag.setCreateTime(new Date()); - log.error("----serviceTaskdiag鐨勫�间负锛歿}", serviceTaskdiag); + log.info("----serviceTaskdiag鐨勫�间负锛歿}", serviceTaskdiag); if (StringUtils.isNotEmpty(serviceTaskVO.getIcd10code())) { String[] Icd10codes = serviceTaskVO.getIcd10code().split(","); for (String icd10code : Icd10codes) { @@ -479,7 +491,7 @@ String[] opcodes = serviceTaskVO.getOpcode().split(","); for (String opcode : opcodes) { serviceTaskoper.setOpcode(opcode); - log.error("----serviceTaskoper鐨勫�间负锛歿}", serviceTaskoper); + log.info("----serviceTaskoper鐨勫�间负锛歿}", serviceTaskoper); serviceTaskoperService.insertServiceTaskoper(serviceTaskoper); } } @@ -488,6 +500,7 @@ ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); serviceTaskdept.setTaskId(serviceTask.getTaskid()); serviceTaskdept.setTaskName(serviceTask.getTaskName()); + serviceTaskdept.setOrgid(serviceTask.getOrgid()); serviceTaskdept.setLongtask(0L); if (serviceTaskVO.getLongTask() == 1) serviceTaskdept.setLongtask(1L); if (StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) { @@ -540,7 +553,7 @@ serviceSubtask.setDeptname(patTaskRelevance.getDeptName()); serviceSubtask.setLeavehospitaldistrictcode(patTaskRelevance.getLeavehospitaldistrictcode()); serviceSubtask.setLeavehospitaldistrictname(patTaskRelevance.getLeavehospitaldistrictname()); - serviceSubtask.setType(serviceTaskVO.getHospType()); + serviceSubtask.setType(serviceTaskVO.getType()); serviceSubtask.setHospType(patTaskRelevance.getHospType()); serviceSubtask.setOpenid(patTaskRelevance.getOpenid()); serviceSubtask.setDrname(patTaskRelevance.getDrname()); @@ -553,6 +566,7 @@ serviceSubtask.setNurseName(patTaskRelevance.getNurseName()); serviceSubtask.setCreateBy(serviceTask.getCreateBy()); serviceSubtask.setUpdateBy(serviceTask.getCreateBy()); + serviceSubtask.setVisitTime(patTaskRelevance.getVisitTime()); if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1) serviceSubtask.setLongSendTime(patTaskRelevance.getLongSendTime()); serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); @@ -582,7 +596,7 @@ } if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { for (ServiceSubtask serviceSubtask : serviceSubtaskList) { - log.error("insertOrUpdateTask闇�瑕佺Щ闄ょ殑subId涓猴細{}", serviceSubtask.getId().toString()); + log.info("insertOrUpdateTask闇�瑕佺Щ闄ょ殑subId涓猴細{}", serviceSubtask.getId().toString()); serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId()); redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString()); @@ -672,7 +686,7 @@ serviceTaskdiag2.setIcd10code(icdcode); List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagService.selectServiceTaskdiagList(serviceTaskdiag2); serviceTaskdiag.setIcd10code(icdcode); - log.error("----serviceTaskdiag鏇存柊鐨勫�间负锛歿}", serviceTaskdiag); + log.info("----serviceTaskdiag鏇存柊鐨勫�间负锛歿}", serviceTaskdiag); if (CollectionUtils.isNotEmpty(serviceTaskdiags)) { serviceTaskdiag.setId(serviceTaskdiags.get(0).getId()); serviceTaskdiagService.updateServiceTaskdiag(serviceTaskdiag); @@ -706,7 +720,7 @@ List<ServiceTaskoper> serviceTaskopers = serviceTaskoperService.selectServiceTaskoperList(serviceTaskoper2); serviceTaskoper.setOpcode(opcode); - log.error("----serviceTaskoper鐨勫�间负锛歿}", serviceTaskoper); + log.info("----serviceTaskoper鐨勫�间负锛歿}", serviceTaskoper); if (CollectionUtils.isNotEmpty(serviceTaskopers)) { serviceTaskoper.setId(serviceTaskopers.get(0).getId()); serviceTaskoperService.updateServiceTaskoper(serviceTaskoper); @@ -749,7 +763,7 @@ serviceSubtask.setLeavehospitaldistrictname(patTaskRelevance.getLeavehospitaldistrictname()); serviceSubtask.setLeavehospitaldistrictcode(patTaskRelevance.getLeavehospitaldistrictcode()); serviceSubtask.setDeptname(patTaskRelevance.getDeptName()); - serviceSubtask.setType(serviceTaskVO.getHospType()); + serviceSubtask.setType(serviceTaskVO.getType()); serviceSubtask.setCreateTime(DateUtils.getNowDate()); serviceSubtask.setDrname(patTaskRelevance.getDrname()); serviceSubtask.setDrcode(patTaskRelevance.getDrcode()); @@ -758,6 +772,7 @@ serviceSubtask.setEndtime(patTaskRelevance.getEndtime()); serviceSubtask.setNurseId(patTaskRelevance.getNurseId()); serviceSubtask.setNurseName(patTaskRelevance.getNurseName()); + serviceSubtask.setVisitTime(patTaskRelevance.getVisitTime()); serviceSubtask.setTextParam(new Gson().toJson(serviceTaskVO.getTextParam())); if (patTaskRelevance.getIsoperation() != null) { if (patTaskRelevance.getIsoperation() == 2) @@ -1735,7 +1750,7 @@ serviceSubtask.setRemark("鎵嬫満鍙蜂负绌�"); serviceSubtask.setSendstate(4L); serviceSubtask.setResult("error"); - serviceSubtask.setFinishtime(new Date()); +// serviceSubtask.setFinishtime(new Date()); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); continue; } @@ -2167,7 +2182,14 @@ 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(subtask -> Optional.ofNullable(subtask.getLeavehospitaldistrictname()).orElse("Unknown"))); + //Map<String, List<ServiceSubtask>> collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getLeavehospitaldistrictname()).orElse("Unknown"))); + Map<String, List<ServiceSubtask>> collect = new HashMap<>(); + if (serviceSubtaskCountReq.getLeavehospitaldistrictcodes() != null && serviceSubtaskCountReq.getLeavehospitaldistrictcodes().size() > 0) { + collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getLeavehospitaldistrictname()).orElse("Unknown"))); + + } else if (serviceSubtaskCountReq.getDeptcodes() != null && serviceSubtaskCountReq.getDeptcodes().size() > 0) { + collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDeptname()).orElse("Unknown"))); + } for (List<ServiceSubtask> serviceSubtaskList : collect.values()) { if (CollectionUtils.isEmpty(serviceSubtaskList)) { continue; @@ -2182,9 +2204,92 @@ private ServiceSubtaskStatistic getStatistic(List<ServiceSubtask> serviceSubtaskList) { ServiceSubtaskStatistic serviceSubtaskStatistic = new ServiceSubtaskStatistic(); + //鏍煎紡鍖栦负涓や綅灏忔暟鐨勭櫨鍒嗘瘮 + DecimalFormat percentFormat = new DecimalFormat("##.##%"); + serviceSubtaskStatistic.setDeptname(serviceSubtaskList.get(0).getDeptname()); + serviceSubtaskStatistic.setDeptcode(serviceSubtaskList.get(0).getDeptcode()); serviceSubtaskStatistic.setLeavehospitaldistrictname(serviceSubtaskList.get(0).getLeavehospitaldistrictname()); serviceSubtaskStatistic.setLeavehospitaldistrictcode(serviceSubtaskList.get(0).getLeavehospitaldistrictcode()); - serviceSubtaskStatistic.setServiceCount(serviceSubtaskList.size()); + //鍑洪櫌浜烘 + serviceSubtaskStatistic.setDischargeCount(serviceSubtaskList.size()); + for (ServiceSubtask serviceSubtask : serviceSubtaskList) { + //鏃犻渶闅忚浜烘 + if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 4) { + serviceSubtaskStatistic.setNonFollowUp(serviceSubtaskStatistic.getNonFollowUp() + 1L); + } + //搴旈殢璁夸汉娆� + 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) { + serviceSubtaskStatistic.setNeedFollowUp(serviceSubtaskStatistic.getNeedFollowUp() + 1L); + } + if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 2) { + serviceSubtaskStatistic.setPendingFollowUp(serviceSubtaskStatistic.getPendingFollowUp() + 1L); + } + if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 1 || serviceSubtask.getSendstate() == 3 || serviceSubtask.getSendstate() == 6)) { + serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L); + } + if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 5) { + serviceSubtaskStatistic.setFollowUpFail(serviceSubtaskStatistic.getFollowUpFail() + 1L); + } + if (serviceSubtaskStatistic.getNeedFollowUp() > 0) { + double rate = (double) (serviceSubtaskStatistic.getFollowUpSuccess() + serviceSubtaskStatistic.getFollowUpFail()) / serviceSubtaskStatistic.getNeedFollowUp(); + serviceSubtaskStatistic.setFollowUpRate(percentFormat.format(rate)); + } else { + serviceSubtaskStatistic.setFollowUpRate("0.00%"); + } + if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("1")) { + serviceSubtaskStatistic.setManual(serviceSubtaskStatistic.getManual() + 1L); + } + if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")) { + serviceSubtaskStatistic.setSms(serviceSubtaskStatistic.getSms() + 1L); + } + if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")) { + serviceSubtaskStatistic.setWeChat(serviceSubtaskStatistic.getWeChat() + 1L); + } + if (serviceSubtask.getSendstate() != null && serviceSubtask.getExcep().equals("1")) { + serviceSubtaskStatistic.setAbnormal(serviceSubtaskStatistic.getAbnormal() + 1L); + } + }//浜屾鍑洪櫌闅忚 + else if (serviceSubtask.getVisitCount() != null && serviceSubtask.getVisitCount() > 1) { + if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) { + serviceSubtaskStatistic.setNeedFollowUpAgain(serviceSubtaskStatistic.getNeedFollowUpAgain() + 1L); + } + if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 2) { + serviceSubtaskStatistic.setPendingFollowUpAgain(serviceSubtaskStatistic.getPendingFollowUpAgain() + 1L); + } + if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 1 || serviceSubtask.getSendstate() == 3 || serviceSubtask.getSendstate() == 6)) { + serviceSubtaskStatistic.setFollowUpSuccessAgain(serviceSubtaskStatistic.getFollowUpSuccessAgain() + 1L); + } + if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 5) { + serviceSubtaskStatistic.setFollowUpFailAgain(serviceSubtaskStatistic.getFollowUpFailAgain() + 1L); + } + if (serviceSubtaskStatistic.getNeedFollowUp() > 0) { + double rate = (double) (serviceSubtaskStatistic.getFollowUpSuccessAgain() + serviceSubtaskStatistic.getFollowUpFailAgain()) / serviceSubtaskStatistic.getNeedFollowUpAgain(); + serviceSubtaskStatistic.setFollowUpRateAgain(percentFormat.format(rate)); + } else { + serviceSubtaskStatistic.setFollowUpRateAgain("0.00%"); + } + if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("1")) { + serviceSubtaskStatistic.setManualAgain(serviceSubtaskStatistic.getManualAgain() + 1L); + } + if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")) { + serviceSubtaskStatistic.setSmsAgain(serviceSubtaskStatistic.getSmsAgain() + 1L); + } + if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")) { + serviceSubtaskStatistic.setWeChatAgain(serviceSubtaskStatistic.getWeChatAgain() + 1L); + } + if (serviceSubtask.getSendstate() != null && serviceSubtask.getExcep().equals("1")) { + serviceSubtaskStatistic.setAbnormalAgain(serviceSubtaskStatistic.getAbnormalAgain() + 1L); + } + } + + + } + /*serviceSubtaskStatistic.setServiceCount(serviceSubtaskList.size()); for (ServiceSubtask serviceSubtask : serviceSubtaskList) { //涓嶉殢璁挎暟閲� if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 4) { @@ -2225,7 +2330,8 @@ // 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; } -- Gitblit v1.9.3