Skip to content

Commit c2d3f95

Browse files
committed
Merge branch 'develop_930' of github.com:ModelEngine-Group/data-platform into develop_930
2 parents e4bbc7b + fecaadd commit c2d3f95

170 files changed

Lines changed: 1173 additions & 7292 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

backend/pom.xml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,11 @@
106106
</dependency>
107107
<!-- MyBatis version alignment -->
108108
<dependency>
109-
<groupId>com.baomidou</groupId>
110-
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
111-
<version>${mybatis-plus.version}</version>
109+
<groupId>com.baomidou</groupId>
110+
<artifactId>mybatis-plus-bom</artifactId>
111+
<version>${mybatis-plus.version}</version>
112+
<type>pom</type>
113+
<scope>import</scope>
112114
</dependency>
113115

114116
<dependency>
@@ -167,6 +169,10 @@
167169
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
168170
<version>${mybatis-plus.version}</version>
169171
</dependency>
172+
<dependency>
173+
<groupId>com.baomidou</groupId>
174+
<artifactId>mybatis-plus-jsqlparser</artifactId>
175+
</dependency>
170176

171177
<!-- Log4j2 API -->
172178
<dependency>

backend/services/data-cleaning-service/src/main/java/com/dataengine/cleaning/application/service/CleaningTemplateService.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import com.dataengine.cleaning.interfaces.dto.UpdateCleaningTemplateRequest;
1313
import lombok.RequiredArgsConstructor;
1414
import org.apache.commons.lang3.StringUtils;
15-
import org.apache.ibatis.annotations.Param;
1615
import org.springframework.stereotype.Service;
1716
import org.springframework.transaction.annotation.Transactional;
1817

@@ -30,16 +29,11 @@ public class CleaningTemplateService {
3029

3130
private final OperatorInstanceMapper operatorInstanceMapper;
3231

33-
public List<CleaningTemplate> getTemplates(String keywords, Integer page, Integer size) {
32+
public List<CleaningTemplate> getTemplates(String keywords) {
3433
List<OperatorResponse> allOperators = cleaningTemplateMapper.findAllOperators();
3534
Map<String, OperatorResponse> operatorsMap = allOperators.stream()
3635
.collect(Collectors.toMap(OperatorResponse::getId, Function.identity()));
37-
38-
Integer offset = null;
39-
if (page != null && size != null) {
40-
offset = page * size;
41-
}
42-
List<TemplateWithInstance> allTemplates = cleaningTemplateMapper.findAllTemplates(keywords, size, offset);
36+
List<TemplateWithInstance> allTemplates = cleaningTemplateMapper.findAllTemplates(keywords);
4337
Map<String, List<TemplateWithInstance>> templatesMap = allTemplates.stream()
4438
.collect(Collectors.groupingBy(TemplateWithInstance::getId));
4539
return templatesMap.entrySet().stream().map(twi -> {
@@ -63,10 +57,6 @@ public List<CleaningTemplate> getTemplates(String keywords, Integer page, Intege
6357
}).toList();
6458
}
6559

66-
public int countTemplates(String keywords) {
67-
return cleaningTemplateMapper.findAllTemplates(keywords, null, null).size();
68-
}
69-
7060
@Transactional
7161
public CleaningTemplate createTemplate(CreateCleaningTemplateRequest request) {
7262
CleaningTemplate template = new CleaningTemplate();

backend/services/data-cleaning-service/src/main/java/com/dataengine/cleaning/infrastructure/persistence/mapper/CleaningTemplateMapper.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@
1111
@Mapper
1212
public interface CleaningTemplateMapper {
1313

14-
List<TemplateWithInstance> findAllTemplates(@Param("keywords") String keywords,
15-
@Param("size") Integer size, @Param("offset") Integer offset);
14+
List<TemplateWithInstance> findAllTemplates(@Param("keywords") String keywords);
1615

1716
List<OperatorResponse> findAllOperators();
1817

backend/services/data-cleaning-service/src/main/java/com/dataengine/cleaning/interfaces/api/CleaningTemplateController.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.springframework.web.bind.annotation.RequestParam;
1919
import org.springframework.web.bind.annotation.RestController;
2020

21+
import java.util.Comparator;
2122
import java.util.List;
2223

2324

@@ -32,14 +33,17 @@ public ResponseEntity<Response<PagedResponse<CleaningTemplate>>> cleaningTemplat
3233
@RequestParam(value = "page", required = false) Integer page,
3334
@RequestParam(value = "size", required = false) Integer size,
3435
@RequestParam(value = "keywords", required = false) String keyword) {
35-
List<CleaningTemplate> templates = cleaningTemplateService.getTemplates(keyword, page, size);
36-
if (page != null && size != null) {
37-
int count = cleaningTemplateService.countTemplates(keyword);
38-
int totalPages = (count + size + 1) / size;
39-
return ResponseEntity.ok(Response.ok(PagedResponse.of(templates, page, count, totalPages)));
40-
} else {
36+
List<CleaningTemplate> templates = cleaningTemplateService.getTemplates(keyword);
37+
if (page == null || size == null) {
4138
return ResponseEntity.ok(Response.ok(PagedResponse.of(templates)));
4239
}
40+
int count = templates.size();
41+
int totalPages = (count + size + 1) / size;
42+
List<CleaningTemplate> limitTemplates = templates.stream()
43+
.sorted(Comparator.comparing(CleaningTemplate::getCreatedAt))
44+
.skip((long) page * size)
45+
.limit(size).toList();
46+
return ResponseEntity.ok(Response.ok(PagedResponse.of(limitTemplates, page, count, totalPages)));
4347
}
4448

4549
@PostMapping

backend/services/data-cleaning-service/src/main/resources/mappers/CleaningTemplateMapper.xml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@
1111
</if>
1212
</where>
1313
ORDER BY created_at
14-
<if test="size != null and offset != null">
15-
LIMIT ${size} OFFSET ${offset}
16-
</if>
1714
</select>
1815

1916
<select id="findAllOperators" resultType="com.dataengine.cleaning.interfaces.dto.OperatorResponse">

backend/services/data-collection-service/pom.xml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,37 @@
164164
<classifier>exec</classifier>
165165
</configuration>
166166
</plugin>
167+
<plugin>
168+
<groupId>org.apache.maven.plugins</groupId>
169+
<artifactId>maven-compiler-plugin</artifactId>
170+
<version>3.11.0</version>
171+
<configuration>
172+
<source>${maven.compiler.source}</source>
173+
<target>${maven.compiler.target}</target>
174+
<annotationProcessorPaths>
175+
<!-- 顺序很重要 -->
176+
<path>
177+
<groupId>org.projectlombok</groupId>
178+
<artifactId>lombok</artifactId>
179+
<version>${lombok.version}</version>
180+
</path>
181+
<path>
182+
<groupId>org.projectlombok</groupId>
183+
<artifactId>lombok-mapstruct-binding</artifactId>
184+
<version>${lombok-mapstruct-binding.version}</version>
185+
</path>
186+
<path>
187+
<groupId>org.mapstruct</groupId>
188+
<artifactId>mapstruct-processor</artifactId>
189+
<version>${mapstruct.version}</version>
190+
</path>
191+
</annotationProcessorPaths>
192+
<compilerArgs>
193+
<arg>-parameters</arg>
194+
<arg>-Amapstruct.defaultComponentModel=spring</arg>
195+
</compilerArgs>
196+
</configuration>
197+
</plugin>
167198
</plugins>
168199
</build>
169200
</project>

backend/services/data-collection-service/src/main/java/com/dataengine/collection/application/service/CollectionTaskService.java

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@
1313
import org.springframework.transaction.annotation.Transactional;
1414

1515
import java.time.LocalDateTime;
16-
import java.util.*;
16+
import java.util.HashMap;
17+
import java.util.List;
18+
import java.util.Map;
19+
import java.util.Objects;
1720

1821
@Slf4j
1922
@Service
@@ -29,13 +32,17 @@ public CollectionTask create(CollectionTask task) {
2932
task.setCreatedAt(LocalDateTime.now());
3033
task.setUpdatedAt(LocalDateTime.now());
3134
taskMapper.insert(task);
35+
executeTaskNow(task);
36+
return task;
37+
}
38+
39+
private void executeTaskNow(CollectionTask task) {
3240
if (Objects.equals(task.getSyncMode(), SyncMode.ONCE.getValue())) {
3341
TaskExecution exec = dataxExecutionService.createExecution(task);
3442
int timeout = task.getTimeoutSeconds() == null ? 3600 : task.getTimeoutSeconds();
3543
dataxExecutionService.runAsync(task, exec.getId(), timeout);
3644
log.info("Triggered DataX execution for task {} at {}, execId={}", task.getId(), LocalDateTime.now(), exec.getId());
3745
}
38-
return task;
3946
}
4047

4148
@Transactional
@@ -63,18 +70,7 @@ public List<CollectionTask> list(Integer page, Integer size, String status, Stri
6370

6471
@Transactional
6572
public TaskExecution startExecution(CollectionTask task) {
66-
TaskExecution exec = new TaskExecution();
67-
exec.setId(UUID.randomUUID().toString());
68-
exec.setTaskId(task.getId());
69-
exec.setTaskName(task.getName());
70-
exec.setStatus(TaskStatus.RUNNING);
71-
exec.setProgress(0.0);
72-
exec.setStartedAt(LocalDateTime.now());
73-
exec.setCreatedAt(LocalDateTime.now());
74-
executionMapper.insert(exec);
75-
taskMapper.updateLastExecution(task.getId(), exec.getId());
76-
taskMapper.updateStatus(task.getId(), TaskStatus.RUNNING.name());
77-
return exec;
73+
return dataxExecutionService.createExecution(task);
7874
}
7975

8076
// ---- Template related merged methods ----

backend/services/data-collection-service/src/main/java/com/dataengine/collection/application/service/DataxExecutionService.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,15 @@ public class DataxExecutionService {
2828

2929
private final DataxJobBuilder jobBuilder;
3030
private final DataxProcessRunner processRunner;
31-
private final DataxProperties props;
3231
private final TaskExecutionMapper executionMapper;
3332
private final CollectionTaskMapper taskMapper;
3433

3534

3635
@Transactional
3736
public TaskExecution createExecution(CollectionTask task) {
38-
39-
TaskExecution exec = new TaskExecution();
40-
exec.setId(UUID.randomUUID().toString());
37+
TaskExecution exec = TaskExecution.initTaskExecution();
4138
exec.setTaskId(task.getId());
4239
exec.setTaskName(task.getName());
43-
exec.setStatus(TaskStatus.RUNNING);
44-
exec.setProgress(0.0);
45-
exec.setStartedAt(LocalDateTime.now());
46-
exec.setCreatedAt(LocalDateTime.now());
4740
executionMapper.insert(exec);
4841
taskMapper.updateLastExecution(task.getId(), exec.getId());
4942
taskMapper.updateStatus(task.getId(), TaskStatus.RUNNING.name());

backend/services/data-collection-service/src/main/java/com/dataengine/collection/domain/model/CollectionTask.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
package com.dataengine.collection.domain.model;
22

3+
import com.fasterxml.jackson.core.JsonProcessingException;
4+
import com.fasterxml.jackson.core.type.TypeReference;
5+
import com.fasterxml.jackson.databind.ObjectMapper;
36
import lombok.Data;
47

58
import java.time.LocalDateTime;
9+
import java.util.Collections;
10+
import java.util.Map;
611

712
@Data
813
public class CollectionTask {
@@ -22,4 +27,19 @@ public class CollectionTask {
2227
private LocalDateTime updatedAt;
2328
private String createdBy;
2429
private String updatedBy;
30+
31+
public void addPath() {
32+
try {
33+
ObjectMapper objectMapper = new ObjectMapper();
34+
Map<String, Object> parameter = objectMapper.readValue(
35+
config,
36+
new TypeReference<>() {}
37+
);
38+
parameter.put("destPath", "/dataset/local/" + id);
39+
parameter.put("filePaths", Collections.singletonList(parameter.get("destPath")));
40+
config = objectMapper.writeValueAsString(parameter);
41+
} catch (JsonProcessingException e) {
42+
throw new RuntimeException(e);
43+
}
44+
}
2545
}

backend/services/data-collection-service/src/main/java/com/dataengine/collection/domain/model/TaskExecution.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import lombok.Data;
44

55
import java.time.LocalDateTime;
6+
import java.util.UUID;
67

78
@Data
89
public class TaskExecution {
@@ -25,4 +26,14 @@ public class TaskExecution {
2526
private String config;
2627
private String result;
2728
private LocalDateTime createdAt;
29+
30+
public static TaskExecution initTaskExecution() {
31+
TaskExecution exec = new TaskExecution();
32+
exec.setId(UUID.randomUUID().toString());
33+
exec.setStatus(TaskStatus.RUNNING);
34+
exec.setProgress(0.0);
35+
exec.setStartedAt(LocalDateTime.now());
36+
exec.setCreatedAt(LocalDateTime.now());
37+
return exec;
38+
}
2839
}

0 commit comments

Comments
 (0)