From 2d2419205a52972250c2fe7f5e0cb0e3ca7b8530 Mon Sep 17 00:00:00 2001
From: hhhhsc <1710496817@qq.com>
Date: Fri, 24 Oct 2025 15:33:46 +0800
Subject: [PATCH] refactor: rename and reorganize data models and repositories
for clarity
---
Makefile | 2 +-
.../services/data-cleaning-service/pom.xml | 5 +
.../DataCleaningServiceConfiguration.java | 6 -
.../{service => }/CleaningTaskService.java | 96 +++++++-------
.../application/CleaningTemplateService.java | 88 +++++++++++++
.../application/httpclient/DatasetClient.java | 120 ------------------
.../scheduler/CleaningTaskScheduler.java | 21 +--
.../service/CleaningTemplateService.java | 95 --------------
.../common/enums/CleaningTaskStatusEnum.java | 39 ++++++
.../model => common/enums}/ExecutorType.java | 2 +-
.../exception/CleanErrorCode.java | 2 +-
.../domain/model/OperatorInstancePo.java | 13 --
.../domain/model/entity/CleaningResult.java | 32 +++++
.../domain/model/entity/CleaningTask.java | 46 +++++++
.../domain/model/entity/CleaningTemplate.java | 26 ++++
.../domain/model/entity/Operator.java | 36 ++++++
.../domain/model/entity/OperatorInstance.java | 18 +++
.../{ => entity}/TemplateWithInstance.java | 5 +-
.../repository/CleaningResultRepository.java | 11 ++
.../repository/CleaningTaskRepository.java | 19 +++
.../CleaningTemplateRepository.java | 20 +++
.../OperatorInstanceRepository.java | 16 +++
.../converter/CleaningTaskConverter.java | 19 +++
.../converter/CleaningTemplateConverter.java | 15 +++
.../converter/OperatorInstanceConverter.java | 20 ++-
.../httpclient/RuntimeClient.java | 2 +-
.../Impl/CleaningResultRepositoryImpl.java | 30 +++++
.../Impl/CleaningTaskRepositoryImpl.java | 54 ++++++++
.../Impl/CleaningTemplateRepositoryImpl.java | 52 ++++++++
.../Impl/OperatorInstanceRepositoryImpl.java | 46 +++++++
.../mapper/CleaningResultMapper.java | 8 +-
.../mapper/CleaningTaskMapper.java | 18 +--
.../mapper/CleaningTemplateMapper.java | 27 ++--
.../mapper/OperatorInstanceMapper.java | 16 +--
.../cleaning/interfaces/dto/CleaningTask.java | 94 --------------
.../interfaces/dto/CleaningTaskDto.java | 57 +++++++++
...Template.java => CleaningTemplateDto.java} | 4 +-
.../dto/CreateCleaningTaskRequest.java | 2 +-
.../dto/CreateCleaningTemplateRequest.java | 2 +-
...OperatorResponse.java => OperatorDto.java} | 4 +-
...Instance.java => OperatorInstanceDto.java} | 2 +-
.../dto/UpdateCleaningTemplateRequest.java | 2 +-
.../{api => rest}/CleaningTaskController.java | 14 +-
.../CleaningTemplateController.java | 22 ++--
.../mappers/CleaningResultMapper.xml | 12 --
.../resources/mappers/CleaningTaskMapper.xml | 56 --------
.../mappers/CleaningTemplateMapper.xml | 38 ------
.../mappers/OperatorInstanceMapper.xml | 16 ---
.../src/main/resources/application.yml | 2 +-
deployment/docker/datamate/docker-compose.yml | 4 +-
.../charts/database/templates/deployment.yaml | 22 ++++
.../helm/datamate/charts/database/values.yaml | 16 ++-
.../datamate/charts/ray-cluster/values.yaml | 6 +-
deployment/kubernetes/mysql/deploy.yaml | 2 +-
editions/community/config/application.yml | 2 +-
editions/enterprise/config/application.yml | 2 +-
runtime/label-studio-adapter/alembic/env.py | 20 +--
.../datamate/sql_manager/sql_manager.py | 2 +-
scripts/db/data-cleaning-init.sql | 3 +-
scripts/images/backend/Dockerfile | 5 +-
60 files changed, 822 insertions(+), 614 deletions(-)
rename backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/application/{service => }/CleaningTaskService.java (62%)
create mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/application/CleaningTemplateService.java
delete mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/application/httpclient/DatasetClient.java
delete mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/application/service/CleaningTemplateService.java
create mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/common/enums/CleaningTaskStatusEnum.java
rename backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/{domain/model => common/enums}/ExecutorType.java (92%)
rename backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/{infrastructure => common}/exception/CleanErrorCode.java (88%)
delete mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/domain/model/OperatorInstancePo.java
create mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/domain/model/entity/CleaningResult.java
create mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/domain/model/entity/CleaningTask.java
create mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/domain/model/entity/CleaningTemplate.java
create mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/domain/model/entity/Operator.java
create mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/domain/model/entity/OperatorInstance.java
rename backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/domain/model/{ => entity}/TemplateWithInstance.java (64%)
create mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/domain/repository/CleaningResultRepository.java
create mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/domain/repository/CleaningTaskRepository.java
create mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/domain/repository/CleaningTemplateRepository.java
create mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/domain/repository/OperatorInstanceRepository.java
create mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/infrastructure/converter/CleaningTaskConverter.java
create mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/infrastructure/converter/CleaningTemplateConverter.java
rename backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/{domain => infrastructure}/converter/OperatorInstanceConverter.java (54%)
rename backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/{application => infrastructure}/httpclient/RuntimeClient.java (97%)
create mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/infrastructure/persistence/Impl/CleaningResultRepositoryImpl.java
create mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/infrastructure/persistence/Impl/CleaningTaskRepositoryImpl.java
create mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/infrastructure/persistence/Impl/CleaningTemplateRepositoryImpl.java
create mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/infrastructure/persistence/Impl/OperatorInstanceRepositoryImpl.java
delete mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/interfaces/dto/CleaningTask.java
create mode 100644 backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/interfaces/dto/CleaningTaskDto.java
rename backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/interfaces/dto/{CleaningTemplate.java => CleaningTemplateDto.java} (85%)
rename backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/interfaces/dto/{OperatorResponse.java => OperatorDto.java} (92%)
rename backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/interfaces/dto/{OperatorInstance.java => OperatorInstanceDto.java} (88%)
rename backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/interfaces/{api => rest}/CleaningTaskController.java (77%)
rename backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/interfaces/{api => rest}/CleaningTemplateController.java (78%)
delete mode 100644 backend/services/data-cleaning-service/src/main/resources/mappers/CleaningResultMapper.xml
delete mode 100644 backend/services/data-cleaning-service/src/main/resources/mappers/CleaningTaskMapper.xml
delete mode 100644 backend/services/data-cleaning-service/src/main/resources/mappers/CleaningTemplateMapper.xml
delete mode 100644 backend/services/data-cleaning-service/src/main/resources/mappers/OperatorInstanceMapper.xml
diff --git a/Makefile b/Makefile
index c83aea0..c0dcc8d 100644
--- a/Makefile
+++ b/Makefile
@@ -108,7 +108,7 @@ datamate-docker-uninstall:
.PHONY: datamate-k8s-install
datamate-k8s-install: create-namespace
kubectl create configmap datamate-init-sql --from-file=scripts/db/ --dry-run=client -o yaml | kubectl apply -f - -n $(NAMESPACE)
- helm install datamate deployment/helm/datamate/ -n $(NAMESPACE)
+ helm upgrade datamate deployment/helm/datamate/ -n $(NAMESPACE) --install
.PHONY: datamate-k8s-uninstall
datamate-k8s-uninstall:
diff --git a/backend/services/data-cleaning-service/pom.xml b/backend/services/data-cleaning-service/pom.xml
index c48f1b1..56b70fc 100644
--- a/backend/services/data-cleaning-service/pom.xml
+++ b/backend/services/data-cleaning-service/pom.xml
@@ -22,6 +22,11 @@
domain-common
${project.version}
+
+ com.datamate
+ data-management-service
+ ${project.version}
+
org.springframework.boot
spring-boot-starter-test
diff --git a/backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/DataCleaningServiceConfiguration.java b/backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/DataCleaningServiceConfiguration.java
index 1825750..8f1dcce 100644
--- a/backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/DataCleaningServiceConfiguration.java
+++ b/backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/DataCleaningServiceConfiguration.java
@@ -1,22 +1,16 @@
package com.datamate.cleaning;
import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
* 数据归集服务配置类
- *
* 基于DataX的数据归集和同步服务,支持多种数据源的数据采集和归集
*/
@SpringBootApplication
@EnableAsync
@EnableScheduling
-@ComponentScan(basePackages = {
- "com.datamate.cleaning",
- "com.datamate.shared"
-})
public class DataCleaningServiceConfiguration {
// Configuration class for JAR packaging - no main method needed
}
diff --git a/backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/application/service/CleaningTaskService.java b/backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/application/CleaningTaskService.java
similarity index 62%
rename from backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/application/service/CleaningTaskService.java
rename to backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/application/CleaningTaskService.java
index e367cf9..9bb2a3c 100644
--- a/backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/application/service/CleaningTaskService.java
+++ b/backend/services/data-cleaning-service/src/main/java/com/datamate/cleaning/application/CleaningTaskService.java
@@ -1,29 +1,34 @@
-package com.datamate.cleaning.application.service;
+package com.datamate.cleaning.application;
-import com.datamate.cleaning.application.httpclient.DatasetClient;
import com.datamate.cleaning.application.scheduler.CleaningTaskScheduler;
-import com.datamate.cleaning.domain.converter.OperatorInstanceConverter;
-import com.datamate.cleaning.domain.model.DatasetResponse;
-import com.datamate.cleaning.domain.model.ExecutorType;
-import com.datamate.cleaning.domain.model.OperatorInstancePo;
-import com.datamate.cleaning.domain.model.PagedDatasetFileResponse;
+import com.datamate.cleaning.common.enums.CleaningTaskStatusEnum;
+import com.datamate.cleaning.common.enums.ExecutorType;
+
import com.datamate.cleaning.domain.model.TaskProcess;
-import com.datamate.cleaning.infrastructure.persistence.mapper.CleaningResultMapper;
-import com.datamate.cleaning.infrastructure.persistence.mapper.CleaningTaskMapper;
-import com.datamate.cleaning.infrastructure.persistence.mapper.OperatorInstanceMapper;
+import com.datamate.cleaning.domain.repository.CleaningResultRepository;
+import com.datamate.cleaning.domain.repository.CleaningTaskRepository;
+import com.datamate.cleaning.domain.repository.OperatorInstanceRepository;
+
import com.datamate.cleaning.interfaces.dto.CleaningProcess;
-import com.datamate.cleaning.interfaces.dto.CleaningTask;
+import com.datamate.cleaning.interfaces.dto.CleaningTaskDto;
import com.datamate.cleaning.interfaces.dto.CreateCleaningTaskRequest;
-import com.datamate.cleaning.interfaces.dto.OperatorInstance;
+import com.datamate.cleaning.interfaces.dto.OperatorInstanceDto;
import com.datamate.common.infrastructure.exception.BusinessException;
import com.datamate.common.infrastructure.exception.SystemErrorCode;
+import com.datamate.datamanagement.application.DatasetApplicationService;
+import com.datamate.datamanagement.application.DatasetFileApplicationService;
+import com.datamate.datamanagement.common.enums.DatasetType;
+import com.datamate.datamanagement.domain.model.dataset.Dataset;
+import com.datamate.datamanagement.domain.model.dataset.DatasetFile;
+import com.datamate.datamanagement.interfaces.dto.CreateDatasetRequest;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -42,58 +47,61 @@ import java.util.UUID;
@Service
@RequiredArgsConstructor
public class CleaningTaskService {
- private final CleaningTaskMapper cleaningTaskMapper;
+ private final CleaningTaskRepository CleaningTaskRepo;
- private final OperatorInstanceMapper operatorInstanceMapper;
+ private final OperatorInstanceRepository operatorInstanceRepo;
- private final CleaningResultMapper cleaningResultMapper;
+ private final CleaningResultRepository cleaningResultRepo;
private final CleaningTaskScheduler taskScheduler;
+ private final DatasetApplicationService datasetService;
+
+ private final DatasetFileApplicationService datasetFileService;
+
private final String DATASET_PATH = "/dataset";
private final String FLOW_PATH = "/flow";
- public List getTasks(String status, String keywords, Integer page, Integer size) {
- Integer offset = page * size;
- List tasks = cleaningTaskMapper.findTasks(status, keywords, size, offset);
+ public List getTasks(String status, String keywords, Integer page, Integer size) {
+ List tasks = CleaningTaskRepo.findTasks(status, keywords, page, size);
tasks.forEach(this::setProcess);
return tasks;
}
- private void setProcess(CleaningTask task) {
- int count = cleaningResultMapper.countByInstanceId(task.getId());
+ private void setProcess(CleaningTaskDto task) {
+ int count = cleaningResultRepo.countByInstanceId(task.getId());
task.setProgress(CleaningProcess.of(task.getFileCount(), count));
}
public int countTasks(String status, String keywords) {
- return cleaningTaskMapper.findTasks(status, keywords, null, null).size();
+ return CleaningTaskRepo.findTasks(status, keywords, null, null).size();
}
@Transactional
- public CleaningTask createTask(CreateCleaningTaskRequest request) {
- DatasetResponse destDataset = DatasetClient.createDataset(request.getDestDatasetName(),
- request.getDestDatasetType());
+ public CleaningTaskDto createTask(CreateCleaningTaskRequest request) {
+ CreateDatasetRequest createDatasetRequest = new CreateDatasetRequest();
+ createDatasetRequest.setName(request.getDestDatasetName());
+ createDatasetRequest.setDatasetType(DatasetType.valueOf(request.getDestDatasetType()));
+ Dataset destDataset = datasetService.createDataset(createDatasetRequest);
- DatasetResponse srcDataset = DatasetClient.getDataset(request.getSrcDatasetId());
+ Dataset srcDataset = datasetService.getDataset(request.getSrcDatasetId());
- CleaningTask task = new CleaningTask();
+ CleaningTaskDto task = new CleaningTaskDto();
task.setName(request.getName());
task.setDescription(request.getDescription());
- task.setStatus(CleaningTask.StatusEnum.PENDING);
+ task.setStatus(CleaningTaskStatusEnum.PENDING);
String taskId = UUID.randomUUID().toString();
task.setId(taskId);
task.setSrcDatasetId(request.getSrcDatasetId());
task.setSrcDatasetName(request.getSrcDatasetName());
task.setDestDatasetId(destDataset.getId());
task.setDestDatasetName(destDataset.getName());
- task.setBeforeSize(srcDataset.getTotalSize());
- task.setFileCount(srcDataset.getFileCount());
- cleaningTaskMapper.insertTask(task);
+ task.setBeforeSize(srcDataset.getSizeBytes());
+ task.setFileCount(srcDataset.getFileCount().intValue());
+ CleaningTaskRepo.insertTask(task);
- List instancePos = request.getInstance().stream()
- .map(OperatorInstanceConverter.INSTANCE::operatorToDo).toList();
- operatorInstanceMapper.insertInstance(taskId, instancePos);
+ operatorInstanceRepo.insertInstance(taskId, request.getInstance());
prepareTask(task, request.getInstance());
scanDataset(taskId, request.getSrcDatasetId());
@@ -101,24 +109,24 @@ public class CleaningTaskService {
return task;
}
- public CleaningTask getTask(String taskId) {
- CleaningTask task = cleaningTaskMapper.findTaskById(taskId);
+ public CleaningTaskDto getTask(String taskId) {
+ CleaningTaskDto task = CleaningTaskRepo.findTaskById(taskId);
setProcess(task);
return task;
}
@Transactional
public void deleteTask(String taskId) {
- cleaningTaskMapper.deleteTask(taskId);
- operatorInstanceMapper.deleteByInstanceId(taskId);
- cleaningResultMapper.deleteByInstanceId(taskId);
+ CleaningTaskRepo.deleteTaskById(taskId);
+ operatorInstanceRepo.deleteByInstanceId(taskId);
+ cleaningResultRepo.deleteByInstanceId(taskId);
}
public void executeTask(String taskId) {
taskScheduler.executeTask(taskId);
}
- private void prepareTask(CleaningTask task, List instances) {
+ private void prepareTask(CleaningTaskDto task, List instances) {
TaskProcess process = new TaskProcess();
process.setInstanceId(task.getId());
process.setDatasetId(task.getDestDatasetId());
@@ -153,13 +161,13 @@ public class CleaningTaskService {
int pageNumber = 0;
int pageSize = 500;
PageRequest pageRequest = PageRequest.of(pageNumber, pageSize);
- PagedDatasetFileResponse datasetFile;
+ Page datasetFiles;
do {
- datasetFile = DatasetClient.getDatasetFile(srcDatasetId, pageRequest);
- if (datasetFile.getContent() != null && datasetFile.getContent().isEmpty()) {
+ datasetFiles = datasetFileService.getDatasetFiles(srcDatasetId, null, null, pageRequest);
+ if (datasetFiles.getContent().isEmpty()) {
break;
}
- List