hwt 11 місяців тому
батько
коміт
b98d07eb4b

+ 180 - 0
ruoyi-modules/ruoyi-qxsb/src/main/java/com/ruoyi/hhzx/qxsb/rk/domain/WeatherRealtimeData.java

@@ -0,0 +1,180 @@
+package com.ruoyi.hhzx.qxsb.rk.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 气象站实时数据对象 weather_realtime_data
+ * 
+ * @author ruoyi
+ * @date 2025-06-12
+ */
+public class WeatherRealtimeData extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** 设备编号 */
+    @Excel(name = "设备编号")
+    private String deviceId;
+
+    /** 气温(°C) */
+    @Excel(name = "气温(°C)")
+    private BigDecimal temperature;
+
+    /** 湿度(%) */
+    @Excel(name = "湿度(%)")
+    private BigDecimal humidity;
+
+    /** 降雨量(mm) */
+    @Excel(name = "降雨量(mm)")
+    private BigDecimal rainfall;
+
+    /** 风向 */
+    @Excel(name = "风向")
+    private String windDirection;
+
+    /** 风速(m/s) */
+    @Excel(name = "风速(m/s)")
+    private BigDecimal windSpeed;
+
+    /** 气压(hPa) */
+    @Excel(name = "气压(hPa)")
+    private BigDecimal airPressure;
+
+    /** 光照强度(lux) */
+    @Excel(name = "光照强度(lux)")
+    private BigDecimal lightIntensity;
+
+    /** 采集时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "采集时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date collectTime;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+
+    public void setDeviceId(String deviceId) 
+    {
+        this.deviceId = deviceId;
+    }
+
+    public String getDeviceId() 
+    {
+        return deviceId;
+    }
+
+    public void setTemperature(BigDecimal temperature) 
+    {
+        this.temperature = temperature;
+    }
+
+    public BigDecimal getTemperature() 
+    {
+        return temperature;
+    }
+
+    public void setHumidity(BigDecimal humidity) 
+    {
+        this.humidity = humidity;
+    }
+
+    public BigDecimal getHumidity() 
+    {
+        return humidity;
+    }
+
+    public void setRainfall(BigDecimal rainfall) 
+    {
+        this.rainfall = rainfall;
+    }
+
+    public BigDecimal getRainfall() 
+    {
+        return rainfall;
+    }
+
+    public void setWindDirection(String windDirection) 
+    {
+        this.windDirection = windDirection;
+    }
+
+    public String getWindDirection() 
+    {
+        return windDirection;
+    }
+
+    public void setWindSpeed(BigDecimal windSpeed) 
+    {
+        this.windSpeed = windSpeed;
+    }
+
+    public BigDecimal getWindSpeed() 
+    {
+        return windSpeed;
+    }
+
+    public void setAirPressure(BigDecimal airPressure) 
+    {
+        this.airPressure = airPressure;
+    }
+
+    public BigDecimal getAirPressure() 
+    {
+        return airPressure;
+    }
+
+    public void setLightIntensity(BigDecimal lightIntensity) 
+    {
+        this.lightIntensity = lightIntensity;
+    }
+
+    public BigDecimal getLightIntensity() 
+    {
+        return lightIntensity;
+    }
+
+    public void setCollectTime(Date collectTime) 
+    {
+        this.collectTime = collectTime;
+    }
+
+    public Date getCollectTime() 
+    {
+        return collectTime;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("deviceId", getDeviceId())
+            .append("temperature", getTemperature())
+            .append("humidity", getHumidity())
+            .append("rainfall", getRainfall())
+            .append("windDirection", getWindDirection())
+            .append("windSpeed", getWindSpeed())
+            .append("airPressure", getAirPressure())
+            .append("lightIntensity", getLightIntensity())
+            .append("collectTime", getCollectTime())
+            .append("createTime", getCreateTime())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("updateBy", getUpdateBy())
+            .toString();
+    }
+}

+ 85 - 0
ruoyi-modules/ruoyi-qxsb/src/main/java/com/ruoyi/hhzx/qxsb/rk/listener/dataListener.java

@@ -0,0 +1,85 @@
+package com.ruoyi.hhzx.qxsb.rk.listener;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import rk.netDevice.sdk.p2.*;
+
+@Component
+@Slf4j
+public class dataListener implements IDataListener {
+    @Override
+    public void receiveRealtimeData(RealTimeData realTimeData) {
+        StringBuilder sb = new StringBuilder();
+        sb.append("==== DeviceInfo ====\n");
+        sb.append("deviceId = ").append(realTimeData.getDeviceId()).append("\n");
+        sb.append("lng = ").append(realTimeData.getLng()).append("\n");
+        sb.append("lat = ").append(realTimeData.getLat()).append("\n");
+        sb.append("coordinateType = ").append(realTimeData.getCoordinateType()).append("\n");
+        sb.append("relayStatus = ").append(realTimeData.getRelayStatus()).append("\n");
+
+        if (realTimeData.getNodeList() != null && !realTimeData.getNodeList().isEmpty()) {
+            for (int i = 0; i < realTimeData.getNodeList().size(); i++) {
+                NodeData node = realTimeData.getNodeList().get(i);
+                sb.append("---- NodeData [").append(i).append("] ----\n");
+                sb.append("nodeId = ").append(node.getNodeId()).append("\n");
+                sb.append("tem = ").append(node.getTem()).append("\n");
+                sb.append("hum = ").append(node.getHum()).append("\n");
+                sb.append("recordTime = ").append(node.getRecordTime()).append("\n");
+                sb.append("coordinateType = ").append(node.getCoordinateType()).append("\n");
+                sb.append("lng = ").append(node.getLng()).append("\n");
+                sb.append("lat = ").append(node.getLat()).append("\n");
+            }
+        } else {
+            sb.append("nodeList is empty or null\n");
+        }
+
+        sb.append("====================");
+
+        log.info(sb.toString());
+    }
+
+    @Override
+    public void receiveLoginData(LoginData loginData) {
+        log.info("loginData:{}", loginData);
+    }
+
+    @Override
+    public void receiveStoreData(StoreData storeData) {
+        log.info("storeData:{}", storeData);
+    }
+
+    @Override
+    public void receiveTelecontrolAck(TelecontrolAck telecontrolAck) {
+        log.info("telecontrolAck:{}", telecontrolAck);
+    }
+
+    @Override
+    public void receiveTimmingAck(TimmingAck timmingAck) {
+        log.info("timmingAck:{}", timmingAck);
+    }
+
+    @Override
+    public void receiveParamIds(ParamIdsData paramIdsData) {
+        log.info("paramIdsData:{}", paramIdsData);
+    }
+
+    @Override
+    public void receiveParam(ParamData paramData) {
+        log.info("paramData:{}", paramData);
+    }
+
+    @Override
+    public void receiveWriteParamAck(WriteParamAck writeParamAck) {
+        log.info("writeParamAck:{}", writeParamAck);
+    }
+
+    @Override
+    public void receiveTransDataAck(TransDataAck transDataAck) {
+        log.info("transDataAck:{}", transDataAck);
+    }
+
+    @Override
+    public void receiveHeartbeatData(HeartbeatData heartbeatData) {
+        log.info("heartbeatData:{}", heartbeatData);
+    }
+}

+ 63 - 0
ruoyi-modules/ruoyi-qxsb/src/main/java/com/ruoyi/hhzx/qxsb/rk/mapper/WeatherRealtimeDataMapper.java

@@ -0,0 +1,63 @@
+package com.ruoyi.hhzx.qxsb.rk.mapper;
+
+import com.ruoyi.hhzx.qxsb.rk.domain.WeatherRealtimeData;
+
+import java.util.List;
+
+
+/**
+ * 气象站实时数据Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-06-12
+ */
+public interface WeatherRealtimeDataMapper 
+{
+    /**
+     * 查询气象站实时数据
+     * 
+     * @param id 气象站实时数据主键
+     * @return 气象站实时数据
+     */
+    public WeatherRealtimeData selectWeatherRealtimeDataById(Long id);
+
+    /**
+     * 查询气象站实时数据列表
+     * 
+     * @param weatherRealtimeData 气象站实时数据
+     * @return 气象站实时数据集合
+     */
+    public List<WeatherRealtimeData> selectWeatherRealtimeDataList(WeatherRealtimeData weatherRealtimeData);
+
+    /**
+     * 新增气象站实时数据
+     * 
+     * @param weatherRealtimeData 气象站实时数据
+     * @return 结果
+     */
+    public int insertWeatherRealtimeData(WeatherRealtimeData weatherRealtimeData);
+
+    /**
+     * 修改气象站实时数据
+     * 
+     * @param weatherRealtimeData 气象站实时数据
+     * @return 结果
+     */
+    public int updateWeatherRealtimeData(WeatherRealtimeData weatherRealtimeData);
+
+    /**
+     * 删除气象站实时数据
+     * 
+     * @param id 气象站实时数据主键
+     * @return 结果
+     */
+    public int deleteWeatherRealtimeDataById(Long id);
+
+    /**
+     * 批量删除气象站实时数据
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteWeatherRealtimeDataByIds(Long[] ids);
+}

+ 2 - 1
ruoyi-modules/ruoyi-qxsb/src/main/java/com/ruoyi/hhzx/qxsb/rk/service/rkService.java → ruoyi-modules/ruoyi-qxsb/src/main/java/com/ruoyi/hhzx/qxsb/rk/rkService.java

@@ -1,6 +1,7 @@
-package com.ruoyi.hhzx.qxsb.rk.service;
+package com.ruoyi.hhzx.qxsb.rk;
 
 
+import com.ruoyi.hhzx.qxsb.rk.listener.dataListener;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;

+ 0 - 1
ruoyi-modules/ruoyi-qxsb/src/main/java/com/ruoyi/hhzx/qxsb/rk/rkServiceStart.java

@@ -1,6 +1,5 @@
 package com.ruoyi.hhzx.qxsb.rk;
 
-import com.ruoyi.hhzx.qxsb.rk.service.rkService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.ApplicationArguments;

+ 63 - 0
ruoyi-modules/ruoyi-qxsb/src/main/java/com/ruoyi/hhzx/qxsb/rk/service/IWeatherRealtimeDataService.java

@@ -0,0 +1,63 @@
+package com.ruoyi.hhzx.qxsb.rk.service;
+
+import com.ruoyi.hhzx.qxsb.rk.domain.WeatherRealtimeData;
+
+import java.util.List;
+
+
+/**
+ * 气象站实时数据Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-06-12
+ */
+public interface IWeatherRealtimeDataService 
+{
+    /**
+     * 查询气象站实时数据
+     * 
+     * @param id 气象站实时数据主键
+     * @return 气象站实时数据
+     */
+    public WeatherRealtimeData selectWeatherRealtimeDataById(Long id);
+
+    /**
+     * 查询气象站实时数据列表
+     * 
+     * @param weatherRealtimeData 气象站实时数据
+     * @return 气象站实时数据集合
+     */
+    public List<WeatherRealtimeData> selectWeatherRealtimeDataList(WeatherRealtimeData weatherRealtimeData);
+
+    /**
+     * 新增气象站实时数据
+     * 
+     * @param weatherRealtimeData 气象站实时数据
+     * @return 结果
+     */
+    public int insertWeatherRealtimeData(WeatherRealtimeData weatherRealtimeData);
+
+    /**
+     * 修改气象站实时数据
+     * 
+     * @param weatherRealtimeData 气象站实时数据
+     * @return 结果
+     */
+    public int updateWeatherRealtimeData(WeatherRealtimeData weatherRealtimeData);
+
+    /**
+     * 批量删除气象站实时数据
+     * 
+     * @param ids 需要删除的气象站实时数据主键集合
+     * @return 结果
+     */
+    public int deleteWeatherRealtimeDataByIds(Long[] ids);
+
+    /**
+     * 删除气象站实时数据信息
+     * 
+     * @param id 气象站实时数据主键
+     * @return 结果
+     */
+    public int deleteWeatherRealtimeDataById(Long id);
+}

+ 0 - 59
ruoyi-modules/ruoyi-qxsb/src/main/java/com/ruoyi/hhzx/qxsb/rk/service/dataListener.java

@@ -1,59 +0,0 @@
-package com.ruoyi.hhzx.qxsb.rk.service;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-import rk.netDevice.sdk.p2.*;
-
-@Component
-@Slf4j
-public class dataListener implements IDataListener {
-    @Override
-    public void receiveRealtimeData(RealTimeData realTimeData) {
-        log.info("realTimeData:{}", realTimeData);
-    }
-
-    @Override
-    public void receiveLoginData(LoginData loginData) {
-        log.info("loginData:{}", loginData);
-    }
-
-    @Override
-    public void receiveStoreData(StoreData storeData) {
-        log.info("storeData:{}", storeData);
-    }
-
-    @Override
-    public void receiveTelecontrolAck(TelecontrolAck telecontrolAck) {
-        log.info("telecontrolAck:{}", telecontrolAck);
-    }
-
-    @Override
-    public void receiveTimmingAck(TimmingAck timmingAck) {
-        log.info("timmingAck:{}", timmingAck);
-    }
-
-    @Override
-    public void receiveParamIds(ParamIdsData paramIdsData) {
-        log.info("paramIdsData:{}", paramIdsData);
-    }
-
-    @Override
-    public void receiveParam(ParamData paramData) {
-        log.info("paramData:{}", paramData);
-    }
-
-    @Override
-    public void receiveWriteParamAck(WriteParamAck writeParamAck) {
-        log.info("writeParamAck:{}", writeParamAck);
-    }
-
-    @Override
-    public void receiveTransDataAck(TransDataAck transDataAck) {
-        log.info("transDataAck:{}", transDataAck);
-    }
-
-    @Override
-    public void receiveHeartbeatData(HeartbeatData heartbeatData) {
-        log.info("heartbeatData:{}", heartbeatData);
-    }
-}

+ 97 - 0
ruoyi-modules/ruoyi-qxsb/src/main/java/com/ruoyi/hhzx/qxsb/rk/service/impl/WeatherRealtimeDataServiceImpl.java

@@ -0,0 +1,97 @@
+package com.ruoyi.hhzx.qxsb.rk.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.hhzx.qxsb.rk.domain.WeatherRealtimeData;
+import com.ruoyi.hhzx.qxsb.rk.mapper.WeatherRealtimeDataMapper;
+import com.ruoyi.hhzx.qxsb.rk.service.IWeatherRealtimeDataService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * 气象站实时数据Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-06-12
+ */
+@Service
+public class WeatherRealtimeDataServiceImpl implements IWeatherRealtimeDataService
+{
+    @Autowired
+    private WeatherRealtimeDataMapper weatherRealtimeDataMapper;
+
+    /**
+     * 查询气象站实时数据
+     * 
+     * @param id 气象站实时数据主键
+     * @return 气象站实时数据
+     */
+    @Override
+    public WeatherRealtimeData selectWeatherRealtimeDataById(Long id)
+    {
+        return weatherRealtimeDataMapper.selectWeatherRealtimeDataById(id);
+    }
+
+    /**
+     * 查询气象站实时数据列表
+     * 
+     * @param weatherRealtimeData 气象站实时数据
+     * @return 气象站实时数据
+     */
+    @Override
+    public List<WeatherRealtimeData> selectWeatherRealtimeDataList(WeatherRealtimeData weatherRealtimeData)
+    {
+        return weatherRealtimeDataMapper.selectWeatherRealtimeDataList(weatherRealtimeData);
+    }
+
+    /**
+     * 新增气象站实时数据
+     * 
+     * @param weatherRealtimeData 气象站实时数据
+     * @return 结果
+     */
+    @Override
+    public int insertWeatherRealtimeData(WeatherRealtimeData weatherRealtimeData)
+    {
+        weatherRealtimeData.setCreateTime(DateUtils.getNowDate());
+        return weatherRealtimeDataMapper.insertWeatherRealtimeData(weatherRealtimeData);
+    }
+
+    /**
+     * 修改气象站实时数据
+     * 
+     * @param weatherRealtimeData 气象站实时数据
+     * @return 结果
+     */
+    @Override
+    public int updateWeatherRealtimeData(WeatherRealtimeData weatherRealtimeData)
+    {
+        weatherRealtimeData.setUpdateTime(DateUtils.getNowDate());
+        return weatherRealtimeDataMapper.updateWeatherRealtimeData(weatherRealtimeData);
+    }
+
+    /**
+     * 批量删除气象站实时数据
+     * 
+     * @param ids 需要删除的气象站实时数据主键
+     * @return 结果
+     */
+    @Override
+    public int deleteWeatherRealtimeDataByIds(Long[] ids)
+    {
+        return weatherRealtimeDataMapper.deleteWeatherRealtimeDataByIds(ids);
+    }
+
+    /**
+     * 删除气象站实时数据信息
+     * 
+     * @param id 气象站实时数据主键
+     * @return 结果
+     */
+    @Override
+    public int deleteWeatherRealtimeDataById(Long id)
+    {
+        return weatherRealtimeDataMapper.deleteWeatherRealtimeDataById(id);
+    }
+}

+ 112 - 0
ruoyi-modules/ruoyi-qxsb/src/main/resources/mapper/WeatherRealtimeDataMapper.xml

@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.hhzx.qxsb.rk.mapper.WeatherRealtimeDataMapper">
+    
+    <resultMap type="WeatherRealtimeData" id="WeatherRealtimeDataResult">
+        <result property="id"    column="id"    />
+        <result property="deviceId"    column="device_id"    />
+        <result property="temperature"    column="temperature"    />
+        <result property="humidity"    column="humidity"    />
+        <result property="rainfall"    column="rainfall"    />
+        <result property="windDirection"    column="wind_direction"    />
+        <result property="windSpeed"    column="wind_speed"    />
+        <result property="airPressure"    column="air_pressure"    />
+        <result property="lightIntensity"    column="light_intensity"    />
+        <result property="collectTime"    column="collect_time"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="updateBy"    column="update_by"    />
+    </resultMap>
+
+    <sql id="selectWeatherRealtimeDataVo">
+        select id, device_id, temperature, humidity, rainfall, wind_direction, wind_speed, air_pressure, light_intensity, collect_time, create_time, update_time, create_by, update_by from weather_realtime_data
+    </sql>
+
+    <select id="selectWeatherRealtimeDataList" parameterType="WeatherRealtimeData" resultMap="WeatherRealtimeDataResult">
+        <include refid="selectWeatherRealtimeDataVo"/>
+        <where>  
+            <if test="deviceId != null  and deviceId != ''"> and device_id = #{deviceId}</if>
+            <if test="temperature != null "> and temperature = #{temperature}</if>
+            <if test="humidity != null "> and humidity = #{humidity}</if>
+            <if test="rainfall != null "> and rainfall = #{rainfall}</if>
+            <if test="windDirection != null  and windDirection != ''"> and wind_direction = #{windDirection}</if>
+            <if test="windSpeed != null "> and wind_speed = #{windSpeed}</if>
+            <if test="airPressure != null "> and air_pressure = #{airPressure}</if>
+            <if test="lightIntensity != null "> and light_intensity = #{lightIntensity}</if>
+            <if test="collectTime != null "> and collect_time = #{collectTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectWeatherRealtimeDataById" parameterType="Long" resultMap="WeatherRealtimeDataResult">
+        <include refid="selectWeatherRealtimeDataVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertWeatherRealtimeData" parameterType="WeatherRealtimeData" useGeneratedKeys="true" keyProperty="id">
+        insert into weather_realtime_data
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="deviceId != null and deviceId != ''">device_id,</if>
+            <if test="temperature != null">temperature,</if>
+            <if test="humidity != null">humidity,</if>
+            <if test="rainfall != null">rainfall,</if>
+            <if test="windDirection != null">wind_direction,</if>
+            <if test="windSpeed != null">wind_speed,</if>
+            <if test="airPressure != null">air_pressure,</if>
+            <if test="lightIntensity != null">light_intensity,</if>
+            <if test="collectTime != null">collect_time,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null and createBy != ''">create_by,</if>
+            <if test="updateBy != null">update_by,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="deviceId != null and deviceId != ''">#{deviceId},</if>
+            <if test="temperature != null">#{temperature},</if>
+            <if test="humidity != null">#{humidity},</if>
+            <if test="rainfall != null">#{rainfall},</if>
+            <if test="windDirection != null">#{windDirection},</if>
+            <if test="windSpeed != null">#{windSpeed},</if>
+            <if test="airPressure != null">#{airPressure},</if>
+            <if test="lightIntensity != null">#{lightIntensity},</if>
+            <if test="collectTime != null">#{collectTime},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null and createBy != ''">#{createBy},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+         </trim>
+    </insert>
+
+    <update id="updateWeatherRealtimeData" parameterType="WeatherRealtimeData">
+        update weather_realtime_data
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="deviceId != null and deviceId != ''">device_id = #{deviceId},</if>
+            <if test="temperature != null">temperature = #{temperature},</if>
+            <if test="humidity != null">humidity = #{humidity},</if>
+            <if test="rainfall != null">rainfall = #{rainfall},</if>
+            <if test="windDirection != null">wind_direction = #{windDirection},</if>
+            <if test="windSpeed != null">wind_speed = #{windSpeed},</if>
+            <if test="airPressure != null">air_pressure = #{airPressure},</if>
+            <if test="lightIntensity != null">light_intensity = #{lightIntensity},</if>
+            <if test="collectTime != null">collect_time = #{collectTime},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null and createBy != ''">create_by = #{createBy},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteWeatherRealtimeDataById" parameterType="Long">
+        delete from weather_realtime_data where id = #{id}
+    </delete>
+
+    <delete id="deleteWeatherRealtimeDataByIds" parameterType="String">
+        delete from weather_realtime_data where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>