Bladeren bron

feat:数据扩展

Eureka 8 maanden geleden
bovenliggende
commit
d59296a3eb

+ 7 - 5
taais-modules/taais-biz/src/main/java/com/taais/biz/domain/dto/DataAmplifyDto.java

@@ -1,10 +1,12 @@
 package com.taais.biz.domain.dto;
 
+import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotEmpty;
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.experimental.Accessors;
 
+import java.util.List;
 import java.util.Map;
 
 
@@ -19,19 +21,19 @@ import java.util.Map;
 @Accessors(chain = true)
 public class DataAmplifyDto {
 
-    @NotEmpty(message = "批次不能为空")
+    @NotBlank(message = "批次不能为空")
     private String batchNum;
 
-    @NotEmpty(message = "任务名称")
+    @NotBlank(message = "任务名称")
     private String taskName;
 
-    @NotEmpty(message = "扩充方式不能为空")
+    @NotBlank(message = "扩充方式不能为空")
     private String augmentationType;
 
     private String inputImagePath;
 
     private String outputImagePath;
 
-    @NotNull(message = "扩充算法配置不能为空")
-    private Map<String, String> otherParams;
+    @NotEmpty(message = "扩充算法配置不能为空")
+    private List<Map<String, String>> otherParams;
 }

+ 2 - 1
taais-modules/taais-biz/src/main/java/com/taais/biz/service/impl/DataServiceImpl.java

@@ -36,6 +36,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
@@ -291,7 +292,7 @@ public class DataServiceImpl extends BaseServiceImpl<DataMapper, Data> implement
         String formattedDate = currentDate.format(formatter);
         filePath = filePath + File.separator + formattedDate;
         String finalFilePath = filePath;
-        dataListInfo.forEach(dataInfo -> {
+            dataListInfo.forEach(dataInfo -> {
             try {
                 //循环调用Python扩增接口
                 Map<String, Object> bodyJson = new HashMap<>();

+ 49 - 0
taais-modules/taais-biz/src/main/java/com/taais/biz/service/impl/TargetIdentificationTaskServiceImpl.java

@@ -208,6 +208,11 @@ public class TargetIdentificationTaskServiceImpl extends BaseServiceImpl<TargetI
         if (taskDto.getTaskItemList().contains("2")){
             createTestTask(taskBo.getId(),taskDto, records);
         }
+
+        // 创建扩增子任务
+        if (taskDto.getHasTrainAugmentation()) {
+            createDataAmplifyTask(taskBo.getId(), taskDto);
+        }
         return null;
     }
 
@@ -483,6 +488,50 @@ public class TargetIdentificationTaskServiceImpl extends BaseServiceImpl<TargetI
         }
     }
 
+    private void createDataAmplifyTask(Long taskId, CreateTargetIdentificationTaskDto taskDto) {
+        List<TaskDto> algTaskList = taskDto.getAlgTaskList();
+        List<String> testBatchNumList = taskDto.getTestBatchNumList();
+        if (testBatchNumList.isEmpty()) {
+            return;
+        }
+        TargetIdentificationSubtaskBo subtask = new TargetIdentificationSubtaskBo();
+        subtask.setName("数据扩增");
+        subtask.setStatus(BizConstant.TASK_STATUS_PENDING);
+        subtask.setTaskId(taskId);
+        subtask.setRemarks("DEFAULT_REMARK");
+
+        TargetIdentificationSubtask savedTask = subtaskService.insertSubtask(subtask);
+        subtask.setId(savedTask.getId());
+        System.out.println("subtask is: " + subtask);
+
+        for (TaskDto algTask : algTaskList) {
+            // 通过算法id 获取算法配置
+            Long algorithmId = algTask.getAlgorithmId();
+            AlgorithmTaskConfigurationVo algorithmModelVo = algorithmTaskConfigurationService.selectById(algorithmId);
+
+            String algUrl = algorithmModelVo.getTestUrl();
+            String algName = algorithmModelVo.getName();
+            List<String> params = List.of(algTask.getParams().split(";;;"));
+
+            for (int i = 0; i < testBatchNumList.size(); i++) {
+                String batchNum = testBatchNumList.get(i);
+                TargetIdentificationSubtaskDetailsBo subtaskDetail = new TargetIdentificationSubtaskDetailsBo();
+                // 通过算法id获取算法配置
+                subtaskDetail.setSubtaskId(subtask.getId());
+                subtaskDetail.setName(algName);
+                subtaskDetail.setStatus(BizConstant.TASK_STATUS_PENDING);
+                subtaskDetail.setAlgorithmId(algTask.getAlgorithmId());
+                subtaskDetail.setType(algUrl);
+                subtaskDetail.setDataBatchNums(batchNum);
+                subtaskDetail.setParameters(params.get(2));
+                String subtaskPath = "/" + UUID.randomUUID().toString().replace("-", "_");
+                subtaskDetail.setPreprocessPath(subtaskPath);
+                subtaskDetail.setResultPath(subtaskPath + "/result");
+                subtaskDetail.setIndex((long) i);
+            }
+        }
+    }
+
 
     // todo 检查数据是否有问题
     private String checkTask(CreateTargetIdentificationTaskDto taskDto) {