diff --git a/backend/src/main/java/io/dataease/ext/ExtPanelGroupMapper.java b/backend/src/main/java/io/dataease/ext/ExtPanelGroupMapper.java index a1fdf5af1a..8e62c241e3 100644 --- a/backend/src/main/java/io/dataease/ext/ExtPanelGroupMapper.java +++ b/backend/src/main/java/io/dataease/ext/ExtPanelGroupMapper.java @@ -17,6 +17,8 @@ public interface ExtPanelGroupMapper { //会级联删除pid 下的所有数据 int deleteCircle(@Param("pid") String pid, @Param("nodeType") String nodeType); + int deleteLinkDefaultCircle(@Param("pid") String pid); + int deleteCircleView(@Param("pid") String pid, @Param("nodeType") String nodeType); int deleteCircleViewCache(@Param("pid") String pid, @Param("nodeType") String nodeType); diff --git a/backend/src/main/java/io/dataease/ext/ExtPanelGroupMapper.xml b/backend/src/main/java/io/dataease/ext/ExtPanelGroupMapper.xml index 6b3d058df8..6e54ab20fb 100644 --- a/backend/src/main/java/io/dataease/ext/ExtPanelGroupMapper.xml +++ b/backend/src/main/java/io/dataease/ext/ExtPanelGroupMapper.xml @@ -202,6 +202,10 @@ ORDER BY panel_group.node_type desc, CONVERT(panel_group.name using gbk) + + delete from panel_group where FIND_IN_SET(panel_group.source, GET_PANEL_GROUP_WITH_CHILDREN(#{pid})) + + delete from panel_group @@ -211,7 +215,6 @@ panel_group.source = #{pid} or FIND_IN_SET(panel_group.id, GET_PANEL_GROUP_WITH_CHILDREN(#{pid})) - or FIND_IN_SET(panel_group.source, GET_PANEL_GROUP_WITH_CHILDREN(#{pid})) diff --git a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index bc5239baa8..6077bbe9eb 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -725,7 +725,9 @@ public class ChartViewService { xAxis = xAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); yAxis = yAxis.stream().filter(item -> chartViewFieldNameList.contains(item.getDataeaseName()) || (!desensitizationList.keySet().contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName()))).collect(Collectors.toList()); } - + Map chartFieldMap = Stream.of(xAxisBase, xAxisExt, extStack) + .flatMap(Collection::stream) + .collect(Collectors.toMap(ChartViewFieldDTO::getId, o -> o, ((p, n) -> p))); // 过滤来自仪表板的条件 List extFilterList = new ArrayList<>(); //组件过滤条件 @@ -834,6 +836,14 @@ public class ChartViewService { if (!desensitizationList.keySet().contains(datasetTableField.getDataeaseName()) && dataeaseNames.contains(datasetTableField.getDataeaseName())) { request.setDatasetTableField(datasetTableField); if (StringUtils.equalsIgnoreCase(datasetTableField.getTableId(), view.getTableId())) { +// 设置日期格式,以视图字段设置的格式为准,先不处理组件的条件,因为格式无法统一。 + if (request.getDatasetTableField() != null) { + ChartViewFieldDTO chartViewFieldDTO = chartFieldMap.get(request.getDatasetTableField().getId()); + if (chartViewFieldDTO != null) { + request.setDatePattern(chartViewFieldDTO.getDatePattern()); + request.setDateStyle(chartViewFieldDTO.getDateStyle()); + } + } if (CollectionUtils.isNotEmpty(request.getViewIds())) { if (request.getViewIds().contains(view.getId())) { extFilterList.add(request); @@ -883,9 +893,6 @@ public class ChartViewService { ChartDrillRequest head = drillRequestList.get(0); Map dimValMap = new HashMap<>(); head.getDimensionList().forEach(item -> dimValMap.put(item.getId(), item.getValue())); - Map fieldMap = Stream.of(xAxisBase, xAxisExt, extStack) - .flatMap(Collection::stream) - .collect(Collectors.toMap(ChartViewFieldDTO::getId, o -> o, ((p, n) -> p))); for (int i = 0; i < drillRequestList.size(); i++) { ChartDrillRequest request = drillRequestList.get(i); ChartViewFieldDTO chartViewFieldDTO = drill.get(i); @@ -896,7 +903,7 @@ public class ChartViewService { fieldsToFilter.add(chartViewFieldDTO); dimValMap.put(requestDimension.getId(), requestDimension.getValue()); if (!checkDrillExist(xAxis, extStack, requestDimension.getId(), view)) { - fieldMap.put(chartViewFieldDTO.getId(), chartViewFieldDTO); + chartFieldMap.put(chartViewFieldDTO.getId(), chartViewFieldDTO); xAxis.add(chartViewFieldDTO); } if (i == drillRequestList.size() - 1) { @@ -916,8 +923,8 @@ public class ChartViewService { DatasetTableField datasetTableField = dataSetTableFieldsService.get(tmpField.getId()); tmpFilter.setDatasetTableField(datasetTableField); tmpFilter.setOperator("in"); - tmpFilter.setDateStyle(fieldMap.get(tmpField.getId()).getDateStyle()); - tmpFilter.setDatePattern(fieldMap.get(tmpField.getId()).getDatePattern()); + tmpFilter.setDateStyle(chartFieldMap.get(tmpField.getId()).getDateStyle()); + tmpFilter.setDatePattern(chartFieldMap.get(tmpField.getId()).getDatePattern()); tmpFilter.setFieldId(tmpField.getId()); tmpFilter.setValue(Collections.singletonList(dimValMap.get(tmpField.getId()))); extFilterList.add(tmpFilter); diff --git a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java index 7f22ac1a7a..964155492b 100644 --- a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java +++ b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java @@ -305,6 +305,7 @@ public class PanelGroupService { extPanelGroupMapper.deleteCircleView(id, nodeType); extPanelGroupMapper.deleteCircleViewCache(id, nodeType); // 同时会删除对应默认仪表盘 + extPanelGroupMapper.deleteLinkDefaultCircle(id); extPanelGroupMapper.deleteCircle(id, nodeType); storeService.removeByPanelId(id); shareService.delete(id, null);