From 4f9901f28b7a312834ed37aad536db3e418bd6cc Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期三, 25 六月 2025 17:58:42 +0800 Subject: [PATCH] 光伏对接三方调整api --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/KsolarUtils.java | 106 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 98 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..ab1137f 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,49 @@ 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); + } + } + + public static void main(String[] args) throws Exception { + ArrayList<Map<String, Object>> monthEnergy = getMonthEnergy("2025-05", "2025-06"); + System.out.println(monthEnergy); + } + + /** + * 光伏累计 + * @return + */ public static Double getAllEnergy(String time) { try { HttpRequest get = HttpUtil.createGet("http://111.230.136.62:8092/station/list/earn"); @@ -100,11 +147,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 +167,7 @@ } catch (Exception e) { e.printStackTrace(); token = token(); - return getYearAllEnergy(LocalDate.now().getYear()+""); + return getYearAllEnergy(stationId); } } @@ -138,9 +187,50 @@ 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 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("realInfo"); + JSONArray jsonArray = JSONArray.parseArray(realInfo); + for (Object o : jsonArray) { + JSONObject jsonObject2 = JSONObject.parseObject(o.toString()); + if(jsonObject2.get("Name").toString().equals("累积日充电量")){ + value= jsonObject2.get("Value").toString(); + break; + } + } + return value; + } + + + + } \ No newline at end of file -- Gitblit v1.7.1