虫情设备实时数据接口

This commit is contained in:
zhumeixiao 2024-11-27 14:47:08 +08:00
parent 646c8f0fc5
commit 5a83a183dd
9 changed files with 95 additions and 41 deletions

View File

@ -56,6 +56,7 @@ public class AjaxResult extends HashMap<String, Object>
{
super.put(DATA_TAG, data);
}
}

View File

@ -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());
}
}

View File

@ -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;

View File

@ -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<DeviceRealtime
* @return 结果
*/
public int deleteDeviceRealtimedataWormsByIds(Long[] ids);
/**
* 获取最新的虫情监控
* @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<DeviceRealtimedataWorms> getWormsRealtimedata();
}

View File

@ -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<DeviceProperties> getLatestMiaoqingRealtimedata(String deviceId);
}

View File

@ -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<DeviceProperties> 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<DeviceRealtimedataWorms> getWormsRealtimedata();
}

View File

@ -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<DeviceProperties> 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;
}
}

View File

@ -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<DeviceProperties> 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<DeviceProperties> 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<DeviceRealtimedataWorms> getWormsRealtimedata() {
return deviceRealtimedataWormsMapper.getWormsRealtimedata();
}
}

View File

@ -158,4 +158,13 @@
#{id}
</foreach>
</delete>
<select id="getWormsRealtimedata" resultType="DeviceRealtimedataWorms">
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
</select>
</mapper>