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",""));
|
}
|
|
|
}
|