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° */ @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 ; } }