|
@@ -141,6 +141,24 @@ public class DataController extends BaseController {
|
|
|
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")
|
|
|
public CommonResult<SysOssUploadVo> uploadZipFile(@RequestParam("file") MultipartFile file, Data dataInfo) throws Exception {
|
|
|
String originalFilename = file.getOriginalFilename();
|
|
@@ -202,6 +220,7 @@ public class DataController extends BaseController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // todo Eureka 不用循环检查,所有批次都是一样的,这个检查放在最开始
|
|
|
AtomicBoolean isTrue = new AtomicBoolean(false);
|
|
|
dataList.forEach(data -> {
|
|
|
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 {
|
|
|
if (!directory) {
|
|
|
String fileHeaderSuffix = StringUtils.substring(fileName, fileName.lastIndexOf("."), fileName.length());
|
|
|
+ // todo Eureka add bpm
|
|
|
if (!fileHeaderSuffix.equals(".jpg") && !fileHeaderSuffix.equals(".jpeg") && !fileHeaderSuffix.equals(".png")) {
|
|
|
return false;
|
|
|
}
|