Selaa lähdekoodia

feat: 添加可见光 result.json接口展示方法

WANGKANG 7 kuukautta sitten
vanhempi
sitoutus
6d4fa66c25

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

@@ -12,6 +12,7 @@ public class BizConstant {
     public static final String MODEL_SUFFIX = ".pt";
     public static final String PREDICT_PATH = "predict";
     public static final String TD_TRAIN_MODEL_SUFFIX = ".ckpt";
+    public static final String RESULT_JSON_NAME = "result.json";
 
     public static final String UNZIP_SUFFIX = "_unzip";
     public static final String STABLE_SUFFIX = "_stable";

+ 5 - 0
taais-modules/taais-biz/src/main/java/com/taais/biz/controller/ToInfraredController.java

@@ -145,4 +145,9 @@ public class ToInfraredController extends BaseController {
     public CommonResult previewPredictResult(@PathVariable("id") Long id) {
         return toInfraredService.previewPredictResult(id);
     }
+
+    @GetMapping("/statistics_result/{id}")
+    public CommonResult getStatisticsResult(@PathVariable("id") Long id) {
+        return toInfraredService.getStatisticsResult(id);
+    }
 }

+ 2 - 0
taais-modules/taais-biz/src/main/java/com/taais/biz/service/IToInfraredService.java

@@ -85,4 +85,6 @@ public interface IToInfraredService extends IBaseService<ToInfrared> {
     CommonResult getModelList(Long id);
 
     CommonResult previewPredictResult(Long id);
+
+    CommonResult getStatisticsResult(Long id);
 }

+ 39 - 0
taais-modules/taais-biz/src/main/java/com/taais/biz/service/impl/ToInfraredServiceImpl.java

@@ -14,7 +14,11 @@ import java.nio.file.Paths;
 import java.text.DecimalFormat;
 import java.util.*;
 
+import cn.hutool.core.lang.Dict;
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.alibaba.fastjson2.TypeReference;
 import com.mybatisflex.core.paginate.Page;
 import com.mybatisflex.core.query.QueryWrapper;
 import com.taais.biz.constant.BizConstant;
@@ -33,6 +37,7 @@ import com.taais.common.core.constant.Constants;
 import com.taais.common.core.core.domain.CommonResult;
 import com.taais.common.core.utils.MapstructUtils;
 import com.taais.common.core.utils.StringUtils;
+import com.taais.common.json.utils.JsonUtils;
 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;
@@ -475,6 +480,40 @@ public class ToInfraredServiceImpl extends BaseServiceImpl<ToInfraredMapper, ToI
         return getCompareImage(urlPrefix, inputPath.toString(), outputPath.toString());
     }
 
+    @Override
+    public CommonResult getStatisticsResult(Long id) {
+        ToInfrared entity = getById(id);
+        SysOssVo inputOssEntity = ossService.getById(entity.getInputOssId());
+
+        String filePath = inputOssEntity.getFileName();
+        String localPath = TaaisConfig.getProfile();
+        String resourcePath = localPath + StringUtils.substringAfter(filePath, Constants.RESOURCE_PREFIX);
+
+        Path path = Paths.get(resourcePath);
+        Path outputPath = path.resolveSibling(entity.getId().toString() + BizConstant.TO_INFRARED_SUFFIX + File.separator + BizConstant.PREDICT_PATH);
+
+        Path statisticsResultPath = outputPath.resolve(BizConstant.RESULT_JSON_NAME);
+
+        List<Dict> resultMap = parseJsonMapList(statisticsResultPath);
+        if(ObjectUtil.isEmpty(resultMap)) {
+            return CommonResult.fail("获取结果文件失败");
+        }
+
+        return CommonResult.success(resultMap);
+    }
+
+    public List<Dict> parseJsonMapList(Path path) {
+        try {
+            String jsonString = new String(Files.readAllBytes(path));
+            List<Dict> dicts = JsonUtils.parseArrayMap(jsonString);
+            return dicts;
+        }catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+
     public static CommonResult getCompareImage(String urlPrefix, String inputPath, String outputPath) {
         try {
             List<String> inputImageList = calculateImagePath(urlPrefix, inputPath);