From dca440a3ffc59710656931de97f797c4e13c5f3f Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 09 七月 2025 19:41:29 +0800
Subject: [PATCH] Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/KsolarUtils.java |  104 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 98 insertions(+), 6 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 b12eb8a..eb3cf11 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);
         }
     }
 
@@ -139,6 +185,52 @@
     }
 
 
+    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;
+    }
+    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