diff --git a/pqs-common/common-echarts/pom.xml b/pqs-common/common-echarts/pom.xml
index 65c865508..cc5de3941 100644
--- a/pqs-common/common-echarts/pom.xml
+++ b/pqs-common/common-echarts/pom.xml
@@ -33,9 +33,9 @@
${project.version}
- org.icepear.echarts
- echarts-java
- 1.0.7
+ com.njcn
+ echarts5-java
+ 0.0.1
diff --git a/pqs-common/common-echarts/src/main/java/com/njcn/echarts/json/BarGenerator.java b/pqs-common/common-echarts/src/main/java/com/njcn/echarts/json/BarGenerator.java
new file mode 100644
index 000000000..2fbb9d1a9
--- /dev/null
+++ b/pqs-common/common-echarts/src/main/java/com/njcn/echarts/json/BarGenerator.java
@@ -0,0 +1,114 @@
+package com.njcn.echarts.json;
+
+import com.njcn.echarts.pojo.constant.PicCommonData;
+import org.icepear.echarts.Option;
+import org.icepear.echarts.charts.bar.BarLabel;
+import org.icepear.echarts.charts.bar.BarSeries;
+import org.icepear.echarts.charts.bar3D.Bar3DSeries;
+import org.icepear.echarts.components.coord.AxisNameTextStyle;
+import org.icepear.echarts.components.coord.SplitLine;
+import org.icepear.echarts.components.coord.cartesian.CategoryAxis;
+import org.icepear.echarts.components.coord.cartesian.ValueAxis;
+import org.icepear.echarts.components.grid.Grid;
+import org.icepear.echarts.components.grid3D.Grid3D;
+import org.icepear.echarts.components.grid3D.ViewControl;
+import org.icepear.echarts.components.inRange.InRange;
+import org.icepear.echarts.components.legend.Legend;
+import org.icepear.echarts.components.series.LineStyle;
+import org.icepear.echarts.components.title.Title;
+import org.icepear.echarts.components.visualMap.ContinousVisualMap;
+import org.icepear.echarts.origin.util.SeriesOption;
+import org.icepear.echarts.render.Engine;
+
+import java.util.List;
+
+/**
+ * @author hongawen
+ * @version 1.0.0
+ * @date 2023年06月25日 20:10
+ */
+public class BarGenerator {
+
+ private final static Engine ENGINE = new Engine();
+
+
+ /***
+ * 生成月份统计
+ * @author wr
+ * @date 2023/6/21 10:06
+ */
+ public static String generateMonthOption(List xName, List times, String year, Integer flag) {
+ xName.set(0, xName.get(0) + "\n" + "(" + year + ")");
+ String name;
+ Option monthOption = new Option();
+ //取消渲染动画
+ monthOption.setAnimation(false);
+ //背景色
+ monthOption.setBackgroundColor(PicCommonData.PIC_BACK_COLOR);
+ //标题
+ if (flag == 0) {
+ monthOption.setTitle(new Title().setLeft(PicCommonData.CENTER).setText("月份统计"));
+ name = "月份";
+ } else {
+ monthOption.setTitle(new Title().setLeft(PicCommonData.CENTER).setText("天数统计"));
+ name = "天数";
+ }
+ //上下左右的图内间距
+ monthOption.setGrid(new Grid().setTop("80px").setLeft("40px").setRight("60px").setBottom("20px"));
+ //设置图例
+ monthOption.setLegend(new Legend().setData(new String[]{"暂降次数"}).setTop("26px").setLeft(10).setBottom("94%").setShow(true));
+ //设置图例对应的颜色
+ monthOption.setColor(new String[]{"#FF8C00"});
+ //横坐标
+ monthOption.setXAxis(new CategoryAxis()
+ .setBoundaryGap(true)
+ .setName(name)
+ .setNameTextStyle(new AxisNameTextStyle().setFontStyle("15px"))
+ .setData(xName.toArray())
+ );
+ //纵坐标
+ monthOption.setYAxis(new ValueAxis[]{
+ new ValueAxis()
+ .setName("次")
+ .setType("value")
+ });
+
+ //配置暂降次数
+ BarSeries probability = new BarSeries()
+ .setName("暂降次数")
+ .setLabel(new BarLabel().setShow(true).setColor("#8B008B"))
+ .setData(times);
+ monthOption.setSeries(new SeriesOption[]{probability});
+ return ENGINE.renderJsonOption(monthOption);
+ }
+
+
+ /***
+ * 生成暂降密度图
+ * @author hongawen
+ * @date 2023/6/25 20:12
+ */
+ public static String generateEventDensity(Number[][] data) {
+ Option option3D = new Option();
+ option3D.setBackgroundColor("#fff");
+ option3D.setTitle(new Title().setText("暂降密度图").setX("center"));
+ option3D.setVisualMap(new ContinousVisualMap().setMax(20).setShow(false).setInRange(new InRange().setColor(new String[]{"#313695", "#00BB00", "#ff8000", "#a50026"})));
+ option3D.setXAxis3D(new CategoryAxis().setName("剩余电压(%)").setData(new String[]{"0-10", "10-20", "20-30", "30-40", "40-50", "50-60", "60-70", "70-80", "80-90", "90-100"}));
+ option3D.setYAxis3D(new CategoryAxis()
+ .setName("持续时间(cyc)")
+ .setData(new String[]{"1cyc", "2cyc", "3cyc", "4cyc", "5cyc", "6~10cyc", "10~20cyc", "20~30cyc", "30~60cyc"})
+ .setSplitLine(new SplitLine().setLineStyle(new LineStyle().setColor("#").setType("dashed").setOpacity(0.5)))
+ );
+ option3D.setZAxis3D(new ValueAxis().setSplitNumber(8).setMinInterval(5).setName("次数"));
+ option3D.setGrid3D(new Grid3D()
+ .setViewControl(new ViewControl().setBeta(8).setAlpha(5))
+ .setBoxWidth(200)
+ .setBoxDepth(80)
+ );
+ Bar3DSeries bar3DSeries = new Bar3DSeries()
+ .setData(data)
+ .setShading("realistic");
+ option3D.setSeries(new SeriesOption[]{bar3DSeries});
+ return ENGINE.renderJsonOption(option3D);
+ }
+}
diff --git a/pqs-common/common-echarts/src/main/java/com/njcn/echarts/json/LineGenerator.java b/pqs-common/common-echarts/src/main/java/com/njcn/echarts/json/LineGenerator.java
index 99d1a8582..c7dc3f489 100644
--- a/pqs-common/common-echarts/src/main/java/com/njcn/echarts/json/LineGenerator.java
+++ b/pqs-common/common-echarts/src/main/java/com/njcn/echarts/json/LineGenerator.java
@@ -20,6 +20,7 @@ import org.icepear.echarts.components.grid.Grid;
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.util.SeriesOption;
import org.icepear.echarts.render.Engine;
@@ -95,23 +96,23 @@ public class LineGenerator {
* @date 2023/6/21 10:06
*/
public static String generateF47Option(TolerateData tolerateData) {
- Option iticOption = new Option();
+ Option f47Option = new Option();
//取消渲染动画
- iticOption.setAnimation(false);
+ f47Option.setAnimation(false);
//背景色
- iticOption.setBackgroundColor(PicCommonData.PIC_BACK_COLOR);
+ f47Option.setBackgroundColor(PicCommonData.PIC_BACK_COLOR);
//标题
- iticOption.setTitle(new Title().setLeft(PicCommonData.CENTER).setText("SEMI F47曲线"));
+ f47Option.setTitle(new Title().setLeft(PicCommonData.CENTER).setText("SEMI F47曲线"));
//上下左右的图内间距
- iticOption.setGrid(new Grid().setTop("80px").setLeft("40px").setRight("40px").setBottom("10%"));
+ f47Option.setGrid(new Grid().setTop("80px").setLeft("40px").setRight("40px").setBottom("10%"));
//设置图例
- iticOption.setLegend(new Legend().setData(new String[]{"边界线", "可容忍事件", "不可容忍事件"}).setTop("26px").setLeft(0).setBottom("94%"));
+ f47Option.setLegend(new Legend().setData(new String[]{"边界线", "可容忍事件", "不可容忍事件"}).setTop("26px").setLeft(0).setBottom("94%"));
//设置图例对应的颜色
- iticOption.setColor(new String[]{"yellow", "green", "red"});
+ f47Option.setColor(new String[]{"yellow", "green", "red"});
//横坐标
- iticOption.setXAxis(new LogAxis().setMin("0.001").setMax("1000").setSplitLine(new SplitLine().setShow(false)).setName("s"));
+ f47Option.setXAxis(new LogAxis().setMin("0.001").setMax("1000").setSplitLine(new SplitLine().setShow(false)).setName("s"));
//纵坐标
- iticOption.setYAxis(new ValueAxis().setName("%").setMinInterval(0.1).setSplitNumber(10).setMax(100));
+ f47Option.setYAxis(new ValueAxis().setName("%").setMinInterval(0.1).setSplitNumber(10).setMax(100));
//处理边界线
LineSeries borderLimit = new LineSeries()
.setName("边界线")
@@ -128,8 +129,8 @@ public class LineGenerator {
.setName("不可容忍事件")
.setSymbol("circle")
.setData(tolerateData.getUnTolerateData());
- iticOption.setSeries(new SeriesOption[]{borderLimit, tolerate, unTolerate});
- return ENGINE.renderJsonOption(iticOption);
+ f47Option.setSeries(new SeriesOption[]{borderLimit, tolerate, unTolerate});
+ return ENGINE.renderJsonOption(f47Option);
}
@@ -139,24 +140,24 @@ public class LineGenerator {
* @date 2023/6/21 10:06
*/
public static String generateEventAmplitudeOption(List ylinedata, List ybardata) {
- Option iticOption = new Option();
+ Option eventAmplitudeOption = new Option();
//取消渲染动画
- iticOption.setAnimation(false);
+ eventAmplitudeOption.setAnimation(false);
//背景色
- iticOption.setBackgroundColor(PicCommonData.PIC_BACK_COLOR);
+ eventAmplitudeOption.setBackgroundColor(PicCommonData.PIC_BACK_COLOR);
//标题
- iticOption.setTitle(new Title().setLeft(PicCommonData.CENTER).setText("暂降幅值的概率分布"));
+ eventAmplitudeOption.setTitle(new Title().setLeft(PicCommonData.CENTER).setText("暂降幅值的概率分布"));
//设置图例
- iticOption.setLegend(new Legend().setData(new String[]{"概率分布", "占比"}).setLeft(10).setShow(true));
+ eventAmplitudeOption.setLegend(new Legend().setData(new String[]{"概率分布", "占比"}).setLeft(10).setShow(true));
//横坐标
- iticOption.setXAxis(new CategoryAxis()
+ eventAmplitudeOption.setXAxis(new CategoryAxis()
.setBoundaryGap(true)
.setName("暂降幅值")
.setNameTextStyle(new AxisNameTextStyle().setFontStyle("15px"))
.setData(new String[]{"0", "10%", "20%", "30%", "40%", "50%", "60%", "70%", "80%", "90%"})
);
//纵坐标
- iticOption.setYAxis(new ValueAxis[]{
+ eventAmplitudeOption.setYAxis(new ValueAxis[]{
new ValueAxis()
.setName("%")
.setNameTextStyle(new AxisNameTextStyle().setFontStyle("15px"))
@@ -173,8 +174,8 @@ public class LineGenerator {
.setBarWidth(30)
.setData(ybardata);
- iticOption.setSeries(new SeriesOption[]{probability, proportion});
- return ENGINE.renderJsonOption(iticOption);
+ eventAmplitudeOption.setSeries(new SeriesOption[]{probability, proportion});
+ return ENGINE.renderJsonOption(eventAmplitudeOption);
}
/***
@@ -183,24 +184,24 @@ public class LineGenerator {
* @date 2023/6/21 10:06
*/
public static String generatePersistentTimeOption(List ylinedata, List ybardata) {
- Option iticOption = new Option();
+ Option persistentTimeOption = new Option();
//取消渲染动画
- iticOption.setAnimation(false);
+ persistentTimeOption.setAnimation(false);
//背景色
- iticOption.setBackgroundColor(PicCommonData.PIC_BACK_COLOR);
+ persistentTimeOption.setBackgroundColor(PicCommonData.PIC_BACK_COLOR);
//标题
- iticOption.setTitle(new Title().setLeft(PicCommonData.CENTER).setText("持续时间的概率分布"));
+ persistentTimeOption.setTitle(new Title().setLeft(PicCommonData.CENTER).setText("持续时间的概率分布"));
//设置图例
- iticOption.setLegend(new Legend().setData(new String[]{"概率分布", "占比"}).setLeft(10).setShow(true));
+ persistentTimeOption.setLegend(new Legend().setData(new String[]{"概率分布", "占比"}).setLeft(10).setShow(true));
//横坐标
- iticOption.setXAxis(new CategoryAxis()
+ persistentTimeOption.setXAxis(new CategoryAxis()
.setBoundaryGap(true)
.setName("暂态持续时间(s)")
.setNameTextStyle(new AxisNameTextStyle().setFontStyle("15px"))
.setData(new String[]{"0.01", "0.1", "0.25", "0.5", "1", "3", "20", "60", "180"})
);
//纵坐标
- iticOption.setYAxis(new ValueAxis[]{
+ persistentTimeOption.setYAxis(new ValueAxis[]{
new ValueAxis()
.setName("%")
.setNameTextStyle(new AxisNameTextStyle().setFontStyle("15px"))
@@ -217,114 +218,9 @@ public class LineGenerator {
.setBarWidth(30)
.setData(ybardata);
- iticOption.setSeries(new SeriesOption[]{probability, proportion});
- return ENGINE.renderJsonOption(iticOption);
+ persistentTimeOption.setSeries(new SeriesOption[]{probability, proportion});
+ return ENGINE.renderJsonOption(persistentTimeOption);
}
- /***
- * 生成月份统计
- * @author wr
- * @date 2023/6/21 10:06
- */
- public static String generateMonthOption(List xName, List times, String year, Integer flag) {
- xName.set(0, xName.get(0) + "\n" + "(" + year + ")");
- String name = "";
- Option iticOption = new Option();
- //取消渲染动画
- iticOption.setAnimation(false);
- //背景色
- iticOption.setBackgroundColor(PicCommonData.PIC_BACK_COLOR);
- //标题
- if (flag == 0) {
- iticOption.setTitle(new Title().setLeft(PicCommonData.CENTER).setText("月份统计"));
- name = "月份";
- } else {
- iticOption.setTitle(new Title().setLeft(PicCommonData.CENTER).setText("天数统计"));
- name = "天数";
- }
- //上下左右的图内间距
- iticOption.setGrid(new Grid().setTop("80px").setLeft("40px").setRight("60px").setBottom("20px"));
- //设置图例
- iticOption.setLegend(new Legend().setData(new String[]{"暂降次数"}).setTop("26px").setLeft(10).setBottom("94%").setShow(true));
- //设置图例对应的颜色
- iticOption.setColor(new String[]{"#FF8C00"});
- //横坐标
- iticOption.setXAxis(new CategoryAxis()
- .setBoundaryGap(true)
- .setName(name)
- .setNameTextStyle(new AxisNameTextStyle().setFontStyle("15px"))
- .setData(xName.toArray())
- );
- //纵坐标
- iticOption.setYAxis(new ValueAxis[]{
- new ValueAxis()
- .setName("次")
- .setType("value")
- });
- //配置暂降次数
- BarSeries probability = new BarSeries()
- .setName("暂降次数")
- .setLabel(new BarLabel().setShow(true).setColor("#8B008B"))
- .setData(times);
- iticOption.setSeries(new SeriesOption[]{probability});
- return ENGINE.renderJsonOption(iticOption);
- }
-
- /***
- * 生成暂降原因
- * @author wr
- * @date 2023/6/21 10:06
- */
- public static String generateReasonOption(List xName, List