diff --git a/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java b/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java index 7cd823b27a..c795eb9c6c 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java @@ -14,6 +14,7 @@ import io.dataease.api.visualization.vo.*; import io.dataease.auth.DeLinkPermit; import io.dataease.chart.dao.auto.entity.CoreChartView; import io.dataease.chart.dao.auto.mapper.CoreChartViewMapper; +import io.dataease.chart.dao.ext.mapper.ExtChartViewMapper; import io.dataease.chart.manage.ChartDataManage; import io.dataease.chart.manage.ChartViewManege; import io.dataease.commons.constants.DataVisualizationConstants; @@ -55,6 +56,7 @@ import io.dataease.visualization.dao.auto.entity.DataVisualizationInfo; import io.dataease.visualization.dao.auto.entity.SnapshotDataVisualizationInfo; import io.dataease.visualization.dao.auto.entity.VisualizationWatermark; import io.dataease.visualization.dao.auto.mapper.DataVisualizationInfoMapper; +import io.dataease.visualization.dao.auto.mapper.SnapshotCoreChartViewMapper; import io.dataease.visualization.dao.auto.mapper.SnapshotDataVisualizationInfoMapper; import io.dataease.visualization.dao.auto.mapper.VisualizationWatermarkMapper; import io.dataease.visualization.dao.ext.mapper.ExtDataVisualizationMapper; @@ -134,7 +136,8 @@ public class DataVisualizationServer implements DataVisualizationApi { @Resource private CoreDatasetTableFieldMapper coreDatasetTableFieldMapper; - @Autowired + + @Resource private CoreDatasourceMapper coreDatasourceMapper; @Resource @@ -150,6 +153,8 @@ public class DataVisualizationServer implements DataVisualizationApi { @Resource private SnapshotDataVisualizationInfoMapper snapshotMapper; + @Resource + private ExtChartViewMapper extChartViewMapper; @Override public DataVisualizationVO findCopyResource(Long dvId, String busiFlag) { @@ -856,10 +861,10 @@ public class DataVisualizationServer implements DataVisualizationApi { @Override public List detailList(Long dvId) { List result = extDataVisualizationMapper.getVisualizationViewDetails(dvId); - DataVisualizationInfo dvInfo = visualizationInfoMapper.selectById(dvId); + SnapshotDataVisualizationInfo dvInfo = snapshotMapper.selectById(dvId); if (dvInfo != null && !CollectionUtils.isEmpty(result)) { String componentData = dvInfo.getComponentData(); - return result.stream().filter(item -> componentData.indexOf(String.valueOf(item.getId())) > 0).toList(); + return result.stream().filter(item -> componentData.indexOf("\"id\":\"" + item.getId()) > 0).toList(); } else { return result; } @@ -971,4 +976,16 @@ public class DataVisualizationServer implements DataVisualizationApi { } } + public List getEnabledViewIds(Long dvId, String resourceTable) { + List result = new ArrayList<>(); + DataVisualizationVO dvInfo = extDataVisualizationMapper.findDvInfo(dvId, null, resourceTable); + List views = extChartViewMapper.selectListCustom(dvId, resourceTable); + if (CollectionUtils.isNotEmpty(views) && dvInfo != null) { + String componentData = dvInfo.getComponentData(); + result = views.stream().filter(item -> componentData.indexOf("\"id\":\"" + item.getId()) > 0).map(CoreChartView::getId) + .collect(Collectors.toList()); + + } + return result; + } } diff --git a/core/core-backend/src/main/java/io/dataease/visualization/server/VisualizationOuterParamsService.java b/core/core-backend/src/main/java/io/dataease/visualization/server/VisualizationOuterParamsService.java index ec8a8f2dea..2be45414a2 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/server/VisualizationOuterParamsService.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/server/VisualizationOuterParamsService.java @@ -9,6 +9,7 @@ import io.dataease.api.visualization.dto.VisualizationOuterParamsDTO; import io.dataease.api.visualization.dto.VisualizationOuterParamsInfoDTO; import io.dataease.api.visualization.response.VisualizationOuterParamsBaseResponse; import io.dataease.auth.DeLinkPermit; +import io.dataease.constant.CommonConstants; import io.dataease.dataset.dao.auto.entity.CoreDatasetTable; import io.dataease.dataset.dao.auto.mapper.CoreDatasetTableMapper; import io.dataease.constant.DeTypeConstants; @@ -20,6 +21,7 @@ import io.dataease.visualization.dao.auto.mapper.*; import io.dataease.visualization.dao.ext.mapper.ExtVisualizationOuterParamsMapper; import jakarta.annotation.Resource; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.RequestMapping; @@ -57,6 +59,10 @@ public class VisualizationOuterParamsService implements VisualizationOuterParams @Resource private CoreDatasetTableMapper coreDatasetTableMapper; + @Autowired + private DataVisualizationServer dataVisualizationServer; + @Autowired + private SnapshotDataVisualizationInfoMapper snapshotDataVisualizationInfoMapper; @Override @@ -125,7 +131,12 @@ public class VisualizationOuterParamsService implements VisualizationOuterParams public List queryDsWithVisualizationId(String visualizationId) { List result = extOuterParamsMapper.queryDsWithVisualizationId(visualizationId); if (!CollectionUtils.isEmpty(result)) { + List activeViewIds = dataVisualizationServer.getEnabledViewIds(Long.valueOf(visualizationId), CommonConstants.RESOURCE_TABLE.SNAPSHOT); result.forEach(coreDatasetGroupVO -> { + // 过滤已删除的图表 + if(!CollectionUtils.isEmpty(coreDatasetGroupVO.getDatasetViews())){ + coreDatasetGroupVO.setDatasetViews(coreDatasetGroupVO.getDatasetViews().stream().filter(item ->activeViewIds.contains(item.getChartId())).toList()); + } List fields = coreDatasetGroupVO.getDatasetFields(); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("dataset_group_id", coreDatasetGroupVO.getId());