fix(仪表板、数据大屏): 修复复制大屏或看板不保存的情况下,会出现脏数据问题 #17810 (#17874)

This commit is contained in:
王嘉豪
2026-01-26 13:09:41 +08:00
committed by wangjiahao
parent a27728c44e
commit 5bca53c5de
3 changed files with 13 additions and 0 deletions

View File

@@ -34,6 +34,9 @@ public class CoreOptRecentManage {
}
public void saveOpt(Long resourceId, String resourceName, int resourceType, int optType) {
if (AuthUtils.getUser() == null) {
return;
}
Long uid = AuthUtils.getUser().getUserId();
if (coreOptRecentRepository.updateByParams(resourceId, resourceName, resourceType, uid, optType, System.currentTimeMillis()) == 0) {
CoreOptRecent optRecent = new CoreOptRecent();

View File

@@ -67,6 +67,8 @@ public interface DataVisualizationInfoRepository extends JpaRepository<DataVisua
List<DataVisualizationInfo> findByDeleteFlagAndNodeTypeAndStatusNot(boolean deleteFlag, String nodeType, Integer status);
List<DataVisualizationInfo> findByPid(Long pid);
default String queryComponentData(Long id) {
return findById(id).map(DataVisualizationInfo::getComponentData).orElse(null);
}

View File

@@ -148,6 +148,14 @@ public class CoreVisualizationManage {
return TreeUtils.mergeTree(nodes, BusiNodeVO.class, false);
}
public void dataVisualizationInit() {
List<Long> resourceIds = dataVisualizationInfoRepository.findByPid(-1L)
.stream().map(DataVisualizationInfo::getId).toList();
if (CollectionUtils.isNotEmpty(resourceIds)) {
resourceIds.forEach(this::delete);
}
}
@XpackInteract(value = "visualizationResourceTree", before = false)
public void delete(Long id) {
DataVisualizationInfo info = dataVisualizationInfoRepository.findById(id).orElse(null);