From 928adccff69437cd2a409387e02b662efca0229c Mon Sep 17 00:00:00 2001 From: wisonic Date: Mon, 13 Oct 2025 17:11:36 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=9B=BE=E8=A1=A8):=20=E7=BB=84=E5=90=88?= =?UTF-8?q?=E5=9B=BE=E5=89=AF=E5=80=BC=E8=BD=B4=E6=94=AF=E6=8C=81=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E5=90=8C=E7=8E=AF=E6=AF=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chart/charts/impl/mix/MixHandler.java | 32 +++++++++---------- .../chart/manage/ChartDataManage.java | 19 +++++------ .../components/editor/drag-item/QuotaItem.vue | 1 - .../js/panel/charts/others/chart-mix.ts | 1 - 4 files changed, 23 insertions(+), 30 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/MixHandler.java b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/MixHandler.java index ee7c7c73f6..4b6e000981 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/MixHandler.java +++ b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/MixHandler.java @@ -3,7 +3,6 @@ package io.dataease.chart.charts.impl.mix; import io.dataease.api.dataset.union.DatasetGroupInfoDTO; import io.dataease.chart.charts.impl.YoyChartHandler; import io.dataease.chart.utils.ChartDataBuild; -import io.dataease.engine.utils.Utils; import io.dataease.extensions.datasource.dto.DatasourceRequest; import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO; import io.dataease.extensions.datasource.model.SQLMeta; @@ -81,7 +80,6 @@ public class MixHandler extends YoyChartHandler { for (Map.Entry next : dsMap.entrySet()) { dsList.add(next.getValue().getType()); } - boolean needOrder = Utils.isNeedOrder(dsList); boolean crossDs = ((DatasetGroupInfoDTO) formatResult.getContext().get("dataset")).getIsCross(); var leftResult = (T) super.calcChartResult(view, formatResult, filterResult, sqlMap, sqlMeta, provider); var dynamicAssistFields = getDynamicAssistFields(view); @@ -120,43 +118,43 @@ public class MixHandler extends YoyChartHandler { e.printStackTrace(); } - AxisFormatResult formatResult2 = new AxisFormatResult(); + AxisFormatResult rightFormatResult = new AxisFormatResult(); var axisMap = new HashMap>(); axisMap.put(ChartAxis.extLabel, new ArrayList<>(formatResult.getAxisMap().get(ChartAxis.extLabel))); axisMap.put(ChartAxis.extTooltip, new ArrayList<>(formatResult.getAxisMap().get(ChartAxis.extTooltip))); axisMap.put(ChartAxis.drill, new ArrayList<>(formatResult.getAxisMap().get(ChartAxis.drill))); - formatResult2.setAxisMap(axisMap); - formatResult2.setContext(formatResult.getContext()); + rightFormatResult.setAxisMap(axisMap); + rightFormatResult.setContext(formatResult.getContext()); // 计算右轴,包含 xAxis,xAxisExt,yAxisExt,需要去掉 group 和 stack var xAxis = new ArrayList<>(view.getXAxis()); var extBubble = new ArrayList<>(formatResult.getAxisMap().get(ChartAxis.extBubble)); xAxis.addAll(extBubble); - var dillAxis = (ArrayList) formatResult.getContext().get("dillAxis"); + var drillAxis = (ArrayList) formatResult.getContext().get("drillAxis"); var fields = xAxis.stream().map(ChartViewFieldDTO::getId).collect(Collectors.toSet()); - for (ChartViewFieldDTO dillAxi : dillAxis) { - if (!fields.contains(dillAxi.getId())) { - xAxis.add(dillAxi); + for (ChartViewFieldDTO axis : drillAxis) { + if (!fields.contains(axis.getId())) { + xAxis.add(axis); } } - formatResult2.getAxisMap().put(ChartAxis.xAxis, xAxis); - formatResult2.getAxisMap().put(ChartAxis.xAxisExt, extBubble); + rightFormatResult.getAxisMap().put(ChartAxis.xAxis, xAxis); + rightFormatResult.getAxisMap().put(ChartAxis.xAxisExt, extBubble); var yAxisExt = new ArrayList<>(formatResult.getAxisMap().get(ChartAxis.yAxisExt)); - formatResult2.getAxisMap().put(ChartAxis.yAxis, yAxisExt); - formatResult2.getContext().remove("yoyFiltered"); - formatResult2.getContext().put("isRight", "isRight"); + rightFormatResult.getAxisMap().put(ChartAxis.yAxis, yAxisExt); + rightFormatResult.getContext().remove("yoyFiltered"); + rightFormatResult.getContext().put("isRight", "isRight"); formatResult.getContext().put("subAxisMap", axisMap); // 右轴重新检测同环比过滤 - customFilter(view, filterResult.getFilterList(), formatResult2); - var rightResult = (T) super.calcChartResult(view, formatResult2, filterResult, sqlMap, sqlMeta, provider); + customFilter(view, filterResult.getFilterList(), rightFormatResult); + var rightResult = (T) super.calcChartResult(view, rightFormatResult, filterResult, sqlMap, sqlMeta, provider); try { //如果有同环比过滤,应该用原始sql var originSql = rightResult.getQuerySql(); var rightAssistFields = dynamicAssistFields.stream().filter(x -> StringUtils.equalsAnyIgnoreCase(x.getYAxisType(), "right")).toList(); - var yAxis = formatResult2.getAxisMap().get(ChartAxis.yAxis); + var yAxis = rightFormatResult.getAxisMap().get(ChartAxis.yAxis); var assistFields = getAssistFields(rightAssistFields, yAxis); if (CollectionUtils.isNotEmpty(assistFields)) { var req = new DatasourceRequest(); 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 fc7764ad81..e8b7ddd46d 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 @@ -110,7 +110,7 @@ public class ChartDataManage { DEException.throwException(ResultCode.DATA_IS_WRONG.code(), Translator.get("i18n_chart_not_handler") + ": " + view.getRender() + "," + view.getType()); } - var dillAxis = new ArrayList(); + var drillAxis = new ArrayList(); DatasetGroupInfoDTO table = datasetGroupManage.getDatasetGroupInfoDTO(view.getTableId(), null); if (table == null) { DEException.throwException(ResultCode.DATA_IS_WRONG.code(), Translator.get("i18n_no_ds")); @@ -141,9 +141,7 @@ public class ChartDataManage { var yAxis = formatResult.getAxisMap().get(ChartAxis.yAxis); formatResult.getContext().put("allFields", allFields); var axisMap = formatResult.getAxisMap(); - axisMap.forEach((axis, fields) -> { - fields.removeIf(fieldDTO -> !dataeaseNames.contains(fieldDTO.getDataeaseName())); - }); + axisMap.forEach((axis, fields) -> fields.removeIf(fieldDTO -> !dataeaseNames.contains(fieldDTO.getDataeaseName()))); // 过滤来自仪表板的条件 List extFilterList = new ArrayList<>(); @@ -319,7 +317,7 @@ public class ChartDataManage { if (!fields.contains(dim.getId())) { viewField.setSource(FieldSource.DRILL); xAxis.add(viewField); - dillAxis.add(viewField); + drillAxis.add(viewField); fields.add(dim.getId()); } if (i == drillRequestList.size() - 1) { @@ -327,7 +325,7 @@ public class ChartDataManage { if (!fields.contains(nextDrillField.getId())) { nextDrillField.setSource(FieldSource.DRILL); xAxis.add(nextDrillField); - dillAxis.add(nextDrillField); + drillAxis.add(nextDrillField); fields.add(nextDrillField.getId()); } else { Optional axis = xAxis.stream().filter(x -> Objects.equals(x.getId(), nextDrillField.getId())).findFirst(); @@ -335,7 +333,7 @@ public class ChartDataManage { field.setSort(nextDrillField.getSort()); field.setCustomSort(nextDrillField.getCustomSort()); }); - dillAxis.add(nextDrillField); + drillAxis.add(nextDrillField); } } } @@ -343,10 +341,10 @@ public class ChartDataManage { } } - formatResult.getContext().put("dillAxis", dillAxis); + formatResult.getContext().put("drillAxis", drillAxis); //转义特殊字符 - extFilterList = extFilterList.stream().peek(ele -> { + extFilterList.forEach(ele -> { if (ObjectUtils.isNotEmpty(ele.getValue())) { List collect = ele.getValue().stream().map(SQLUtils::transKeyword).collect(Collectors.toList()); if (CollectionUtils.isEmpty(ele.getOriginValue())) { @@ -354,7 +352,7 @@ public class ChartDataManage { } ele.setValue(collect); } - }).collect(Collectors.toList()); + }); // 视图自定义过滤逻辑 CustomFilterResult filterResult = chartHandler.customFilter(view, extFilterList, formatResult); @@ -642,7 +640,6 @@ public class ChartDataManage { view.setXAxisExt(new ArrayList<>()); } - List xAxisBase = new ArrayList<>(view.getXAxis()); List xAxis = new ArrayList<>(view.getXAxis()); List xAxisExt = new ArrayList<>(view.getXAxisExt()); if (StringUtils.equalsIgnoreCase(view.getType(), "table-pivot") diff --git a/core/core-frontend/src/views/chart/components/editor/drag-item/QuotaItem.vue b/core/core-frontend/src/views/chart/components/editor/drag-item/QuotaItem.vue index 47575dc2ca..10751cd7a6 100644 --- a/core/core-frontend/src/views/chart/components/editor/drag-item/QuotaItem.vue +++ b/core/core-frontend/src/views/chart/components/editor/drag-item/QuotaItem.vue @@ -661,7 +661,6 @@ onMounted(() => { class="menu-item-padding" :disabled="state.disableEditCompare" :command="beforeQuickCalc('setting')" - v-if="!(chart.type.includes('chart-mix') && type === 'quotaExt')" >