forked from github/dataease
feat(图表): 图表中支持直接复制字段
This commit is contained in:
parent
0ecd35a1f4
commit
3c3cb45d47
@ -4,8 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import io.dataease.api.chart.dto.*;
|
||||
import io.dataease.api.chart.vo.ViewSelectorVO;
|
||||
import io.dataease.api.chart.filter.FilterTreeObj;
|
||||
import io.dataease.api.chart.vo.ViewSelectorVO;
|
||||
import io.dataease.api.dataset.union.model.SQLObj;
|
||||
import io.dataease.chart.dao.auto.entity.CoreChartView;
|
||||
import io.dataease.chart.dao.auto.mapper.CoreChartViewMapper;
|
||||
@ -20,6 +20,7 @@ import io.dataease.engine.utils.Utils;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.utils.BeanUtils;
|
||||
import io.dataease.utils.IDUtils;
|
||||
import io.dataease.utils.JsonUtil;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
@ -120,6 +121,7 @@ public class ChartViewManege {
|
||||
QueryWrapper<CoreDatasetTableField> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("dataset_group_id", id);
|
||||
wrapper.eq("checked", true);
|
||||
wrapper.isNull("chart_id");
|
||||
|
||||
List<CoreDatasetTableField> fields = coreDatasetTableFieldMapper.selectList(wrapper);
|
||||
List<DatasetTableFieldDTO> collect = fields.stream().map(ele -> {
|
||||
@ -173,6 +175,36 @@ public class ChartViewManege {
|
||||
return map;
|
||||
}
|
||||
|
||||
public void copyField(Long id, Long chartId) {
|
||||
CoreDatasetTableField coreDatasetTableField = coreDatasetTableFieldMapper.selectById(id);
|
||||
QueryWrapper<CoreDatasetTableField> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("dataset_group_id", coreDatasetTableField.getDatasetGroupId());
|
||||
List<CoreDatasetTableField> coreDatasetTableFields = coreDatasetTableFieldMapper.selectList(queryWrapper);
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
for (CoreDatasetTableField ele : coreDatasetTableFields) {
|
||||
map.put(ele.getName(), ele.getName());
|
||||
}
|
||||
newName(map, coreDatasetTableField, coreDatasetTableField.getName());
|
||||
coreDatasetTableField.setChartId(chartId);
|
||||
coreDatasetTableField.setExtField(2);
|
||||
coreDatasetTableField.setOriginName("[" + id + "]");
|
||||
coreDatasetTableField.setId(IDUtils.snowID());
|
||||
coreDatasetTableFieldMapper.insert(coreDatasetTableField);
|
||||
}
|
||||
|
||||
private void newName(HashMap<String, String> map, CoreDatasetTableField coreDatasetTableField, String name) {
|
||||
name = name + "_copy";
|
||||
if (map.containsKey(name)) {
|
||||
newName(map, coreDatasetTableField, name);
|
||||
} else {
|
||||
coreDatasetTableField.setName(name);
|
||||
}
|
||||
}
|
||||
|
||||
public void deleteField(Long id) {
|
||||
coreDatasetTableFieldMapper.deleteById(id);
|
||||
}
|
||||
|
||||
public DatasetTableFieldDTO createCountField(Long id) {
|
||||
DatasetTableFieldDTO dto = new DatasetTableFieldDTO();
|
||||
dto.setId(-1L);
|
||||
|
@ -57,4 +57,14 @@ public class ChartViewServer implements ChartViewApi {
|
||||
public List<ViewSelectorVO> viewOption(Long resourceId) {
|
||||
return chartViewManege.viewOption(resourceId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void copyField(Long id, Long chartId) {
|
||||
chartViewManege.copyField(id, chartId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteField(Long id) {
|
||||
chartViewManege.deleteField(id);
|
||||
}
|
||||
}
|
||||
|
@ -43,4 +43,12 @@ public interface ChartViewApi {
|
||||
@Operation(summary = "查询仪表板下视图项")
|
||||
@GetMapping("/viewOption/{resourceId}")
|
||||
List<ViewSelectorVO> viewOption(@PathVariable("resourceId") Long resourceId);
|
||||
|
||||
@Operation(summary = "视图复制字段")
|
||||
@PostMapping("copyField/{id}/{chartId}")
|
||||
void copyField(@PathVariable Long id, @PathVariable Long chartId);
|
||||
|
||||
@Operation(summary = "视图删除字段")
|
||||
@PostMapping("deleteField/{id}")
|
||||
void deleteField(@PathVariable Long id);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user