From b0e0b4c0e342865daefb31eb3b956129fe722c8c Mon Sep 17 00:00:00 2001 From: sinake <sinake1@qq.com> Date: 星期三, 24 九月 2025 14:31:33 +0800 Subject: [PATCH] 随访查询7应随访日期(倒序)8应随访日期(正序) --- smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 65 ++++++++++++++++++++++++++++++++ 1 files changed, 65 insertions(+), 0 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 0827106..eb4417e 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java @@ -2282,6 +2282,71 @@ return serviceSubtaskStatistics; } + /** + * 鑾峰彇闅忚缁熻姣斾緥 + * + * @param serviceSubtaskCountReq + * @return + */ + @Override + public List<ServiceSubtaskStatistic> getSfStatisticsAsk(ServiceSubtaskCountReq serviceSubtaskCountReq) { + log.error("getSfStatistics鐨勫叆鍙備负锛歿}", serviceSubtaskCountReq); + List<ServiceSubtaskStatistic> serviceSubtaskStatistics = new ArrayList<>(); + List<ServiceSubtask> rawData = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq); + + // 鏍规嵁鏉′欢杩涜鍒嗙粍 + Map<String, List<ServiceSubtask>> collect = new HashMap<>(); + + if (serviceSubtaskCountReq.getLeavehospitaldistrictcodes() != null && serviceSubtaskCountReq.getLeavehospitaldistrictcodes().size() > 0) { + if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) { + collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrname()).orElse("Unknown"))); + } else { + collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getLeavehospitaldistrictname()).orElse("Unknown"))); + } + } else if (serviceSubtaskCountReq.getDeptcodes() != null && serviceSubtaskCountReq.getDeptcodes().size() > 0) { + if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) { + collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrname()).orElse("Unknown"))); + } else { + 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; + } + ServiceSubtaskStatistic statistic = getStatistic(serviceSubtaskList); + + //鍙婃椂鐜� + ServiceSubtask ss = new ServiceSubtask(); + ss.setOrgid(serviceSubtaskList.get(0).getOrgid()); + + // 濡傛灉鏈夊尰鐢熺紪鐮侊紝璁剧疆鍖荤敓缂栫爜鐢ㄤ簬鍙婃椂鐜囨煡璇� + if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) { + ss.setDrcode(serviceSubtaskList.get(0).getDrcode()); + }else { + if (CollectionUtils.isNotEmpty(serviceSubtaskCountReq.getLeavehospitaldistrictcodes())) { + ss.setLeavehospitaldistrictcode(serviceSubtaskList.get(0).getLeavehospitaldistrictcode()); + } else if (CollectionUtils.isNotEmpty(serviceSubtaskCountReq.getDeptcodes())) { + 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); + } + } + return serviceSubtaskStatistics; + } + private ServiceSubtaskStatistic getStatistic(List<ServiceSubtask> serviceSubtaskList) { ServiceSubtaskStatistic serviceSubtaskStatistic = new ServiceSubtaskStatistic(); //鏍煎紡鍖栦负涓や綅灏忔暟鐨勭櫨鍒嗘瘮 -- Gitblit v1.9.3