From 9c86df06c83dffc854f58e34e4fca78428d40a8c Mon Sep 17 00:00:00 2001 From: lau572 <1010031226@qq.com> Date: Mon, 5 Feb 2024 18:16:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AD=E9=97=B4=E5=BA=93=E6=B0=94=E8=B1=A1?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E5=99=A8=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DcMeteorologicalDetectorDataMapper.java | 16 ++++++++ .../DevicePropertyReportListener.java | 8 +++- .../IDcMeteorologicalDetectorDataService.java | 8 ++++ ...MeteorologicalDetectorDataServiceImpl.java | 20 ++++++++++ .../DcMeteorologicalDetectorDataMapper.xml | 40 ++++++++++++++++++- 5 files changed, 89 insertions(+), 3 deletions(-) diff --git a/zc-business/src/main/java/com/zc/business/mapper/DcMeteorologicalDetectorDataMapper.java b/zc-business/src/main/java/com/zc/business/mapper/DcMeteorologicalDetectorDataMapper.java index 3a0868cb..b98086ce 100644 --- a/zc-business/src/main/java/com/zc/business/mapper/DcMeteorologicalDetectorDataMapper.java +++ b/zc-business/src/main/java/com/zc/business/mapper/DcMeteorologicalDetectorDataMapper.java @@ -43,6 +43,22 @@ public interface DcMeteorologicalDetectorDataMapper */ int updateDcMeteorologicalDetectorData(DcMeteorologicalDetectorData dcMeteorologicalDetectorData); + /** + * 中间库新增气象检测器数据 + * + * @param dcMeteorologicalDetectorData 气象检测器数据 + * @return 结果 + */ + Boolean insertIntermediateWarehouseData(DcMeteorologicalDetectorData dcMeteorologicalDetectorData); + + /** + * 中间库修改气象检测器数据 + * + * @param dcMeteorologicalDetectorData 气象检测器数据 + * @return 结果 + */ + Boolean updateIntermediateWarehouseData(DcMeteorologicalDetectorData dcMeteorologicalDetectorData); + /** * 删除气象检测器数据 * diff --git a/zc-business/src/main/java/com/zc/business/message/device/listener/DevicePropertyReportListener.java b/zc-business/src/main/java/com/zc/business/message/device/listener/DevicePropertyReportListener.java index d7370696..561c79e6 100644 --- a/zc-business/src/main/java/com/zc/business/message/device/listener/DevicePropertyReportListener.java +++ b/zc-business/src/main/java/com/zc/business/message/device/listener/DevicePropertyReportListener.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.google.gson.JsonObject; import com.zc.business.domain.DcDevice; import com.zc.business.domain.DcMeteorologicalDetectorData; +import com.zc.business.enums.IotProductEnum; import com.zc.business.service.IDcMeteorologicalDetectorDataService; import com.zc.common.core.redis.stream.RedisStream; import org.slf4j.Logger; @@ -46,11 +47,14 @@ public class DevicePropertyReportListener implements StreamListener<String, Obje if (headers.get("productId") != null){ String productId = headers.get("productId").toString(); //气象检测器 - if ("zc-meteorological".equals(productId)){ + if (IotProductEnum.WEATHER_DETECTOR.value().equals(productId)){ DcMeteorologicalDetectorData meteorologicalDetectorData = (DcMeteorologicalDetectorData) data.get("properties"); meteorologicalDetectorData.setIotDeviceId(data.get("deviceId").toString()); meteorologicalDetectorDataService.insertDcMeteorologicalDetectorData(meteorologicalDetectorData); - } else if ("zc-yzsqkdc-3131".equals(productId)){ + + //设计院中间库 + meteorologicalDetectorDataService.insertIntermediateWarehouseData(meteorologicalDetectorData); + } else if (IotProductEnum.ONE_STOP_PRODUCT.value().equals(productId)){ //交调 } diff --git a/zc-business/src/main/java/com/zc/business/service/IDcMeteorologicalDetectorDataService.java b/zc-business/src/main/java/com/zc/business/service/IDcMeteorologicalDetectorDataService.java index f3810b7d..481967f4 100644 --- a/zc-business/src/main/java/com/zc/business/service/IDcMeteorologicalDetectorDataService.java +++ b/zc-business/src/main/java/com/zc/business/service/IDcMeteorologicalDetectorDataService.java @@ -35,6 +35,14 @@ public interface IDcMeteorologicalDetectorDataService */ int insertDcMeteorologicalDetectorData(DcMeteorologicalDetectorData dcMeteorologicalDetectorData); + /** + * 中间库新增气象检测器数据 + * + * @param dcMeteorologicalDetectorData 气象检测器数据 + * @return 结果 + */ + boolean insertIntermediateWarehouseData(DcMeteorologicalDetectorData dcMeteorologicalDetectorData); + /** * 修改气象检测器数据 * diff --git a/zc-business/src/main/java/com/zc/business/service/impl/DcMeteorologicalDetectorDataServiceImpl.java b/zc-business/src/main/java/com/zc/business/service/impl/DcMeteorologicalDetectorDataServiceImpl.java index 2e7d772b..c1d3d4da 100644 --- a/zc-business/src/main/java/com/zc/business/service/impl/DcMeteorologicalDetectorDataServiceImpl.java +++ b/zc-business/src/main/java/com/zc/business/service/impl/DcMeteorologicalDetectorDataServiceImpl.java @@ -1,6 +1,10 @@ package com.zc.business.service.impl; import java.util.List; + +import com.ruoyi.common.annotation.DataSource; +import com.ruoyi.common.enums.DataSourceType; +import com.zc.business.domain.DcDevice; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.zc.business.mapper.DcMeteorologicalDetectorDataMapper; @@ -55,6 +59,22 @@ public class DcMeteorologicalDetectorDataServiceImpl implements IDcMeteorologica return dcMeteorologicalDetectorDataMapper.insertDcMeteorologicalDetectorData(dcMeteorologicalDetectorData); } + /** + * 中间库新增气象检测器数据 + * + * @param dcMeteorologicalDetectorData 气象检测器数据 + * @return 结果 + */ + @DataSource(value = DataSourceType.SLAVE)//切换数据源 + @Override + public boolean insertIntermediateWarehouseData(DcMeteorologicalDetectorData dcMeteorologicalDetectorData) + { + if (!dcMeteorologicalDetectorDataMapper.updateIntermediateWarehouseData(dcMeteorologicalDetectorData)){ + return dcMeteorologicalDetectorDataMapper.insertIntermediateWarehouseData(dcMeteorologicalDetectorData); + } + return false; + } + /** * 修改气象检测器数据 * diff --git a/zc-business/src/main/resources/mapper/business/DcMeteorologicalDetectorDataMapper.xml b/zc-business/src/main/resources/mapper/business/DcMeteorologicalDetectorDataMapper.xml index f0055df1..673e82f7 100644 --- a/zc-business/src/main/resources/mapper/business/DcMeteorologicalDetectorDataMapper.xml +++ b/zc-business/src/main/resources/mapper/business/DcMeteorologicalDetectorDataMapper.xml @@ -65,7 +65,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" <include refid="selectDcMeteorologicalDetectorDataVo"/> where id = #{id} </select> - + <insert id="insertDcMeteorologicalDetectorData" parameterType="DcMeteorologicalDetectorData" useGeneratedKeys="true" keyProperty="id"> insert into dc_meteorological_detector_data <trim prefix="(" suffix=")" suffixOverrides=","> @@ -146,6 +146,44 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} </update> + <insert id="insertIntermediateWarehouseData" parameterType="DcMeteorologicalDetectorData" useGeneratedKeys="true" keyProperty="id"> + insert into meteorological_detector_data + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="iotDeviceId != null">device_id,</if> + <if test="temperature != null">temperature,</if> + <if test="humidity != null">humidity,</if> + <if test="precipitationType != null">precipitation_type,</if> + <if test="rainfall != null">rainfall,</if> + <if test="roadSurfaceStatus != null">road_surface_status,</if> + <if test="waterFilmThickness != null">water_film_thickness,</if> + update_time + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="iotDeviceId != null">#{iotDeviceId},</if> + <if test="temperature != null">#{temperature},</if> + <if test="humidity != null">#{humidity},</if> + <if test="precipitationType != null">#{precipitationType},</if> + <if test="rainfall != null">#{rainfall},</if> + <if test="roadSurfaceStatus != null">#{roadSurfaceStatus},</if> + <if test="waterFilmThickness != null">#{waterFilmThickness},</if> + current_date + </trim> + </insert> + + <update id="updateIntermediateWarehouseData" parameterType="DcMeteorologicalDetectorData"> + update meteorological_detector_data + <trim prefix="SET" suffixOverrides=","> + <if test="temperature != null">temperature = #{temperature},</if> + <if test="humidity != null">humidity = #{humidity},</if> + <if test="precipitationType != null">precipitation_type = #{precipitationType},</if> + <if test="rainfall != null">rainfall = #{rainfall},</if> + <if test="roadSurfaceStatus != null">road_surface_status = #{roadSurfaceStatus},</if> + <if test="waterFilmThickness != null">water_film_thickness = #{waterFilmThickness},</if> + update_time = current_date + </trim> + where device_id = #{iotDeviceId} + </update> + <delete id="deleteDcMeteorologicalDetectorDataById" parameterType="Long"> delete from dc_meteorological_detector_data where id = #{id} </delete>