标注结果和标注结果归档优化

This commit is contained in:
wh
2026-05-06 19:07:45 +08:00
parent 99ffa9d490
commit 9d8d06427c
20 changed files with 736 additions and 306 deletions

View File

@@ -1,23 +1,20 @@
package com.labelsys.backend.controller;
import com.labelsys.backend.annotation.RequirePosition;
import com.labelsys.backend.common.Result;
import com.labelsys.backend.context.UserContext;
import com.labelsys.backend.context.LoginUser;
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.dto.response.MergeReviewResultResponse;
import com.labelsys.backend.enums.UserPosition;
import com.labelsys.backend.service.AnnotationResultArchiveService;
import com.labelsys.backend.service.AnnotationResultService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springdoc.core.annotations.ParameterObject;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
@@ -25,48 +22,50 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Tag(name = "标注结果管理")
@RestController
@RequestMapping("/api/annotation-results")
@RequiredArgsConstructor
@Tag(name = "标注结果管理", description = "标注结果相关接口")
public class AnnotationResultController {
private final AnnotationResultService annotationResultService;
private final AnnotationResultArchiveService annotationResultArchiveService;
@Operation(summary = "分页查询标注结果")
@GetMapping
public Result<PageResult<AnnotationResultResponse>> page(@ParameterObject AnnotationResultPageQuery query) {
return Result.success(annotationResultService.pageResults(UserContext.requireUser(), query));
public ResponseEntity<PageResult<AnnotationResultResponse>> pageResults(
@Valid AnnotationResultPageQuery query,
@Parameter(hidden = true) LoginUser currentUser) {
return ResponseEntity.ok(annotationResultService.pageResults(currentUser, query));
}
@Operation(summary = "查询标注结果详情")
@GetMapping("/{id}")
public Result<AnnotationResultResponse> detail(
@Parameter(description = "结果ID", example = "191000000000000401")
@PathVariable Long id
) {
return Result.success(annotationResultService.getResult(UserContext.requireUser(), 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));
}
@Operation(summary = "查询标注结果比对信息")
//@RequirePosition(UserPosition.REVIEWER)
@Operation(summary = "查询结果比对信息REVIEWER岗位以上可操作")
@GetMapping("/{id}/compare")
public Result<AnnotationResultCompareResponse> compare(
@Parameter(description = "结果ID", example = "191000000000000401")
@PathVariable Long id
) {
return Result.success(annotationResultService.compareResult(UserContext.requireUser(), id));
@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));
}
@Operation(summary = "提交合并审核结果")
//@RequirePosition(UserPosition.REVIEWER)
@PostMapping("/{id}/merge-review")
public Result<MergeReviewResultResponse> mergeReview(
@Parameter(description = "结果ID", example = "191000000000000401")
@PathVariable Long id,
@Valid @RequestBody MergeReviewResultRequest request
) {
return Result.success(annotationResultArchiveService.mergeReview(UserContext.requireUser(), id, request));
@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();
}
}
}