New file |
| | |
| | | package com.ruoyi.other.util; |
| | | |
| | | import cn.hutool.http.HttpRequest; |
| | | import cn.hutool.http.HttpResponse; |
| | | import cn.hutool.http.HttpUtil; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.ruoyi.other.api.domain.TSystemConfiguration; |
| | | import com.ruoyi.other.mapper.TSystemConfigurationMapper; |
| | | import com.ruoyi.other.vo.ScreenStorageConfigVO; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | 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; |
| | | |
| | | |
| | | /** |
| | | * 定时任务:储能放电情况 光伏发电情况 |
| | | */ |
| | | @Service |
| | | public class KsolarUtils { |
| | | |
| | | |
| | | private static String token; |
| | | |
| | | |
| | | private static List<String> stationIds= Arrays.asList("2025060710462417","2025060711331323","2025060715425437","2025060716010425"); |
| | | |
| | | public static Double getTodayEnergy(String time) { |
| | | try { |
| | | HttpRequest get = HttpUtil.createGet("http://111.230.136.62:8092/station/list/earn"); |
| | | get.header("Authorization", "Bearer "+token); |
| | | get.form("startDate", time); |
| | | HttpResponse execute = get.execute(); |
| | | String body = execute.body(); |
| | | JSONObject jsonObject = JSONObject.parseObject(body); |
| | | String code = jsonObject.get("code").toString(); |
| | | if(!"200".equals(code)){ |
| | | token = token(); |
| | | return getTodayEnergy(time); |
| | | } |
| | | Object data = jsonObject.get("data"); |
| | | JSONObject jsonObject1 = JSONObject.parseObject(data.toString()); |
| | | Double earn = jsonObject1.getDouble("dayGeneration"); |
| | | return earn; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | token = token(); |
| | | return getTodayEnergy(time); |
| | | } |
| | | } |
| | | |
| | | public static Double getAllEnergy(String time) { |
| | | try { |
| | | HttpRequest get = HttpUtil.createGet("http://111.230.136.62:8092/station/list/earn"); |
| | | get.header("Authorization", "Bearer "+token); |
| | | get.form("startDate", time); |
| | | HttpResponse execute = get.execute(); |
| | | String body = execute.body(); |
| | | JSONObject jsonObject = JSONObject.parseObject(body); |
| | | String code = jsonObject.get("code").toString(); |
| | | if(!"200".equals(code)){ |
| | | token = token(); |
| | | return getAllEnergy(time); |
| | | } |
| | | Object data = jsonObject.get("data"); |
| | | JSONObject jsonObject1 = JSONObject.parseObject(data.toString()); |
| | | Double earn = jsonObject1.getDouble("totalGeneration"); |
| | | return earn; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | token = token(); |
| | | return getAllEnergy(time); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 光伏碳减排 |
| | | * @return |
| | | */ |
| | | public static BigDecimal getYearAllEnergy() { |
| | | Double yearAllEnergy = getYearAllEnergy(stationIds.get(0)); |
| | | Double yearAllEnergy1 = getYearAllEnergy(stationIds.get(1)); |
| | | Double yearAllEnergy2 = getYearAllEnergy(stationIds.get(2)); |
| | | Double yearAllEnergy3 = getYearAllEnergy(stationIds.get(3)); |
| | | double v = yearAllEnergy + yearAllEnergy1 + yearAllEnergy2 + yearAllEnergy3; |
| | | BigDecimal divide = new BigDecimal(v).multiply(new BigDecimal("0.1404")).divide(new BigDecimal("1000"), 2, RoundingMode.DOWN); |
| | | 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("attribId", "202"); |
| | | get.form("stime",LocalDate.now().getYear()+"" ); |
| | | HttpResponse execute = get.execute(); |
| | | String body = execute.body(); |
| | | JSONArray jsonArray = JSONArray.parseArray(body); |
| | | Object o1 = jsonArray.get(0); |
| | | JSONObject jsonObject = JSONObject.parseObject(o1.toString()); |
| | | String code = jsonObject.get("attribValue").toString(); |
| | | Double earn = Double.valueOf(code); |
| | | return earn; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | token = token(); |
| | | return getYearAllEnergy(LocalDate.now().getYear()+""); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | public static String token() { |
| | | HttpRequest post = HttpUtil.createPost("http://111.230.136.62:8092/authentication/form"); |
| | | post.basicAuth("kstar","kstarSecret"); |
| | | post.form("username", "环岛光伏"); |
| | | post.form("password", "cR8GGwIXMI462A8Dfl9eXg=="); |
| | | HttpResponse execute = post.execute(); |
| | | String body = execute.body(); |
| | | JSONObject jsonObject = JSONObject.parseObject(body); |
| | | String token = jsonObject.getString("token"); |
| | | JSONObject jsonObject1 = JSONObject.parseObject(token); |
| | | String access_token = jsonObject1.getString("access_token"); |
| | | return access_token; |
| | | } |
| | | |
| | | public static void main(String[] args) throws Exception { |
| | | System.out.println(getYearAllEnergy("2025","")); |
| | | } |
| | | |
| | | |
| | | } |