From d104a3731def03a7d6907ed225b68e0d1804ceb4 Mon Sep 17 00:00:00 2001 From: ulleo Date: Mon, 26 Aug 2024 15:35:38 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=9B=BE=E8=A1=A8):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=A0=86=E5=8F=A0=E6=9F=B1=E7=BA=BF=E7=BB=84=E5=90=88=E5=9B=BE?= =?UTF-8?q?=E4=B8=8B=E9=92=BB=E5=90=8E=EF=BC=8C=E6=A8=AA=E8=BD=B4=E5=8F=91?= =?UTF-8?q?=E7=94=9F=E9=94=99=E4=BD=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #11587 --- .../charts/impl/mix/StackMixHandler.java | 7 +++-- .../dataease/chart/utils/ChartDataBuild.java | 28 ++++++------------- 2 files changed, 13 insertions(+), 22 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/StackMixHandler.java b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/StackMixHandler.java index 3eb7bc9ebb..e82edb7d01 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/StackMixHandler.java +++ b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/StackMixHandler.java @@ -57,8 +57,11 @@ public class StackMixHandler extends MixHandler { var yAxis = formatResult.getAxisMap().get(ChartAxis.yAxis); if (CollectionUtils.isNotEmpty(extStack)) { // 堆叠左轴 - var xAxisBase = (List) formatResult.getContext().get("xAxisBase"); - return ChartDataBuild.transMixChartStackDataAntV(xAxisBase, xAxisBase, extStack, yAxis, view, data, isDrill); + var xAxis = formatResult.getAxisMap().get(ChartAxis.xAxis); + var drillAxis = xAxis.stream().filter(axis -> FieldSource.DRILL == axis.getSource()).toList(); + var xAxisBase = xAxis.subList(0, xAxis.size() - extStack.size() - drillAxis.size()); + //var xAxisBase = (List) formatResult.getContext().get("xAxisBase"); + return ChartDataBuild.transMixChartStackDataAntV(xAxisBase, xAxis, extStack, yAxis, view, data, isDrill); } else { //无堆叠左轴和右轴还是走原逻辑 var xAxisBase = (List) formatResult.getContext().get("xAxisBase"); diff --git a/core/core-backend/src/main/java/io/dataease/chart/utils/ChartDataBuild.java b/core/core-backend/src/main/java/io/dataease/chart/utils/ChartDataBuild.java index 94d2f1b99b..7dfdc026b4 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/utils/ChartDataBuild.java +++ b/core/core-backend/src/main/java/io/dataease/chart/utils/ChartDataBuild.java @@ -609,28 +609,22 @@ public class ChartDataBuild { for (int i1 = 0; i1 < data.size(); i1++) { String[] row = data.get(i1); + AxisChartDataAntVDTO axisChartDataDTO = new AxisChartDataAntVDTO(); StringBuilder a = new StringBuilder(); if (isDrill) { a.append(row[xAxis.size() - 1]); } else { - for (int i = 0; i < xAxis.size(); i++) { - if (i == xAxis.size() - 1) { + for (int i = 0; i < xAxisBase.size(); i++) { + if (i == xAxisBase.size() - 1) { a.append(row[i]); } else { a.append(row[i]).append("\n"); } } } - - // yAxis最后的数据对应extLabel和extTooltip,将他们从yAxis中去掉,同时转换成动态值 - int size = xAxis.size() + extStack.size() + yAxis.size(); - int extSize = view.getExtLabel().size() + view.getExtTooltip().size(); - - int i = xAxis.size(); - AxisChartDataAntVDTO axisChartDataDTO = new AxisChartDataAntVDTO(); axisChartDataDTO.setField(a.toString()); axisChartDataDTO.setName(a.toString()); - String category = row[xAxis.size()]; + String category = row[xAxisBase.size()]; axisChartDataDTO.setCategory(category); if (category != null) { categories.add(category); @@ -645,17 +639,12 @@ public class ChartDataBuild { chartDimensionDTO.setValue(row[k]); dimensionList.add(chartDimensionDTO); } - ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO(); - chartDimensionDTO.setId(extStack.get(0).getId()); - chartDimensionDTO.setValue(row[xAxis.size()]); - dimensionList.add(chartDimensionDTO); axisChartDataDTO.setDimensionList(dimensionList); - int j = i - xAxis.size(); - int valueIndex = xAxis.size() + extStack.size(); if (ObjectUtils.isNotEmpty(yAxis)) { + int valueIndex = xAxis.size(); ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO(); - chartQuotaDTO.setId(yAxis.get(j).getId()); + chartQuotaDTO.setId(yAxis.get(0).getId()); quotaList.add(chartQuotaDTO); axisChartDataDTO.setQuotaList(quotaList); try { @@ -663,14 +652,13 @@ public class ChartDataBuild { } catch (Exception e) { axisChartDataDTO.setValue(new BigDecimal(0)); } - buildDynamicValue(view, axisChartDataDTO, row, size, extSize); } else { axisChartDataDTO.setQuotaList(quotaList); axisChartDataDTO.setValue(new BigDecimal(0)); } - - series.get(j).getData().add(axisChartDataDTO); + series.get(0).getData().add(axisChartDataDTO); } + if (CollectionUtils.isNotEmpty(series)) { series.get(0).setCategories(categories); }