优化sql
This commit is contained in:
parent
533ac6300e
commit
3d47151a30
@ -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<TaskDispatchDetailDO> {
|
||||
|
||||
public static List<LocalDate> 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<LocalDate> 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<LocalDate> 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<TaskDispatchDetailDO> selectPageGroup(YgjxPageReqVO pageReqVO) {
|
||||
MPJLambdaWrapper<TaskDispatchDetailDO> query = new MPJLambdaWrapper<>();
|
||||
query.select( "DATE_FORMAT(t.create_time, '%Y-%m') as yearMonth,\n" +
|
||||
@ -244,7 +280,9 @@ public interface TaskDispatchDetailMapper extends BaseMapperX<TaskDispatchDetail
|
||||
}
|
||||
default PageResult<TaskDispatchDetailTotalVO> 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<TaskDispatchDetail
|
||||
}
|
||||
BigDecimal maxTime = new BigDecimal(maxLongtime);//设备每日运行最大时长
|
||||
// 计算时间范围
|
||||
LocalDateTime startDate = sTime.minusDays(3).withHour(0).withMinute(0).withSecond(0);
|
||||
LocalDateTime endDate = sTime.plusDays(3).withHour(23).withMinute(59).withSecond(59);
|
||||
|
||||
|
||||
|
||||
long timestamp = pageTotalVO.getStartTime();
|
||||
List<LocalDate> 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;
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user