From 25a1cd1e6f6be895cdf19d49286969cbbca59eb9 Mon Sep 17 00:00:00 2001 From: huangzhen <867217663@qq.com> Date: 星期三, 20 十二月 2023 13:16:13 +0800 Subject: [PATCH] 完善日报生成规则 --- src/main/java/com/gkhy/fourierSpecialGasMonitor/enums/WindRoseEnum.java | 72 ++++++++++++++++++++++++++++++++++++ 1 files changed, 72 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/enums/WindRoseEnum.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/enums/WindRoseEnum.java new file mode 100644 index 0000000..6cb971d --- /dev/null +++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/enums/WindRoseEnum.java @@ -0,0 +1,72 @@ + 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); + } + }; + + 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(); + +} -- Gitblit v1.9.2