暂降模块,图表生成替换
This commit is contained in:
@@ -4,15 +4,14 @@ import cn.hutool.core.lang.Console;
|
||||
import com.njcn.echarts.pojo.bo.TolerateData;
|
||||
import com.njcn.echarts.pojo.constant.PicCommonData;
|
||||
import org.icepear.echarts.Option;
|
||||
import org.icepear.echarts.charts.bar.BarItemStyle;
|
||||
import org.icepear.echarts.charts.bar.BarLabel;
|
||||
import org.icepear.echarts.charts.bar.BarSeries;
|
||||
import org.icepear.echarts.charts.line.LineSeries;
|
||||
import org.icepear.echarts.charts.pie.PieLabel;
|
||||
import org.icepear.echarts.charts.pie.PieSeries;
|
||||
import org.icepear.echarts.charts.scatter.ScatterSeries;
|
||||
import org.icepear.echarts.components.coord.AxisNameTextStyle;
|
||||
import org.icepear.echarts.components.coord.SplitLine;
|
||||
import org.icepear.echarts.components.coord.ValueAxisLabel;
|
||||
import org.icepear.echarts.components.coord.*;
|
||||
import org.icepear.echarts.components.coord.cartesian.CategoryAxis;
|
||||
import org.icepear.echarts.components.coord.cartesian.LogAxis;
|
||||
import org.icepear.echarts.components.coord.cartesian.ValueAxis;
|
||||
@@ -21,6 +20,8 @@ import org.icepear.echarts.components.legend.Legend;
|
||||
import org.icepear.echarts.components.title.Title;
|
||||
import org.icepear.echarts.components.tooltip.Tooltip;
|
||||
import org.icepear.echarts.components.visualMap.ContinousVisualMap;
|
||||
import org.icepear.echarts.origin.chart.bar.BarItemStyleOption;
|
||||
import org.icepear.echarts.origin.coord.AxisLabelBaseOption;
|
||||
import org.icepear.echarts.origin.util.SeriesOption;
|
||||
import org.icepear.echarts.render.Engine;
|
||||
|
||||
@@ -222,5 +223,237 @@ public class LineGenerator {
|
||||
return ENGINE.renderJsonOption(persistentTimeOption);
|
||||
}
|
||||
|
||||
/***
|
||||
* 生成区域统计
|
||||
* @author hongawen
|
||||
* @date 2023/6/21 10:06
|
||||
*/
|
||||
public static String generateRegionOption(List<String> xData, List<Integer> yData) {
|
||||
Option persistentTimeOption = new Option();
|
||||
//取消渲染动画
|
||||
persistentTimeOption.setAnimation(false);
|
||||
//背景色
|
||||
persistentTimeOption.setBackgroundColor(PicCommonData.PIC_BACK_COLOR);
|
||||
//标题
|
||||
persistentTimeOption.setTitle(new Title().setLeft(PicCommonData.CENTER).setText("区域统计"));
|
||||
//设置图例
|
||||
persistentTimeOption.setLegend(new Legend().setData(new String[]{"暂降次数"}).setLeft(10).setShow(true));
|
||||
//颜色
|
||||
persistentTimeOption.setColor("orange");
|
||||
//横坐标
|
||||
persistentTimeOption.setXAxis(new CategoryAxis()
|
||||
.setBoundaryGap(true)
|
||||
.setName("地区\n(监测点数)")
|
||||
.setAxisLabel(new LogAxisLabel().setShow(true).setFontSize(10).setRotate(0))
|
||||
.setNameTextStyle(new AxisNameTextStyle().setFontStyle("15px"))
|
||||
.setData(xData.toArray())
|
||||
);
|
||||
//纵坐标
|
||||
persistentTimeOption.setYAxis(new ValueAxis()
|
||||
.setName("(次)")
|
||||
.setNameTextStyle(new AxisNameTextStyle().setFontStyle("15px"))
|
||||
);
|
||||
|
||||
|
||||
//配置占比
|
||||
BarSeries proportion = new BarSeries()
|
||||
.setName("暂降次数")
|
||||
.setBarWidth(30)
|
||||
.setLabel(new BarLabel().setShow(true).setColor("#8B008B"))
|
||||
.setData(yData);
|
||||
persistentTimeOption.setSeries(new SeriesOption[]{proportion});
|
||||
return ENGINE.renderJsonOption(persistentTimeOption);
|
||||
}
|
||||
/***
|
||||
* 生成电压暂降,已关联未关联得次数
|
||||
* @author hongawen
|
||||
* @date 2023/6/21 10:06
|
||||
*/
|
||||
public static String generateAssociatedUnassociatedOption(List<String> eventValue, List<Integer> pereventValue, List<Integer> pereventValue1, String xName) {
|
||||
Option persistentTimeOption = new Option();
|
||||
//取消渲染动画
|
||||
persistentTimeOption.setAnimation(false);
|
||||
//背景色
|
||||
persistentTimeOption.setBackgroundColor(PicCommonData.PIC_BACK_COLOR);
|
||||
//标题
|
||||
persistentTimeOption.setTitle(new Title().setLeft(PicCommonData.CENTER).setText(xName));
|
||||
//设置图例
|
||||
persistentTimeOption.setLegend(new Legend().setData(new String[]{"未关联暂降次数", "已关联处理事件"}).setLeft(10).setShow(true));
|
||||
//横坐标
|
||||
persistentTimeOption.setXAxis(new CategoryAxis()
|
||||
.setBoundaryGap(true)
|
||||
.setName(xName)
|
||||
.setAxisLabel(new LogAxisLabel().setShow(true).setFontSize(7).setRotate(0))
|
||||
.setNameTextStyle(new AxisNameTextStyle().setFontStyle("15px"))
|
||||
.setData(eventValue.toArray())
|
||||
);
|
||||
//纵坐标
|
||||
persistentTimeOption.setYAxis(new ValueAxis()
|
||||
.setName("(次)")
|
||||
.setNameTextStyle(new AxisNameTextStyle().setFontStyle("15px"))
|
||||
);
|
||||
|
||||
|
||||
//配置占比
|
||||
BarSeries proportion = new BarSeries()
|
||||
.setName("未关联暂降次数")
|
||||
.setStack("事件总数")
|
||||
.setItemStyle(new BarItemStyle().setColor("orange").setBorderColor("orange").setBorderWidth(2).setBorderRadius(0))
|
||||
.setLabel(new BarLabel().setShow(true).setColor("#8B008B"))
|
||||
.setData(pereventValue);
|
||||
BarSeries proportion2 = new BarSeries()
|
||||
.setName("已关联处理事件")
|
||||
.setStack("事件总数")
|
||||
.setItemStyle(new BarItemStyle().setColor("#ccc").setBorderColor("#ccc").setBorderWidth(2).setBorderRadius(0))
|
||||
.setLabel(new BarLabel().setShow(true).setColor("#8B008B"))
|
||||
.setData(pereventValue1);
|
||||
persistentTimeOption.setSeries(new SeriesOption[]{proportion,proportion2});
|
||||
return ENGINE.renderJsonOption(persistentTimeOption);
|
||||
}
|
||||
|
||||
/***
|
||||
* 生成电压等级统计
|
||||
* @author hongawen
|
||||
* @date 2023/6/21 10:06
|
||||
*/
|
||||
public static String generateVoltageLevelOption(List<String> xData, List<Integer> yData) {
|
||||
Option persistentTimeOption = new Option();
|
||||
//取消渲染动画
|
||||
persistentTimeOption.setAnimation(false);
|
||||
//背景色
|
||||
persistentTimeOption.setBackgroundColor(PicCommonData.PIC_BACK_COLOR);
|
||||
//标题
|
||||
persistentTimeOption.setTitle(new Title().setLeft(PicCommonData.CENTER).setText("电压等级"));
|
||||
//设置图例
|
||||
persistentTimeOption.setLegend(new Legend().setData(new String[]{"暂降次数"}).setLeft(10).setShow(true));
|
||||
//颜色
|
||||
persistentTimeOption.setColor("orange");
|
||||
//横坐标
|
||||
persistentTimeOption.setXAxis(new CategoryAxis()
|
||||
.setBoundaryGap(true)
|
||||
.setName("电压等级\n(监测点数)")
|
||||
.setAxisLabel(new LogAxisLabel().setShow(true).setFontSize(8).setRotate(0).setFontWeight("bold"))
|
||||
.setNameTextStyle(new AxisNameTextStyle().setFontStyle("15px"))
|
||||
.setData(xData.toArray())
|
||||
);
|
||||
//纵坐标
|
||||
persistentTimeOption.setYAxis(new ValueAxis()
|
||||
.setName("(次)")
|
||||
.setNameTextStyle(new AxisNameTextStyle().setFontStyle("15px"))
|
||||
);
|
||||
|
||||
//配置占比
|
||||
BarSeries proportion = new BarSeries()
|
||||
.setName("暂降次数")
|
||||
.setBarWidth(30)
|
||||
.setLabel(new BarLabel().setShow(true).setColor("#8B008B"))
|
||||
.setData(yData);
|
||||
persistentTimeOption.setSeries(new SeriesOption[]{proportion});
|
||||
return ENGINE.renderJsonOption(persistentTimeOption);
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
* 生成设备运行情况
|
||||
* @author hongawen
|
||||
* @date 2023/6/21 10:06
|
||||
*/
|
||||
public static String generateRegionDeviceOption(List<String> xData, List<Integer> onlineData,List<Integer> offlineData,String subtext,String xName) {
|
||||
Option persistentTimeOption = new Option();
|
||||
//取消渲染动画
|
||||
persistentTimeOption.setAnimation(false);
|
||||
//背景色
|
||||
persistentTimeOption.setBackgroundColor(PicCommonData.PIC_BACK_COLOR);
|
||||
//标题
|
||||
persistentTimeOption.setTitle(new Title().setLeft(PicCommonData.CENTER).setText("设备运行情况")
|
||||
.setSubtext(subtext)
|
||||
);
|
||||
//设置图例
|
||||
persistentTimeOption.setLegend(new Legend().setData(new String[]{"在线", "离线"}).setLeft(10).setShow(true));
|
||||
//横坐标
|
||||
persistentTimeOption.setXAxis(new CategoryAxis()
|
||||
.setBoundaryGap(true)
|
||||
.setName(xName)
|
||||
.setAxisLabel(new LogAxisLabel().setShow(true).setFontSize(7).setRotate(0).setFontWeight("bold"))
|
||||
.setNameTextStyle(new AxisNameTextStyle().setFontStyle("15px"))
|
||||
.setData(xData.toArray())
|
||||
);
|
||||
//纵坐标
|
||||
persistentTimeOption.setYAxis(new ValueAxis()
|
||||
.setName("(次)")
|
||||
.setNameTextStyle(new AxisNameTextStyle().setFontStyle("15px"))
|
||||
);
|
||||
|
||||
|
||||
//配置占比
|
||||
BarSeries proportion = new BarSeries()
|
||||
.setName("在线")
|
||||
.setStack("account")
|
||||
.setItemStyle(new BarItemStyle().setColor("green").setBorderColor("green").setBorderWidth(2).setBorderRadius(0))
|
||||
.setLabel(new BarLabel().setShow(true).setColor("#8B008B"))
|
||||
.setData(onlineData);
|
||||
BarSeries proportion2 = new BarSeries()
|
||||
.setName("离线")
|
||||
.setStack("account")
|
||||
.setItemStyle(new BarItemStyle().setColor("orange").setBorderColor("orange").setBorderWidth(2).setBorderRadius(0))
|
||||
.setLabel(new BarLabel().setShow(true).setColor("#8B008B"))
|
||||
.setData(offlineData);
|
||||
persistentTimeOption.setSeries(new SeriesOption[]{proportion,proportion2});
|
||||
return ENGINE.renderJsonOption(persistentTimeOption);
|
||||
}
|
||||
|
||||
/***
|
||||
* 生成暂态事件次数
|
||||
* @author hongawen
|
||||
* @date 2023/6/21 10:06
|
||||
*/
|
||||
public static String generateFrequencyOption(List<String> xData, List<Integer> dip,List<Integer> interruptions,List<Integer> rise,String subtext,String xName) {
|
||||
Option persistentTimeOption = new Option();
|
||||
//取消渲染动画
|
||||
persistentTimeOption.setAnimation(false);
|
||||
//背景色
|
||||
persistentTimeOption.setBackgroundColor(PicCommonData.PIC_BACK_COLOR);
|
||||
//标题
|
||||
persistentTimeOption.setTitle(new Title().setLeft(PicCommonData.CENTER).setText("暂态事件次数")
|
||||
.setSubtext(subtext)
|
||||
);
|
||||
//设置图例
|
||||
persistentTimeOption.setLegend(new Legend().setData(new String[]{"暂降次数", "中断次数","暂升次数"}).setLeft(10).setShow(true));
|
||||
//横坐标
|
||||
persistentTimeOption.setXAxis(new CategoryAxis()
|
||||
.setBoundaryGap(true)
|
||||
.setName(xName)
|
||||
.setAxisLabel(new LogAxisLabel().setShow(true).setFontSize(7).setRotate(0).setFontWeight("bold"))
|
||||
.setNameTextStyle(new AxisNameTextStyle().setFontStyle("15px"))
|
||||
.setData(xData.toArray())
|
||||
);
|
||||
//纵坐标
|
||||
persistentTimeOption.setYAxis(new ValueAxis()
|
||||
.setName("(次)")
|
||||
.setNameTextStyle(new AxisNameTextStyle().setFontStyle("15px"))
|
||||
);
|
||||
|
||||
|
||||
//配置占比
|
||||
BarSeries proportion = new BarSeries()
|
||||
.setName("暂降次数")
|
||||
.setStack("account")
|
||||
.setItemStyle(new BarItemStyle().setColor("#ff9966").setBorderColor("#ff9966").setBorderWidth(2).setBorderRadius(0))
|
||||
.setLabel(new BarLabel().setShow(true).setColor("#8B008B"))
|
||||
.setData(dip);
|
||||
BarSeries proportion2 = new BarSeries()
|
||||
.setName("中断次数")
|
||||
.setStack("account")
|
||||
.setItemStyle(new BarItemStyle().setColor("#00dd00").setBorderColor("#00dd00").setBorderWidth(2).setBorderRadius(0))
|
||||
.setLabel(new BarLabel().setShow(true).setColor("#8B008B"))
|
||||
.setData(interruptions);
|
||||
BarSeries proportion3 = new BarSeries()
|
||||
.setName("暂升次数")
|
||||
.setStack("account")
|
||||
.setItemStyle(new BarItemStyle().setColor("#0066ff").setBorderColor("#0066ff").setBorderWidth(2).setBorderRadius(0))
|
||||
.setLabel(new BarLabel().setShow(true).setColor("#8B008B"))
|
||||
.setData(rise);
|
||||
persistentTimeOption.setSeries(new SeriesOption[]{proportion,proportion2,proportion3});
|
||||
return ENGINE.renderJsonOption(persistentTimeOption);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -229,4 +229,109 @@ public class DrawPicUtil {
|
||||
String eventDensityJson = BarGenerator.generateEventDensity(data);
|
||||
return drawPic(eventDensityJson, width, height);
|
||||
}
|
||||
|
||||
/***
|
||||
* 绘制生成区域统计图
|
||||
* @author hongawen
|
||||
* @date 2023/6/21 11:01
|
||||
* @return String base64数据
|
||||
*/
|
||||
public String drawEventRegion(List<String> xData, List<Integer> yData) {
|
||||
return drawEventRegion(xData,yData, 0, 0);
|
||||
}
|
||||
|
||||
/***
|
||||
* 绘制生成区域统计图
|
||||
* @author hongawen
|
||||
* @date 2023/6/21 11:01
|
||||
* @return String base64数据
|
||||
*/
|
||||
public String drawEventRegion(List<String> xData, List<Integer> yData, int width, int height) {
|
||||
String eventDensityJson = LineGenerator.generateRegionOption(xData,yData);
|
||||
return drawPic(eventDensityJson, width, height);
|
||||
}
|
||||
|
||||
/***
|
||||
* 绘制生成电压暂降,已关联未关联得次数图
|
||||
* @author hongawen
|
||||
* @date 2023/6/21 11:01
|
||||
* @return String base64数据
|
||||
*/
|
||||
public String drawEventAssociatedUnassociated(List<String> eventValue, List<Integer> pereventValue, List<Integer> pereventValue1, String xName) {
|
||||
return drawEventAssociatedUnassociated(eventValue,pereventValue,pereventValue1,xName, 0, 0);
|
||||
}
|
||||
|
||||
/***
|
||||
* 绘制生成电压暂降,已关联未关联得次数图
|
||||
* @author hongawen
|
||||
* @date 2023/6/21 11:01
|
||||
* @return String base64数据
|
||||
*/
|
||||
public String drawEventAssociatedUnassociated(List<String> eventValue, List<Integer> pereventValue, List<Integer> pereventValue1, String xName, int width, int height) {
|
||||
String eventDensityJson = LineGenerator.generateAssociatedUnassociatedOption(eventValue,pereventValue,pereventValue1,xName);
|
||||
return drawPic(eventDensityJson, width, height);
|
||||
}
|
||||
|
||||
/***
|
||||
* 绘制生成区域统计图
|
||||
* @author hongawen
|
||||
* @date 2023/6/21 11:01
|
||||
* @return String base64数据
|
||||
*/
|
||||
public String drawEventVoltageLevel(List<String> xData, List<Integer> yData) {
|
||||
return drawEventVoltageLevel(xData,yData, 0, 0);
|
||||
}
|
||||
|
||||
/***
|
||||
* 绘制生成区域统计图
|
||||
* @author hongawen
|
||||
* @date 2023/6/21 11:01
|
||||
* @return String base64数据
|
||||
*/
|
||||
public String drawEventVoltageLevel(List<String> xData, List<Integer> yData, int width, int height) {
|
||||
String eventDensityJson = LineGenerator.generateVoltageLevelOption(xData,yData);
|
||||
return drawPic(eventDensityJson, width, height);
|
||||
}
|
||||
|
||||
/***
|
||||
* 绘制生成设备运行情况图
|
||||
* @author hongawen
|
||||
* @date 2023/6/21 11:01
|
||||
* @return String base64数据
|
||||
*/
|
||||
public String drawEventRegionDevice(List<String> xData, List<Integer> onlineData,List<Integer> offlineData,String subtext,String xName) {
|
||||
return drawEventRegionDevice(xData,onlineData,offlineData,subtext,xName, 0, 0);
|
||||
}
|
||||
|
||||
/***
|
||||
* 绘制生成设备运行情况图
|
||||
* @author hongawen
|
||||
* @date 2023/6/21 11:01
|
||||
* @return String base64数据
|
||||
*/
|
||||
public String drawEventRegionDevice(List<String> xData, List<Integer> onlineData,List<Integer> offlineData,String subtext,String xName, int width, int height) {
|
||||
String eventDensityJson = LineGenerator.generateRegionDeviceOption(xData,onlineData,offlineData,subtext,xName);
|
||||
return drawPic(eventDensityJson, width, height);
|
||||
}
|
||||
|
||||
/***
|
||||
* 绘制生成暂态事件次数图
|
||||
* @author hongawen
|
||||
* @date 2023/6/21 11:01
|
||||
* @return String base64数据
|
||||
*/
|
||||
public String drawEventFrequency(List<String> xData, List<Integer> dip,List<Integer> interruptions,List<Integer> rise,String subtext,String xName) {
|
||||
return drawEventFrequency(xData,dip,interruptions,rise,subtext,xName, 0, 0);
|
||||
}
|
||||
|
||||
/***
|
||||
* 绘制生成暂态事件次数图
|
||||
* @author hongawen
|
||||
* @date 2023/6/21 11:01
|
||||
* @return String base64数据
|
||||
*/
|
||||
public String drawEventFrequency(List<String> xData, List<Integer> dip,List<Integer> interruptions,List<Integer> rise,String subtext,String xName, int width, int height) {
|
||||
String eventDensityJson = LineGenerator.generateFrequencyOption(xData,dip,interruptions,rise,subtext,xName);
|
||||
return drawPic(eventDensityJson, width, height);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user