mirror of
https://github.com/dataease/dataease.git
synced 2026-05-14 21:12:33 +08:00
fix(图表): 修复图表的复制字段在编辑保存图表使用的数据集后,图表的复制字段被清空的问题 #17847
This commit is contained in:
committed by
jianneng-fit2cloud
parent
568f7b730b
commit
1c2558df1d
@@ -135,6 +135,9 @@ public class DatasetTableFieldManage {
|
||||
|
||||
public void deleteByDatasetGroupUpdate(Long datasetGroupId, List<Long> fieldIds) {
|
||||
if (!CollectionUtils.isEmpty(fieldIds)) {
|
||||
// chartCopyFields不删除
|
||||
List<Long> chartCopyFields = getChartCopyFieldsByDatasetGroupIdAndOriginIds(datasetGroupId, fieldIds);
|
||||
fieldIds.addAll(chartCopyFields);
|
||||
QueryWrapper<CoreDatasetTableField> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("dataset_group_id", datasetGroupId);
|
||||
wrapper.notIn("id", fieldIds);
|
||||
@@ -142,6 +145,23 @@ public class DatasetTableFieldManage {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取图表复制字段
|
||||
* 通过原始名是[field_id]格式,ext_field 为 2,并且chart_id不为空的字段判定为图表复制字段
|
||||
* @param datasetGroupId 数据集ID
|
||||
* @param fieldIds 原数据集字段ID列表
|
||||
*/
|
||||
public List<Long> getChartCopyFieldsByDatasetGroupIdAndOriginIds(Long datasetGroupId, List<Long> fieldIds) {
|
||||
List<String> originNames = fieldIds.stream().map(id -> "[" + id + "]").collect(Collectors.toList());
|
||||
QueryWrapper<CoreDatasetTableField> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("dataset_group_id", datasetGroupId);
|
||||
wrapper.eq("ext_field", 2);
|
||||
wrapper.in("origin_name", originNames);
|
||||
wrapper.isNotNull("chart_id");
|
||||
List<CoreDatasetTableField> list = coreDatasetTableFieldMapper.selectList(wrapper);
|
||||
return list.stream().map(CoreDatasetTableField::getId).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public void deleteByDatasetGroupDelete(Long datasetGroupId) {
|
||||
QueryWrapper<CoreDatasetTableField> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("dataset_group_id", datasetGroupId);
|
||||
|
||||
Reference in New Issue
Block a user