From 5a83a183dd18c8255b0c4149c6f8319569f622b1 Mon Sep 17 00:00:00 2001 From: zhumeixiao <3313492479@qq.com> Date: Wed, 27 Nov 2024 14:47:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=99=AB=E6=83=85=E8=AE=BE=E5=A4=87=E5=AE=9E?= =?UTF-8?q?=E6=97=B6=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/domain/AjaxResult.java | 1 + .../DeviceRealtimedataWormsController.java | 21 +++++++---- .../domain/DeviceRealtimedataMiaoqing.java | 3 +- .../mapper/DeviceRealtimedataWormsMapper.java | 13 +++++++ .../IDeviceRealtimedataMiaoqingService.java | 8 ++++ .../IDeviceRealtimedataWormsService.java | 18 ++++++++- ...DeviceRealtimedataMiaoqingServiceImpl.java | 26 ++++++++++++- .../DeviceRealtimedataWormsServiceImpl.java | 37 ++++--------------- .../mapper/DeviceRealtimedataWormsMapper.xml | 9 +++++ 9 files changed, 95 insertions(+), 41 deletions(-) diff --git a/fastbee-common/src/main/java/com/fastbee/common/core/domain/AjaxResult.java b/fastbee-common/src/main/java/com/fastbee/common/core/domain/AjaxResult.java index 9db8ee4..646b6e3 100644 --- a/fastbee-common/src/main/java/com/fastbee/common/core/domain/AjaxResult.java +++ b/fastbee-common/src/main/java/com/fastbee/common/core/domain/AjaxResult.java @@ -56,6 +56,7 @@ public class AjaxResult extends HashMap { super.put(DATA_TAG, data); } + } diff --git a/fastbee-open-api/src/main/java/com/fastbee/data/controller/aaScreenAgricultural/DeviceRealtimedataWormsController.java b/fastbee-open-api/src/main/java/com/fastbee/data/controller/aaScreenAgricultural/DeviceRealtimedataWormsController.java index d70ecdf..38d5772 100644 --- a/fastbee-open-api/src/main/java/com/fastbee/data/controller/aaScreenAgricultural/DeviceRealtimedataWormsController.java +++ b/fastbee-open-api/src/main/java/com/fastbee/data/controller/aaScreenAgricultural/DeviceRealtimedataWormsController.java @@ -1,5 +1,6 @@ package com.fastbee.data.controller.aaScreenAgricultural; +import com.fastbee.common.core.controller.BaseController; import com.fastbee.common.core.domain.AjaxResult; import com.fastbee.deviceData.service.IDeviceRealtimedataMoistureService; import com.fastbee.deviceData.service.impl.DeviceRealtimedataWormsServiceImpl; @@ -11,18 +12,24 @@ import org.springframework.web.bind.annotation.RestController; @RestController() @RequestMapping("/worms") -public class DeviceRealtimedataWormsController { - -@Autowired +public class DeviceRealtimedataWormsController extends BaseController { + /** + * 虫情实时数据 + */ + @Autowired private DeviceRealtimedataWormsServiceImpl deviceRealtimedataWormsServiceImpl; /** - * 获取最新一条墒情数据 + * 获取设备编码虫情的最新一条数据 */ - @GetMapping("/weather/realtimedata") - public AjaxResult getLatestWeatherRealtimedata(String deviceId) { - return AjaxResult.success(deviceRealtimedataWormsServiceImpl.getLatestWeatherRealtimedata(deviceId)); + @GetMapping("/latest/realtimedata") + public AjaxResult getLatestWormsRealtimedata(String deviceId) { + return AjaxResult.success(deviceRealtimedataWormsServiceImpl.getLatestWormsRealtimedata(deviceId)); + } + @GetMapping("/all/realtimedata") + public AjaxResult getAllRealtimedata() { + return AjaxResult.success(deviceRealtimedataWormsServiceImpl.getWormsRealtimedata()); } } diff --git a/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/domain/DeviceRealtimedataMiaoqing.java b/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/domain/DeviceRealtimedataMiaoqing.java index 4959f87..8df1801 100644 --- a/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/domain/DeviceRealtimedataMiaoqing.java +++ b/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/domain/DeviceRealtimedataMiaoqing.java @@ -24,9 +24,8 @@ import com.fastbee.common.core.domain.BaseEntity; @NoArgsConstructor @AllArgsConstructor @Data -@EqualsAndHashCode(callSuper = true) @TableName("iot_device_realtimedata_miaoQing") -public class DeviceRealtimedataMiaoqing extends BaseEntity +public class DeviceRealtimedataMiaoqing { private static final long serialVersionUID = 1L; diff --git a/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/mapper/DeviceRealtimedataWormsMapper.java b/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/mapper/DeviceRealtimedataWormsMapper.java index 246afac..0764165 100644 --- a/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/mapper/DeviceRealtimedataWormsMapper.java +++ b/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/mapper/DeviceRealtimedataWormsMapper.java @@ -5,6 +5,7 @@ import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.fastbee.deviceData.domain.DeviceRealtimedataWorms; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; /** * 虫情设备实时数据Mapper接口 @@ -62,4 +63,16 @@ public interface DeviceRealtimedataWormsMapper extends BaseMapper getWormsRealtimedata(); } diff --git a/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/service/IDeviceRealtimedataMiaoqingService.java b/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/service/IDeviceRealtimedataMiaoqingService.java index b7d58b8..9fe918d 100644 --- a/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/service/IDeviceRealtimedataMiaoqingService.java +++ b/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/service/IDeviceRealtimedataMiaoqingService.java @@ -2,6 +2,7 @@ package com.fastbee.deviceData.service; import java.util.List; import com.fastbee.deviceData.domain.DeviceRealtimedataMiaoqing; +import com.fastbee.deviceData.domain.dto.DeviceProperties; /** * 苗青设备实时数据Service接口 @@ -58,4 +59,11 @@ public interface IDeviceRealtimedataMiaoqingService * @return 结果 */ public int deleteDeviceRealtimedataMiaoqingById(Long id); + + /** + * 获取最新一条苗青数据 + * @param deviceId + * @return + */ + public List getLatestMiaoqingRealtimedata(String deviceId); } diff --git a/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/service/IDeviceRealtimedataWormsService.java b/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/service/IDeviceRealtimedataWormsService.java index 20a8004..61ced1e 100644 --- a/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/service/IDeviceRealtimedataWormsService.java +++ b/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/service/IDeviceRealtimedataWormsService.java @@ -4,6 +4,7 @@ import java.util.List; import com.fastbee.deviceData.domain.DeviceRealtimedataWorms; import com.fastbee.deviceData.domain.dto.DeviceProperties; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; /** * 虫情设备实时数据Service接口 @@ -63,8 +64,21 @@ public interface IDeviceRealtimedataWormsService public int deleteDeviceRealtimedataWormsById(Long id); /** - * 获取虫情的最新一条数据 + * 获取设备编码虫情的最新一条数据 * @return */ - public List getLatestWeatherRealtimedata(String deviceId); + public DeviceRealtimedataWorms getLatestWormsRealtimedata(String deviceId); + + /** + * 获取最新的虫情监控 + * @return + */ + @Select("SELECT t1.* " + + "FROM iot_device_realtimedata_worms t1 " + + "JOIN ( " + + " SELECT device_addr, MAX(save_time) AS max_save_time " + + " FROM iot_device_realtimedata_worms " + + " GROUP BY device_addr " + + ") t2 ON t1.device_addr = t2.device_addr AND t1.save_time = t2.max_save_time") + public List getWormsRealtimedata(); } diff --git a/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/service/impl/DeviceRealtimedataMiaoqingServiceImpl.java b/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/service/impl/DeviceRealtimedataMiaoqingServiceImpl.java index 3f62a9e..85a6fb8 100644 --- a/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/service/impl/DeviceRealtimedataMiaoqingServiceImpl.java +++ b/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/service/impl/DeviceRealtimedataMiaoqingServiceImpl.java @@ -1,7 +1,13 @@ package com.fastbee.deviceData.service.impl; +import java.util.ArrayList; import java.util.List; +import java.util.Objects; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.fastbee.common.utils.DateUtils; +import com.fastbee.deviceData.domain.DeviceRealtimedataWorms; +import com.fastbee.deviceData.domain.dto.DeviceProperties; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.fastbee.deviceData.mapper.DeviceRealtimedataMiaoqingMapper; @@ -53,7 +59,6 @@ public class DeviceRealtimedataMiaoqingServiceImpl implements IDeviceRealtimedat @Override public int insertDeviceRealtimedataMiaoqing(DeviceRealtimedataMiaoqing deviceRealtimedataMiaoqing) { - deviceRealtimedataMiaoqing.setCreateTime(DateUtils.getNowDate()); return deviceRealtimedataMiaoqingMapper.insertDeviceRealtimedataMiaoqing(deviceRealtimedataMiaoqing); } @@ -92,4 +97,23 @@ public class DeviceRealtimedataMiaoqingServiceImpl implements IDeviceRealtimedat { return deviceRealtimedataMiaoqingMapper.deleteDeviceRealtimedataMiaoqingById(id); } + + /** + * 获取最新一条苗青数据 + * @param deviceId + * @return + */ + @Override + public List getLatestMiaoqingRealtimedata(String deviceId){ + System.err.println(deviceId); + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.orderByDesc("real_time"); + queryWrapper.last("limit 1"); + queryWrapper.eq("device_addr",deviceId); + DeviceRealtimedataMiaoqing miaoqing = deviceRealtimedataMiaoqingMapper.selectOne(queryWrapper); + if(Objects.isNull(miaoqing)){ +// return devicePropertiesList; + } + return null; + } } diff --git a/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/service/impl/DeviceRealtimedataWormsServiceImpl.java b/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/service/impl/DeviceRealtimedataWormsServiceImpl.java index 7894930..ba435f6 100644 --- a/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/service/impl/DeviceRealtimedataWormsServiceImpl.java +++ b/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/service/impl/DeviceRealtimedataWormsServiceImpl.java @@ -1,6 +1,7 @@ package com.fastbee.deviceData.service.impl; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Objects; @@ -100,43 +101,21 @@ public class DeviceRealtimedataWormsServiceImpl implements IDeviceRealtimedataW } /** - * 获取虫情的最新一条数据 + * 获取设备编码虫情的最新一条数据 * @return */ - public List getLatestWeatherRealtimedata(String deviceId){ + public DeviceRealtimedataWorms getLatestWormsRealtimedata(String deviceId){ System.err.println(deviceId); QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.orderByDesc("real_time"); queryWrapper.last("limit 1"); queryWrapper.eq("device_addr",deviceId); DeviceRealtimedataWorms moisture = deviceRealtimedataWormsMapper.selectOne(queryWrapper); + return moisture; + } - List devicePropertiesList = new ArrayList<>(); - if(Objects.isNull(moisture)){ - return devicePropertiesList; - } - devicePropertiesList.add(DeviceProperties.builder().name("设备编号").value(moisture.getDeviceAddr().toString()).unit("").build()); - devicePropertiesList.add(DeviceProperties.builder().name("降雨状态").value(moisture.getRain().toString()).unit("").build()); - devicePropertiesList.add(DeviceProperties.builder().name("杀虫挡板").value(moisture.getWormFlap().toString()).unit("m/s").build()); - devicePropertiesList.add(DeviceProperties.builder().name("杀虫仓温度").value(moisture.getInsecticideTem().toString()).unit("°C").build()); - devicePropertiesList.add(DeviceProperties.builder().name("震动装置").value(moisture.getShake().toString()).unit("").build()); - devicePropertiesList.add(DeviceProperties.builder().name("经度").value(moisture.getLng().toString()).unit("°").build()); - devicePropertiesList.add(DeviceProperties.builder().name("烘干挡板").value(moisture.getDryingFlap().toString()).unit("").build()); - devicePropertiesList.add(DeviceProperties.builder().name("杀虫控制").value(moisture.getInsecticide().toString()).unit("").build()); - devicePropertiesList.add(DeviceProperties.builder().name("移虫挡板").value(moisture.getMoveWorm().toString()).unit("").build()); - devicePropertiesList.add(DeviceProperties.builder().name("运行模式").value(moisture.getMode().toString()).unit("").build()); - devicePropertiesList.add(DeviceProperties.builder().name("烘干控制").value(moisture.getDrying().toString()).unit("").build()); - devicePropertiesList.add(DeviceProperties.builder().name("虫雨挡板").value(moisture.getRainFlap().toString()).unit("").build()); - devicePropertiesList.add(DeviceProperties.builder().name("诱虫灯状态").value(moisture.getAttractWorm().toString()).unit("°C").build()); - devicePropertiesList.add(DeviceProperties.builder().name("光照度").value(moisture.getIllum().toString()).unit("Lux").build()); - devicePropertiesList.add(DeviceProperties.builder().name("烘干仓温度").value(moisture.getDryingTem().toString()).unit("°C").build()); - devicePropertiesList.add(DeviceProperties.builder().name("纬度").value(moisture.getLat().toString()).unit("°").build()); - devicePropertiesList.add(DeviceProperties.builder().name("补光灯").value(moisture.getFillLight().toString()).unit("").build()); - devicePropertiesList.add(DeviceProperties.builder().name("设备状态").value(moisture.getStatus().toString()).unit("").build()); - devicePropertiesList.add(DeviceProperties.builder().name("保存时间").value(moisture.getSaveTime().toString()).unit("").build()); - devicePropertiesList.add(DeviceProperties.builder().name("实时时间").value(moisture.getRealTime().toString()).unit("").build()); - devicePropertiesList.add(DeviceProperties.builder().name("摄像头").value(moisture.getCamera().toString()).unit("").build()); - devicePropertiesList.add(DeviceProperties.builder().name("虫害照片").value(moisture.getPestPhotos().toString()).unit("").build()); - return devicePropertiesList; + @Override + public List getWormsRealtimedata() { + return deviceRealtimedataWormsMapper.getWormsRealtimedata(); } } diff --git a/fastbee-service/fastbee-device-service/src/main/resources/mapper/DeviceRealtimedataWormsMapper.xml b/fastbee-service/fastbee-device-service/src/main/resources/mapper/DeviceRealtimedataWormsMapper.xml index 37d30c3..d10b54e 100644 --- a/fastbee-service/fastbee-device-service/src/main/resources/mapper/DeviceRealtimedataWormsMapper.xml +++ b/fastbee-service/fastbee-device-service/src/main/resources/mapper/DeviceRealtimedataWormsMapper.xml @@ -158,4 +158,13 @@ #{id} + \ No newline at end of file