This commit is contained in:
weiweiw 2024-11-26 16:29:55 +08:00
parent 6e940bafbe
commit 393d37e0c1
8 changed files with 103 additions and 1 deletions

View File

@ -1,6 +1,7 @@
package com.bonus.ai.controller.dataset;
import com.bonus.ai.client.AnnotationParam;
import com.bonus.ai.domain.DataSetBasicFileEntity;
import com.bonus.ai.domain.dataset.AnnotationSubTaskEntity;
import com.bonus.ai.domain.dataset.AnnotationTaskEntity;
import com.bonus.ai.domain.dataset.DataSetEntity;
@ -14,6 +15,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
@ -82,6 +84,36 @@ public class AnnotationTaskController extends BaseController {
return AjaxResult.success(taskEntity);
}
/**
* 根据任务id返回由我标注任务的所有文件列表
* 0未标注1已标注2已审核3审核驳回
* ,String annotationStatus 5 表示全部0-4表示标注和审核状态
* @return 返回数据集详情
*/
@GetMapping(value = "/getMyAnnotationFiles/{annotationStatus}/{taskId}")
public AjaxResult getMyAnnotationFilesByTaskId(@PathVariable Long taskId, @PathVariable String annotationStatus) {
try {
List<DataSetBasicFileEntity> dataSetBasicFile = annotationTaskService.getMyAnnotaionTaskBasicFile(taskId, annotationStatus);
return AjaxResult.success(dataSetBasicFile);
}catch (Exception e){
return AjaxResult.error("获取文件列表失败");
}
}
/**
* * 根据任务id返回由我审核任务的所有文件列表
* @return 返回数据集详情
*/
@GetMapping(value = "/getMyAuditFiles/{annotationStatus}/{taskId}")
public AjaxResult getMyAuditFilesByTaskId(@PathVariable Long taskId, @PathVariable String annotationStatus) {
try {
List<DataSetBasicFileEntity> dataSetBasicFile = annotationTaskService.getMyAuditTaskBasicFile(taskId, annotationStatus);
return AjaxResult.success(dataSetBasicFile);
}catch (Exception e){
return AjaxResult.error("获取文件列表失败");
}
}
/**手工标注或审核
* @param subTask 标注文件的信息

View File

@ -69,4 +69,7 @@ public class DataSetBasicFileEntity extends BaseEntity {
private Date uploadTime;
private Long dataSetId;
/**查询目的,表示文件在当前任务下的标注状态*/
String fileAnnotationStatus;
}

View File

@ -54,5 +54,6 @@ public class AnnotationTaskEntity extends BaseEntity {
/**用于查询目的*/
private Long annotatorId= 0L;
private Long reviewerId = 0L;
private String fileAnnotationStatus;
}

View File

@ -1,5 +1,6 @@
package com.bonus.ai.mapper;
import com.bonus.ai.domain.DataSetBasicFileEntity;
import com.bonus.ai.domain.dataset.AnnotationTaskAnnotatorEntity;
import com.bonus.ai.domain.dataset.AnnotationTaskEntity;
@ -62,6 +63,7 @@ public interface AnnotationTaskMapper
int deleteAnnotator(Long taskId);
List<DataSetBasicFileEntity>getTaskBasicFile(AnnotationTaskEntity annotationTask);
//这个接口不需要可以扩展selectAnnotationTaskList
// AnnotationTaskEntity selectAnnotationTaskListUUID(Long taskId);
}

View File

@ -207,6 +207,37 @@ public class AnnotationTaskServiceImpl implements AnnotationTaskService {
return null;
}
@Override
public List<DataSetBasicFileEntity> getMyAnnotaionTaskBasicFile(Long taskId, String annotationStatus){
Long userId = SecurityUtils.getUserId();
AnnotationTaskEntity task = new AnnotationTaskEntity();
task.setTaskId(taskId);
task.setAnnotatorId(userId);
Long intAnnotationStatus = Long.valueOf(annotationStatus);
if (intAnnotationStatus < 4 && intAnnotationStatus >= 0) {
task.setFileAnnotationStatus(annotationStatus);
} else {
task.setFileAnnotationStatus("5");
}
task.setFileAnnotationStatus(annotationStatus);
return annotationTaskMapper.getTaskBasicFile(task);
}
@Override
public List<DataSetBasicFileEntity> getMyAuditTaskBasicFile(Long taskId, String annotationStatus){
Long userId = SecurityUtils.getUserId();
AnnotationTaskEntity task = new AnnotationTaskEntity();
task.setTaskId(taskId);
task.setReviewerId(userId);
Long intAnnotationStatus = Long.valueOf(annotationStatus);
if (intAnnotationStatus < 4 && intAnnotationStatus >= 0) {
task.setFileAnnotationStatus(annotationStatus);
}
else {
task.setFileAnnotationStatus("5");
}
return annotationTaskMapper.getTaskBasicFile(task);
}
/**
* 检查任务名称是否重复
* @param task

View File

@ -1,5 +1,6 @@
package com.bonus.ai.service.dataset;
import com.bonus.ai.domain.DataSetBasicFileEntity;
import com.bonus.ai.domain.dataset.AnnotationSubTaskEntity;
import com.bonus.ai.domain.dataset.AnnotationTaskEntity;
import com.bonus.ai.domain.dataset.DataSetEntity;
@ -32,4 +33,9 @@ public interface AnnotationTaskService {
/**检查标注任务名唯一性*/
boolean checkTaskNameUnique(AnnotationTaskEntity task);
List<DataSetBasicFileEntity> getMyAnnotaionTaskBasicFile(Long taskId,String annotationStatus);
List<DataSetBasicFileEntity> getMyAuditTaskBasicFile(Long taskId,String annotationStatus);
;
}

View File

@ -267,6 +267,33 @@
WHERE task_id = #{taskId}
</update>
<!-- 根据taskid 返回由某人标注 或审核的的文件列表-->
<select id="getTaskBasicFile" parameterType="com.bonus.ai.domain.dataset.AnnotationTaskEntity" resultType="com.bonus.ai.domain.DataSetBasicFileEntity">
SELECT
distinct adfm.file_id AS fileId,
abf.file_name AS fileName,
abf.file_size AS fileSize,
adfm.create_time AS createTime,
atap.annotation_status AS annotationStatus
FROM ai_basic_file abf
LEFT JOIN ai_dataset_file_map adfm ON abf.file_id = adfm.file_id
LEFT JOIN ai_annotation_task aat ON aat.dataset_id= adfm.dataset_id
LEFT JOIN ai_annotation_task_annotator_map atap on atap.task_id = aat.task_id
where abf.del_flag = '0' and aat.del_flag = '0' and aat.task_id = #{taskId}
<if test="fileName != null and fileName != ''">
AND abf.file_name like concat('%', #{fileName}, '%')
</if>
<if test="annotatorId != null and annotatorId != ''">
AND atap.annotator_id = #{annotatorId}
</if>
<if test="reviewerId != null and reviewerId != ''">
AND atap.reviewer_id = #{reviewerId}
</if>
<if test="fileAnnotationStatus != null and fileAnnotationStatus != '5'">
AND atap.annotation_status = #{fileAnnotationStatus}
</if>
</select>
</mapper>

View File

@ -36,7 +36,7 @@ create table ai_annotation_task_annotator_map
file_url varchar(200) default '' comment '文件网络路径',
label_studio_task_id bigint(20) comment "label studio 对应的taskId"
description varchar(500) default '' comment '描述',
annotation_status char(1) comment '0未标注1正在标注2已标注3正在审核4 审核驳回5已审核',
annotation_status char(1) comment '0未标注1已标注2已审核4 审核驳回',
annotation_result text comment '标注结果(json串)',
annotation_resource char(1) comment '0人工标注1智能标注',
del_flag char(1) default '0' comment '是否删除(0代表存在,1代表删除)',