From 0ce0f2dda3dddea03f51f4c4c8cc276b5ecf89e4 Mon Sep 17 00:00:00 2001 From: cjw Date: Thu, 22 Feb 2024 10:00:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=96=B0=E5=A2=9E=E6=97=B6?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=96=B0=E5=A2=9E=E5=AF=B9=E5=BA=94=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/utils/DateUtils.java | 28 +++++++++++++++---- .../impl/MesPlanDetailServiceImpl.java | 15 +++++++++- 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java index c64f1f8..196d537 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java @@ -7,11 +7,8 @@ import org.apache.commons.lang3.time.DateFormatUtils; import java.lang.management.ManagementFactory; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; -import java.time.ZoneId; -import java.time.ZonedDateTime; +import java.time.*; +import java.time.temporal.ChronoUnit; import java.util.Date; /** @@ -165,4 +162,25 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); return Date.from(zdt.toInstant()); } + + public static LocalDate toLocalDate(Date temporalAccessor){ + return temporalAccessor.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + } + + /** + * 返回两个日期之间的日期列表 + * @param startDate + * @param endDate + * @return + */ + public static Date[] getDatesBetween(Date startDate, Date endDate) { + LocalDate start = toLocalDate(startDate); + LocalDate end = toLocalDate(endDate); + long numOfDays = ChronoUnit.DAYS.between(start, end) + 1; + Date[] dates = new Date[(int) numOfDays]; + for (int i = 0; i < numOfDays; i++) { + dates[i] = toDate(start.plusDays(i)); + } + return dates; + } } diff --git a/ruoyi-demo/src/main/java/com/ruoyi/mts/service/impl/MesPlanDetailServiceImpl.java b/ruoyi-demo/src/main/java/com/ruoyi/mts/service/impl/MesPlanDetailServiceImpl.java index eb8f156..9cc9563 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/mts/service/impl/MesPlanDetailServiceImpl.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/mts/service/impl/MesPlanDetailServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.core.domain.TreeEntity; +import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.mts.domain.MesPlanDetail; import com.ruoyi.mts.domain.bo.MesPlanDetailBo; @@ -19,6 +20,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.Collection; +import java.util.Date; import java.util.LinkedList; import java.util.List; @@ -129,7 +131,18 @@ public class MesPlanDetailServiceImpl implements IMesPlanDetailService { if (flag) { bo.setId(add.getId()); } - //todo + + Date planStartDate = bo.getPlanStartDate(); + Date planEndDate = bo.getPlanEndDate(); + + Date[] datesBetween = DateUtils.getDatesBetween(planStartDate, planEndDate); + for (Date recordDate : datesBetween) { + MesPlanRecordBo recordBo = new MesPlanRecordBo(); + recordBo.setFlag("plan"); + recordBo.setDetailId(add.getId()); + recordBo.setRecordDate(recordDate); + recordService.insertByBo(recordBo); + } return flag; }