From b3f987f13f19295821cf856d29bc6ceedf52091f Mon Sep 17 00:00:00 2001 From: Junjun Date: Thu, 13 Mar 2025 16:46:18 +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=E8=BD=B4=E6=94=AF=E6=8C=81=E5=90=8C=E7=8E=AF?= =?UTF-8?q?=E6=AF=94=20#15034=20(#15344)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataease/chart/charts/impl/mix/MixHandler.java | 13 +++++++++++-- .../extensions/view/dto/CustomFilterResult.java | 2 ++ 2 files changed, 13 insertions(+), 2 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 5884849412..fffd0ddbab 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 @@ -2,14 +2,17 @@ package io.dataease.chart.charts.impl.mix; import io.dataease.chart.charts.impl.YoyChartHandler; import io.dataease.chart.utils.ChartDataBuild; +import io.dataease.engine.trans.ExtWhere2Str; 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; import io.dataease.extensions.datasource.provider.Provider; import io.dataease.extensions.view.dto.*; +import io.dataease.extensions.view.util.FieldUtil; import lombok.Getter; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; @@ -129,12 +132,18 @@ public class MixHandler extends YoyChartHandler { formatResult2.getContext().remove("yoyFiltered"); formatResult2.getContext().put("isRight", "isRight"); + CustomFilterResult originFilter = new CustomFilterResult(); + originFilter.setContext(filterResult.getContext()); + List list = (List) formatResult.getContext().get("originFilter"); + originFilter.setFilterList(ObjectUtils.isEmpty(list) ? new ArrayList<>() : list); formatResult.getContext().put("subAxisMap", axisMap); // 右轴重新检测同环比过滤 - customFilter(view, filterResult.getFilterList(), formatResult2); - var rightResult = (T) super.calcChartResult(view, formatResult2, filterResult, sqlMap, sqlMeta, provider); + customFilter(view, originFilter.getFilterList(), formatResult2); + var allFields = (List) filterResult.getContext().get("allFields"); + ExtWhere2Str.extWhere2sqlOjb(sqlMeta, originFilter.getFilterList(), FieldUtil.transFields(allFields), crossDs, dsMap, Utils.getParams(FieldUtil.transFields(allFields)), view.getCalParams(), pluginManage); + var rightResult = (T) super.calcChartResult(view, formatResult2, originFilter, sqlMap, sqlMeta, provider); try { //如果有同环比过滤,应该用原始sql var originSql = rightResult.getQuerySql(); diff --git a/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/dto/CustomFilterResult.java b/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/dto/CustomFilterResult.java index f8c4403762..37692f8ddb 100644 --- a/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/dto/CustomFilterResult.java +++ b/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/dto/CustomFilterResult.java @@ -2,12 +2,14 @@ package io.dataease.extensions.view.dto; import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.List; import java.util.Map; @Data @AllArgsConstructor +@NoArgsConstructor public class CustomFilterResult { private List filterList; private Map context;