fix: 修复设置外部参数时,可能显示已删除的图表问题

This commit is contained in:
wangjiahao
2025-04-16 14:14:08 +08:00
committed by 王嘉豪
parent db694b1261
commit 1761dfc68f
2 changed files with 31 additions and 3 deletions

View File

@@ -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<VisualizationViewTableDTO> detailList(Long dvId) {
List<VisualizationViewTableDTO> 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<Long> getEnabledViewIds(Long dvId, String resourceTable) {
List<Long> result = new ArrayList<>();
DataVisualizationVO dvInfo = extDataVisualizationMapper.findDvInfo(dvId, null, resourceTable);
List<CoreChartView> 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;
}
}

View File

@@ -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<CoreDatasetGroupVO> queryDsWithVisualizationId(String visualizationId) {
List<CoreDatasetGroupVO> result = extOuterParamsMapper.queryDsWithVisualizationId(visualizationId);
if (!CollectionUtils.isEmpty(result)) {
List<Long> 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<CoreDatasetTableFieldVO> fields = coreDatasetGroupVO.getDatasetFields();
QueryWrapper<CoreDatasetTable> wrapper = new QueryWrapper<>();
wrapper.eq("dataset_group_id", coreDatasetGroupVO.getId());