allen 11 months ago
parent
commit
d4e142e04e

+ 23 - 4
taais-common/taais-common-core/src/main/java/com/taais/common/core/utils/file/FileUtils.java

@@ -22,10 +22,11 @@ import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.StandardCopyOption;
+import java.nio.file.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * 文件处理工具类
@@ -275,4 +276,22 @@ public class FileUtils extends FileUtil {
         // 执行文件复制
         Files.copy(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING);
     }
+
+    public static List<String> getAllFileNamesAndExtensions(String directoryPath) throws IOException {
+        List<String> fileNamesAndExtensions = new ArrayList<>();
+
+        // 使用 Files.walk 遍历目录
+        try (DirectoryStream<Path> stream = Files.newDirectoryStream(Paths.get(directoryPath))) {
+            for (Path entry : stream) {
+                if (Files.isRegularFile(entry)) {
+                    String fileName = entry.getFileName().toString();
+                    fileNamesAndExtensions.add(fileName);
+                }
+            }
+        } catch (IOException e) {
+            throw new IOException("Error reading directory", e);
+        }
+
+        return fileNamesAndExtensions;
+    }
 }

+ 1 - 0
taais-modules/taais-biz/src/main/java/com/taais/biz/constant/BizConstant.java

@@ -61,4 +61,5 @@ public class BizConstant {
     public static final String R_CURVE = "R_curve.png";
     public static final String P_CURVE = "P_curve.png";
     public static final String F1_CURVE = "F1_curve.png";
+    public static final String ORIGINAL_IMAGE= "原始图片";
 }

+ 17 - 0
taais-modules/taais-biz/src/main/java/com/taais/biz/controller/AlgorithmBizProcessController.java

@@ -2,6 +2,7 @@ package com.taais.biz.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.taais.biz.domain.bo.AlgorithmBizProcessBo;
+import com.taais.biz.domain.dto.task.TestResultDto;
 import com.taais.biz.domain.dto.task.TranResultDto;
 import com.taais.biz.domain.vo.AlgorithmBizProcessVo;
 import com.taais.biz.service.IAlgorithmBizProcessService;
@@ -18,6 +19,7 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.io.IOException;
 import java.util.List;
 
 /**
@@ -116,4 +118,19 @@ public class AlgorithmBizProcessController extends BaseController {
     public CommonResult<TranResultDto> getTranResult(@PathVariable Long subtaskId) {
         return CommonResult.success(algorithmBizProcessService.getTranResult(subtaskId));
     }
+    @GetMapping("/getVerifyResult/{subtaskId}")
+    public CommonResult<TranResultDto> getVerifyResult(@PathVariable Long subtaskId) {
+        return CommonResult.success(algorithmBizProcessService.getTranResult(subtaskId));
+    }
+    @GetMapping("/getTestResult/{subtaskId}")
+    public CommonResult<TestResultDto> getTestResult(@PathVariable Long subtaskId) {
+        TestResultDto testResult = null;
+        try {
+            testResult = algorithmBizProcessService.getTestResult(subtaskId);
+        } catch (IOException e) {
+            // 日志
+            return CommonResult.fail("系统异常,请联系管理员");
+        }
+        return CommonResult.success(testResult);
+    }
 }

+ 13 - 0
taais-modules/taais-biz/src/main/java/com/taais/biz/domain/dto/task/TestResultDto.java

@@ -0,0 +1,13 @@
+package com.taais.biz.domain.dto.task;
+
+import lombok.Data;
+import org.apache.commons.collections4.list.TreeList;
+
+import java.util.List;
+
+@Data
+public class TestResultDto {
+    List<String> agNameList = new TreeList<>();
+
+    List<List<String>> resultList = new TreeList<>();
+}

+ 5 - 4
taais-modules/taais-biz/src/main/java/com/taais/biz/domain/dto/task/TranResultDto.java

@@ -1,6 +1,7 @@
 package com.taais.biz.domain.dto.task;
 
 import lombok.Data;
+import org.apache.commons.collections4.list.TreeList;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -10,8 +11,8 @@ import java.util.List;
  */
 @Data
 public class TranResultDto {
-    private List<String> agNameList = new ArrayList<>();
-    private List<String> rcureList = new ArrayList<>();
-    private List<String> pcureList = new ArrayList<>();
-    private List<String> f1cureList = new ArrayList<>();
+    private List<String> agNameList = new TreeList<>();
+    private List<String> rcureList = new TreeList<>();
+    private List<String> pcureList = new TreeList<>();
+    private List<String> f1cureList = new TreeList<>();
 }

+ 4 - 0
taais-modules/taais-biz/src/main/java/com/taais/biz/service/IAlgorithmBizProcessService.java

@@ -1,9 +1,11 @@
 package com.taais.biz.service;
 
+import java.io.IOException;
 import java.util.List;
 
 import com.taais.biz.domain.AlgorithmBizProcess;
 import com.taais.biz.domain.dto.TaskResultDTO;
+import com.taais.biz.domain.dto.task.TestResultDto;
 import com.taais.biz.domain.dto.task.TranResultDto;
 import com.taais.biz.domain.vo.AlgorithmBizProcessVo;
 import com.taais.biz.domain.bo.AlgorithmBizProcessBo;
@@ -70,4 +72,6 @@ public interface IAlgorithmBizProcessService extends IBaseService<AlgorithmBizPr
     String taskResult(TaskResultDTO resultDTO);
 
     TranResultDto getTranResult(Long subtaskId);
+
+    TestResultDto getTestResult(Long subtaskId) throws IOException;
 }

+ 41 - 3
taais-modules/taais-biz/src/main/java/com/taais/biz/service/impl/AlgorithmBizProcessServiceImpl.java

@@ -1,8 +1,8 @@
 package com.taais.biz.service.impl;
 
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.io.IOException;
+import java.util.*;
+import java.util.stream.Collector;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.mybatisflex.core.paginate.Page;
@@ -10,14 +10,17 @@ import com.mybatisflex.core.query.QueryWrapper;
 import com.taais.biz.constant.BizConstant;
 import com.taais.biz.domain.AlgorithmConfig;
 import com.taais.biz.domain.dto.TaskResultDTO;
+import com.taais.biz.domain.dto.task.TestResultDto;
 import com.taais.biz.domain.dto.task.TranResultDto;
 import com.taais.biz.service.IAlgorithmConfigService;
 import com.taais.common.core.utils.DateUtils;
 import com.taais.common.core.utils.MapstructUtils;
+import com.taais.common.core.utils.file.FileUtils;
 import com.taais.common.orm.core.page.PageQuery;
 import com.taais.common.core.core.page.PageResult;
 import com.taais.common.orm.core.service.impl.BaseServiceImpl;
 import jakarta.annotation.Resource;
+import org.apache.commons.collections4.list.TreeList;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
@@ -27,6 +30,8 @@ import com.taais.biz.domain.AlgorithmBizProcess;
 import com.taais.biz.domain.bo.AlgorithmBizProcessBo;
 import com.taais.biz.domain.vo.AlgorithmBizProcessVo;
 import com.taais.biz.service.IAlgorithmBizProcessService;
+import org.springframework.util.CollectionUtils;
+
 import static com.taais.biz.domain.table.AlgorithmBizProcessTableDef.ALGORITHM_BIZ_PROCESS;
 
 /**
@@ -189,4 +194,37 @@ public class AlgorithmBizProcessServiceImpl extends BaseServiceImpl<AlgorithmBiz
         return tranResultDto;
     }
 
+    @Override
+    public TestResultDto getTestResult(Long subtaskId) throws IOException {
+        List<AlgorithmBizProcessVo> bizProcessVoList = getProcessBySubtaskId(subtaskId);
+        TestResultDto resultDto = new TestResultDto();
+        List<String> fileNames = Collections.emptyList();
+        // 构建原始图片
+        if (!CollectionUtils.isEmpty(bizProcessVoList)) {
+            resultDto.getAgNameList().add(BizConstant.ORIGINAL_IMAGE);
+            AlgorithmBizProcessVo bizProcessVo = bizProcessVoList.get(0);
+            fileNames = FileUtils.getAllFileNamesAndExtensions(bizProcessVo.getPreprocessPath());
+            String resultPath = bizProcessVo.getResultPath();
+            if (!CollectionUtils.isEmpty(fileNames)) {
+                for (String name : fileNames) {
+                    List<String> list = new TreeList<>();
+                    resultDto.getResultList().add(list);
+                    list.add(resultPath + name);
+                }
+            }
+        }
+
+        // 构建生成图片
+        for (AlgorithmBizProcessVo bizProcessVo : bizProcessVoList) {
+            AlgorithmConfig algorithmConfig = algorithmConfigService.getById(bizProcessVo.getAlgorithmId());
+            resultDto.getAgNameList().add(algorithmConfig.getAlgorithmName());
+            String resultPath = bizProcessVo.getResultPath();
+            for (int index = 0; index < fileNames.size(); index++) {
+                List<String> list = resultDto.getResultList().get(index);
+                list.add(resultPath + fileNames.get(index));
+            }
+        }
+        return resultDto;
+    }
+
 }