上一个版本遗漏提交

This commit is contained in:
guofeihu
2024-07-11 20:32:22 +08:00
parent db04121fb6
commit 2746ae377f

View File

@@ -367,10 +367,10 @@ public class WlRecordServiceImpl extends ServiceImpl<WlRecordMapper, WlRecord> i
//下一个被比较数据 //下一个被比较数据
int index = i + 1; int index = i + 1;
WlRecord next = data.get(index); WlRecord next = data.get(index);
//判断下一个数据时间范围是不是在当前时间范围内(判断是否有修改的必要) //判断下一个数据时间范围是不是在当前已添加集合项时间范围内(判断是否有修改的必要)
if((current.getStartTime().compareTo(next.getStartTime())<0 || current.getStartTime().compareTo(next.getStartTime())==0) if((getStartOrEndTimeByList(rs,1).compareTo(next.getStartTime())<0 || getStartOrEndTimeByList(rs,1).compareTo(next.getStartTime())==0)
&& (current.getEndTime().compareTo(next.getEndTime())>0 || current.getEndTime().compareTo(next.getEndTime())==0)){ && (getStartOrEndTimeByList(rs,2).compareTo(next.getEndTime())>0 || getStartOrEndTimeByList(rs,2).compareTo(next.getEndTime())==0)){
//如果当前节点把下一个节点吃掉了 那么此节点将不变继续作为当前比较的左主数据 参加下一轮比较 //如果当前集合项时间范围把下一个节点吃掉了 那么此节点将不变继续作为当前比较的左主数据 参加下一轮比较
tempRecord = current; tempRecord = current;
continue; continue;
}else if(current.getEndTime().compareTo(next.getStartTime())<0){ }else if(current.getEndTime().compareTo(next.getStartTime())<0){
@@ -389,6 +389,7 @@ public class WlRecordServiceImpl extends ServiceImpl<WlRecordMapper, WlRecord> i
//时间范围度最大依次覆盖 //时间范围度最大依次覆盖
//此处逻辑暂定 默认按照上面最左原则 //此处逻辑暂定 默认按照上面最左原则
} }
rs = rs.stream().sorted(Comparator.comparing(WlRecord::getStartTime)).collect(Collectors.toList());
log.info("覆盖后新数据:"); log.info("覆盖后新数据:");
for(WlRecord wlRecord : rs){ for(WlRecord wlRecord : rs){
log.info("id:{} , startTime:{} , endTime:{}",wlRecord.getId(),wlRecord.getStartTime().format(DateTimeFormatter.ofPattern(DataParam.timeFormat)),wlRecord.getEndTime().format(DateTimeFormatter.ofPattern(DataParam.timeFormat))); log.info("id:{} , startTime:{} , endTime:{}",wlRecord.getId(),wlRecord.getStartTime().format(DateTimeFormatter.ofPattern(DataParam.timeFormat)),wlRecord.getEndTime().format(DateTimeFormatter.ofPattern(DataParam.timeFormat)));
@@ -396,6 +397,12 @@ public class WlRecordServiceImpl extends ServiceImpl<WlRecordMapper, WlRecord> i
return rs; return rs;
} }
//获取集合中最开始时间或最结束时间
private static LocalDateTime getStartOrEndTimeByList(List<WlRecord> rs,int type){
rs = rs.stream().sorted(Comparator.comparing(type == 1?WlRecord::getStartTime:WlRecord::getEndTime)).collect(Collectors.toList());
return type == 1?rs.get(0).getStartTime():rs.get(rs.size()-1).getEndTime();
}
private void formatQueryParamList(CommonStatisticalQueryParam commonStatisticalQueryParam){ private void formatQueryParamList(CommonStatisticalQueryParam commonStatisticalQueryParam){
List<CommonStatisticalQueryParam> list = new ArrayList<>(); List<CommonStatisticalQueryParam> list = new ArrayList<>();
if(commonStatisticalQueryParam.getList() != null && commonStatisticalQueryParam.getList().size() > 0){ if(commonStatisticalQueryParam.getList() != null && commonStatisticalQueryParam.getList().size() > 0){