From 80024e0b4456840afcb7f9325424b9881a5bb631 Mon Sep 17 00:00:00 2001 From: cxw <1520264117@qq.com> Date: Wed, 22 Jan 2025 17:31:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9C=88=E6=A0=B8=E5=AE=9A?= =?UTF-8?q?=E6=B5=81=E9=87=8F=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/xyt/controller/StWaterRController.java | 9 ++++++--- .../java/com/gunshi/project/xyt/util/DateUtil.java | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/gunshi/project/xyt/controller/StWaterRController.java b/src/main/java/com/gunshi/project/xyt/controller/StWaterRController.java index ad881fe..bdf9bd4 100644 --- a/src/main/java/com/gunshi/project/xyt/controller/StWaterRController.java +++ b/src/main/java/com/gunshi/project/xyt/controller/StWaterRController.java @@ -93,9 +93,12 @@ public class StWaterRController { @GetMapping("/getResMonthEcoFlow") public R> getResMonthEcoFlow(@Schema(name = "startTime", description = "开始时间") @RequestParam("startTime") String startTime, @Schema(name = "endTime", description = "开始时间") @RequestParam("endTime") String endTime) { Map resMap = new HashMap<>(); - QueryWrapper wrapper = new QueryWrapper() - .ge(StringUtils.isNotEmpty(startTime), "month", Integer.valueOf(startTime.substring(5, 7))) - .le(StringUtils.isNotEmpty(endTime), "month", Integer.valueOf(endTime.substring(5, 7))); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.orderByAsc("month"); + if(StringUtils.isNotEmpty(startTime) && StringUtils.isNotEmpty(endTime)){ + List monthsBetweenDates = DateUtil.getMonthsBetweenDates(startTime, endTime); + wrapper.in("month", monthsBetweenDates); + } List list = resMonthEcoFlowService.list(wrapper); if(CollectionUtils.isNotEmpty(list)){ resMap = list.stream().collect(Collectors.toMap(ResMonthEcoFlow::getMonth, ResMonthEcoFlow::getValue)); diff --git a/src/main/java/com/gunshi/project/xyt/util/DateUtil.java b/src/main/java/com/gunshi/project/xyt/util/DateUtil.java index c1a2a9a..dd7e81e 100644 --- a/src/main/java/com/gunshi/project/xyt/util/DateUtil.java +++ b/src/main/java/com/gunshi/project/xyt/util/DateUtil.java @@ -250,4 +250,18 @@ public class DateUtil { private static SimpleDateFormat getThreadSafeFormatter(String format) { return DATE_FORMAT_CACHE.computeIfAbsent(format, key -> ThreadLocal.withInitial(() -> new SimpleDateFormat(key))).get(); } + + public static List getMonthsBetweenDates(String startDateStr, String endDateStr) { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDate startDate = LocalDate.parse(startDateStr, formatter); + LocalDate endDate = LocalDate.parse(endDateStr, formatter); + + List months = new ArrayList<>(); + while (startDate.isBefore(endDate)) { + months.add(startDate.getMonthValue()); + startDate = startDate.plusMonths(1); + } + + return months; + } }