package com.gkhy.fourierSpecialGasMonitor.enums; import com.gkhy.fourierSpecialGasMonitor.entity.query.GasWarnTimesCountTimeSlotQuery; import com.gkhy.fourierSpecialGasMonitor.entity.query.WindRoseTimeSlotQuery; import lombok.Getter; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.temporal.TemporalAdjusters; /** * @author Mr.huang * @decription * @date 2023/9/2 23:31 */ @Getter public enum WindRoseEnum { ONE_HOUR(1,"1小时"){ @Override public WindRoseTimeSlotQuery getTimeSlotByStrategy() { LocalDateTime now = LocalDateTime.now(); LocalDateTime startTime = now.minusHours(1); return new WindRoseTimeSlotQuery(startTime,now); } }, SIX_HOURS(2,"6小时"){ @Override public WindRoseTimeSlotQuery getTimeSlotByStrategy() { LocalDateTime now = LocalDateTime.now(); LocalDateTime startTime = now.minusHours(6); return new WindRoseTimeSlotQuery(startTime,now); } }, IN_12_HOURS(3,"12小时"){ @Override public WindRoseTimeSlotQuery getTimeSlotByStrategy() { LocalDateTime now = LocalDateTime.now(); LocalDateTime startTime = now.minusHours(12); return new WindRoseTimeSlotQuery(startTime,now); } }, IN_24_HOURS(4,"24小时"){ @Override public WindRoseTimeSlotQuery getTimeSlotByStrategy() { LocalDateTime now = LocalDateTime.now(); LocalDateTime startTime = now.minusHours(24); return new WindRoseTimeSlotQuery(startTime,now); } }, CUSTOM_TIME(5,"自定义") { @Override public WindRoseTimeSlotQuery getTimeSlotByStrategy() { return null; } }; private Integer state; private String description; WindRoseEnum(int state, String description) { this.state = state; this.description = description; } public static WindRoseEnum getQueryObject(Integer key){ for (WindRoseEnum value : WindRoseEnum.values()) { if (value.state.equals(key)){ return value; } } return ONE_HOUR; } public abstract WindRoseTimeSlotQuery getTimeSlotByStrategy(); }