feat: 数据库数据集允许重复创建

This commit is contained in:
junjun 2024-01-09 10:43:24 +08:00
parent dafc481f59
commit e2786874a9
3 changed files with 50 additions and 89 deletions

View File

@ -51,7 +51,6 @@ import io.dataease.service.message.DeMsgutil;
import io.dataease.service.sys.SysAuthService;
import io.dataease.service.system.SystemParameterService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
@ -431,11 +430,7 @@ public class DatasourceService {
}
List<TableDesc> tables = datasourceProvider.getTables(datasourceRequest);
// 获取当前数据源下的dbapi类型数据集
DatasetTableExample datasetTableExample = new DatasetTableExample();
datasetTableExample.createCriteria().andTypeIn(Arrays.asList(DatasetType.DB.name(), DatasetType.API.name())).andDataSourceIdEqualTo(ds.getId());
List<DatasetTable> datasetTables = datasetTableMapper.selectByExample(datasetTableExample);
// 构造table节点
List<DBTableDTO> list = new ArrayList<>();
for (TableDesc tableDesc : tables) {
DBTableDTO dbTableDTO = new DBTableDTO();
@ -444,22 +439,6 @@ public class DatasourceService {
dbTableDTO.setRemark(tableDesc.getRemark());
dbTableDTO.setEnableCheck(true);
dbTableDTO.setDatasetPath(null);
for (DatasetTable datasetTable : datasetTables) {
DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class);
if (StringUtils.equals(tableDesc.getName(), dataTableInfoDTO.getTable())) {
dbTableDTO.setEnableCheck(false);
List<DatasetGroup> parents = dataSetGroupService.getParents(datasetTable.getSceneId());
StringBuilder stringBuilder = new StringBuilder();
parents.forEach(ele -> {
if (ObjectUtils.isNotEmpty(ele)) {
stringBuilder.append(ele.getName()).append("/");
}
});
stringBuilder.append(datasetTable.getName());
dbTableDTO.setDatasetPath(stringBuilder.toString());
break;
}
}
list.add(dbTableDTO);
}
return list;

View File

@ -73,43 +73,34 @@
v-model="checkTableList"
size="small"
>
<el-tooltip
v-for="t in tableData"
:key="t.name"
:disabled="t.enableCheck"
effect="dark"
:content="$t('dataset.table_already_add_to') + ': ' + t.datasetPath"
placement="right"
<div
:class="[
{ active: activeName === t.name, 'not-allow': !t.enableCheck }
]"
class="item"
:title="t.name"
@click="setActiveName(t)"
>
<div
:class="[
{ active: activeName === t.name, 'not-allow': !t.enableCheck }
]"
class="item"
:title="t.name"
@click="setActiveName(t)"
<svg-icon
v-if="!t.enableCheck"
icon-class="Checkbox"
style="margin-right: 8px"
/>
<el-checkbox
v-else
:label="t.name"
/>
<span class="label">{{ showTableNameWithComment(t) }}</span>
<span
v-if="t.nameExist"
class="error-name-exist"
>
<svg-icon
v-if="!t.enableCheck"
icon-class="Checkbox"
style="margin-right: 8px"
icon-class="exclamationmark"
class="ds-icon-scene"
/>
<el-checkbox
v-else
:label="t.name"
/>
<span class="label">{{ showTableNameWithComment(t) }}</span>
<span
v-if="t.nameExist"
class="error-name-exist"
>
<svg-icon
icon-class="exclamationmark"
class="ds-icon-scene"
/>
</span>
</div>
</el-tooltip>
</span>
</div>
</el-checkbox-group>
</div>
</div>

View File

@ -73,44 +73,35 @@
v-model="checkTableList"
size="small"
>
<el-tooltip
v-for="t in tableData"
:key="t.name"
:disabled="t.enableCheck"
effect="dark"
:content="$t('dataset.table_already_add_to') + ': ' + t.datasetPath"
placement="right"
<div
:class="[
{ active: activeName === t.name, 'not-allow': !t.enableCheck }
]"
class="item"
:title="t.name"
@click="setActiveName(t)"
>
<div
:class="[
{ active: activeName === t.name, 'not-allow': !t.enableCheck }
]"
class="item"
:title="t.name"
@click="setActiveName(t)"
<svg-icon
v-if="!t.enableCheck"
icon-class="Checkbox"
style="margin-right: 8px"
/>
<el-checkbox
v-else
:label="t.name"
:disabled="!t.enableCheck"
/>
<span class="label">{{ showTableNameWithComment(t) }}</span>
<span
v-if="t.nameExist"
class="error-name-exist"
>
<svg-icon
v-if="!t.enableCheck"
icon-class="Checkbox"
style="margin-right: 8px"
icon-class="exclamationmark"
class="ds-icon-scene"
/>
<el-checkbox
v-else
:label="t.name"
:disabled="!t.enableCheck"
/>
<span class="label">{{ showTableNameWithComment(t) }}</span>
<span
v-if="t.nameExist"
class="error-name-exist"
>
<svg-icon
icon-class="exclamationmark"
class="ds-icon-scene"
/>
</span>
</div>
</el-tooltip>
</span>
</div>
</el-checkbox-group>
</div>
</div>