String startTime = form.getStartTime();
String endTime = form.getEndTime();
Date startDate = DateUtil.convertStrToDate(startTime, DateUtil.DEFAULT_SHORT_DATE_FORMAT);
Date endDate = DateUtil.convertStrToDate(endTime, DateUtil.DEFAULT_SHORT_DATE_FORMAT);
//将已有数据以时间为key保存在map中
Map<String,IhornAlarmDailyTenantSummary> tenantSummaryMap = new HashMap<>();
for (IhornAlarmDailyTenantSummary tenantSummary:ihornAlarmDailyTenantSummaries){
String dateToStr = DateUtil.convertDateToStr(tenantSummary.getDailyTime(), DateUtil.DEFAULT_SHORT_DATE_FORMAT);
tenantSummaryMap.put(dateToStr,tenantSummary);
}
//创建返回结果集合
List<HomePageRecentAlarmCountVO> recentAlarmCountVOList = new ArrayList<>();
//给没有数据的日期,补上0占位。
//判断开始结束时间
while (startDate.getTime() <= endDate.getTime()) {
//将日期转换为string类型
String dateStr = DateUtil.convertDateToStr(startDate);
//获取当前时间对应数据
IhornAlarmDailyTenantSummary alarmDailyTenantSummary = tenantSummaryMap.get(dateStr);
HomePageRecentAlarmCountVO alarmCountVO = new HomePageRecentAlarmCountVO();
alarmCountVO.setDailyTime(dateStr);
//判断是否有数据
if (alarmDailyTenantSummary == null) {
//没有数据则补零
alarmCountVO.setAlarmNum(0);
alarmCountVO.setFaultNum(0);
alarmCountVO.setNormalNum(0);
alarmCountVO.setOfflineNum(0);
}else {
//有数据则添加到返回对象中
alarmCountVO.setAlarmNum(alarmDailyTenantSummary.getAlarmAmount());
alarmCountVO.setFaultNum(alarmDailyTenantSummary.getFaultAmount());
alarmCountVO.setNormalNum(alarmDailyTenantSummary.getNormalAmount());
alarmCountVO.setOfflineNum(alarmDailyTenantSummary.getOfflineAmount());
}
//本次形成的结果添加到返回集合中
recentAlarmCountVOList.add(alarmCountVO);
开始时间添加一天
startDate = DateUtil.add(startDate, DateUtil.TimeUnit.dd, 1);
}