代码调整

This commit is contained in:
2023-06-21 15:51:30 +08:00
parent 6dbbb6ca88
commit 316317942e
10 changed files with 589 additions and 585 deletions

View File

@@ -0,0 +1,107 @@
package com.njcn.echarts.util;
import com.njcn.echarts.pojo.bo.TolerateData;
import java.util.ArrayList;
import java.util.List;
/**
* 业务数据处理方法
*
* @author hongawen
* @version 1.0.0
* @date 2023年06月21日 11:04
*/
public class BusinessDataUtil {
/***
* 处理itic数据
* @author hongawen
* @date 2023/6/21 11:05
*/
public static TolerateData dealIticData(List<List<Double>> originData) {
List<List<Double>> tolerateData = new ArrayList<>();
List<List<Double>> unTolerateData = new ArrayList<>();
for (List<Double> list : originData) {
//是否超过上限
if (list.get(0) <= 0.03) {
int line = 230 - 30000 * list.get(0).intValue();
if (list.get(1) > line) {
unTolerateData.add(list);
} else {
tolerateData.add(list);
}
} else if (list.get(0) <= 0.02) {
if (list.get(1) > 120) {
unTolerateData.add(list);
} else {
tolerateData.add(list);
}
} else if (list.get(0) <= 0.5) {
if (list.get(1) > 120 || list.get(1) < 70) {
unTolerateData.add(list);
} else {
tolerateData.add(list);
}
} else if (list.get(0) <= 10) {
if (list.get(1) > 110 || list.get(1) < 80) {
unTolerateData.add(list);
} else {
tolerateData.add(list);
}
} else {
if (list.get(1) > 110 || list.get(1) < 90) {
unTolerateData.add(list);
} else {
tolerateData.add(list);
}
}
}
return new TolerateData(tolerateData, unTolerateData);
}
/***
* 处理F47数据
* @author hongawen
* @date 2023/6/21 11:05
*/
public static TolerateData dealF47Data(List<List<Double>> originData) {
List<List<Double>> tolerateData = new ArrayList<>();
List<List<Double>> unTolerateData = new ArrayList<>();
for (int i = 0; i < originData.size(); i++) {
List<Double> list = originData.get(i);
//是否超过上限
if (list.get(0) < 0.05) {
tolerateData.add(list);
} else if (list.get(0) < 0.2) {
if (list.get(1) > 50) {
tolerateData.add(list);
} else {
unTolerateData.add(list);
}
} else if (list.get(0) < 0.5) {
if (list.get(1) > 70) {
tolerateData.add(list);
} else {
unTolerateData.add(list);
}
} else if (list.get(0) < 10) {
if (list.get(1) > 80) {
tolerateData.add(list);
} else {
unTolerateData.add(list);
}
} else {
if (list.get(1) > 90) {
tolerateData.add(list);
} else {
unTolerateData.add(list);
}
}
}
return new TolerateData(tolerateData, unTolerateData);
}
}

View File

@@ -1,16 +1,15 @@
package com.njcn.echarts.util;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpStatus;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.echarts.pojo.enums.EchartResponseEnum;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.njcn.echarts.json.LineGenerator;
import com.njcn.web.utils.RestTemplateUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.http.RequestEntity;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import java.util.List;
import java.util.Objects;
/**
@@ -22,25 +21,104 @@ import java.util.Objects;
@RequiredArgsConstructor
public class DrawPicUtil {
private final RestTemplate restTemplate;
//目前写死,后续作为配置
private final String URL = "http://192.168.1.18:5174/picture";
/**
* 请求目标服务器绘制echart图
* @param url 目标url,例http://192.168.1.13:8910?opt={1}&width={2}&height={3}
*
* @param option 图形参数
* @return 图形的base64数据
*/
private String drawPic(String option) {
return drawPic(option, 0, 0);
}
/**
* 请求目标服务器绘制echart图
*
* @param option 图形参数
* @param width 图形宽度
* @param height 图形高度
* @return 图形的base64数据
*/
public String drawPic(String url,String option,int width,int height){
ResponseEntity<HttpResult> result = restTemplate.getForEntity(url, HttpResult.class, option, width, height);
if(result.getStatusCodeValue() != HttpStatus.HTTP_OK || Objects.isNull(Objects.requireNonNull(result.getBody()).getData())){
throw new BusinessException(EchartResponseEnum.ECHART_COMMON_ERROR);
}
return result.getBody().getData().toString();
private String drawPic(String option, int width, int height) {
JSONObject jsonObject = new JSONObject();
jsonObject.set("width", width == 0 ? 925 : width);
jsonObject.set("height", height == 0 ? 300 : width);
jsonObject.set("option", JSONUtil.parseObj(option));
ResponseEntity<String> picResult = RestTemplateUtil.post(URL, jsonObject, String.class);
return Objects.requireNonNull(picResult.getBody()).indexOf("image/png") > 0 ? picResult.getBody() : "";
}
/***
* 绘制itic曲线图
* @author hongawen
* @date 2023/6/21 11:01
* @return String base64数据
* @param originData 原始数据
*/
public String drawItic(List<List<Double>> originData) {
return drawItic(originData, 0, 0);
}
/***
* 绘制itic曲线图
* @author hongawen
* @date 2023/6/21 11:01
* @return String base64数据
* @param originData 原始数据
*/
public String drawItic(List<List<Double>> originData, int width, int height) {
String iticJson = LineGenerator.generateIticOption(BusinessDataUtil.dealIticData(originData));
return drawPic(iticJson, width, height);
}
/***
* 绘制f47曲线图
* @author hongawen
* @date 2023/6/21 11:01
* @return String base64数据
* @param originData 原始数据
*/
public String drawF47(List<List<Double>> originData) {
return drawF47(originData, 0, 0);
}
/***
* 绘制f47曲线图
* @author hongawen
* @date 2023/6/21 11:01
* @return String base64数据
* @param originData 原始数据
*/
public String drawF47(List<List<Double>> originData, int width, int height) {
String f47Json = LineGenerator.generateF47Option(BusinessDataUtil.dealF47Data(originData));
return drawPic(f47Json, width, height);
}
/***
* 绘制概率分布图
* @author hongawen
* @date 2023/6/21 11:01
* @return String base64数据
*/
public String drawEventAmplitude(List<String> ylinedata, List<String> ybardata) {
return drawEventAmplitude(ylinedata, ybardata, 0, 0);
}
/***
* 绘制概率分布图
* @author hongawen
* @date 2023/6/21 11:01
* @return String base64数据
*/
public String drawEventAmplitude(List<String> ylinedata, List<String> ybardata, int width, int height) {
String eventAmplitudeJson = LineGenerator.generateEventAmplitudeOption(ylinedata, ybardata);
return drawPic(eventAmplitudeJson, width, height);
}
}