allen 11 ヶ月 前
コミット
658a25b007

+ 20 - 0
taais-modules/taais-biz/src/main/java/com/taais/biz/controller/DataController.java

@@ -141,6 +141,24 @@ public class DataController extends BaseController {
         ExcelUtil.exportExcel(new ArrayList<>(), "用户数据", DataVo.class, response);
         ExcelUtil.exportExcel(new ArrayList<>(), "用户数据", DataVo.class, response);
     }
     }
 
 
+    /**
+     * todo Eureka
+     * 代码放在service层
+     * 1 检查是否有重复的批次号
+     * 2 解压图片并检查
+     * 2.1 解压缩包,并获取所有图片
+     * 2.2 如果选择了已标注,检查所有图片是否都有标注
+     * 3 入库前逻辑
+     * 3.1 根据图片个数获取主键序列
+     * 3.2 循环图片
+     * 3.2.1 深克隆dataInfo数据,把图片名称保存在clone.name里,把主键序列放入id、更新图片和标注名称和主键id保持一致,把图片的文件路径存入url,把标注的文件路径,labelurl
+     * 3.2.2 获取当前图片的创建时间 存入clone.gatherTime,如果该图片有标注的txt 设置labeled为true,否则为false
+     * 4 入库
+     * @param file
+     * @param dataInfo
+     * @return
+     * @throws Exception
+     */
     @PostMapping("/zip/upload")
     @PostMapping("/zip/upload")
     public CommonResult<SysOssUploadVo> uploadZipFile(@RequestParam("file") MultipartFile file, Data dataInfo) throws Exception {
     public CommonResult<SysOssUploadVo> uploadZipFile(@RequestParam("file") MultipartFile file, Data dataInfo) throws Exception {
         String originalFilename = file.getOriginalFilename();
         String originalFilename = file.getOriginalFilename();
@@ -202,6 +220,7 @@ public class DataController extends BaseController {
             }
             }
         }
         }
 
 
+        // todo Eureka 不用循环检查,所有批次都是一样的,这个检查放在最开始
         AtomicBoolean isTrue = new AtomicBoolean(false);
         AtomicBoolean isTrue = new AtomicBoolean(false);
         dataList.forEach(data -> {
         dataList.forEach(data -> {
             QueryWrapper query = dataService.query();
             QueryWrapper query = dataService.query();
@@ -224,6 +243,7 @@ public class DataController extends BaseController {
     private boolean initFileInfo(String dest, Integer idMax, boolean directory, String fileName, List<Data> dataList, Data dataInfo) throws IOException {
     private boolean initFileInfo(String dest, Integer idMax, boolean directory, String fileName, List<Data> dataList, Data dataInfo) throws IOException {
         if (!directory) {
         if (!directory) {
             String fileHeaderSuffix = StringUtils.substring(fileName, fileName.lastIndexOf("."), fileName.length());
             String fileHeaderSuffix = StringUtils.substring(fileName, fileName.lastIndexOf("."), fileName.length());
+            // todo Eureka add bpm
             if (!fileHeaderSuffix.equals(".jpg") && !fileHeaderSuffix.equals(".jpeg") && !fileHeaderSuffix.equals(".png")) {
             if (!fileHeaderSuffix.equals(".jpg") && !fileHeaderSuffix.equals(".jpeg") && !fileHeaderSuffix.equals(".png")) {
                 return false;
                 return false;
             }
             }