Skip to content

Commit 6e85f53

Browse files
authored
feat: 支持清洗到已有数据集中 (#249)
1 parent 0ff59c2 commit 6e85f53

3 files changed

Lines changed: 42 additions & 9 deletions

File tree

backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/application/CleaningTaskService.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,12 +109,16 @@ public CleaningTaskDto createTask(CreateCleaningTaskRequest request) {
109109

110110
ExecutorType executorType = cleanTaskValidator.checkAndGetExecutorType(request.getInstance());
111111

112-
CreateDatasetRequest createDatasetRequest = new CreateDatasetRequest();
113-
createDatasetRequest.setName(request.getDestDatasetName());
114-
createDatasetRequest.setDatasetType(DatasetType.valueOf(request.getDestDatasetType()));
115-
createDatasetRequest.setStatus("ACTIVE");
116-
Dataset destDataset = datasetService.createDataset(createDatasetRequest);
117-
112+
Dataset destDataset;
113+
if (StringUtils.isNotBlank(request.getDestDatasetId())) {
114+
destDataset = datasetService.getDataset(request.getDestDatasetId());
115+
} else {
116+
CreateDatasetRequest createDatasetRequest = new CreateDatasetRequest();
117+
createDatasetRequest.setName(request.getDestDatasetName());
118+
createDatasetRequest.setDatasetType(DatasetType.valueOf(request.getDestDatasetType()));
119+
createDatasetRequest.setStatus("ACTIVE");
120+
destDataset = datasetService.createDataset(createDatasetRequest);
121+
}
118122
Dataset srcDataset = datasetService.getDataset(request.getSrcDatasetId());
119123

120124
CleaningTaskDto task = new CleaningTaskDto();

backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/interfaces/dto/CreateCleaningTaskRequest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ public class CreateCleaningTaskRequest {
2727
@McpToolParam(description = "清洗任务使用的源数据集名称")
2828
private String srcDatasetName;
2929

30-
@McpToolParam(description = "清洗任务创建的目标数据集名称")
30+
@McpToolParam(description = "清洗任务写入的目标数据集ID", required = false)
31+
private String destDatasetId;
32+
33+
@McpToolParam(description = "清洗任务写入的目标数据集名称,若destDatasetId为空,则创建新数据集。")
3134
private String destDatasetName;
3235

3336
@McpToolParam(description = "清洗任务创建的目标数据集类型,取值范围为TEXT/IMAGE/VIDEO/AUDIO/OTHER")

frontend/src/pages/DataCleansing/Create/components/CreateTaskStepOne.tsx

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
DatasetSubType,
77
DatasetType,
88
} from "@/pages/DataManagement/dataset.model";
9-
import { Input, Select, Form } from "antd";
9+
import { Input, Select, Form, AutoComplete } from "antd";
1010
import TextArea from "antd/es/input/TextArea";
1111
import { useEffect, useState } from "react";
1212

@@ -47,6 +47,13 @@ export default function CreateTaskStepOne({
4747
...allValues,
4848
srcDatasetName: dataset?.name || "",
4949
});
50+
} else if (key === "destDatasetName") {
51+
dataset = datasets.find((d) => d.name === value);
52+
setTaskConfig({
53+
...taskConfig,
54+
...allValues,
55+
destDatasetId: dataset?.id || "",
56+
});
5057
} else {
5158
setTaskConfig({ ...taskConfig, ...allValues });
5259
}
@@ -89,7 +96,26 @@ export default function CreateTaskStepOne({
8996
/>
9097
</Form.Item>
9198
<Form.Item label="目标数据集名称" name="destDatasetName" required>
92-
<Input placeholder="输入目标数据集名称" />
99+
<AutoComplete
100+
options={datasets.map((dataset) => {
101+
return {
102+
label: (
103+
<div className="flex items-center justify-between gap-3 py-2">
104+
<div className="flex items-center font-sm text-gray-900">
105+
<span className="mr-2">{dataset.icon}</span>
106+
<span>{dataset.name}</span>
107+
</div>
108+
<div className="text-xs text-gray-500">{dataset.size}</div>
109+
</div>
110+
),
111+
value: dataset.name,
112+
};
113+
})}
114+
filterOption={(inputValue, option) => {
115+
return option.value.toLowerCase().startsWith(inputValue.toLowerCase());
116+
}}
117+
placeholder="输入或选择目标数据集名称"
118+
/>
93119
</Form.Item>
94120
<Form.Item
95121
label="目标数据集类型"

0 commit comments

Comments
 (0)