|
@@ -7,10 +7,8 @@ import java.io.IOException;
|
|
|
import java.nio.file.Files;
|
|
|
import java.nio.file.Path;
|
|
|
import java.nio.file.Paths;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
+import java.text.DecimalFormat;
|
|
|
+import java.util.*;
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.mybatisflex.core.paginate.Page;
|
|
@@ -61,6 +59,9 @@ import com.alibaba.fastjson2.JSON;
|
|
|
*/
|
|
|
@Service
|
|
|
public class TargetDetectionServiceImpl extends BaseServiceImpl<TargetDetectionMapper, TargetDetection> implements ITargetDetectionService {
|
|
|
+ @Value("${server.port}")
|
|
|
+ String port;
|
|
|
+
|
|
|
@Value("${server.task_stop_url}")
|
|
|
private String task_stop_url;
|
|
|
|
|
@@ -427,4 +428,56 @@ public class TargetDetectionServiceImpl extends BaseServiceImpl<TargetDetectionM
|
|
|
}
|
|
|
return CommonResult.success(readLogContent(logPath), "success");
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public CommonResult getModelList(Long id) {
|
|
|
+ TargetDetection entity = getById(id);
|
|
|
+ String outPutPath = entity.getOutputPath();
|
|
|
+ String modelPath = outPutPath;
|
|
|
+ File modelDir = new File(modelPath);
|
|
|
+ if (!modelDir.exists()) {
|
|
|
+ return CommonResult.fail("模型输出目录不存在!");
|
|
|
+ }
|
|
|
+ File[] files = modelDir.listFiles();
|
|
|
+ Integer idx = 0;
|
|
|
+ ArrayList<Map<String, String>> res = new ArrayList<>();
|
|
|
+ for (File file : files) {
|
|
|
+ if(!file.getName().endsWith(BizConstant.TD_TRAIN_MODEL_SUFFIX)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ idx += 1;
|
|
|
+ Map<String, String> tmp = new HashMap<>();
|
|
|
+ tmp.put("id", idx.toString());
|
|
|
+ tmp.put("name", file.getName());
|
|
|
+ String filePath = file.getPath();
|
|
|
+ tmp.put("path", filePath);
|
|
|
+ // todo 获取真正的url
|
|
|
+ // http://localhost:9090/profile/upload/2024/10/27/1_1729404909511_20241027153840A001.zip
|
|
|
+ String url = "http://localhost:" + port + Constants.RESOURCE_PREFIX + filePath.substring(TaaisConfig.getProfile().length());
|
|
|
+ url = url.replaceAll("\\\\", "/"); // windows
|
|
|
+ tmp.put("url", url);
|
|
|
+
|
|
|
+ double fileSize = (getFileSize(file) / (1024.0 * 1024.0));
|
|
|
+ DecimalFormat decimalFormat = new DecimalFormat("#.##");
|
|
|
+ String formatFileSize = decimalFormat.format(fileSize);
|
|
|
+ tmp.put("size", formatFileSize + "MB");
|
|
|
+ res.add(tmp);
|
|
|
+ }
|
|
|
+ return CommonResult.success(res, "success");
|
|
|
+ }
|
|
|
+ public static long getFileSize(File file) {
|
|
|
+ // 返回单位B
|
|
|
+ if(file.isFile()) {
|
|
|
+ return file.length();
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ long totalSize = 0;
|
|
|
+ if(file.listFiles() != null && file.listFiles().length > 0) {
|
|
|
+ for(File file__ : Objects.requireNonNull(file.listFiles())) {
|
|
|
+ totalSize += getFileSize(file__);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return totalSize;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|