package com.dy.pipIrrGlobal.pojoRm; 
 | 
  
 | 
import com.alibaba.fastjson2.annotation.JSONField; 
 | 
import com.alibaba.fastjson2.writer.ObjectWriterImplToString; 
 | 
import com.baomidou.mybatisplus.annotation.IdType; 
 | 
import com.baomidou.mybatisplus.annotation.TableId; 
 | 
import com.baomidou.mybatisplus.annotation.TableName; 
 | 
import com.dy.common.mw.protocol4Mqtt.MqttSubMsg; 
 | 
import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.SoilVo; 
 | 
import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.WeatherVo; 
 | 
import com.dy.common.po.BaseEntity; 
 | 
import com.fasterxml.jackson.annotation.JsonFormat; 
 | 
import io.swagger.v3.oas.annotations.media.Schema; 
 | 
import lombok.*; 
 | 
  
 | 
import java.util.Date; 
 | 
  
 | 
/** 
 | 
 * @Author: liurunyu 
 | 
 * @Date: 2025/6/25 10:04 
 | 
 * @Description 
 | 
 */ 
 | 
@TableName(value="rm_weather_last", autoResultMap = true) 
 | 
@Data 
 | 
@Builder 
 | 
@ToString 
 | 
@NoArgsConstructor 
 | 
@AllArgsConstructor 
 | 
@Schema(name = "气象最新数据") 
 | 
public class RmWeatherLast implements BaseEntity { 
 | 
  
 | 
    public static final long serialVersionUID = 202506251035001L; 
 | 
    /** 
 | 
     * 主键 
 | 
     */ 
 | 
    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED) 
 | 
    @JSONField(serializeUsing= ObjectWriterImplToString.class) 
 | 
    @TableId(type = IdType.INPUT) 
 | 
    public Long id; 
 | 
  
 | 
    /** 
 | 
     * 历史数据表中最新记录的外键id 
 | 
     */ 
 | 
    @Schema(hidden=true) 
 | 
    @JSONField(serialize = false) 
 | 
    public Long lastHistoryId; 
 | 
  
 | 
    /** 
 | 
     * 气象站实体外键id 
 | 
     */ 
 | 
    @Schema(description = "气象站实体外键id", requiredMode = Schema.RequiredMode.NOT_REQUIRED) 
 | 
    @JSONField(serializeUsing= ObjectWriterImplToString.class) 
 | 
    public Long weatherId; 
 | 
  
 | 
    /** 
 | 
     * 数据上报时间(年月日时分秒) 
 | 
     */ 
 | 
    @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; 
 | 
  
 | 
  
 | 
    public void valueFrom(MqttSubMsg msg, WeatherVo cdData) throws Exception{ 
 | 
        this.dt = new Date(); 
 | 
        this.airTemperature = cdData.airTemperature==null?null:(0.0D + cdData.airTemperature) ; 
 | 
        this.airHumidity = cdData.airHumidity==null?null:(0.0D + cdData.airHumidity) ; 
 | 
        this.ultraviolet = cdData.ultraviolet ; 
 | 
        this.lightIntensity = cdData.lightIntensity ; 
 | 
        this.rainfall = cdData.rainfall==null?null:(0.0D + cdData.rainfall) ; 
 | 
        this.windSpeed = cdData.windSpeed==null?null:(0.0D + cdData.windSpeed) ; 
 | 
        this.windDirection = cdData.windDirection ; 
 | 
    } 
 | 
} 
 |