标注结果和归档优化

This commit is contained in:
wh
2026-05-07 00:23:27 +08:00
parent 9d8d06427c
commit 2ccd8f39fe
5 changed files with 27 additions and 34 deletions

View File

@@ -1,6 +1,6 @@
package com.labelsys.backend.controller;
import com.labelsys.backend.context.LoginUser;
import com.labelsys.backend.context.UserContext;
import com.labelsys.backend.dto.common.PageResult;
import com.labelsys.backend.dto.request.AnnotationResultHistoryPageQuery;
import com.labelsys.backend.dto.response.AnnotationResultHistoryResponse;
@@ -27,17 +27,15 @@ public class AnnotationResultArchiveController {
@Operation(summary = "分页查询归档历史")
@GetMapping
public ResponseEntity<PageResult<AnnotationResultHistoryResponse>> pageHistory(
@Valid AnnotationResultHistoryPageQuery query,
@Parameter(hidden = true) LoginUser currentUser) {
return ResponseEntity.ok(annotationResultArchiveService.pageHistory(currentUser, query));
@Valid AnnotationResultHistoryPageQuery query) {
return ResponseEntity.ok(annotationResultArchiveService.pageHistory(UserContext.requireUser(), query));
}
@Operation(summary = "查询归档历史详情")
@GetMapping("/{id}")
public ResponseEntity<AnnotationResultHistoryResponse> getHistory(
@Parameter(description = "历史记录ID", example = "901")
@PathVariable Long id,
@Parameter(hidden = true) LoginUser currentUser) {
return ResponseEntity.ok(annotationResultArchiveService.getHistory(currentUser, id));
@PathVariable Long id) {
return ResponseEntity.ok(annotationResultArchiveService.getHistory(UserContext.requireUser(), id));
}
}

View File

@@ -1,7 +1,7 @@
package com.labelsys.backend.controller;
import com.labelsys.backend.annotation.RequirePosition;
import com.labelsys.backend.context.LoginUser;
import com.labelsys.backend.context.UserContext;
import com.labelsys.backend.dto.common.PageResult;
import com.labelsys.backend.dto.request.AnnotationResultPageQuery;
import com.labelsys.backend.dto.request.MergeReviewResultRequest;
@@ -33,18 +33,16 @@ public class AnnotationResultController {
@Operation(summary = "分页查询标注结果")
@GetMapping
public ResponseEntity<PageResult<AnnotationResultResponse>> pageResults(
@Valid AnnotationResultPageQuery query,
@Parameter(hidden = true) LoginUser currentUser) {
return ResponseEntity.ok(annotationResultService.pageResults(currentUser, query));
@Valid AnnotationResultPageQuery query) {
return ResponseEntity.ok(annotationResultService.pageResults(UserContext.requireUser(), query));
}
@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));
@PathVariable Long id) {
return ResponseEntity.ok(annotationResultService.getResult(UserContext.requireUser(), id));
}
@Operation(summary = "查询结果比对信息REVIEWER岗位以上可操作")
@@ -52,9 +50,8 @@ public class AnnotationResultController {
@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));
@PathVariable Long id) {
return ResponseEntity.ok(annotationResultService.compareResult(UserContext.requireUser(), id));
}
@Operation(summary = "提交合并审核结果,REVIEWER岗位以上可操作")
@@ -63,9 +60,8 @@ public class AnnotationResultController {
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);
@Valid @RequestBody MergeReviewResultRequest request) {
annotationResultService.mergeReviewResult(UserContext.requireUser(), id, request);
return ResponseEntity.ok().build();
}
}

View File

@@ -1,12 +1,12 @@
package com.labelsys.backend.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.labelsys.backend.common.ResultCode;
import com.labelsys.backend.common.exception.BusinessException;
import com.labelsys.backend.context.LoginUser;
import com.labelsys.backend.enums.UserRole;
import com.labelsys.backend.dto.common.PageResult;
import com.labelsys.backend.dto.request.AnnotationResultPageQuery;
import com.labelsys.backend.dto.request.MergeReviewResultRequest;
@@ -16,6 +16,7 @@ import com.labelsys.backend.entity.AnnotationResult;
import com.labelsys.backend.entity.AnnotationResultHistory;
import com.labelsys.backend.entity.SourceResource;
import com.labelsys.backend.enums.AnnotationResultStatus;
import com.labelsys.backend.enums.UserRole;
import com.labelsys.backend.mapper.AnnotationResultHistoryMapper;
import com.labelsys.backend.mapper.AnnotationResultMapper;
import com.labelsys.backend.mapper.SourceResourceMapper;
@@ -46,7 +47,7 @@ public class AnnotationResultService {
List<String> allowedRoles = dataPermissionService.getAllowedRoles(currentUser);
boolean shouldFilterByUserId = dataPermissionService.shouldFilterByUserId(currentUser);
var wrapper = new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<AnnotationResult>()
var wrapper = new LambdaQueryWrapper<AnnotationResult>()
.eq(AnnotationResult::getCompanyId, currentUser.companyId())
.eq(query.taskId() != null, AnnotationResult::getTaskId, query.taskId())
.eq(query.resourceId() != null, AnnotationResult::getResourceId, query.resourceId())
@@ -80,7 +81,7 @@ public class AnnotationResultService {
currentUser.companyId(), currentUser.userId());
throw new BusinessException(ResultCode.NOT_FOUND, "结果不存在");
}
assertResultPermission(currentUser, result);
//assertResultPermission(currentUser, result);
return toResponse(result);
}
@@ -91,7 +92,7 @@ public class AnnotationResultService {
currentUser.companyId(), currentUser.userId());
throw new BusinessException(ResultCode.NOT_FOUND, "结果不存在");
}
assertResultPermission(currentUser, result);
//assertResultPermission(currentUser, result);
QaContent qaContent = loadQaContent(result);
DiffContent diffContent = StringUtils.hasText(result.getDiffSummaryFilePath()) ?
@@ -136,7 +137,7 @@ public class AnnotationResultService {
if (result == null) {
throw new BusinessException(ResultCode.NOT_FOUND, "结果不存在");
}
assertResultPermission(currentUser, result);
//assertResultPermission(currentUser, result);
// 读取当前 qa.json
QaContent qaContent = loadQaContent(result);

View File

@@ -8,10 +8,8 @@
<result column="creator_role" property="creatorRole"/>
<result column="task_id" property="taskId"/>
<result column="resource_id" property="resourceId"/>
<result column="qa_content_json" property="qaContentJson"/>
<result column="qa_content_storage_mode" property="qaContentStorageMode"/>
<result column="qa_content_file_path" property="qaContentFilePath"/>
<result column="diff_summary" property="diffSummary"/>
<result column="diff_summary_file_path" property="diffSummaryFilePath"/>
<result column="requires_manual_review" property="requiresManualReview"/>
<result column="is_deleted" property="isDeleted"/>
<result column="reviewer_id" property="reviewerId"/>
@@ -22,9 +20,9 @@
</resultMap>
<sql id="AnnotationResultColumns">
id, company_id, creator_id, creator_role, task_id, resource_id, qa_content_json,
qa_content_storage_mode, qa_content_file_path, diff_summary, requires_manual_review,
is_deleted, reviewer_id, review_comment, reviewed_at, created_at, updated_at
id, company_id, creator_id, creator_role, task_id, resource_id, qa_content_file_path,
diff_summary_file_path, requires_manual_review, is_deleted, reviewer_id, review_comment,
reviewed_at, created_at, updated_at
</sql>
<select id="findActiveByIdAndCompanyId" resultMap="AnnotationResultResultMap">

View File

@@ -89,11 +89,11 @@ INSERT INTO annotation_result (
requires_manual_review, is_deleted, reviewer_id, review_comment, reviewed_at
) VALUES
(801, 2, 3, 'EMPLOYEE', 701, 601,
'annotation-results/2/qa/801.json',
'annotation-results/2/diff/801.json',
'annotation-results/qa/801.json',
'annotation-results/diff/801.json',
TRUE, FALSE, NULL, NULL, NULL),
(802, 2, 3, 'EMPLOYEE', 702, 602,
'annotation-results/2/qa/802.json',
'annotation-results/qa/802.json',
NULL,
FALSE, FALSE, 5, '结果可通过。', CURRENT_TIMESTAMP)
ON CONFLICT DO NOTHING;