diff --git a/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index 0716e5355f..62ec26c512 100644 --- a/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -1058,9 +1058,10 @@ public class ChartViewService { }); xAxis.addAll(xAxisExtList); } + fieldMap.put("xAxis", xAxis); + fieldMap.put("xAxisExt", xAxisExt); fieldMap.put("extStack", extStack); fieldMap.put("extBubble", extBubble); - fieldMap.put("xAxis", xAxis); fieldMap.put("yAxis", yAxis); PluginViewParam pluginViewParam = buildPluginParam(fieldMap, fieldCustomFilter, extFilterList, ds, table, view, rowPermissionsTree, chartExtRequest); String sql = pluginViewSql(pluginViewParam, view); diff --git a/core/backend/src/main/java/io/dataease/service/chart/util/ChartDataBuild.java b/core/backend/src/main/java/io/dataease/service/chart/util/ChartDataBuild.java index a214d94f28..6c37eb0cba 100644 --- a/core/backend/src/main/java/io/dataease/service/chart/util/ChartDataBuild.java +++ b/core/backend/src/main/java/io/dataease/service/chart/util/ChartDataBuild.java @@ -1087,6 +1087,7 @@ public class ChartDataBuild { List fields = new ArrayList<>(); List yfields = new ArrayList<>(); if (CollectionUtils.isNotEmpty(fieldMap.get("xAxis"))) fields.addAll(fieldMap.get("xAxis")); + if (CollectionUtils.isNotEmpty(fieldMap.get("xAxisExt"))) fields.addAll(fieldMap.get("xAxisExt")); for (Map.Entry> entry : fieldMap.entrySet()) { if (StringUtils.equalsAny(entry.getKey(), keys)) { diff --git a/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/dto/SymbolMapResultDTO.java b/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/dto/SymbolMapResultDTO.java index 63a1189dc1..79286db563 100644 --- a/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/dto/SymbolMapResultDTO.java +++ b/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/dto/SymbolMapResultDTO.java @@ -12,6 +12,8 @@ public class SymbolMapResultDTO extends AxisChartDataAntVDTO { private String latitude; + private String color; + private Object busiValue; private Map properties; diff --git a/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/handler/SymbolMapRSHandler.java b/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/handler/SymbolMapRSHandler.java index cf0f335db4..c26b103066 100644 --- a/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/handler/SymbolMapRSHandler.java +++ b/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/handler/SymbolMapRSHandler.java @@ -35,11 +35,15 @@ public class SymbolMapRSHandler implements PluginViewRSHandler { public Map format(PluginViewParam pluginViewParam, List data, boolean isDrill) { List xAxis = new ArrayList<>(); List yAxis = new ArrayList<>(); + List xAxisExt = new ArrayList<>(); pluginViewParam.getPluginViewFields().forEach(pluginViewField -> { if (StringUtils.equals(pluginViewField.getTypeField(), "xAxis")) { xAxis.add(pluginViewField); } + if (StringUtils.equals(pluginViewField.getTypeField(), "xAxisExt")) { + xAxisExt.add(pluginViewField); + } if (StringUtils.equals(pluginViewField.getTypeField(), "yAxis") || trans2Ykeys.contains(pluginViewField.getTypeField())) { yAxis.add(pluginViewField); @@ -65,40 +69,31 @@ public class SymbolMapRSHandler implements PluginViewRSHandler { } if (CollectionUtils.isEmpty(yAxis)) { - for (int i = 0; i < xAxis.size() + yAxis.size(); i++) { - SymbolMapResultDTO axisChartDataDTO = new SymbolMapResultDTO(); - axisChartDataDTO.setField(a.toString()); - axisChartDataDTO.setName(a.toString()); + SymbolMapResultDTO axisChartDataDTO = new SymbolMapResultDTO(); + axisChartDataDTO.setField(a.toString()); + axisChartDataDTO.setName(a.toString()); - List dimensionList = new ArrayList<>(); - List quotaList = new ArrayList<>(); + List dimensionList = new ArrayList<>(); - for (int j = 0; j < xAxis.size(); j++) { - ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO(); - chartDimensionDTO.setId(xAxis.get(j).getId()); - chartDimensionDTO.setValue(row[j]); - dimensionList.add(chartDimensionDTO); - } - axisChartDataDTO.setDimensionList(dimensionList); - - int j = i - xAxis.size(); - if (j > -1) { - ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO(); - chartQuotaDTO.setId(yAxis.get(j).getId()); - quotaList.add(chartQuotaDTO); - axisChartDataDTO.setQuotaList(quotaList); - try { - axisChartDataDTO.setBusiValue(row[i]); - axisChartDataDTO.setValue(StringUtils.isEmpty(row[i]) ? null : new BigDecimal(row[i])); - } catch (Exception e) { - axisChartDataDTO.setValue(new BigDecimal(0)); - } - axisChartDataDTO.setCategory(yAxis.get(j).getName()); - } - axisChartDataDTO.setLongitude(dimensionList.get(0).getValue()); - axisChartDataDTO.setLatitude(dimensionList.get(1).getValue()); - datalist.add(axisChartDataDTO); + for (int j = 0; j < xAxis.size(); j++) { + ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO(); + chartDimensionDTO.setId(xAxis.get(j).getId()); + chartDimensionDTO.setValue(row[j]); + dimensionList.add(chartDimensionDTO); } + for (int j = 0; j < xAxisExt.size(); j++) { + ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO(); + chartDimensionDTO.setId(xAxisExt.get(j).getId()); + chartDimensionDTO.setValue(row[j + xAxis.size()]); + dimensionList.add(chartDimensionDTO); + } + axisChartDataDTO.setDimensionList(dimensionList); + axisChartDataDTO.setLongitude(dimensionList.get(0).getValue()); + axisChartDataDTO.setLatitude(dimensionList.get(1).getValue()); + if (!xAxisExt.isEmpty()) { + axisChartDataDTO.setColor(dimensionList.get(2).getValue()); + } + datalist.add(axisChartDataDTO); } else { SymbolMapResultDTO axisChartDataDTO = new SymbolMapResultDTO(); axisChartDataDTO.setField(a.toString()); @@ -112,10 +107,19 @@ public class SymbolMapRSHandler implements PluginViewRSHandler { chartDimensionDTO.setValue(row[j]); dimensionList.add(chartDimensionDTO); } + for (int j = 0; j < xAxisExt.size(); j++) { + ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO(); + chartDimensionDTO.setId(xAxisExt.get(j).getId()); + chartDimensionDTO.setValue(row[j + xAxis.size()]); + dimensionList.add(chartDimensionDTO); + } + if (!xAxisExt.isEmpty()) { + axisChartDataDTO.setColor(dimensionList.get(2).getValue()); + } axisChartDataDTO.setDimensionList(dimensionList); axisChartDataDTO.setQuotaList(new ArrayList<>()); axisChartDataDTO.setProperties(new HashMap<>()); - int step = xAxis.size(); + int step = xAxis.size() + xAxisExt.size(); Boolean valueFilled = false; for (int i = 0; i < yAxis.size(); i++) { PluginViewField curY = yAxis.get(i); diff --git a/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/impl/SymbolMapService.java b/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/impl/SymbolMapService.java index a4f5f46d5d..2f32c6c938 100644 --- a/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/impl/SymbolMapService.java +++ b/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-backend/src/main/java/io/dataease/plugins/view/official/impl/SymbolMapService.java @@ -140,7 +140,10 @@ public class SymbolMapService extends ViewPluginService { if (CollectionUtils.isEmpty(xAxis) || xAxis.size() < 2) { return null; } - + List xAxisExt = pluginViewParam.getFieldsByType("xAxisExt"); + if (CollectionUtils.isNotEmpty(xAxisExt)) { + xAxisExt.forEach(i -> i.setTypeField("xAxis")); + } if (CollectionUtils.isNotEmpty(yAxis)) { String generateSQL = super.generateSQL(pluginViewParam); pluginViewParam.setPluginViewFields(pluginViewFields); @@ -149,7 +152,7 @@ public class SymbolMapService extends ViewPluginService { // 下面考虑符号大小为空的情况 String result = symbolMapStatHandler.build(pluginViewParam, this); - // pluginViewParam.setPluginViewFields(pluginViewFields); + pluginViewParam.setPluginViewFields(pluginViewFields); return result; } diff --git a/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-frontend/src/components/views/DimensionExtItem.vue b/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-frontend/src/components/views/DimensionExtItem.vue index 9a94cce8f1..a308acf622 100644 --- a/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-frontend/src/components/views/DimensionExtItem.vue +++ b/extensions/dataease-extensions-view/view-symbolmap/view-symbolmap-frontend/src/components/views/DimensionExtItem.vue @@ -1,6 +1,6 @@