From 34fee494f60cd0bd6bebbb212f0d3f70299008e1 Mon Sep 17 00:00:00 2001 From: weiweiw <14335254+weiweiw22@user.noreply.gitee.com> Date: Mon, 2 Dec 2024 09:10:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A0=B9=E6=8D=AEtaskid=20?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=B7=B2=E5=AE=A1=E6=A0=B8=E7=9A=84=E6=A0=87?= =?UTF-8?q?=E6=B3=A8=E7=BB=93=E6=9E=9C=E5=92=8C=E5=A2=9E=E5=8A=A0=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AnnotationExportController.java | 59 +++++++++++++++++++ .../dataset/AnnotationFileStatusCount.java | 8 --- .../dataset/AnnotationTaskServiceImpl.java | 14 ++++- .../dataset/AnnotationTaskService.java | 3 + .../resources/mapper/AnnotationTaskMapper.xml | 14 ++--- 5 files changed, 82 insertions(+), 16 deletions(-) create mode 100644 bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/AnnotationExportController.java delete mode 100644 bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/dataset/AnnotationFileStatusCount.java diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/AnnotationExportController.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/AnnotationExportController.java new file mode 100644 index 0000000..8185fbe --- /dev/null +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/AnnotationExportController.java @@ -0,0 +1,59 @@ +package com.bonus.ai.controller; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.bonus.ai.domain.DataSetBasicFileEntity; +import com.bonus.ai.service.dataset.AnnotationTaskService; +import com.bonus.common.security.annotation.RequiresPermissions; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.List; + + +@RestController +@RequestMapping("/annotations") +public class AnnotationExportController { + + @Resource + private AnnotationTaskService annotationTaskService; + private final ObjectMapper objectMapper = new ObjectMapper(); + + + @RequiresPermissions("dataCenter:task:annotation:export") + @PostMapping("/export/{taskId}") + public void exportAuditedAnnotations(HttpServletResponse response, HttpServletRequest request, @PathVariable Long taskId) { + try { + // Step 1: 获取标注结果 + List annotations = annotationTaskService.geAllAuditAnnotationByTaskId(taskId); + + // Step 2: 按文件生成 JSON + List jsonFiles = new ArrayList<>(); + for (DataSetBasicFileEntity annotation : annotations) { + String fileName = annotation.getFileName() + ".json"; + File jsonFile = createJsonFile(fileName, annotation); + jsonFiles.add(jsonFile); + } + + // Step 3: 压缩为 ZIP + + // Step 4: 设置响应头,提供文件下载 + } + catch (Exception e) { + e.printStackTrace(); + } + + } + + + public File createJsonFile(String fileName, Object data) throws IOException { + File jsonFile = new File(fileName); + objectMapper.writerWithDefaultPrettyPrinter().writeValue(jsonFile, data); + return jsonFile; + } +} diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/dataset/AnnotationFileStatusCount.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/dataset/AnnotationFileStatusCount.java deleted file mode 100644 index 9d7b47f..0000000 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/dataset/AnnotationFileStatusCount.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.bonus.ai.domain.dataset; - -public class AnnotationFileStatusCount { - private String annotationStatus; - private Long recordCount; - - // Getters and Setters -} \ No newline at end of file diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/dataset/AnnotationTaskServiceImpl.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/dataset/AnnotationTaskServiceImpl.java index 9b41d80..b06d9f2 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/dataset/AnnotationTaskServiceImpl.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/dataset/AnnotationTaskServiceImpl.java @@ -334,5 +334,17 @@ public class AnnotationTaskServiceImpl implements AnnotationTaskService { return annotationTaskMapper.getMyNoAuditTask(reviewerId); } - + @Override + public List geAllAuditAnnotationByTaskId(Long taskId){ + try { + AnnotationTaskEntity task = new AnnotationTaskEntity(); + task.setTaskId(taskId); + task.setFileAnnotationStatus("2"); + return annotationTaskMapper.getTaskBasicFile(task); + }catch (Exception e) + { + e.printStackTrace(); + return new ArrayList<>(); + } + } } diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/dataset/AnnotationTaskService.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/dataset/AnnotationTaskService.java index 5fcdf8b..e1a8d00 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/dataset/AnnotationTaskService.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/dataset/AnnotationTaskService.java @@ -58,5 +58,8 @@ public interface AnnotationTaskService { List getMyNoAnnotationTask(); /**获取由我审核的未完成审核的任务列表*/ List getMyNoAuditTask(); + + /**根据taskid获取所有已经审核的标注结果*/ + List geAllAuditAnnotationByTaskId(Long taskId); ; } diff --git a/bonus-modules/bonus-ai/src/main/resources/mapper/AnnotationTaskMapper.xml b/bonus-modules/bonus-ai/src/main/resources/mapper/AnnotationTaskMapper.xml index 5503706..cd29b56 100644 --- a/bonus-modules/bonus-ai/src/main/resources/mapper/AnnotationTaskMapper.xml +++ b/bonus-modules/bonus-ai/src/main/resources/mapper/AnnotationTaskMapper.xml @@ -313,13 +313,13 @@ WHERE task_id = #{taskId} and file_id = #{fileId} - + + + + + + +