| package com.dy.pipIrrGlobal.voRm; | 
|   | 
| import com.alibaba.fastjson2.annotation.JSONField; | 
| import com.alibaba.fastjson2.writer.ObjectWriterImplToString; | 
| import com.fasterxml.jackson.annotation.JsonFormat; | 
| import com.fasterxml.jackson.annotation.JsonPropertyOrder; | 
| import io.swagger.v3.oas.annotations.media.Schema; | 
| import lombok.Data; | 
|   | 
| import java.util.Date; | 
|   | 
| /** | 
|  * @Author: liurunyu | 
|  * @Date: 2025/6/26 9:16 | 
|  * @Description | 
|  */ | 
| @Data | 
| @JsonPropertyOrder({ | 
|         "id", "weatherId", "weatherName", "dt", | 
|         "airTemperature", "airHumidity", | 
|         "ultraviolet", "lightIntensity", | 
|         "rainfall", "windSpeed", | 
|         "windDirection", "windDirectionStr" | 
| }) | 
| public class VoWeather { | 
|     public static final long serialVersionUID = 202506260903001L; | 
|   | 
|     /** | 
|      * 记录ID | 
|      */ | 
|     @JSONField(serializeUsing = ObjectWriterImplToString.class) | 
|     public Long id; | 
|   | 
|     /** | 
|      * 气象站ID | 
|      */ | 
|     @Schema(description = "气象站ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED) | 
|     @JSONField(serializeUsing = ObjectWriterImplToString.class) | 
|     public Long weatherId; | 
|   | 
|     /** | 
|      * 气象站名称 | 
|      */ | 
|     @Schema(description = "气象站名称", requiredMode = Schema.RequiredMode.NOT_REQUIRED) | 
|     public String weatherName; | 
|   | 
|   | 
|     /** | 
|      * 数据上报时间(年月日时分秒) | 
|      */ | 
|     @Schema(description = "数据接收日期时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED) | 
|     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | 
|     public Date dt; | 
|   | 
|     /** | 
|      * 空气温度 | 
|      */ | 
|     @Schema(description = "空气温度", requiredMode = Schema.RequiredMode.NOT_REQUIRED) | 
|     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern = "0.00") | 
|     public Double airTemperature; | 
|   | 
|     /** | 
|      * 空气湿度 | 
|      */ | 
|     @Schema(description = "空气湿度", requiredMode = Schema.RequiredMode.NOT_REQUIRED) | 
|     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern = "0.00") | 
|     public Double airHumidity; | 
|   | 
|     /** | 
|      * 紫外线 | 
|      */ | 
|     @Schema(description = "紫外线", requiredMode = Schema.RequiredMode.NOT_REQUIRED) | 
|     public Integer ultraviolet; | 
|   | 
|     /** | 
|      * 光照强度 | 
|      */ | 
|     @Schema(description = "光照强度", requiredMode = Schema.RequiredMode.NOT_REQUIRED) | 
|     public Integer lightIntensity; | 
|   | 
|     /** | 
|      * 雨量 | 
|      */ | 
|     @Schema(description = "雨量", requiredMode = Schema.RequiredMode.NOT_REQUIRED) | 
|     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern = "0.00") | 
|     public Double rainfall; | 
|   | 
|     /** | 
|      * 风速 | 
|      */ | 
|     @Schema(description = "风速", requiredMode = Schema.RequiredMode.NOT_REQUIRED) | 
|     @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern = "0.00") | 
|     public Double windSpeed; | 
|   | 
|     /** | 
|      * 风向 | 
|      */ | 
|     @Schema(description = "风向", requiredMode = Schema.RequiredMode.NOT_REQUIRED) | 
|     public Integer windDirection; | 
|     /** | 
|      风向名称 | 
|      方位名称    角度范围        中心角度 | 
|      北(N)        348.75°~11.25°    0° | 
|      东北(NE)    11.25°~33.75°    22.5° | 
|      东(E)        33.75°~56.25°    45° | 
|      东南(SE)    56.25°~78.75°    67.5° | 
|      南(S)        78.75°~101.25°    90° | 
|      西南(SW)    101.25°~123.75°    112.5° | 
|      西(W)        123.75°~146.25°    135° | 
|      西北(NW)    146.25°~168.75°    157.5° | 
|      北(N)        168.75°~191.25°    180° | 
|   | 
|      四舍五入后 | 
|      方位名称    角度范围         中心角度 | 
|      北(N)        349°~11°     0° | 
|      东北(NE)    11°~34°         22.5° | 
|      东(E)        34°~56°         45° | 
|      东南(SE)    56°~79°         67.5° | 
|      南(S)        79°~101°     90° | 
|      西南(SW)    101°~124°     112.5° | 
|      西(W)        124°~146°     135° | 
|      西北(NW)    146°~169°     157.5° | 
|      北(N)        169°~191°     180° | 
|      */ | 
|     @Schema(hidden = true) | 
|     @JSONField(name = "windDirectionStr") // 指定 JSON 中的字段名 | 
|     public String getWindDirectionStr() { | 
|         String str = "" ; | 
|         if (windDirection != null) { | 
|             if (windDirection >= 349 || windDirection < 11) { | 
|                 str = "北" ; | 
|             }else if(windDirection >= 11 && windDirection < 34){ | 
|                 str = "东北" ; | 
|             }else if(windDirection >= 34 && windDirection < 56){ | 
|                 str = "东" ; | 
|             }else if(windDirection >= 56 && windDirection < 79){ | 
|                 str = "东南" ; | 
|             }else if(windDirection >= 79 && windDirection < 101){ | 
|                 str = "南" ; | 
|             }else if(windDirection >= 101 && windDirection < 124){ | 
|                 str = "西南" ; | 
|             }else if(windDirection >= 124 && windDirection < 146){ | 
|                 str = "西" ; | 
|             }else if(windDirection >= 146 && windDirection < 169){ | 
|                 str = "西北" ; | 
|             } | 
|         } | 
|         if(str != null && !str.equals("")){ | 
|             str = str + "(" + windDirection + ")" ; | 
|         }else{ | 
|             str = "" + windDirection ; | 
|         } | 
|         return str ; | 
|     } | 
|   | 
| } |