forked from github/dataease
Merge remote-tracking branch 'origin/main' into main
This commit is contained in:
commit
c61f294e01
@ -4,7 +4,10 @@ import io.dataease.controller.request.dataset.DataSetGroupRequest;
|
||||
import io.dataease.dto.dataset.DataSetGroupDTO;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface ExtDataSetGroupMapper {
|
||||
List<DataSetGroupDTO> search(DataSetGroupRequest ChartGroup);
|
||||
|
||||
Map<String, String> searchIds(String id, String type);
|
||||
}
|
||||
|
@ -41,7 +41,9 @@
|
||||
<if test="sort != null">
|
||||
order by ${sort}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
|
||||
<select id="searchIds" resultType="java.util.Map">
|
||||
select GET_V_AUTH_MODEL_WITH_CHILDREN(#{id},#{type}) ids
|
||||
</select>
|
||||
</mapper>
|
||||
|
@ -13,7 +13,6 @@ public class ExtractDataJob extends DeScheduleJob{
|
||||
extractDataService = (ExtractDataService) CommonBeanFactory.getBean(ExtractDataService.class);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
void businessExecute(JobExecutionContext context) {
|
||||
extractDataService.extractData(datasetTableId, taskId, updateType);
|
||||
|
@ -3,6 +3,7 @@ package io.dataease.service.chart;
|
||||
import io.dataease.base.domain.*;
|
||||
import io.dataease.base.mapper.ChartGroupMapper;
|
||||
import io.dataease.base.mapper.ext.ExtChartGroupMapper;
|
||||
import io.dataease.base.mapper.ext.ExtDataSetGroupMapper;
|
||||
import io.dataease.commons.utils.AuthUtils;
|
||||
import io.dataease.commons.utils.BeanUtils;
|
||||
import io.dataease.commons.utils.TreeUtils;
|
||||
@ -11,12 +12,14 @@ import io.dataease.controller.request.dataset.DataSetTableRequest;
|
||||
import io.dataease.dto.chart.ChartGroupDTO;
|
||||
import io.dataease.i18n.Translator;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -27,9 +30,10 @@ public class ChartGroupService {
|
||||
private ChartGroupMapper chartGroupMapper;
|
||||
@Resource
|
||||
private ChartViewService chartViewService;
|
||||
|
||||
@Resource
|
||||
private ExtChartGroupMapper extChartGroupMapper;
|
||||
@Resource
|
||||
private ExtDataSetGroupMapper extDataSetGroupMapper;
|
||||
|
||||
public ChartGroupDTO save(ChartGroup chartGroup) {
|
||||
checkName(chartGroup);
|
||||
@ -51,9 +55,14 @@ public class ChartGroupService {
|
||||
ChartGroup cg = chartGroupMapper.selectByPrimaryKey(id);
|
||||
ChartGroupRequest ChartGroup = new ChartGroupRequest();
|
||||
BeanUtils.copyBean(ChartGroup, cg);
|
||||
List<ChartGroupDTO> tree = tree(ChartGroup);
|
||||
Map<String, String> stringStringMap = extDataSetGroupMapper.searchIds(id, "chart");
|
||||
String[] split = stringStringMap.get("ids").split(",");
|
||||
List<String> ids = new ArrayList<>();
|
||||
getAllId(tree, ids);
|
||||
for (String dsId : split) {
|
||||
if (StringUtils.isNotEmpty(dsId)) {
|
||||
ids.add(dsId);
|
||||
}
|
||||
}
|
||||
ChartGroupExample ChartGroupExample = new ChartGroupExample();
|
||||
ChartGroupExample.createCriteria().andIdIn(ids);
|
||||
chartGroupMapper.deleteByExample(ChartGroupExample);
|
||||
@ -104,6 +113,9 @@ public class ChartGroupService {
|
||||
if (StringUtils.isNotEmpty(chartGroup.getId())) {
|
||||
criteria.andIdNotEqualTo(chartGroup.getId());
|
||||
}
|
||||
if (ObjectUtils.isNotEmpty(chartGroup.getLevel())) {
|
||||
criteria.andLevelEqualTo(chartGroup.getLevel());
|
||||
}
|
||||
List<ChartGroup> list = chartGroupMapper.selectByExample(chartGroupExample);
|
||||
if (list.size() > 0) {
|
||||
throw new RuntimeException(Translator.get("i18n_name_cant_repeat_same_group"));
|
||||
|
@ -14,15 +14,13 @@ import io.dataease.dto.dataset.DataSetGroupDTO;
|
||||
import io.dataease.dto.dataset.DataSetTableDTO;
|
||||
import io.dataease.i18n.Translator;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -59,9 +57,14 @@ public class DataSetGroupService {
|
||||
DatasetGroup dg = datasetGroupMapper.selectByPrimaryKey(id);
|
||||
DataSetGroupRequest datasetGroup = new DataSetGroupRequest();
|
||||
BeanUtils.copyBean(datasetGroup, dg);
|
||||
List<DataSetGroupDTO> tree = tree(datasetGroup);
|
||||
Map<String, String> stringStringMap = extDataSetGroupMapper.searchIds(id, "dataset");
|
||||
String[] split = stringStringMap.get("ids").split(",");
|
||||
List<String> ids = new ArrayList<>();
|
||||
getAllId(tree, ids);
|
||||
for (String dsId : split) {
|
||||
if (StringUtils.isNotEmpty(dsId)) {
|
||||
ids.add(dsId);
|
||||
}
|
||||
}
|
||||
DatasetGroupExample datasetGroupExample = new DatasetGroupExample();
|
||||
datasetGroupExample.createCriteria().andIdIn(ids);
|
||||
datasetGroupMapper.deleteByExample(datasetGroupExample);
|
||||
@ -117,6 +120,9 @@ public class DataSetGroupService {
|
||||
if (StringUtils.isNotEmpty(datasetGroup.getId())) {
|
||||
criteria.andIdNotEqualTo(datasetGroup.getId());
|
||||
}
|
||||
if (ObjectUtils.isNotEmpty(datasetGroup.getLevel())) {
|
||||
criteria.andLevelEqualTo(datasetGroup.getLevel());
|
||||
}
|
||||
List<DatasetGroup> list = datasetGroupMapper.selectByExample(datasetGroupExample);
|
||||
if (list.size() > 0) {
|
||||
throw new RuntimeException(Translator.get("i18n_name_cant_repeat_same_group"));
|
||||
|
@ -7,6 +7,7 @@ import io.dataease.base.mapper.DatasetTableIncrementalConfigMapper;
|
||||
import io.dataease.base.mapper.DatasetTableMapper;
|
||||
import io.dataease.base.mapper.DatasourceMapper;
|
||||
import io.dataease.base.mapper.ext.ExtDataSetTableMapper;
|
||||
import io.dataease.commons.constants.JobStatus;
|
||||
import io.dataease.commons.utils.*;
|
||||
import io.dataease.controller.request.dataset.DataSetTableRequest;
|
||||
import io.dataease.datasource.dto.TableFiled;
|
||||
@ -71,6 +72,8 @@ public class DataSetTableService {
|
||||
private DatasetTableIncrementalConfigMapper datasetTableIncrementalConfigMapper;
|
||||
@Resource
|
||||
private DataSetTableUnionService dataSetTableUnionService;
|
||||
@Resource
|
||||
private DataSetTableTaskLogService dataSetTableTaskLogService;
|
||||
@Value("${upload.file.path}")
|
||||
private String path;
|
||||
|
||||
@ -125,7 +128,11 @@ public class DataSetTableService {
|
||||
dataSetTableFieldsService.deleteByTableId(id);
|
||||
// 删除同步任务
|
||||
dataSetTableTaskService.deleteByTableId(id);
|
||||
deleteDorisTable(id);
|
||||
try {
|
||||
deleteDorisTable(id);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void deleteDorisTable(String datasetId) throws Exception {
|
||||
@ -256,6 +263,16 @@ public class DataSetTableService {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "excel")) {
|
||||
List<DatasetTableTaskLog> datasetTableTaskLogs = dataSetTableTaskLogService.getByTableId(datasetTable.getId());
|
||||
if (CollectionUtils.isEmpty(datasetTableTaskLogs)) {
|
||||
throw new Exception("no records");
|
||||
}
|
||||
if (datasetTableTaskLogs.get(0).getStatus().equalsIgnoreCase(JobStatus.Underway.name())) {
|
||||
throw new Exception(Translator.get("i18n_processing_data"));
|
||||
}
|
||||
if (datasetTableTaskLogs.get(0).getStatus().equalsIgnoreCase(JobStatus.Error.name())) {
|
||||
throw new Exception("Failed to extract data: " + datasetTableTaskLogs.get(0).getInfo());
|
||||
}
|
||||
Datasource ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource");
|
||||
JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class);
|
||||
DatasourceRequest datasourceRequest = new DatasourceRequest();
|
||||
|
@ -49,4 +49,10 @@ public class DataSetTableTaskLogService {
|
||||
datasetTableTaskLogMapper.deleteByExample(datasetTableTaskLogExample);
|
||||
}
|
||||
|
||||
public List<DatasetTableTaskLog> getByTableId(String datasetId){
|
||||
DatasetTableTaskLogExample datasetTableTaskLogExample = new DatasetTableTaskLogExample();
|
||||
DatasetTableTaskLogExample.Criteria criteria = datasetTableTaskLogExample.createCriteria();
|
||||
criteria.andTableIdEqualTo(datasetId);
|
||||
return datasetTableTaskLogMapper.selectByExampleWithBLOBs(datasetTableTaskLogExample);
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,13 @@
|
||||
package io.dataease.service.dataset;
|
||||
|
||||
import io.dataease.base.domain.DatasetTableUnion;
|
||||
import io.dataease.base.domain.DatasetTableUnionExample;
|
||||
import io.dataease.base.mapper.DatasetTableUnionMapper;
|
||||
import io.dataease.base.mapper.ext.ExtDatasetTableUnionMapper;
|
||||
import io.dataease.commons.utils.AuthUtils;
|
||||
import io.dataease.dto.dataset.DataSetTableUnionDTO;
|
||||
import io.dataease.i18n.Translator;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@ -28,6 +31,7 @@ public class DataSetTableUnionService {
|
||||
private ExtDatasetTableUnionMapper extDatasetTableUnionMapper;
|
||||
|
||||
public DatasetTableUnion save(DatasetTableUnion datasetTableUnion) {
|
||||
checkUnion(datasetTableUnion);
|
||||
if (StringUtils.isEmpty(datasetTableUnion.getId())) {
|
||||
datasetTableUnion.setId(UUID.randomUUID().toString());
|
||||
datasetTableUnion.setCreateBy(AuthUtils.getUser().getUsername());
|
||||
@ -71,4 +75,30 @@ public class DataSetTableUnionService {
|
||||
sourceList.sort(Comparator.comparing(DatasetTableUnion::getCreateTime));
|
||||
return sourceList;
|
||||
}
|
||||
|
||||
private void checkUnion(DatasetTableUnion datasetTableUnion) {
|
||||
DatasetTableUnionExample datasetTableUnionExample = new DatasetTableUnionExample();
|
||||
DatasetTableUnionExample.Criteria criteria = datasetTableUnionExample.createCriteria();
|
||||
if (StringUtils.isNotEmpty(datasetTableUnion.getId())) {
|
||||
criteria.andIdNotEqualTo(datasetTableUnion.getId());
|
||||
}
|
||||
criteria.andSourceTableIdEqualTo(datasetTableUnion.getSourceTableId());
|
||||
criteria.andSourceTableFieldIdEqualTo(datasetTableUnion.getSourceTableFieldId());
|
||||
criteria.andTargetTableIdEqualTo(datasetTableUnion.getTargetTableId());
|
||||
criteria.andTargetTableFieldIdEqualTo(datasetTableUnion.getTargetTableFieldId());
|
||||
List<DatasetTableUnion> sourceResult = datasetTableUnionMapper.selectByExample(datasetTableUnionExample);
|
||||
datasetTableUnionExample.clear();
|
||||
criteria = datasetTableUnionExample.createCriteria();
|
||||
if (StringUtils.isNotEmpty(datasetTableUnion.getId())) {
|
||||
criteria.andIdNotEqualTo(datasetTableUnion.getId());
|
||||
}
|
||||
criteria.andSourceTableIdEqualTo(datasetTableUnion.getTargetTableId());
|
||||
criteria.andSourceTableFieldIdEqualTo(datasetTableUnion.getTargetTableFieldId());
|
||||
criteria.andTargetTableIdEqualTo(datasetTableUnion.getSourceTableId());
|
||||
criteria.andTargetTableFieldIdEqualTo(datasetTableUnion.getSourceTableFieldId());
|
||||
List<DatasetTableUnion> targetResult = datasetTableUnionMapper.selectByExample(datasetTableUnionExample);
|
||||
if (CollectionUtils.isNotEmpty(sourceResult) || CollectionUtils.isNotEmpty(targetResult)) {
|
||||
throw new RuntimeException(Translator.get("i18n_union_already_exists"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -235,3 +235,5 @@ i18n_cron_expression_error=Cron expression error
|
||||
i18n_same_folder_can_not_repeat=Same Folder Can Not Repeat
|
||||
i18n_default_panel=Default Panel
|
||||
i18n_panel_list=Panel List
|
||||
i18n_processing_data=Processing data now, Refresh later
|
||||
i18n_union_already_exists=Union relation already exists
|
@ -236,3 +236,5 @@ i18n_cron_expression_error=Cron表达式校验错误
|
||||
i18n_same_folder_can_not_repeat=相同的目录下名称不能重复
|
||||
i18n_default_panel=默认仪表盘
|
||||
i18n_panel_list=仪表盘列表
|
||||
i18n_processing_data=正在处理数据,稍后刷新
|
||||
i18n_union_already_exists=关联关系已存在
|
||||
|
@ -236,3 +236,5 @@ i18n_cron_expression_error=Cron表達式校驗錯誤
|
||||
i18n_same_folder_can_not_repeat=相同的目录下名称不能重复
|
||||
i18n_default_panel=默认仪表盘
|
||||
i18n_panel_list=仪表盘列表
|
||||
i18n_processing_data=正在處理數據,稍後刷新
|
||||
i18n_union_already_exists=關聯關系已存在
|
@ -1,11 +1,12 @@
|
||||
<template>
|
||||
<el-col>
|
||||
<el-row>
|
||||
<el-col style="width: 200px;">
|
||||
<el-form ref="form" :model="form" label-width="100px" size="mini" class="row-style">
|
||||
<el-form-item :label="$t('dataset.showRow')">
|
||||
<el-col style="width: 300px;">
|
||||
<el-form ref="form" :model="form" size="mini" class="row-style">
|
||||
<el-form-item>
|
||||
<span style="width: 100px;">{{ $t('dataset.showRow') }}</span>
|
||||
<el-input v-model="form.row">
|
||||
<el-button slot="append" icon="el-icon-search" @click="reSearch" />
|
||||
<el-button size="mini" slot="append" icon="el-icon-search" @click="reSearch" />
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
@ -156,6 +157,11 @@ export default {
|
||||
.row-style>>>.el-form-item--mini.el-form-item{
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.row-style>>>.el-form-item__content{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
width: 250px;
|
||||
}
|
||||
.el-pagination{
|
||||
float: right;
|
||||
}
|
||||
|
@ -230,6 +230,7 @@ export default {
|
||||
targetTableFieldId: '',
|
||||
targetUnionRelation: ''
|
||||
}
|
||||
this.targetTable = {}
|
||||
},
|
||||
|
||||
edit(item) {
|
||||
|
Loading…
Reference in New Issue
Block a user