需求
项目中经常会遇到折线图等随日期、月份变化的趋势图,但有时会出现日期不连续的情况,图表就会有中断,需要在后台将日期数据补全,sql或者程序里都可以处理。
而Java8提供的无限流,可以更方便的实现补全日期的操作,因为日期是连续递增的,看似无限序列。
原始数据
自2020-11-27 过去一周的数据,日期不连续
demo
补全日期数据,没有的日期,数据默认补0
Controller
/**
* 折线图数据
*
* @param preDate 开始日期,不传默认近一周
* @return
*/
@GetMapping("chart")
public List getChartData(@RequestParam(value = "date", required = false)
@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate preDate) {
return this.dailyDataService.getChartData(preDate);
}
Service
/**
* 折线图数