设备实时数据对接初步完成
This commit is contained in:
parent
fd4f007b49
commit
6d1f7acaec
@ -0,0 +1,208 @@
|
|||||||
|
package com.fastbee.deviceData.api.dashboard.service;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONObject;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.net.HttpURLConnection;
|
||||||
|
import java.net.MalformedURLException;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
public class ApiDemo {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
// 发送http请求的url
|
||||||
|
String url = "http://apis.juhe.cn/simpleWeather/query";
|
||||||
|
|
||||||
|
Map<String, String> params = new HashMap<String, String>();
|
||||||
|
params.put("key", "8fd5a2d4b0f26e5ba9c168b75c6281d5"); // 在个人中心->我的数据,接口名称上方查看
|
||||||
|
params.put("city", "苏州"); // 要查询的城市名称或城市ID
|
||||||
|
|
||||||
|
|
||||||
|
String paramsStr = urlencode(params);
|
||||||
|
System.out.println(paramsStr);
|
||||||
|
String response = doGet(url,paramsStr);
|
||||||
|
// // post请求
|
||||||
|
// String response = doPost(url,paramsStr);
|
||||||
|
|
||||||
|
// 输出请求结果
|
||||||
|
System.out.println(response);
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 解析请求结果,json:
|
||||||
|
JSONObject jsonObject = JSONUtil.parseObj(response);
|
||||||
|
System.out.println(jsonObject);
|
||||||
|
// 具体返回示例值,参考返回参数说明、json返回示例
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将map型转为请求参数型
|
||||||
|
public static String urlencode(Map<String, String> data) {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
for (Map.Entry i : data.entrySet()) {
|
||||||
|
try {
|
||||||
|
sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue() + "", "UTF-8")).append("&");
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get方式的http请求
|
||||||
|
*
|
||||||
|
* @param httpUrl 请求地址
|
||||||
|
* @param paramStr 请求参数
|
||||||
|
* @return 返回结果
|
||||||
|
*/
|
||||||
|
|
||||||
|
public static String doGet(String httpUrl,String paramStr) {
|
||||||
|
HttpURLConnection connection = null;
|
||||||
|
InputStream inputStream = null;
|
||||||
|
BufferedReader bufferedReader = null;
|
||||||
|
String result = null;// 返回结果字符串
|
||||||
|
try {
|
||||||
|
httpUrl += "?"+paramStr;
|
||||||
|
// 创建远程url连接对象
|
||||||
|
URL url = new URL(httpUrl);
|
||||||
|
// 通过远程url连接对象打开一个连接,强转成httpURLConnection类
|
||||||
|
connection = (HttpURLConnection) url.openConnection();
|
||||||
|
// 设置连接方式:get
|
||||||
|
connection.setRequestMethod("GET");
|
||||||
|
// 设置连接主机服务器的超时时间:15000毫秒
|
||||||
|
connection.setConnectTimeout(15000);
|
||||||
|
// 设置读取远程返回的数据时间:60000毫秒
|
||||||
|
connection.setReadTimeout(60000);
|
||||||
|
// 设置请求头
|
||||||
|
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
|
||||||
|
// 发送请求
|
||||||
|
connection.connect();
|
||||||
|
// 通过connection连接,获取输入流
|
||||||
|
if (connection.getResponseCode() == 200) {
|
||||||
|
inputStream = connection.getInputStream();
|
||||||
|
// 封装输入流,并指定字符集
|
||||||
|
bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
|
||||||
|
// 存放数据
|
||||||
|
StringBuilder sbf = new StringBuilder();
|
||||||
|
String temp;
|
||||||
|
while ((temp = bufferedReader.readLine()) != null) {
|
||||||
|
sbf.append(temp);
|
||||||
|
sbf.append(System.getProperty("line.separator"));
|
||||||
|
}
|
||||||
|
result = sbf.toString();
|
||||||
|
}
|
||||||
|
} catch (MalformedURLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
// 关闭资源
|
||||||
|
if (null != bufferedReader) {
|
||||||
|
try {
|
||||||
|
bufferedReader.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (null != inputStream) {
|
||||||
|
try {
|
||||||
|
inputStream.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (connection != null) {
|
||||||
|
connection.disconnect();// 关闭远程连接
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* post方式的http请求
|
||||||
|
*
|
||||||
|
* @param httpUrl 请求地址
|
||||||
|
* @param paramStr 请求参数
|
||||||
|
* @return 返回结果
|
||||||
|
*/
|
||||||
|
public static String doPost(String httpUrl, String paramStr) {
|
||||||
|
HttpURLConnection connection = null;
|
||||||
|
InputStream inputStream = null;
|
||||||
|
OutputStream outputStream = null;
|
||||||
|
BufferedReader bufferedReader = null;
|
||||||
|
String result = null;
|
||||||
|
try {
|
||||||
|
URL url = new URL(httpUrl);
|
||||||
|
// 通过远程url连接对象打开连接
|
||||||
|
connection = (HttpURLConnection) url.openConnection();
|
||||||
|
// 设置连接请求方式
|
||||||
|
connection.setRequestMethod("POST");
|
||||||
|
// 设置连接主机服务器超时时间:15000毫秒
|
||||||
|
connection.setConnectTimeout(15000);
|
||||||
|
// 设置读取主机服务器返回数据超时时间:60000毫秒
|
||||||
|
connection.setReadTimeout(60000);
|
||||||
|
// 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
|
||||||
|
connection.setDoOutput(true);
|
||||||
|
// 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
|
||||||
|
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
|
||||||
|
// 通过连接对象获取一个输出流
|
||||||
|
outputStream = connection.getOutputStream();
|
||||||
|
// 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
|
||||||
|
outputStream.write(paramStr.getBytes());
|
||||||
|
// 通过连接对象获取一个输入流,向远程读取
|
||||||
|
if (connection.getResponseCode() == 200) {
|
||||||
|
inputStream = connection.getInputStream();
|
||||||
|
// 对输入流对象进行包装:charset根据工作项目组的要求来设置
|
||||||
|
bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
|
||||||
|
StringBuilder sbf = new StringBuilder();
|
||||||
|
String temp;
|
||||||
|
// 循环遍历一行一行读取数据
|
||||||
|
while ((temp = bufferedReader.readLine()) != null) {
|
||||||
|
sbf.append(temp);
|
||||||
|
sbf.append(System.getProperty("line.separator"));
|
||||||
|
}
|
||||||
|
result = sbf.toString();
|
||||||
|
}
|
||||||
|
} catch (MalformedURLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
// 关闭资源
|
||||||
|
if (null != bufferedReader) {
|
||||||
|
try {
|
||||||
|
bufferedReader.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (null != outputStream) {
|
||||||
|
try {
|
||||||
|
outputStream.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (null != inputStream) {
|
||||||
|
try {
|
||||||
|
inputStream.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (connection != null) {
|
||||||
|
connection.disconnect();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
@ -1,9 +1,15 @@
|
|||||||
package com.fastbee.deviceData.api.devlink.service;
|
package com.fastbee.deviceData.api.devlink.service;
|
||||||
|
|
||||||
|
import com.fastbee.common.exception.ServiceException;
|
||||||
|
import com.fastbee.common.utils.DateUtils;
|
||||||
import com.fastbee.deviceData.domain.DeviceRealtimedataMeteorology;
|
import com.fastbee.deviceData.domain.DeviceRealtimedataMeteorology;
|
||||||
import com.fastbee.deviceData.mapper.DeviceRealtimedataMeteorologyMapper;
|
import com.fastbee.deviceData.mapper.DeviceRealtimedataMeteorologyMapper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
@ -40,7 +46,14 @@ public class DevLinkMetDataService extends DevLinkRealTimeDataService {
|
|||||||
.soilHumi(toBigDecimalValue(propertiesMap.get("soilHumi")))
|
.soilHumi(toBigDecimalValue(propertiesMap.get("soilHumi")))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
build.setSaveTime(DateUtils.getNowDate());
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
try {
|
||||||
|
Date date = sdf.parse(propertiesMap.get("realTime"));
|
||||||
|
build.setRealTime(date);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new ServiceException("时间格式转换失败!");
|
||||||
|
}
|
||||||
System.err.println(build);
|
System.err.println(build);
|
||||||
return build;
|
return build;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package com.fastbee.deviceData.api.devlink.service;
|
package com.fastbee.deviceData.api.devlink.service;
|
||||||
|
|
||||||
|
import com.fastbee.common.exception.ServiceException;
|
||||||
|
import com.fastbee.common.utils.DateUtils;
|
||||||
import com.fastbee.deviceData.domain.DeviceRealtimedataMiaoqing;
|
import com.fastbee.deviceData.domain.DeviceRealtimedataMiaoqing;
|
||||||
import com.fastbee.deviceData.domain.DeviceRealtimedataPhotovoltaic;
|
import com.fastbee.deviceData.domain.DeviceRealtimedataPhotovoltaic;
|
||||||
import com.fastbee.deviceData.mapper.DeviceRealtimedataMiaoqingMapper;
|
import com.fastbee.deviceData.mapper.DeviceRealtimedataMiaoqingMapper;
|
||||||
@ -7,6 +9,9 @@ import com.fastbee.deviceData.mapper.DeviceRealtimedataPhotovoltaicMapper;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -20,6 +25,7 @@ public class DevLinkMiaoQingDataService extends DevLinkRealTimeDataService {
|
|||||||
private DeviceRealtimedataMiaoqingMapper deviceRealtimedataMiaoqingMapper;
|
private DeviceRealtimedataMiaoqingMapper deviceRealtimedataMiaoqingMapper;
|
||||||
public DeviceRealtimedataMiaoqing setData(Map<String, String> propertiesMap){
|
public DeviceRealtimedataMiaoqing setData(Map<String, String> propertiesMap){
|
||||||
DeviceRealtimedataMiaoqing miaoqing = DeviceRealtimedataMiaoqing.builder()
|
DeviceRealtimedataMiaoqing miaoqing = DeviceRealtimedataMiaoqing.builder()
|
||||||
|
.deviceId(propertiesMap.get("deviceId"))
|
||||||
.airTemp(toBigDecimalValue(propertiesMap.get("airTemp")))
|
.airTemp(toBigDecimalValue(propertiesMap.get("airTemp")))
|
||||||
.mppTemp(toBigDecimalValue(propertiesMap.get("mppTemp")))
|
.mppTemp(toBigDecimalValue(propertiesMap.get("mppTemp")))
|
||||||
.batteryCap(Long.parseLong(propertiesMap.get("batteryCap")))
|
.batteryCap(Long.parseLong(propertiesMap.get("batteryCap")))
|
||||||
@ -43,6 +49,15 @@ public class DevLinkMiaoQingDataService extends DevLinkRealTimeDataService {
|
|||||||
.shoudong(toBigDecimalValue(propertiesMap.get("shoudong")))
|
.shoudong(toBigDecimalValue(propertiesMap.get("shoudong")))
|
||||||
.control(toBigDecimalValue(propertiesMap.get("control")))
|
.control(toBigDecimalValue(propertiesMap.get("control")))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
miaoqing.setSaveTime(DateUtils.getNowDate());
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
try {
|
||||||
|
Date date = sdf.parse(propertiesMap.get("realTime"));
|
||||||
|
miaoqing.setRealTime(date);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new ServiceException("时间格式转换失败!");
|
||||||
|
}
|
||||||
System.err.println(miaoqing);
|
System.err.println(miaoqing);
|
||||||
return miaoqing;
|
return miaoqing;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.fastbee.deviceData.api.devlink.service;
|
package com.fastbee.deviceData.api.devlink.service;
|
||||||
|
|
||||||
|
import com.fastbee.common.exception.ServiceException;
|
||||||
import com.fastbee.common.utils.DateUtils;
|
import com.fastbee.common.utils.DateUtils;
|
||||||
import com.fastbee.deviceData.domain.DeviceRealtimedataMeteorology;
|
import com.fastbee.deviceData.domain.DeviceRealtimedataMeteorology;
|
||||||
import com.fastbee.deviceData.domain.DeviceRealtimedataMoisture;
|
import com.fastbee.deviceData.domain.DeviceRealtimedataMoisture;
|
||||||
@ -9,6 +10,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -61,6 +65,13 @@ public class DevLinkMoistureDataService extends DevLinkRealTimeDataService{
|
|||||||
//TODO set实时时间
|
//TODO set实时时间
|
||||||
.saveTime(DateUtils.getNowDate())
|
.saveTime(DateUtils.getNowDate())
|
||||||
.build();
|
.build();
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
try {
|
||||||
|
Date date = sdf.parse(propertiesMap.get("realTime"));
|
||||||
|
build.setRealTime(date);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new ServiceException("时间格式转换失败!");
|
||||||
|
}
|
||||||
System.err.println(build);
|
System.err.println(build);
|
||||||
return build;
|
return build;
|
||||||
|
|
||||||
|
@ -1,9 +1,15 @@
|
|||||||
package com.fastbee.deviceData.api.devlink.service;
|
package com.fastbee.deviceData.api.devlink.service;
|
||||||
|
|
||||||
|
import com.fastbee.common.exception.ServiceException;
|
||||||
|
import com.fastbee.common.utils.DateUtils;
|
||||||
import com.fastbee.deviceData.domain.DeviceRealtimedataPhotovoltaic;
|
import com.fastbee.deviceData.domain.DeviceRealtimedataPhotovoltaic;
|
||||||
import com.fastbee.deviceData.mapper.DeviceRealtimedataPhotovoltaicMapper;
|
import com.fastbee.deviceData.mapper.DeviceRealtimedataPhotovoltaicMapper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -18,6 +24,7 @@ public class DevLinkPhotovoltaicDataService extends DevLinkRealTimeDataService{
|
|||||||
//封装数据
|
//封装数据
|
||||||
public DeviceRealtimedataPhotovoltaic setData(Map<String, String> propertiesMap){
|
public DeviceRealtimedataPhotovoltaic setData(Map<String, String> propertiesMap){
|
||||||
DeviceRealtimedataPhotovoltaic photovoltaic = DeviceRealtimedataPhotovoltaic.builder()
|
DeviceRealtimedataPhotovoltaic photovoltaic = DeviceRealtimedataPhotovoltaic.builder()
|
||||||
|
.deviceId(propertiesMap.get("deviceId"))
|
||||||
.airTemp(toBigDecimalValue(propertiesMap.get("airTemp")))
|
.airTemp(toBigDecimalValue(propertiesMap.get("airTemp")))
|
||||||
.mppTemp(toBigDecimalValue(propertiesMap.get("mppTemp")))
|
.mppTemp(toBigDecimalValue(propertiesMap.get("mppTemp")))
|
||||||
.batteryCap(toBigDecimalValue(propertiesMap.get("batteryCap")))
|
.batteryCap(toBigDecimalValue(propertiesMap.get("batteryCap")))
|
||||||
@ -64,6 +71,15 @@ public class DevLinkPhotovoltaicDataService extends DevLinkRealTimeDataService{
|
|||||||
.cumEleMon2(toBigDecimalValue(propertiesMap.get("cum_ele_mon_2")))
|
.cumEleMon2(toBigDecimalValue(propertiesMap.get("cum_ele_mon_2")))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
photovoltaic.setSaveTime(DateUtils.getNowDate());
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
try {
|
||||||
|
Date date = sdf.parse(propertiesMap.get("realTime"));
|
||||||
|
photovoltaic.setRealTime(date);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new ServiceException("时间格式转换失败!");
|
||||||
|
}
|
||||||
|
|
||||||
System.err.println(photovoltaic);
|
System.err.println(photovoltaic);
|
||||||
return photovoltaic;
|
return photovoltaic;
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,8 @@ public class DevLinkRealTimeDataService {
|
|||||||
// System.err.println("status:"+status);
|
// System.err.println("status:"+status);
|
||||||
//获取设备属性以及实时数据值
|
//获取设备属性以及实时数据值
|
||||||
Object properties = jsonObjectData.get("properties");
|
Object properties = jsonObjectData.get("properties");
|
||||||
|
//获取数据上报时间
|
||||||
|
String time = jsonObjectData.get("lastOnlineTime").toString();
|
||||||
JSONArray propertiesArray = JSONUtil.parseArray(properties);
|
JSONArray propertiesArray = JSONUtil.parseArray(properties);
|
||||||
DeviceRealtimedataMeteorology realData = new DeviceRealtimedataMeteorology();
|
DeviceRealtimedataMeteorology realData = new DeviceRealtimedataMeteorology();
|
||||||
//获取设备各项属性实时数据
|
//获取设备各项属性实时数据
|
||||||
@ -66,6 +68,7 @@ public class DevLinkRealTimeDataService {
|
|||||||
});
|
});
|
||||||
propertiesMap.put("status",status.toString());
|
propertiesMap.put("status",status.toString());
|
||||||
propertiesMap.put("deviceId",deviceId);
|
propertiesMap.put("deviceId",deviceId);
|
||||||
|
propertiesMap.put("realTime",time);
|
||||||
|
|
||||||
return propertiesMap;
|
return propertiesMap;
|
||||||
}
|
}
|
||||||
|
@ -27,11 +27,11 @@ public class RenKeAuthorizationService {
|
|||||||
|
|
||||||
public String getToken(){
|
public String getToken(){
|
||||||
//判断token是否过期
|
//判断token是否过期
|
||||||
// String cacheToken = stringRedisTemplate.opsForValue().get("renke:user:token");
|
String cacheToken = stringRedisTemplate.opsForValue().get("renke:user:token");
|
||||||
// if (!Objects.isNull(cacheToken)){
|
if (!Objects.isNull(cacheToken)){
|
||||||
// System.err.println("缓存中获取token:"+cacheToken);
|
System.err.println("缓存中获取token:"+cacheToken);
|
||||||
// return cacheToken;
|
return cacheToken;
|
||||||
// }
|
}
|
||||||
//获取token
|
//获取token
|
||||||
//构建请求体
|
//构建请求体
|
||||||
Map<String,Object> reqBody =new HashMap<>();
|
Map<String,Object> reqBody =new HashMap<>();
|
||||||
@ -50,9 +50,9 @@ public class RenKeAuthorizationService {
|
|||||||
int expDate = Integer.parseInt(tokenObject.get("expDate").toString());
|
int expDate = Integer.parseInt(tokenObject.get("expDate").toString());
|
||||||
Integer periodValidity= expDate - currDate;
|
Integer periodValidity= expDate - currDate;
|
||||||
//将token存入redis
|
//将token存入redis
|
||||||
return tokenObject.get("token").toString();
|
// return tokenObject.get("token").toString();
|
||||||
// stringRedisTemplate.opsForValue().set("renke:user:token", tokenObject.get("token").toString(),2, TimeUnit.HOURS);
|
stringRedisTemplate.opsForValue().set("renke:user:token", tokenObject.get("token").toString(),2, TimeUnit.HOURS);
|
||||||
// System.err.println("请求获取到token:"+tokenObject.get("token").toString());
|
System.err.println("请求获取到token:"+tokenObject.get("token").toString());
|
||||||
// return stringRedisTemplate.opsForValue().get("renke:user:token");
|
return stringRedisTemplate.opsForValue().get("renke:user:token");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,10 +5,18 @@ import cn.hutool.http.HttpResponse;
|
|||||||
import cn.hutool.json.JSONArray;
|
import cn.hutool.json.JSONArray;
|
||||||
import cn.hutool.json.JSONObject;
|
import cn.hutool.json.JSONObject;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.fastbee.common.exception.ServiceException;
|
||||||
|
import com.fastbee.common.utils.DateUtils;
|
||||||
|
import com.fastbee.deviceData.domain.DeviceRealtimedataWorms;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class RenkeDeviceDataService {
|
public class RenkeDeviceDataService {
|
||||||
|
|
||||||
@ -19,10 +27,10 @@ public class RenkeDeviceDataService {
|
|||||||
* 获取设备实时数据
|
* 获取设备实时数据
|
||||||
* @param deviceAddrs 设备地址,支持多个用英文逗号分隔
|
* @param deviceAddrs 设备地址,支持多个用英文逗号分隔
|
||||||
*/
|
*/
|
||||||
public void getDeviceRealtimeData(String deviceAddrs) {
|
public DeviceRealtimedataWorms setData(String deviceAddrs) {
|
||||||
//处理鉴权
|
//处理鉴权
|
||||||
// String token = authenticationService.getToken();
|
String token = authenticationService.getToken();
|
||||||
String token = new RenKeAuthorizationService().getToken();
|
// String token = new RenKeAuthorizationService().getToken();
|
||||||
//获取设备实时数据
|
//获取设备实时数据
|
||||||
HttpResponse response = HttpRequest.get("http://api.farm.0531yun.cn/api/v2.0/entrance/device/getRealTimeData")
|
HttpResponse response = HttpRequest.get("http://api.farm.0531yun.cn/api/v2.0/entrance/device/getRealTimeData")
|
||||||
.header("token", token)
|
.header("token", token)
|
||||||
@ -34,12 +42,27 @@ public class RenkeDeviceDataService {
|
|||||||
}
|
}
|
||||||
JSONObject respBody = JSONUtil.parseObj(respBodyStr);
|
JSONObject respBody = JSONUtil.parseObj(respBodyStr);
|
||||||
JSONArray realtimeDataList = JSONUtil.parseArray(respBody.get("data"));
|
JSONArray realtimeDataList = JSONUtil.parseArray(respBody.get("data"));
|
||||||
System.err.println("设备实时数据:"+realtimeDataList);
|
JSONObject jsonObject = JSONUtil.parseObj(realtimeDataList.get(0));
|
||||||
|
JSONObject jsonObject1 = JSONUtil.parseObj(jsonObject.get("data"));
|
||||||
|
//获取实时时间
|
||||||
|
String realTime = jsonObject1.get("DTime").toString();
|
||||||
|
DeviceRealtimedataWorms deviceRealtimedataWorms = JSONUtil.toBean(jsonObject1, DeviceRealtimedataWorms.class);
|
||||||
|
deviceRealtimedataWorms.setSaveTime(DateUtils.getNowDate());
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
try {
|
||||||
|
Date date = sdf.parse(realTime);
|
||||||
|
deviceRealtimedataWorms.setRealTime(date);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new ServiceException("时间格式转换失败!");
|
||||||
|
}
|
||||||
|
System.err.println("设备实时数据:"+deviceRealtimedataWorms);
|
||||||
|
return deviceRealtimedataWorms;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
RenkeDeviceDataService renkeDeviceDataService = new RenkeDeviceDataService();
|
RenkeDeviceDataService renkeDeviceDataService = new RenkeDeviceDataService();
|
||||||
renkeDeviceDataService.getDeviceRealtimeData("1017240042");
|
renkeDeviceDataService.setData("1017240042");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,8 @@ package com.fastbee.deviceData.domain;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@ -23,6 +25,7 @@ import com.fastbee.common.core.domain.BaseEntity;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("iot_device_realtimedata_miaoQing")
|
||||||
public class DeviceRealtimedataMiaoqing extends BaseEntity
|
public class DeviceRealtimedataMiaoqing extends BaseEntity
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package com.fastbee.deviceData.domain;
|
package com.fastbee.deviceData.domain;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
@ -22,6 +24,7 @@ import com.fastbee.common.core.domain.BaseEntity;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("iot_device_realtimedata_moisture")
|
||||||
public class DeviceRealtimedataMoisture extends BaseEntity
|
public class DeviceRealtimedataMoisture extends BaseEntity
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
@ -2,6 +2,8 @@ package com.fastbee.deviceData.domain;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@ -23,6 +25,7 @@ import com.fastbee.common.core.domain.BaseEntity;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("iot_device_realtimedata_photovoltaic")
|
||||||
public class DeviceRealtimedataPhotovoltaic extends BaseEntity
|
public class DeviceRealtimedataPhotovoltaic extends BaseEntity
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
@ -1,14 +1,19 @@
|
|||||||
package com.fastbee.deviceData.domain;
|
package com.fastbee.deviceData.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.Data;
|
||||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
import com.fastbee.common.annotation.Excel;
|
import com.fastbee.common.annotation.Excel;
|
||||||
import com.fastbee.common.core.domain.BaseEntity;
|
import com.fastbee.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 虫情设备实时数据对象 iot_device_realtimedata_worms
|
* 虫情设备实时数据对象 iot_device_realtimedata_worms
|
||||||
*
|
*
|
||||||
@ -18,6 +23,7 @@ import com.fastbee.common.core.domain.BaseEntity;
|
|||||||
@ApiModel(value = "DeviceRealtimedataWorms",description = "虫情设备实时数据 iot_device_realtimedata_worms")
|
@ApiModel(value = "DeviceRealtimedataWorms",description = "虫情设备实时数据 iot_device_realtimedata_worms")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("iot_device_realtimedata_worms")
|
||||||
public class DeviceRealtimedataWorms extends BaseEntity
|
public class DeviceRealtimedataWorms extends BaseEntity
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
@ -115,4 +121,16 @@ private static final long serialVersionUID = 1L;
|
|||||||
@ApiModelProperty("设备状态")
|
@ApiModelProperty("设备状态")
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
|
/** 保存时间 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@Excel(name = "保存时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||||
|
@ApiModelProperty("保存时间")
|
||||||
|
private Date saveTime;
|
||||||
|
|
||||||
|
/** 实时时间 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@Excel(name = "实时时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||||
|
@ApiModelProperty("实时时间")
|
||||||
|
private Date realTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package com.fastbee.deviceData.mapper;
|
package com.fastbee.deviceData.mapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.fastbee.deviceData.domain.DeviceRealtimedataMeteorology;
|
import com.fastbee.deviceData.domain.DeviceRealtimedataMeteorology;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
@ -11,7 +13,7 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
* @date 2024-11-14
|
* @date 2024-11-14
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface DeviceRealtimedataMeteorologyMapper
|
public interface DeviceRealtimedataMeteorologyMapper extends BaseMapper<DeviceRealtimedataMeteorology>
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* 查询气象设备实时数据
|
* 查询气象设备实时数据
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package com.fastbee.deviceData.mapper;
|
package com.fastbee.deviceData.mapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.fastbee.deviceData.domain.DeviceRealtimedataMiaoqing;
|
import com.fastbee.deviceData.domain.DeviceRealtimedataMiaoqing;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
@ -11,7 +13,7 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
* @date 2024-11-14
|
* @date 2024-11-14
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface DeviceRealtimedataMiaoqingMapper
|
public interface DeviceRealtimedataMiaoqingMapper extends BaseMapper<DeviceRealtimedataMiaoqing>
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* 查询苗青设备实时数据
|
* 查询苗青设备实时数据
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package com.fastbee.deviceData.mapper;
|
package com.fastbee.deviceData.mapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.fastbee.deviceData.domain.DeviceRealtimedataMoisture;
|
import com.fastbee.deviceData.domain.DeviceRealtimedataMoisture;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
@ -11,7 +13,7 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
* @date 2024-11-14
|
* @date 2024-11-14
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface DeviceRealtimedataMoistureMapper
|
public interface DeviceRealtimedataMoistureMapper extends BaseMapper<DeviceRealtimedataMoisture>
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* 查询墒情实时数据
|
* 查询墒情实时数据
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package com.fastbee.deviceData.mapper;
|
package com.fastbee.deviceData.mapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.fastbee.deviceData.domain.DeviceRealtimedataPhotovoltaic;
|
import com.fastbee.deviceData.domain.DeviceRealtimedataPhotovoltaic;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
@ -11,7 +13,7 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
* @date 2024-11-14
|
* @date 2024-11-14
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface DeviceRealtimedataPhotovoltaicMapper
|
public interface DeviceRealtimedataPhotovoltaicMapper extends BaseMapper<DeviceRealtimedataPhotovoltaic>
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* 查询光伏设备实时数据
|
* 查询光伏设备实时数据
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package com.fastbee.deviceData.mapper;
|
package com.fastbee.deviceData.mapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.fastbee.deviceData.domain.DeviceRealtimedataWorms;
|
import com.fastbee.deviceData.domain.DeviceRealtimedataWorms;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
@ -11,7 +13,7 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
* @date 2024-11-14
|
* @date 2024-11-14
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface DeviceRealtimedataWormsMapper
|
public interface DeviceRealtimedataWormsMapper extends BaseMapper<DeviceRealtimedataWorms>
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* 查询虫情设备实时数据
|
* 查询虫情设备实时数据
|
||||||
|
@ -24,10 +24,12 @@
|
|||||||
<result property="lat" column="lat" />
|
<result property="lat" column="lat" />
|
||||||
<result property="fillLight" column="fill_light" />
|
<result property="fillLight" column="fill_light" />
|
||||||
<result property="status" column="status" />
|
<result property="status" column="status" />
|
||||||
|
<result property="saveTime" column="save_time" />
|
||||||
|
<result property="realTime" column="real_time" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectDeviceRealtimedataWormsVo">
|
<sql id="selectDeviceRealtimedataWormsVo">
|
||||||
select id, device_addr, rain, worm_flap, insecticide_tem, shake, lng, drying_flap, insecticide, move_worm, mode, drying, rain_flap, attract_worm, illum, drying_tem, lat, fill_light, status from iot_device_realtimedata_worms
|
select id, device_addr, rain, worm_flap, insecticide_tem, shake, lng, drying_flap, insecticide, move_worm, mode, drying, rain_flap, attract_worm, illum, drying_tem, lat, fill_light, status, save_time, real_time from iot_device_realtimedata_worms
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectDeviceRealtimedataWormsList" parameterType="DeviceRealtimedataWorms" resultMap="DeviceRealtimedataWormsResult">
|
<select id="selectDeviceRealtimedataWormsList" parameterType="DeviceRealtimedataWorms" resultMap="DeviceRealtimedataWormsResult">
|
||||||
@ -51,6 +53,8 @@
|
|||||||
<if test="lat != null and lat != ''"> and lat = #{lat}</if>
|
<if test="lat != null and lat != ''"> and lat = #{lat}</if>
|
||||||
<if test="fillLight != null and fillLight != ''"> and fill_light = #{fillLight}</if>
|
<if test="fillLight != null and fillLight != ''"> and fill_light = #{fillLight}</if>
|
||||||
<if test="status != null and status != ''"> and status = #{status}</if>
|
<if test="status != null and status != ''"> and status = #{status}</if>
|
||||||
|
<if test="saveTime != null "> and save_time = #{saveTime}</if>
|
||||||
|
<if test="realTime != null "> and real_time = #{realTime}</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
@ -80,6 +84,8 @@
|
|||||||
<if test="lat != null">lat,</if>
|
<if test="lat != null">lat,</if>
|
||||||
<if test="fillLight != null">fill_light,</if>
|
<if test="fillLight != null">fill_light,</if>
|
||||||
<if test="status != null">status,</if>
|
<if test="status != null">status,</if>
|
||||||
|
<if test="saveTime != null">save_time,</if>
|
||||||
|
<if test="realTime != null">real_time,</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="deviceAddr != null">#{deviceAddr},</if>
|
<if test="deviceAddr != null">#{deviceAddr},</if>
|
||||||
@ -100,6 +106,8 @@
|
|||||||
<if test="lat != null">#{lat},</if>
|
<if test="lat != null">#{lat},</if>
|
||||||
<if test="fillLight != null">#{fillLight},</if>
|
<if test="fillLight != null">#{fillLight},</if>
|
||||||
<if test="status != null">#{status},</if>
|
<if test="status != null">#{status},</if>
|
||||||
|
<if test="saveTime != null">#{saveTime},</if>
|
||||||
|
<if test="realTime != null">#{realTime},</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
@ -124,6 +132,8 @@
|
|||||||
<if test="lat != null">lat = #{lat},</if>
|
<if test="lat != null">lat = #{lat},</if>
|
||||||
<if test="fillLight != null">fill_light = #{fillLight},</if>
|
<if test="fillLight != null">fill_light = #{fillLight},</if>
|
||||||
<if test="status != null">status = #{status},</if>
|
<if test="status != null">status = #{status},</if>
|
||||||
|
<if test="saveTime != null">save_time = #{saveTime},</if>
|
||||||
|
<if test="realTime != null">real_time = #{realTime},</if>
|
||||||
</trim>
|
</trim>
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
</update>
|
</update>
|
||||||
|
@ -7,10 +7,17 @@ import cn.hutool.http.HttpResponse;
|
|||||||
import cn.hutool.json.JSONArray;
|
import cn.hutool.json.JSONArray;
|
||||||
import cn.hutool.json.JSONObject;
|
import cn.hutool.json.JSONObject;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.fastbee.deviceData.api.devlink.service.DevLinkMetDataService;
|
||||||
|
import com.fastbee.deviceData.api.devlink.service.DevLinkMiaoQingDataService;
|
||||||
|
import com.fastbee.deviceData.api.devlink.service.DevLinkMoistureDataService;
|
||||||
|
import com.fastbee.deviceData.api.devlink.service.DevLinkPhotovoltaicDataService;
|
||||||
import com.fastbee.deviceData.api.renke.constant.RenKeDeviceTypeConstant;
|
import com.fastbee.deviceData.api.renke.constant.RenKeDeviceTypeConstant;
|
||||||
import com.fastbee.deviceData.api.renke.service.RenKeAuthorizationService;
|
import com.fastbee.deviceData.api.renke.service.RenKeAuthorizationService;
|
||||||
import com.fastbee.deviceData.domain.DeviceRealtimedataWorms;
|
import com.fastbee.deviceData.api.renke.service.RenkeDeviceDataService;
|
||||||
|
import com.fastbee.deviceData.domain.*;
|
||||||
|
|
||||||
|
import com.fastbee.deviceData.mapper.*;
|
||||||
|
import com.fastbee.deviceData.service.IDeviceRealtimedataWormsService;
|
||||||
import com.fastbee.deviceData.service.impl.DeviceRealtimedataWormsServiceImpl;
|
import com.fastbee.deviceData.service.impl.DeviceRealtimedataWormsServiceImpl;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -21,56 +28,103 @@ import org.springframework.stereotype.Component;
|
|||||||
/**
|
/**
|
||||||
* @author mijiupro
|
* @author mijiupro
|
||||||
*/
|
*/
|
||||||
@Component("renkeDeviceDateTask")
|
@Component("agricultureDeviceDateTask")
|
||||||
public class DeviceDateTask {
|
public class DeviceDateTask {
|
||||||
//
|
//
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private StringRedisTemplate stringRedisTemplate;
|
private StringRedisTemplate stringRedisTemplate;
|
||||||
@Autowired
|
|
||||||
private DeviceRealtimedataWormsServiceImpl deviceRealtimedataWormsServiceImpl;
|
// @Autowired
|
||||||
|
// private ThreadPoolTaskExecutor taskExecutor;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RenKeAuthorizationService renKeAuthorizationService;
|
private DeviceRealtimedataWormsMapper deviceRealtimedataWormsMapper;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
|
private DeviceRealtimedataMeteorologyMapper deviceRealtimedataMeteorologyMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DeviceRealtimedataMoistureMapper deviceRealtimedataMoistureMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DeviceRealtimedataPhotovoltaicMapper deviceRealtimedataPhotovoltaicMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DeviceRealtimedataMiaoqingMapper deviceRealtimedataMiaoqingMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RenkeDeviceDataService wormsService; //虫情设备数据获取
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DevLinkMetDataService metDataService; //气象设备数据获取
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DevLinkMoistureDataService moistureDataService; //墒情设备数据获取
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DevLinkPhotovoltaicDataService photovoltaicDataService; //光伏设备数据获取
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DevLinkMiaoQingDataService miaoQingDataService; //苗情设备数据获取
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 在执行定时任务中出现了异常会终止调度,所以需要捕获异常以便于下一轮
|
* 获取虫情设备实时数据并保存
|
||||||
* 执行,不会影响下一次执行
|
|
||||||
*/
|
*/
|
||||||
public void getRenkeDeviceRealtimeData() throws Exception{
|
public void getWormsDeviceRealtimeData() throws Exception{
|
||||||
|
DeviceRealtimedataWorms deviceRealtimedataWorms = wormsService.setData("1017240042");
|
||||||
//获取设备实时数据
|
int i = deviceRealtimedataWormsMapper.insert(deviceRealtimedataWorms);
|
||||||
//请求参数
|
if (i<1){
|
||||||
HttpResponse response = HttpRequest.get("http://api.farm.0531yun.cn/api/v2.0/entrance/device/getRealTimeData")
|
System.out.println("插入数据失败!");
|
||||||
.header("token", renKeAuthorizationService.getToken())
|
|
||||||
.execute();
|
|
||||||
String respBodyStr = response.body();
|
|
||||||
if(StringUtils.isBlank(respBodyStr)) {
|
|
||||||
throw new RuntimeException("获取设备实时数据失败!");
|
|
||||||
}
|
|
||||||
JSONObject respBody = JSONUtil.parseObj(respBodyStr);
|
|
||||||
JSONArray realtimeList = JSONUtil.parseArray(respBody.get("data"));
|
|
||||||
// threadPoolTaskExecutor.execute( () -> {System.err.println("设备实时数据:"+realtimeList);});
|
|
||||||
|
|
||||||
//TODO 解析实时数据保存到数据库
|
|
||||||
for (Object realtimeData : realtimeList){
|
|
||||||
JSONObject jsonConversion = JSONUtil.parseObj(realtimeData);
|
|
||||||
if (RenKeDeviceTypeConstant.WORM.equals(jsonConversion.get("deviceType"))){
|
|
||||||
JSONObject jsonObject1 = JSONUtil.parseObj(jsonConversion.get("data"));
|
|
||||||
DeviceRealtimedataWorms deviceRealtimedataWorms = JSONUtil.toBean(jsonObject1, DeviceRealtimedataWorms.class);
|
|
||||||
deviceRealtimedataWorms.setCreateTime(DateTime.now());
|
|
||||||
// System.err.println("序列化为蠕虫设备数据类:"+deviceRealtimedataWorms);
|
|
||||||
if(deviceRealtimedataWormsServiceImpl.insertDeviceRealtimedataWorms(deviceRealtimedataWorms)!=1){
|
|
||||||
System.out.println("插入失败!");
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取气象设备实时数据并保存
|
||||||
|
*/
|
||||||
|
public void getDevLinkMetDeviceRealtimeData() throws Exception{
|
||||||
|
DeviceRealtimedataMeteorology deviceRealtimedataMeteorology = metDataService.setData(metDataService.getMetDeviceRealData("3269"));
|
||||||
|
int i = deviceRealtimedataMeteorologyMapper.insert(deviceRealtimedataMeteorology);
|
||||||
|
if (i<1){
|
||||||
|
System.out.println("插入数据失败!");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 获取墒情设备实时数据并保存
|
||||||
|
*/
|
||||||
|
public void getDevLinkMoistureDeviceRealtimeData() throws Exception{
|
||||||
|
DeviceRealtimedataMoisture deviceRealtimedataMoisture = moistureDataService.setData(moistureDataService.getMetDeviceRealData("3270"));
|
||||||
|
int i = deviceRealtimedataMoistureMapper.insert(deviceRealtimedataMoisture);
|
||||||
|
if (i<1)
|
||||||
|
System.out.println("插入数据失败!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取光伏设备实时数据并保存
|
||||||
|
*/
|
||||||
|
public void getDevLinkPhotovoltaicDeviceRealtimeData() throws Exception{
|
||||||
|
DeviceRealtimedataPhotovoltaic deviceRealtimedataPhotovoltaic = photovoltaicDataService.setData(photovoltaicDataService.getMetDeviceRealData("3276"));
|
||||||
|
int i = deviceRealtimedataPhotovoltaicMapper.insert(deviceRealtimedataPhotovoltaic);
|
||||||
|
if (i<1)
|
||||||
|
System.out.println("插入数据失败!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取苗情设备实时数据并保存
|
||||||
|
*/
|
||||||
|
public void getDevLinkMiaoqingDeviceRealtimeData() throws Exception{
|
||||||
|
DeviceRealtimedataMiaoqing deviceRealtimedataMiaoqing = miaoQingDataService.setData(miaoQingDataService.getMetDeviceRealData("3275"));
|
||||||
|
int i = deviceRealtimedataMiaoqingMapper.insert(deviceRealtimedataMiaoqing);
|
||||||
|
if (i<1)
|
||||||
|
System.out.println("插入数据失败!");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user