From 3d47151a301df02bfc59ce3fab451c70dc7355e3 Mon Sep 17 00:00:00 2001 From: think <1787994136@qq.com> Date: Fri, 7 Feb 2025 18:28:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TaskDispatchDetailMapper.java | 67 +++++++++++++++++-- 1 file changed, 61 insertions(+), 6 deletions(-) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java index c4935fe..d321062 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java @@ -25,10 +25,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.time.*; import java.time.temporal.ChronoUnit; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Set; +import java.util.*; /** * 派工明细 Mapper @@ -38,6 +35,45 @@ import java.util.Set; @Mapper public interface TaskDispatchDetailMapper extends BaseMapperX { + public static List calculateDateRange(long inputDate) { + // 将 long 类型的时间戳转换为 LocalDate 对象 + Date date = new Date(inputDate); + LocalDate selectedDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + // 获取当前系统日期 + LocalDate currentDate = LocalDate.now(); + // 计算所选日期的前三天 + LocalDate startDate = selectedDate.minusDays(3); + // 确保开始日期不早于当前日期 + if (startDate.isBefore(currentDate)) { + startDate = currentDate; + } + List dateRange = new ArrayList<>(); + // 循环添加接下来的七天日期到列表中 + for (int i = 0; i < 7; i++) { + LocalDate current = startDate.plusDays(i); + dateRange.add(current); + } + return dateRange; + } + /*public static void main(String[] args) { + // 示例:假设传入的时间戳代表 2024 年 2 月 11 日 + LocalDate exampleDate = LocalDate.of(2025, 2, 13); + long timestamp = exampleDate.atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli(); + List result = calculateDateRange(timestamp); + LocalDateTime sTime = null; + LocalDateTime eTime = null; + // 取出第一个日期并转换为 LocalDateTime + if (!result.isEmpty()) { + sTime = result.get(0).atStartOfDay(); + } + // 取出最后一个日期并转换为 LocalDateTime,同时设置时间为 23:59:59 + if (!result.isEmpty()) { + eTime = result.get(result.size() - 1).atTime(23, 59, 59); + } + System.out.println("开始时间: " + sTime); + System.out.println("结束时间: " + eTime); + }*/ + default PageResult selectPageGroup(YgjxPageReqVO pageReqVO) { MPJLambdaWrapper query = new MPJLambdaWrapper<>(); query.select( "DATE_FORMAT(t.create_time, '%Y-%m') as yearMonth,\n" + @@ -244,7 +280,9 @@ public interface TaskDispatchDetailMapper extends BaseMapperX getTaskDispatchPageDetailTotal(TaskDispatchDetailTotalVO pageTotalVO,String maxLongtime) { LocalDateTime sTime = null; + LocalDateTime sTimes = null; LocalDateTime eTime = null; + LocalDateTime eTimes = null; if (pageTotalVO.getStartTime() != null) { sTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(pageTotalVO.getStartTime()), ZoneId.systemDefault()); } @@ -253,8 +291,25 @@ public interface TaskDispatchDetailMapper extends BaseMapperX result = calculateDateRange(timestamp); + + // 取出第一个日期并转换为 LocalDateTime + if (!result.isEmpty()) { + sTimes = result.get(0).atStartOfDay(); + } + // 取出最后一个日期并转换为 LocalDateTime,同时设置时间为 23:59:59 + if (!result.isEmpty()) { + eTimes = result.get(result.size() - 1).atTime(23, 59, 59); + } + System.out.println("开始时间: " + sTimes); + System.out.println("结束时间: " + eTimes); + + LocalDateTime startDate = sTimes; + LocalDateTime endDate = eTimes;