Files
lablesys_backend/src/main/java/com/labelsys/backend/controller/AnnotationResultController.java

71 lines
3.3 KiB
Java
Raw Normal View History

2026-04-27 10:27:57 +08:00
package com.labelsys.backend.controller;
import com.labelsys.backend.annotation.RequirePosition;
import com.labelsys.backend.context.LoginUser;
2026-04-27 10:27:57 +08:00
import com.labelsys.backend.dto.common.PageResult;
import com.labelsys.backend.dto.request.AnnotationResultPageQuery;
import com.labelsys.backend.dto.request.MergeReviewResultRequest;
import com.labelsys.backend.dto.response.AnnotationResultCompareResponse;
import com.labelsys.backend.dto.response.AnnotationResultResponse;
import com.labelsys.backend.enums.UserPosition;
import com.labelsys.backend.service.AnnotationResultService;
import io.swagger.v3.oas.annotations.Operation;
2026-04-27 16:25:39 +08:00
import io.swagger.v3.oas.annotations.Parameter;
2026-04-27 10:27:57 +08:00
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
2026-04-27 10:27:57 +08:00
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/annotation-results")
@RequiredArgsConstructor
@Tag(name = "标注结果管理", description = "标注结果相关接口")
2026-04-27 10:27:57 +08:00
public class AnnotationResultController {
private final AnnotationResultService annotationResultService;
@Operation(summary = "分页查询标注结果")
@GetMapping
public ResponseEntity<PageResult<AnnotationResultResponse>> pageResults(
@Valid AnnotationResultPageQuery query,
@Parameter(hidden = true) LoginUser currentUser) {
return ResponseEntity.ok(annotationResultService.pageResults(currentUser, query));
2026-04-27 10:27:57 +08:00
}
@Operation(summary = "查询标注结果详情")
@GetMapping("/{id}")
public ResponseEntity<AnnotationResultResponse> getResult(
@Parameter(description = "结果ID", example = "191000000000000401")
@PathVariable Long id,
@Parameter(hidden = true) LoginUser currentUser) {
return ResponseEntity.ok(annotationResultService.getResult(currentUser, id));
2026-04-27 10:27:57 +08:00
}
@Operation(summary = "查询结果比对信息REVIEWER岗位以上可操作")
2026-04-27 10:27:57 +08:00
@GetMapping("/{id}/compare")
@RequirePosition(UserPosition.REVIEWER)
public ResponseEntity<AnnotationResultCompareResponse> compareResult(
@Parameter(description = "结果ID", example = "191000000000000401")
@PathVariable Long id,
@Parameter(hidden = true) LoginUser currentUser) {
return ResponseEntity.ok(annotationResultService.compareResult(currentUser, id));
2026-04-27 10:27:57 +08:00
}
@Operation(summary = "提交合并审核结果,REVIEWER岗位以上可操作")
@PostMapping("/{id}/merge")
@RequirePosition(UserPosition.REVIEWER)
public ResponseEntity<Void> mergeReviewResult(
@Parameter(description = "结果ID", example = "191000000000000401")
@PathVariable Long id,
@Valid @RequestBody MergeReviewResultRequest request,
@Parameter(hidden = true) LoginUser currentUser) {
annotationResultService.mergeReviewResult(currentUser, id, request);
return ResponseEntity.ok().build();
2026-04-27 10:27:57 +08:00
}
}