From c5a4733debc9c2fe0c75f73e0c31cc9c9d4c560c Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期二, 15 七月 2025 11:39:39 +0800
Subject: [PATCH] 硬件数据推送
---
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/KsolarUtils.java | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 106 insertions(+), 8 deletions(-)
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/KsolarUtils.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/KsolarUtils.java
index 1efb97a..06ab4ac 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/KsolarUtils.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/KsolarUtils.java
@@ -19,10 +19,7 @@
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Random;
+import java.util.*;
/**
@@ -34,9 +31,17 @@
private static String token;
+ private static String accessToken;
+
private static List<String> stationIds= Arrays.asList("2025060710462417","2025060711331323","2025060715425437","2025060716010425");
+
+ /**
+ * 获取今日总发电量
+ * @param time
+ * @return
+ */
public static Double getTodayEnergy(String time) {
try {
HttpRequest get = HttpUtil.createGet("http://111.230.136.62:8092/station/list/earn");
@@ -60,7 +65,46 @@
return getTodayEnergy(time);
}
}
+ public static ArrayList<Map<String, Object>> getMonthEnergy(String time,String time1) {
+ ArrayList<Map<String, Object>> list = new ArrayList<>();
+ try {
+ HttpRequest get = HttpUtil.createGet("http://111.230.136.62:8092/protocol/user/statistic/elec/chart");
+ get.header("Authorization", "Bearer "+token);
+ get.form("stime", time);
+ get.form("attribId", "201");
+ HttpResponse execute = get.execute();
+ String body = execute.body();
+ if(body.contains("code")){
+ token = token();
+ return getMonthEnergy(time,time1);
+ }
+ JSONArray jsonArray = JSONArray.parseArray(body);
+ for (Object o1 : jsonArray) {
+ HashMap<String, Object> stringObjectHashMap = new HashMap<>();
+ JSONObject jsonObject = JSONObject.parseObject(o1.toString()) ;
+ stringObjectHashMap.put("time", jsonObject.getString("saveTime"));
+ stringObjectHashMap.put("value", jsonObject.getString("attribValue"));
+ list.add(stringObjectHashMap);
+ }
+ // 相同月份
+ if(!time.equals(time1)){
+ list.addAll(getMonthEnergy(time1,time1));
+ }
+ return list;
+ } catch (Exception e) {
+ e.printStackTrace();
+ token = token();
+ return getMonthEnergy(time,time1);
+ }
+ }
+
+
+
+ /**
+ * 光伏累计
+ * @return
+ */
public static Double getAllEnergy(String time) {
try {
HttpRequest get = HttpUtil.createGet("http://111.230.136.62:8092/station/list/earn");
@@ -100,11 +144,13 @@
return divide;
}
+
+
private static Double getYearAllEnergy(String stationId) {
try {
HttpRequest get = HttpUtil.createGet("http://111.230.136.62:8092/protocol/station/statistic/elec/chart");
get.header("Authorization", "Bearer "+token);
- get.form("stationId", "2025060710462417");
+ get.form("stationId", stationId);
get.form("attribId", "202");
get.form("stime",LocalDate.now().getYear()+"" );
HttpResponse execute = get.execute();
@@ -118,7 +164,7 @@
} catch (Exception e) {
e.printStackTrace();
token = token();
- return getYearAllEnergy(LocalDate.now().getYear()+"");
+ return getYearAllEnergy(stationId);
}
}
@@ -138,9 +184,61 @@
return access_token;
}
- public static void main(String[] args) throws Exception {
- System.out.println(getYearAllEnergy("2025",""));
+
+ public static String getAccessToken(){
+ HttpRequest post = HttpRequest.post("https://www.zsdcloud.cn:8443/openApi/getAccessToken.action?accessId=87bde117-1f29-4371-8d4d-82324d17ddc3");
+ HttpResponse execute = post.execute();
+ String body = execute.body();
+ JSONObject jsonObject = JSONObject.parseObject(body);
+ return jsonObject.getString("result");
}
+ /**
+ * 消纳数据
+ * @return
+ */
+ public static String getElectricity(){
+ String valueTotal = "0";
+ String value = "0";
+ HttpRequest post = HttpRequest.post("https://www.zsdcloud.cn:8443/openApi/equipment/select.action");
+ post.form("token", accessToken);
+ post.form("keyCode", "869916072003947");
+ post.form("version", "V2");
+ HttpResponse execute = post.execute();
+ String body = execute.body();
+ JSONObject jsonObject = JSONObject.parseObject(body);
+ String string = jsonObject.get("statusCode").toString();
+ if(!string.equals("200")){
+ accessToken = getAccessToken();
+ return getElectricity();
+
+ }
+ String string1 = jsonObject.getString("result");
+ JSONObject jsonObject1 = JSONObject.parseObject(string1);
+ String realInfo = jsonObject1.getString("childList");
+ JSONArray jsonArray = JSONArray.parseArray(realInfo);
+ for (Object o : jsonArray) {
+ JSONObject jsonObject2 = JSONObject.parseObject(o.toString());
+ String string2 = jsonObject2.get("valueList").toString();
+ JSONArray jsonArray1 = JSONArray.parseArray(string2);
+ for (Object o1 : jsonArray1) {
+ JSONObject jsonObject3 = JSONObject.parseObject(o1.toString());
+ if(jsonObject3.get("Name").toString().equals("系统累计充电量")){
+ valueTotal= jsonObject3.get("Value").toString();
+ }
+ if(jsonObject3.get("Name").toString().equals("系统累计放电量")){
+ value= jsonObject3.get("Value").toString();
+ }
+ }
+ }
+ return valueTotal+"_"+value;
+ }
+ public static void main(String[] args) throws Exception {
+ String electricity = getElectricity();
+ System.out.println(electricity);
+ }
+
+
+
}
\ No newline at end of file
--
Gitblit v1.7.1