From bbfa43e5214c4e1111b982aacfc21767584b700e Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Fri, 26 Sep 2025 16:14:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=8D=B1=E5=A4=A7=E5=B7=A5=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/zhgd/xmgl/util/DateUtils.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/main/java/com/zhgd/xmgl/util/DateUtils.java b/src/main/java/com/zhgd/xmgl/util/DateUtils.java index fa38a13d4..d3d5ff872 100644 --- a/src/main/java/com/zhgd/xmgl/util/DateUtils.java +++ b/src/main/java/com/zhgd/xmgl/util/DateUtils.java @@ -813,6 +813,46 @@ public class DateUtils { }).collect(Collectors.toList()); } + public static List fillDateByStartEndDate( + Map param, + List list, + Supplier instanceSupplier + ) { + String startDate = MapUtils.getString(param, "startDate"); + String endDate = MapUtils.getString(param, "endDate"); + List dateTimes = DateUtil.rangeToList(DateUtil.parseDate(startDate), DateUtil.parseDate(endDate), DateField.DAY_OF_YEAR); + Map dateMap = list.stream().collect(Collectors.toMap(T::getDate, Function.identity(), (o1, o2) -> o1)); + return dateTimes.stream().map(dateTime -> { + String dateStr = DateUtil.formatDate(dateTime); + T obj = dateMap.get(dateStr); + if (obj == null) { + obj = instanceSupplier.get(); + obj.setDate(dateStr); + } + return obj; + }).collect(Collectors.toList()); + } + + public static List fillYearMonthByStartEndMonth( + Map param, + List list, + Supplier instanceSupplier + ) { + String startMonth = MapUtils.getString(param, "startMonth"); + String endMonth = MapUtils.getString(param, "endMonth"); + List months = DateUtil.rangeToList(DateUtil.parseDate(startMonth + "-01"), DateUtil.parseDate(endMonth + "-01"), DateField.MONTH); + Map dateMap = list.stream().collect(Collectors.toMap(T::getYearMonth, Function.identity(), (o1, o2) -> o1)); + return months.stream().map(dateTime -> { + String dateStr = DateUtil.format(dateTime, "yyyy-MM"); + T obj = dateMap.get(dateStr); + if (obj == null) { + obj = instanceSupplier.get(); + obj.setYearMonth(dateStr); + } + return obj; + }).collect(Collectors.toList()); + } + /** * 补充空白的日期的接口 */