This commit is contained in:
zt
2025-03-06 16:22:37 +08:00
parent 4570788d5e
commit c286edf99f
18 changed files with 208 additions and 163 deletions

View File

@ -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;
}