forked from gzzfw/backEnd/gz-dyh

huangh
2024-10-28 1f5f3c84cb9b35d65caf576c0d46d26bda291875
dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/controller/AnalysisWebController.java
@@ -106,36 +106,47 @@
    @GetMapping("/countRepeatedCasesByTime")
    public ReturnBO countRepeatedCasesByTime(@RequestBody CountRepeateVo countRepeateVo) {
        try{
            // countRepeateVo.setGroupByCaseType("true");
            // List<CountRepeateDto> countRepeateDtoList = service.countRepeatedCases(countRepeateVo);
            // return ReturnSucUtils.getRepInfo("请求成功",countRepeateDtoList);
            DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            // LocalDate start = LocalDate.parse(countRepeateVo.getCreateTimeStart(), DATE_TIME_FORMATTER);
            // LocalDate end = LocalDate.parse(countRepeateVo.getCreateTimeEnd(), DATE_TIME_FORMATTER);
            //
            // long daysBetween = java.time.temporal.ChronoUnit.DAYS.between(start, end);
            //
            // if (daysBetween < 15) {
            //     return Map.of("days", getDaysList(start, end));
            // } else if ((daysBetween >= 15) && (daysBetween < 365)) {
            //     return Map.of("months", getMonthsList(start, end));
            // } else {
            //     return Map.of("years", getYearsList(start, end));
            // }
            String dayTypeStr = "day";
            String monthTypeStr = "month";
            String yearTypeStr = "year";
            LocalDate start = LocalDate.parse(countRepeateVo.getCreateTimeStart(), DATE_TIME_FORMATTER);
            LocalDate end = LocalDate.parse(countRepeateVo.getCreateTimeEnd(), DATE_TIME_FORMATTER);
            long daysBetween = java.time.temporal.ChronoUnit.DAYS.between(start, end);
            if (daysBetween < 15) {
                countRepeateVo.setGroupByTime("day");
                countRepeateVo.setGroupByTime(dayTypeStr);
            } else if ((daysBetween >= 15) && (daysBetween < 365)) {
                countRepeateVo.setGroupByTime("month");
                countRepeateVo.setGroupByTime(monthTypeStr);
            } else {
                countRepeateVo.setGroupByTime("year");
                countRepeateVo.setGroupByTime(yearTypeStr);
            }
            List<CountRepeateDto> countRepeateDtoList = service.countRepeatedCases(countRepeateVo);
            if (!countRepeateDtoList.isEmpty()){
                String timeFormatter = "";
                if (dayTypeStr.equals(countRepeateVo.getGroupByTime())){
                    timeFormatter = "日";
                }
                else if (monthTypeStr.equals(countRepeateVo.getGroupByTime())) {
                    timeFormatter = "月";
                }
                else if (yearTypeStr.equals(countRepeateVo.getGroupByTime())) {
                    timeFormatter = "年";
                }
                for (CountRepeateDto countRepeateDto : countRepeateDtoList) {
                    // 按 “-”切割字符串,获取最后一个元素
                    String[] split = countRepeateDto.getGroupByType().split("-");
                    String lastElement = split[split.length - 1];
                    // 判断 lastElement 是否为小于 13 的数字,如果是,则将类型转换为int
                    if (lastElement.matches("^\\d+$")) {
                        lastElement = String.valueOf(Integer.parseInt(lastElement));
                    }
                    countRepeateDto.setGroupByType(lastElement + timeFormatter);
                }
            }
            return ReturnSucUtils.getRepInfo("请求成功",countRepeateDtoList);
        }catch (Exception e){
            log.error("统计重复来访案件数量异常",e);