diff --git a/klp-pocket/src/main/java/com/klp/pocket/service/impl/Klptcm1ProStoppageServiceImpl.java b/klp-pocket/src/main/java/com/klp/pocket/service/impl/Klptcm1ProStoppageServiceImpl.java index a8d18f46..da1d3a90 100644 --- a/klp-pocket/src/main/java/com/klp/pocket/service/impl/Klptcm1ProStoppageServiceImpl.java +++ b/klp-pocket/src/main/java/com/klp/pocket/service/impl/Klptcm1ProStoppageServiceImpl.java @@ -16,7 +16,12 @@ import com.klp.pocket.domain.Klptcm1ProStoppage; import com.klp.pocket.mapper.Klptcm1ProStoppageMapper; import com.klp.pocket.service.IKlptcm1ProStoppageService; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.ZoneId; import java.util.Collection; +import java.util.Date; import java.util.List; import java.util.Map; @@ -75,8 +80,17 @@ public class Klptcm1ProStoppageServiceImpl implements IKlptcm1ProStoppageService // bo.startDate 是查询开始时间,stoppage.startDate 是停机开始时间 lqw.ge(bo.getStartDate() != null, Klptcm1ProStoppage::getStartDate, bo.getStartDate()); // bo.endDate 是查询结束时间,stoppage.startDate 是停机开始时间 - lqw.le(bo.getEndDate() != null, Klptcm1ProStoppage::getStartDate, bo.getEndDate()); + // 如果结束日期存在,将其设置为当天的最后一刻(23:59:59.999),以覆盖整天的查询 + if (bo.getEndDate() != null) { + Date endDate = bo.getEndDate(); + LocalDate localDate = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + LocalDateTime endOfDay = LocalDateTime.of(localDate, LocalTime.MAX); + Date endDateWithTime = Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant()); + lqw.le(Klptcm1ProStoppage::getStartDate, endDateWithTime); + } lqw.eq(bo.getDURATION() != null, Klptcm1ProStoppage::getDuration, bo.getDURATION()); + // 只查询持续时间大于等于5分钟(300秒)的停机记录 + lqw.ge(Klptcm1ProStoppage::getDuration, 300); lqw.eq(bo.getInsDate() != null, Klptcm1ProStoppage::getInsDate, bo.getInsDate()); lqw.eq(StringUtils.isNotBlank(bo.getStopType()), Klptcm1ProStoppage::getStopType, bo.getStopType()); //倒序