diff --git a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/bar/GroupBarHandler.java b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/bar/GroupBarHandler.java index 72b5cb29d1..0f2735bc48 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/bar/GroupBarHandler.java +++ b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/bar/GroupBarHandler.java @@ -6,10 +6,7 @@ import lombok.Getter; import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; @Component @@ -69,7 +66,8 @@ public class GroupBarHandler extends BarHandler { var xAxis = formatResult.getAxisMap().get(ChartAxis.xAxis); var xAxisExt = formatResult.getAxisMap().get(ChartAxis.xAxisExt); var yAxis = formatResult.getAxisMap().get(ChartAxis.yAxis); - var xAxisBase = xAxis.subList(0, xAxis.size() - xAxisExt.size()); + var drillAxis = xAxis.stream().filter(axis -> FieldSource.DRILL == axis.getSource()).toList(); + var xAxisBase = xAxis.subList(0, xAxis.size() - xAxisExt.size() - drillAxis.size()); return ChartDataBuild.transBaseGroupDataAntV(xAxisBase, xAxis, xAxisExt, yAxis, view, data, isDrill); } } diff --git a/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java b/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java index 37ad8fc3ea..2bbf881e0c 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java +++ b/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java @@ -288,7 +288,7 @@ public class ChartDataManage { if (i == drillRequestList.size() - 1) { ChartViewFieldDTO nextDrillField = drill.get(i + 1); if (!fields.contains(nextDrillField.getId())) { - viewField.setSource(FieldSource.DRILL); + nextDrillField.setSource(FieldSource.DRILL); nextDrillField.setSort(getDrillSort(xAxis, drill.get(0))); xAxis.add(nextDrillField); dillAxis.add(nextDrillField);