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 c917b32..03ca631 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; @@ -125,7 +127,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; }