Commit 2fce7232 authored by caotao's avatar caotao

优化调整户用光伏数据采集

parent f937b12d
package com.yeejoin.amos.api.householdapi.Utils;
import com.yeejoin.amos.api.householdapi.face.model.HouseholdPvApiDto;
import com.yeejoin.amos.openapi.enums.PVProducerInfoEnum;
import org.apache.commons.codec.binary.Base64;
import javax.crypto.Mac;
......@@ -11,40 +13,6 @@ import java.text.SimpleDateFormat;
import java.util.*;
//锦浪云 header处理类
public class GoLangHeaderUtils {
// public static void main(String[] args) {
// try {
// String key = "";
// String keySecret = "";
// Map<String,Object> map = new HashMap();
// map.put("pageNo",1);
// map.put("pageSize",10);
// String body = JSON.toJSONString(map);
// String ContentMd5 = getDigest(body);
// String Date = getGMTTime();
// String path = "/v1/api/userStationList";
// String param = "POST" + "\n" + ContentMd5 + "\n" + "application/json" + "\n" + Date + "\n" + path;
// String sign = HmacSHA1Encrypt(param, keySecret);
// String url = "url" + path ;
// OkHttpClient client = new OkHttpClient();
// MediaType xmlType = MediaType.parse("application/json;charset=UTF-8");
// okhttp3.RequestBody requestBody = okhttp3.RequestBody.create(xmlType,body);
// okhttp3.Request request = new okhttp3.Request.Builder()
// .url(url)
// .addHeader("Content-type", "application/json;charset=UTF-8")
// .addHeader("Authorization","API "+key+":"+sign)
// .addHeader("Content-MD5",ContentMd5)
// .addHeader("Date",Date)
// .post(requestBody)
// .build();
// Response response = client.newCall(request).execute();
// String string = response.body().string();
// System.out.println(string);
//
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
public static String HmacSHA1Encrypt(String encryptText, String KeySecret) throws Exception
{
byte[] data=KeySecret.getBytes("UTF-8");
......@@ -77,5 +45,29 @@ public class GoLangHeaderUtils {
}
return result;
}
/***
*
* @param params 参数字符窜
* @param householdPvApiDto apidto
* @param headMap header头
* @param orginalAuthorization 原始的orginalAuthorization
* @param appsecret appsecret
* @param cacheParams 缓存的参数值
* @desc 锦浪云请求参数及head头处理
*/
public void JLYHeaderMapHandler(String params, HouseholdPvApiDto householdPvApiDto, HashMap<String, String> headMap, String orginalAuthorization, String appsecret, String cacheParams) {
if (PVProducerInfoEnum.JLY.getCode().equals(householdPvApiDto.getProducerId())) {
String contentMD5 = GoLangHeaderUtils.getDigest(params);
headMap.put("Date", GoLangHeaderUtils.getGMTTime());
String param = "POST" + "\n" + contentMD5 + "\n" + "application/json" + "\n" + headMap.get("Date") + "\n" + householdPvApiDto.getApiUrl();
String sign = "";
try {
sign = GoLangHeaderUtils.HmacSHA1Encrypt(param, appsecret);
} catch (Exception e) {
throw new RuntimeException(e);
}
headMap.put("Content-MD5", contentMD5);
headMap.put("Authorization", orginalAuthorization + sign);
}
}
}
......@@ -19,6 +19,7 @@ import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.component.cache.Redis;
import java.util.*;
......@@ -54,7 +55,7 @@ public class HouseholdPvUtils {
String body = JSON.toJSONString(map);
String response = HttpUtil.createPost(url).body(body).execute().body();
JSONObject jsonObject = JSON.parseObject(response);
if (jsonObject.get("data") != null) {
if (!ObjectUtils.isEmpty(jsonObject.get("data"))) {
JSONObject jsonObject1 = (JSONObject) jsonObject.get("data");
hashMaphead.put("token", (String) jsonObject1.get("token"));
hashMap.put("header", hashMaphead);
......@@ -196,20 +197,20 @@ public class HouseholdPvUtils {
Map<String, Object> maps1 = (Map<String, Object>) o;
Set<String> keys = maps1.keySet();
keys.forEach((key) -> {
maps1.put(key, maps1.get(key).toString());
maps1.put(key,ObjectUtils.isEmpty(maps1.get(key))?"" :maps1.get(key).toString());
});
if (cacheField != null) {
if (!ObjectUtils.isEmpty("cacheField")) {
list.add(maps1.get(cacheField));
}
Map<String, String> maps2 = new HashMap<>();
maps2.put("key", UUID.randomUUID().toString());
if (measurement != null) {
if (!ObjectUtils.isEmpty(measurement)) {
influxDbConnection.insert(measurement, maps2, maps1);
}
}
}
if (cacheField != null) {
if ( !ObjectUtils.isEmpty(cacheField)) {
saveList = Redis.getRedisTemplate().opsForList().range(apiID, 0, -1);
if (saveList.size() == 0) {
Redis.getRedisTemplate().opsForList().leftPushAll(apiID, list);
......
......@@ -5,6 +5,10 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import com.yeejoin.amos.api.householdapi.Utils.HouseholdPvUtils;
import com.yeejoin.amos.api.householdapi.face.orm.entity.HouseholdPvApi;
import com.yeejoin.amos.api.householdapi.face.orm.entity.HouseholdPvProducerInfo;
import com.yeejoin.amos.api.householdapi.face.service.impl.HouseholdPvApiServiceImpl;
import com.yeejoin.amos.api.householdapi.face.service.impl.HouseholdPvProducerInfoServiceImpl;
import com.yeejoin.amos.component.influxdb.InfluxDbConnection;
import org.jetbrains.annotations.TestOnly;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -14,10 +18,7 @@ import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.UUID;
import java.util.*;
import java.util.zip.Inflater;
/**
......@@ -27,8 +28,10 @@ import java.util.zip.Inflater;
*/
@Component
public class DockingData {
@Autowired
private HouseholdPvProducerInfoServiceImpl householdPvProducerInfoServiceImpl;
@Autowired
private HouseholdPvApiServiceImpl householdPvApiServiceImpl;
@Autowired
InfluxDbConnection influxDbConnection;
@Autowired
......@@ -39,7 +42,6 @@ public class DockingData {
this.getDate();
}
//每二十分钟执行一次
@Scheduled(cron = "0 0/20 * * * ?")
public void fixedRate() {
......@@ -49,147 +51,148 @@ public class DockingData {
//请求获取数据
public void getDate(){
List<HouseholdPvApi> householdPvApiList =householdPvApiServiceImpl.list();
householdPvApiList.forEach(householdPvApi -> householdPvUtils.gerResponseByAPiID(householdPvApi.getSequenceNbr()));
// //首航
// String data1=householdPvUtils.gerResponseByAPiID(1000000002L);
// JSONObject json= JSON.parseObject(data1);
//
// if((Boolean)json.get("success")){
// JSONArray obj= json.get("stationList") !=null?(JSONArray)json.get("stationList"):null;
// if (obj!=null) {
// for (Object o : obj) {
// Map<String,Object> maps1 = (Map<String,Object>)o;
// Map<String,String> maps2=new HashMap<>();
// maps2.put("key", UUID.randomUUID().toString());
// influxDbConnection.insert("SH_DZ",maps2,maps1);
// }
// }
// }
//
// String data2=householdPvUtils.gerResponseByAPiID(1000000003L);
// JSONObject json2= JSON.parseObject(data2);
// if((Boolean)json2.get("success")) {
// JSONArray obj2 = json.get("deviceList") != null ? (JSONArray) json2.get("deviceList") : null;
// if (obj2!=null) {
// for (Object o : obj2) {
// Map<String, Object> maps1 = (Map<String, Object>) o;
// Map<String, String> maps2 = new HashMap<>();
// maps2.put("key", UUID.randomUUID().toString());
// influxDbConnection.insert("SH_ZB", maps2, maps1);
// }
// }
// }
//
// //固德威
// String data3 = householdPvUtils.gerResponseByAPiID(1000000006L);
//
// JSONObject json3= JSON.parseObject(data3);
// if(Integer.valueOf(json3.get("code").toString())==0) {
// JSONObject obj3 = json3.get("data") != null ? (JSONObject)json3.get("data") : null;
// if (obj3!=null&&obj3.get("list")!=null) {
//
// JSONArray ob = obj3.get("list") != null ? (JSONArray) obj3.get("list") : null;
//
// for (Object o : ob) {
// Map<String, Object> maps1 = (Map<String, Object>) o;
// Map<String, String> maps2 = new HashMap<>();
// maps2.put("key", UUID.randomUUID().toString());
// influxDbConnection.insert("GD_DZ", maps2, maps1);
// }
// }
// }
//
// String data4 = householdPvUtils.gerResponseByAPiID(1000000007L);
//
// JSONObject json4= JSON.parseObject(data4);
// if(Integer.valueOf(json4.get("code").toString())==0) {
// JSONObject obj4 = json4.get("data") != null ? (JSONObject)json4.get("data") : null;
// if (obj4!=null&&obj4.get("list")!=null) {
//
// JSONArray ob = obj4.get("list") != null ? (JSONArray) obj4.get("list") : null;
//
// for (Object o : ob) {
// Map<String, Object> maps1 = (Map<String, Object>) o;
// Map<String, String> maps2 = new HashMap<>();
// maps2.put("key", UUID.randomUUID().toString());
// influxDbConnection.insert("GD_ZT", maps2, maps1);
// }
// }
// }
//
// String data5 = householdPvUtils.gerResponseByAPiID(1000000008L);
//
// JSONObject json5= JSON.parseObject(data5);
// if(Integer.valueOf(json5.get("code").toString())==0) {
// JSONObject obj5 = json5.get("data") != null ? (JSONObject)json5.get("data") : null;
// if (obj5!=null&&obj5.get("list")!=null) {
//
// JSONArray ob = obj5.get("list") != null ? (JSONArray) obj5.get("list") : null;
//
// for (Object o : ob) {
// Map<String, Object> maps1 = (Map<String, Object>) o;
// Map<String, String> maps2 = new HashMap<>();
// maps2.put("key", UUID.randomUUID().toString());
// influxDbConnection.insert("GD_GJ", maps2, maps1);
// }
// }
// }
//
//
// String data6 = householdPvUtils.gerResponseByAPiID(1686897906789L);
//
// JSONObject json6= JSON.parseObject(data6);
// if(Integer.valueOf(json6.get("code").toString())==0) {
// JSONObject obj6 = json6.get("data") != null ? (JSONObject)json6.get("data") : null;
// if (obj6!=null&&obj6.get("page")!=null) {
//
// JSONArray ob = ((JSONObject)obj6.get("page")).get("records")!= null ? (JSONArray) ((JSONObject)obj6.get("page")).get("records") : null;
//
// for (Object o : ob) {
// Map<String, Object> maps1 = (Map<String, Object>) o;
// Map<String, String> maps2 = new HashMap<>();
// maps2.put("key", UUID.randomUUID().toString());
// influxDbConnection.insert("JL_CZ", maps2, maps1);
// }
// }
// }
// String data7 = householdPvUtils.gerResponseByAPiID(1686900771946L);
// JSONObject json7= JSON.parseObject(data7);
// if(Integer.valueOf(json7.get("code").toString())==0) {
// JSONObject obj7 = json7.get("data") != null ? (JSONObject)json7.get("data") : null;
// if (obj7!=null&&obj7.get("page")!=null) {
//
// JSONArray ob = ((JSONObject)obj7.get("page")).get("records")!= null ? (JSONArray) ((JSONObject)obj7.get("page")).get("records") : null;
//
// for (Object o : ob) {
// Map<String, Object> maps1 = (Map<String, Object>) o;
// Map<String, String> maps2 = new HashMap<>();
// maps2.put("key", UUID.randomUUID().toString());
//
// maps1.put("etotal1",maps1.get("etotal1").toString());
// maps1.put("etoday1",maps1.get("etoday1").toString());
// influxDbConnection.insert("JL_NBQ", maps2, maps1);
// }
// }
// }
// String data8 = householdPvUtils.gerResponseByAPiID(1686900972965L);
// JSONObject json8= JSON.parseObject(data8);
// if(Integer.valueOf(json8.get("code").toString())==0) {
// JSONObject obj8 = json8.get("data") != null ? (JSONObject)json8.get("data") : null;
// if (obj8!=null&&obj8.get("records")!=null) {
//
// JSONArray ob = obj8.get("records")!= null ? (JSONArray)obj8.get("records") : null;
//
// for (Object o : ob) {
// Map<String, Object> maps1 = (Map<String, Object>) o;
// Map<String, String> maps2 = new HashMap<>();
// maps2.put("key", UUID.randomUUID().toString());
// influxDbConnection.insert("JL_GJ", maps2, maps1);
// }
// }
// }
//首航
String data1=householdPvUtils.gerResponseByAPiID(1000000002L);
JSONObject json= JSON.parseObject(data1);
if((Boolean)json.get("success")){
JSONArray obj= json.get("stationList") !=null?(JSONArray)json.get("stationList"):null;
if (obj!=null) {
for (Object o : obj) {
Map<String,Object> maps1 = (Map<String,Object>)o;
Map<String,String> maps2=new HashMap<>();
maps2.put("key", UUID.randomUUID().toString());
influxDbConnection.insert("SH_DZ",maps2,maps1);
}
}
}
String data2=householdPvUtils.gerResponseByAPiID(1000000003L);
JSONObject json2= JSON.parseObject(data2);
if((Boolean)json2.get("success")) {
JSONArray obj2 = json.get("deviceList") != null ? (JSONArray) json2.get("deviceList") : null;
if (obj2!=null) {
for (Object o : obj2) {
Map<String, Object> maps1 = (Map<String, Object>) o;
Map<String, String> maps2 = new HashMap<>();
maps2.put("key", UUID.randomUUID().toString());
influxDbConnection.insert("SH_ZB", maps2, maps1);
}
}
}
//固德威
String data3 = householdPvUtils.gerResponseByAPiID(1000000006L);
JSONObject json3= JSON.parseObject(data3);
if(Integer.valueOf(json3.get("code").toString())==0) {
JSONObject obj3 = json3.get("data") != null ? (JSONObject)json3.get("data") : null;
if (obj3!=null&&obj3.get("list")!=null) {
JSONArray ob = obj3.get("list") != null ? (JSONArray) obj3.get("list") : null;
for (Object o : ob) {
Map<String, Object> maps1 = (Map<String, Object>) o;
Map<String, String> maps2 = new HashMap<>();
maps2.put("key", UUID.randomUUID().toString());
influxDbConnection.insert("GD_DZ", maps2, maps1);
}
}
}
String data4 = householdPvUtils.gerResponseByAPiID(1000000007L);
JSONObject json4= JSON.parseObject(data4);
if(Integer.valueOf(json4.get("code").toString())==0) {
JSONObject obj4 = json4.get("data") != null ? (JSONObject)json4.get("data") : null;
if (obj4!=null&&obj4.get("list")!=null) {
JSONArray ob = obj4.get("list") != null ? (JSONArray) obj4.get("list") : null;
for (Object o : ob) {
Map<String, Object> maps1 = (Map<String, Object>) o;
Map<String, String> maps2 = new HashMap<>();
maps2.put("key", UUID.randomUUID().toString());
influxDbConnection.insert("GD_ZT", maps2, maps1);
}
}
}
String data5 = householdPvUtils.gerResponseByAPiID(1000000008L);
JSONObject json5= JSON.parseObject(data5);
if(Integer.valueOf(json5.get("code").toString())==0) {
JSONObject obj5 = json5.get("data") != null ? (JSONObject)json5.get("data") : null;
if (obj5!=null&&obj5.get("list")!=null) {
JSONArray ob = obj5.get("list") != null ? (JSONArray) obj5.get("list") : null;
for (Object o : ob) {
Map<String, Object> maps1 = (Map<String, Object>) o;
Map<String, String> maps2 = new HashMap<>();
maps2.put("key", UUID.randomUUID().toString());
influxDbConnection.insert("GD_GJ", maps2, maps1);
}
}
}
String data6 = householdPvUtils.gerResponseByAPiID(1686897906789L);
JSONObject json6= JSON.parseObject(data6);
if(Integer.valueOf(json6.get("code").toString())==0) {
JSONObject obj6 = json6.get("data") != null ? (JSONObject)json6.get("data") : null;
if (obj6!=null&&obj6.get("page")!=null) {
JSONArray ob = ((JSONObject)obj6.get("page")).get("records")!= null ? (JSONArray) ((JSONObject)obj6.get("page")).get("records") : null;
for (Object o : ob) {
Map<String, Object> maps1 = (Map<String, Object>) o;
Map<String, String> maps2 = new HashMap<>();
maps2.put("key", UUID.randomUUID().toString());
influxDbConnection.insert("JL_CZ", maps2, maps1);
}
}
}
String data7 = householdPvUtils.gerResponseByAPiID(1686900771946L);
JSONObject json7= JSON.parseObject(data7);
if(Integer.valueOf(json7.get("code").toString())==0) {
JSONObject obj7 = json7.get("data") != null ? (JSONObject)json7.get("data") : null;
if (obj7!=null&&obj7.get("page")!=null) {
JSONArray ob = ((JSONObject)obj7.get("page")).get("records")!= null ? (JSONArray) ((JSONObject)obj7.get("page")).get("records") : null;
for (Object o : ob) {
Map<String, Object> maps1 = (Map<String, Object>) o;
Map<String, String> maps2 = new HashMap<>();
maps2.put("key", UUID.randomUUID().toString());
maps1.put("etotal1",maps1.get("etotal1").toString());
maps1.put("etoday1",maps1.get("etoday1").toString());
influxDbConnection.insert("JL_NBQ", maps2, maps1);
}
}
}
String data8 = householdPvUtils.gerResponseByAPiID(1686900972965L);
JSONObject json8= JSON.parseObject(data8);
if(Integer.valueOf(json8.get("code").toString())==0) {
JSONObject obj8 = json8.get("data") != null ? (JSONObject)json8.get("data") : null;
if (obj8!=null&&obj8.get("records")!=null) {
JSONArray ob = obj8.get("records")!= null ? (JSONArray)obj8.get("records") : null;
for (Object o : ob) {
Map<String, Object> maps1 = (Map<String, Object>) o;
Map<String, String> maps2 = new HashMap<>();
maps2.put("key", UUID.randomUUID().toString());
influxDbConnection.insert("JL_GJ", maps2, maps1);
}
}
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment