虫情设备实时数据

This commit is contained in:
zhumeixiao
2024-11-08 17:38:39 +08:00
parent 00165f5123
commit 1be9b59b0c
18 changed files with 501 additions and 22 deletions

View File

@ -160,6 +160,12 @@
<groupId>com.fastbee</groupId>
<artifactId>fastbee-waterele-service</artifactId>
</dependency>
<dependency>
<groupId>com.fastbee</groupId>
<artifactId>fastbee-device-service</artifactId>
<version>3.8.5</version>
<scope>compile</scope>
</dependency>
</dependencies>

View File

@ -1,18 +1,20 @@
package com.fastbee.iot.timer;
import cn.hutool.http.HttpConfig;
import cn.hutool.core.date.DateTime;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.fastbee.common.core.redis.RedisCache;
import com.fastbee.deviceData.api.renke.constant.RenKeDeviceTypeConstant;
import com.fastbee.deviceData.domain.DeviceRealtimedataMeteorology;
import com.fastbee.deviceData.domain.DeviceRealtimedataWorms;
import com.fastbee.deviceData.service.impl.DeviceRealtimedataMeteorologyServiceImpl;
import com.fastbee.deviceData.service.impl.DeviceRealtimedataWormsServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.HashMap;
@ -29,6 +31,11 @@ public class DeviceDateTask {
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Autowired
private DeviceRealtimedataWormsServiceImpl deviceRealtimedataWormsServiceImpl;
@Autowired
private DeviceRealtimedataMeteorologyServiceImpl deviceRealtimedataMeteorologyServiceImpl;
/**
* 在执行定时任务中出现了异常会终止调度,所以需要捕获异常以便于下一轮
* 执行,不会影响下一次执行
@ -49,8 +56,28 @@ public class DeviceDateTask {
JSONArray realtimeList = JSONUtil.parseArray(respBody.get("data"));
System.err.println("设备实时数据:"+realtimeList);
//TODO 解析实时数据保存到数据库
for (Object jsonObject : realtimeList){
JSONObject josnConversion = (JSONObject) jsonObject;
if (RenKeDeviceTypeConstant.WORM.equals(josnConversion.get("deviceType"))){
JSONObject josnArray = JSONUtil.parseObj(josnConversion.get("data"));
DeviceRealtimedataWorms deviceRealtimedataWorms = JSONUtil.toBean(josnArray, DeviceRealtimedataWorms.class);
deviceRealtimedataWorms.setCreateTime(DateTime.now());
if(deviceRealtimedataWormsServiceImpl.insertDeviceRealtimedataWorms(deviceRealtimedataWorms)==1){
System.out.println("插入成功");
};
}else if (RenKeDeviceTypeConstant.MET.equals(josnConversion.get("deviceType"))){
JSONArray josnArray = JSONUtil.parseArray(josnConversion.get("data"));
for (Object json : josnArray){
DeviceRealtimedataMeteorology deviceRealtimedataMeteorology = JSONUtil.toBean((JSONObject) json, DeviceRealtimedataMeteorology.class);
deviceRealtimedataMeteorology.setCreateTime(DateTime.now());
if(deviceRealtimedataMeteorologyServiceImpl.insertDeviceRealtimedataMeteorology(deviceRealtimedataMeteorology)==1){
System.out.println("插入成功");
};
}
}
}
}
private String getAuth(){
@ -83,5 +110,7 @@ public class DeviceDateTask {
System.err.println("请求获取到token:"+tokenObject.get("token").toString());
return stringRedisTemplate.opsForValue().get("rkckth:user:token").toString();
}
}