From 4a256bafd524216db2432a8b21f996dbf14a5522 Mon Sep 17 00:00:00 2001 From: jianneng-fit2cloud Date: Sun, 30 Jun 2024 16:09:06 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=9B=BE=E8=A1=A8-=E7=AC=A6=E5=8F=B7?= =?UTF-8?q?=E5=9C=B0=E5=9B=BE):=20=E4=BF=AE=E5=A4=8D=E7=AC=A6=E5=8F=B7?= =?UTF-8?q?=E5=9C=B0=E5=9B=BE=E6=A0=87=E7=AD=BE=E6=88=96=E8=80=85=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E5=87=BA=E7=8E=B0value=E6=98=AFundefined=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chart/charts/impl/map/SymbolicMapHandler.java | 12 +++++++++--- .../java/io/dataease/chart/utils/ChartDataBuild.java | 3 ++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/map/SymbolicMapHandler.java b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/map/SymbolicMapHandler.java index b3e8bd74e0..1ed5cf5a2c 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/map/SymbolicMapHandler.java +++ b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/map/SymbolicMapHandler.java @@ -62,7 +62,12 @@ public class SymbolicMapHandler extends GroupChartHandler { var xAxis = formatResult.getAxisMap().get(ChartAxis.xAxis); var yAxis = formatResult.getAxisMap().get(ChartAxis.yAxis); var allFields = (List) filterResult.getContext().get("allFields"); + SQLMeta sqlMeta1 = new SQLMeta(); + BeanUtils.copyBean(sqlMeta1, sqlMeta); Dimension2SQLObj.dimension2sqlObj(sqlMeta, xAxis, FieldUtil.transFields(allFields), crossDs, dsMap); + List yFields = new ArrayList<>(); + yFields.addAll(chartViewManege.transFieldDTO(Collections.singletonList(chartViewManege.createCountField(view.getTableId())))); + yAxis.addAll(yFields); Quota2SQLObj.quota2sqlObj(sqlMeta, yAxis, FieldUtil.transFields(allFields), crossDs, dsMap); String querySql = SQLProvider.createQuerySQL(sqlMeta, true, needOrder, view); querySql = SqlUtils.rebuildSQL(querySql, sqlMeta, crossDs, dsMap); @@ -76,15 +81,16 @@ public class SymbolicMapHandler extends GroupChartHandler { detailFields.addAll(xAxis); detailFields.addAll(allFields.stream().filter(field -> !xAxisIds.contains(field.getId())).toList()); if (ObjectUtils.isNotEmpty(detailFields)) { - SQLMeta sqlMeta1 = new SQLMeta(); - BeanUtils.copyBean(sqlMeta1, sqlMeta); - sqlMeta1.setYFields(new ArrayList<>()); Dimension2SQLObj.dimension2sqlObj(sqlMeta1, detailFields, FieldUtil.transFields(allFields), crossDs, dsMap); + // 为了不添加limit,要查所有数据,否则无法跟前面的数据对上,因为前面使用了group by + String defaultResultMode = view.getResultMode(); + view.setResultMode(""); String originSql = SQLProvider.createQuerySQL(sqlMeta1, false, needOrder, view); originSql = SqlUtils.rebuildSQL(originSql, sqlMeta, crossDs, dsMap); datasourceRequest.setQuery(originSql); logger.info("calcite detail field sql: " + querySql); detailData = (List) provider.fetchResultField(datasourceRequest).get("data"); + view.setResultMode(defaultResultMode); } //自定义排序 data = ChartDataUtil.resultCustomSort(xAxis, data); 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 b5db131c82..881e2550a2 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 @@ -1798,7 +1798,8 @@ public class ChartDataBuild { } return temp; })).collect(Collectors.toList()); - row.put("details", detailValueMapList); + //详情只要一个 + row.put("details", !detailValueMapList.isEmpty() ?Collections.singletonList(detailValueMapList.getFirst()):detailValueMapList); }); ChartViewFieldDTO detailFieldDTO = new ChartViewFieldDTO();