上一个版本遗漏提交
This commit is contained in:
@@ -367,10 +367,10 @@ public class WlRecordServiceImpl extends ServiceImpl<WlRecordMapper, WlRecord> i
|
||||
//下一个被比较数据
|
||||
int index = i + 1;
|
||||
WlRecord next = data.get(index);
|
||||
//判断下一个数据时间范围是不是在当前时间范围内(判断是否有修改的必要)
|
||||
if((current.getStartTime().compareTo(next.getStartTime())<0 || current.getStartTime().compareTo(next.getStartTime())==0)
|
||||
&& (current.getEndTime().compareTo(next.getEndTime())>0 || current.getEndTime().compareTo(next.getEndTime())==0)){
|
||||
//如果当前节点把下一个节点吃掉了 那么此节点将不变继续作为当前比较的左主数据 参加下一轮比较
|
||||
//判断下一个数据时间范围是不是在当前已添加集合项时间范围内(判断是否有修改的必要)
|
||||
if((getStartOrEndTimeByList(rs,1).compareTo(next.getStartTime())<0 || getStartOrEndTimeByList(rs,1).compareTo(next.getStartTime())==0)
|
||||
&& (getStartOrEndTimeByList(rs,2).compareTo(next.getEndTime())>0 || getStartOrEndTimeByList(rs,2).compareTo(next.getEndTime())==0)){
|
||||
//如果当前集合项时间范围把下一个节点吃掉了 那么此节点将不变继续作为当前比较的左主数据 参加下一轮比较
|
||||
tempRecord = current;
|
||||
continue;
|
||||
}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("覆盖后新数据:");
|
||||
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)));
|
||||
@@ -396,6 +397,12 @@ public class WlRecordServiceImpl extends ServiceImpl<WlRecordMapper, WlRecord> i
|
||||
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){
|
||||
List<CommonStatisticalQueryParam> list = new ArrayList<>();
|
||||
if(commonStatisticalQueryParam.getList() != null && commonStatisticalQueryParam.getList().size() > 0){
|
||||
|
||||
Reference in New Issue
Block a user