背景
在项目开发中,遇到如下场景:将数据按照业务逻辑分组,接下来的所有计算以组为单位;当第一条数据传入时,以当前数据的时间对应天的结束时间为定时触发时间,做定时。下一次的定时与上一次定时的时间间隔为86400s;
数据结构与备用数据
/**
* @author DSH12138
* @since 2020-11-02
* 原始数据结构
* */
@Data
@NoArgsConstructor
@ToString
public class SourceDataScheme {
private String plant;
private Float values;
private String device;
private Long timestamp;
public SourceDataScheme(String plant, Float values, String device, Long timestamp) {
this.plant = plant;
this.values = values;
this.device = device;
this.timestamp = timestamp;
}
}
测试数据:
SourceDataScheme(plant=MS003, values=1, device=DXL480, timestamp=1603788065000)
SourceDataScheme(plant=MS001, values=2, device=DGS301, timestamp=1603788065000)
SourceDataScheme(plant=MS003, values=3, device=DXL479, timestamp=1603788065000)
SourceDataScheme(plant=MS003, values=4, device=DXL478, timestamp=1603788065000)
SourceDataScheme(plant=MS003, values=5, device=DXL477, timestamp=1603788065000)
SourceDataScheme(plant=MS003, values=6, device=DXL476, timestamp=1603788065000)
SourceDataScheme(plant=MS003, values=7, device=DXL475, timestamp=1603788065000)
SourceDataScheme(plant=MS003, values=8, device=DXL474, timestamp=1603788065000)
SourceDataScheme(plant=MS003, values=9, device=DXL473, timestamp=1603788065000)
SourceDataScheme(plant=MS003, values=10, device=DXL472, timestamp=1603788065000)
SourceDataScheme(plant=MS003, values=11, device=DXL471, timestamp=1603788065000)
================================================================================
SourceDataScheme(plant=MS003, values=12, device=DXL480, timestamp=1603788066000)
SourceDataScheme(plant=MS001, values=13, device=DGS301, timestamp=1603788066000