优化
This commit is contained in:
@ -2,6 +2,7 @@ package com.ruoyi.common.util;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.ruoyi.bgt.domain.vo.BgtAttendanceCountVO;
|
||||
import com.ruoyi.bgt.domain.vo.BgtDayAttendanceCountVO;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
@ -11,29 +12,29 @@ import java.util.*;
|
||||
|
||||
public class DataUtil {
|
||||
|
||||
public static List<BgtAttendanceCountVO> fillMissingDates(List<BgtAttendanceCountVO> countVOS, LocalDate startDate, LocalDate endDate) {
|
||||
public static List<BgtDayAttendanceCountVO> fillMissingDates(List<BgtDayAttendanceCountVO> countVOS, LocalDate startDate, LocalDate endDate) {
|
||||
// 使用 HashSet 存储已有的日期,方便快速查找
|
||||
Set<LocalDate> existingDates = new HashSet<>();
|
||||
for (BgtAttendanceCountVO vo : countVOS) {
|
||||
for (BgtDayAttendanceCountVO vo : countVOS) {
|
||||
existingDates.add(vo.getDate());
|
||||
}
|
||||
|
||||
// 创建一个新的列表,用于存储补充后的结果
|
||||
List<BgtAttendanceCountVO> filledList = new ArrayList<>(countVOS);
|
||||
List<BgtDayAttendanceCountVO> filledList = new ArrayList<>(countVOS);
|
||||
|
||||
// 遍历日期范围,补充缺失的日期
|
||||
LocalDate currentDate = startDate;
|
||||
while (!currentDate.isAfter(endDate)) {
|
||||
if (!existingDates.contains(currentDate)) {
|
||||
// 如果当前日期不在已有日期集合中,创建一个新的 BgtAttendanceCountVO 对象并添加到结果列表中
|
||||
filledList.add(new BgtAttendanceCountVO(0,0,currentDate,0,0,0));
|
||||
filledList.add(new BgtDayAttendanceCountVO(0,currentDate));
|
||||
}
|
||||
// 日期递增一天
|
||||
currentDate = currentDate.plusDays(1);
|
||||
}
|
||||
|
||||
// 对结果列表按日期排序
|
||||
filledList.sort(Comparator.comparing(BgtAttendanceCountVO::getDate));
|
||||
filledList.sort(Comparator.comparing(BgtDayAttendanceCountVO::getDate));
|
||||
|
||||
return filledList;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user