Unverified 提交 05ef2e59 authored 作者: XiaJunjie2020's avatar XiaJunjie2020 提交者: GitHub

Merge pull request #595 from dataease/pr@dev@feat_视图下钻

feat: 视图下钻
......@@ -419,27 +419,16 @@ public class ChartViewService {
// 图表组件可再扩展
Map<String, Object> mapChart;
if (StringUtils.containsIgnoreCase(view.getType(), "stack")) {
mapChart = transStackChartData(xAxis, yAxis, view, data, extStack);
mapChart = transStackChartData(xAxis, yAxis, view, data, extStack, isDrill);
} else if (StringUtils.containsIgnoreCase(view.getType(), "scatter")) {
mapChart = transScatterData(xAxis, yAxis, view, data, extBubble);
mapChart = transScatterData(xAxis, yAxis, view, data, extBubble, isDrill);
} else if (StringUtils.containsIgnoreCase(view.getType(), "radar")) {
mapChart = transRadarChartData(xAxis, yAxis, view, data);
mapChart = transRadarChartData(xAxis, yAxis, view, data, isDrill);
} else if (StringUtils.containsIgnoreCase(view.getType(), "text")
|| StringUtils.containsIgnoreCase(view.getType(), "gauge")) {
mapChart = transNormalChartData(xAxis, yAxis, view, data);
mapChart = transNormalChartData(xAxis, yAxis, view, data, isDrill);
} else {
mapChart = transChartData(xAxis, yAxis, view, data);
}
// 钻取模式,去除前几层维度值,只保留当前层
if (isDrill) {
List<String> xList = (List<String>) mapChart.get("x");
List<String> xNewList = new ArrayList<>();
for (String x : xList) {
String[] split = x.split("\n");
x = split[split.length - 1];
xNewList.add(x);
}
mapChart.put("x", xNewList);
mapChart = transChartData(xAxis, yAxis, view, data, isDrill);
}
// table组件,明细表,也用于导出数据
Map<String, Object> mapTableNormal = transTableNormal(xAxis, yAxis, view, data, extStack);
......@@ -512,7 +501,7 @@ public class ChartViewService {
}
// 基础图形
private Map<String, Object> transChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data) {
private Map<String, Object> transChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, boolean isDrill) {
Map<String, Object> map = new HashMap<>();
List<String> x = new ArrayList<>();
......@@ -553,6 +542,9 @@ public class ChartViewService {
}
series.get(j).getData().add(axisChartDataDTO);
}
if (isDrill) {
a.append(d[xAxis.size() - 1]);
} else {
for (int i = 0; i < xAxis.size(); i++) {
if (i == xAxis.size() - 1) {
a.append(d[i]);
......@@ -560,6 +552,7 @@ public class ChartViewService {
a.append(d[i]).append("\n");
}
}
}
x.add(a.toString());
}
......@@ -569,7 +562,7 @@ public class ChartViewService {
}
// 常规图形
private Map<String, Object> transNormalChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data) {
private Map<String, Object> transNormalChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, boolean isDrill) {
Map<String, Object> map = new HashMap<>();
List<String> x = new ArrayList<>();
......@@ -583,6 +576,9 @@ public class ChartViewService {
}
for (String[] d : data) {
StringBuilder a = new StringBuilder();
if (isDrill) {
a.append(d[xAxis.size() - 1]);
} else {
for (int i = 0; i < xAxis.size(); i++) {
if (i == xAxis.size() - 1) {
a.append(d[i]);
......@@ -590,6 +586,7 @@ public class ChartViewService {
a.append(d[i]).append("\n");
}
}
}
x.add(a.toString());
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
int j = i - xAxis.size();
......@@ -607,7 +604,7 @@ public class ChartViewService {
}
// radar图
private Map<String, Object> transRadarChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data) {
private Map<String, Object> transRadarChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, boolean isDrill) {
Map<String, Object> map = new HashMap<>();
List<String> x = new ArrayList<>();
......@@ -621,6 +618,9 @@ public class ChartViewService {
}
for (String[] d : data) {
StringBuilder a = new StringBuilder();
if (isDrill) {
a.append(d[xAxis.size() - 1]);
} else {
for (int i = 0; i < xAxis.size(); i++) {
if (i == xAxis.size() - 1) {
a.append(d[i]);
......@@ -628,6 +628,7 @@ public class ChartViewService {
a.append(d[i]).append("\n");
}
}
}
x.add(a.toString());
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
int j = i - xAxis.size();
......@@ -645,7 +646,7 @@ public class ChartViewService {
}
// 堆叠图
private Map<String, Object> transStackChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, List<ChartViewFieldDTO> extStack) {
private Map<String, Object> transStackChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, List<ChartViewFieldDTO> extStack, boolean isDrill) {
Map<String, Object> map = new HashMap<>();
List<String> x = new ArrayList<>();
......@@ -659,6 +660,9 @@ public class ChartViewService {
// 构建横轴
for (String[] d : data) {
StringBuilder a = new StringBuilder();
if (isDrill) {
a.append(d[xAxis.size() - 1]);
} else {
for (int i = 0; i < xAxis.size(); i++) {
if (i == xAxis.size() - 1) {
a.append(d[i]);
......@@ -666,6 +670,7 @@ public class ChartViewService {
a.append(d[i]).append("\n");
}
}
}
x.add(a.toString());
}
x = x.stream().distinct().collect(Collectors.toList());
......@@ -770,6 +775,9 @@ public class ChartViewService {
}
series.get(j).getData().add(axisChartDataDTO);
}
if (isDrill) {
a.append(d[xAxis.size() - 1]);
} else {
for (int i = 0; i < xAxis.size(); i++) {
if (i == xAxis.size() - 1) {
a.append(d[i]);
......@@ -777,6 +785,7 @@ public class ChartViewService {
a.append(d[i]).append("\n");
}
}
}
x.add(a.toString());
}
}
......@@ -787,7 +796,7 @@ public class ChartViewService {
}
// 散点图
private Map<String, Object> transScatterData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, List<ChartViewFieldDTO> extBubble) {
private Map<String, Object> transScatterData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, List<ChartViewFieldDTO> extBubble, boolean isDrill) {
Map<String, Object> map = new HashMap<>();
List<String> x = new ArrayList<>();
......@@ -803,6 +812,9 @@ public class ChartViewService {
String[] d = data.get(i1);
StringBuilder a = new StringBuilder();
if (isDrill) {
a.append(d[xAxis.size() - 1]);
} else {
for (int i = 0; i < xAxis.size(); i++) {
if (i == xAxis.size() - 1) {
a.append(d[i]);
......@@ -810,6 +822,7 @@ public class ChartViewService {
a.append(d[i]).append("\n");
}
}
}
x.add(a.toString());
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论