From f331fe1dc658ed93594d851b59c66b01981f1c67 Mon Sep 17 00:00:00 2001 From: weiweiw <14335254+weiweiw22@user.noreply.gitee.com> Date: Wed, 27 Nov 2024 12:19:34 +0800 Subject: [PATCH] enhance --- .../dataset/AnnotationTaskController.java | 8 ++- .../dataset/ReleaseVersionController.java | 1 + .../domain/dataset/ReleaseVersionEntity.java | 55 +++---------------- .../bonus/ai/mapper/AnnotationTaskMapper.java | 2 + .../dataset/AnnotationTaskServiceImpl.java | 12 +++- .../dataset/ReleaseVersionServiceImpl.java | 2 + .../dataset/AnnotationTaskService.java | 4 +- .../resources/mapper/AnnotationTaskMapper.xml | 45 ++------------- .../main/resources/mapper/DatasetMapper.xml | 13 ++++- .../resources/mapper/ReleaseVersionMapper.xml | 30 +++++++--- sql/bonus_ai.sql | 18 +++--- 11 files changed, 77 insertions(+), 113 deletions(-) diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/dataset/AnnotationTaskController.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/dataset/AnnotationTaskController.java index 1c11bc4..4eeb190 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/dataset/AnnotationTaskController.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/dataset/AnnotationTaskController.java @@ -180,8 +180,12 @@ public class AnnotationTaskController extends BaseController { @RequiresPermissions("dataCenter:task:manual_annotate") @PostMapping("/manualAnnotate") public AjaxResult manualAnnotate(@Validated @RequestBody AnnotationTaskAnnotatorEntity subTask) { - annotationTaskService.manualAnnotate(subTask); - return AjaxResult.success("手工标注保存成功"); + int result = annotationTaskService.manualAnnotate(subTask); + if (result >0) { + return AjaxResult.success("手工标注保存成功"); + }else { + return AjaxResult.error("手工标注保存失败"); + } } /**智能标注,预留接口 diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/dataset/ReleaseVersionController.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/dataset/ReleaseVersionController.java index 272d883..32eddaa 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/dataset/ReleaseVersionController.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/dataset/ReleaseVersionController.java @@ -63,6 +63,7 @@ public class ReleaseVersionController extends BaseController { @GetMapping("/list") public TableDataInfo list(ReleaseVersionEntity version) { try { + startPage(); List allReleaseVersions = releaseVersionService.getAllReleaseVersions(version); return getDataTable(allReleaseVersions); }catch (Exception e) { diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/dataset/ReleaseVersionEntity.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/dataset/ReleaseVersionEntity.java index f182ead..43b2794 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/dataset/ReleaseVersionEntity.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/dataset/ReleaseVersionEntity.java @@ -5,6 +5,7 @@ package com.bonus.ai.domain.dataset; import com.bonus.common.core.web.domain.BaseEntity; +import lombok.Data; import java.util.List; @@ -12,6 +13,7 @@ import java.util.List; * 版本类 * @author wangvivi */ +@Data public class ReleaseVersionEntity extends BaseEntity { /**版本ID*/ private Long versionId; @@ -27,53 +29,14 @@ public class ReleaseVersionEntity extends BaseEntity { /**版本关联的文件标注结果和原始文件信息*/ private List fileAnnotationResultList; - public Long getVersionId() { - return versionId; - } + /**查询目的,用于返回版本相关的任务名称,数据集名称,任务关联的文件的标注情况*/ + String taskName; + String datasetName; + //标注类型 + String annotationType; + Long auditedCount; + Long totalCount; - public void setVersionId(Long versionId) { - this.versionId = versionId; - } - - public String getVersionName() { - return versionName; - } - - public void setVersionName(String versionName) { - this.versionName = versionName; - } - - public String getVersionDesc() { - return versionDesc; - } - - public void setVersionDesc(String versionDesc) { - this.versionDesc = versionDesc; - } - - public Long getDatasetId() { - return datasetId; - } - - public void setDatasetId(Long datasetId) { - this.datasetId = datasetId; - } - - public Long getTaskId() { - return taskId; - } - - public void setTaskId(Long taskId) { - this.taskId = taskId; - } - - public List getFileAnnotationResultList() { - return fileAnnotationResultList; - } - - public void setFileAnnotationResultList(List fileAnnotationResultList) { - this.fileAnnotationResultList = fileAnnotationResultList; - } public static class AnnotationResult{ /**文件id*/ diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/mapper/AnnotationTaskMapper.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/mapper/AnnotationTaskMapper.java index c186fbf..c7a56c7 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/mapper/AnnotationTaskMapper.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/mapper/AnnotationTaskMapper.java @@ -58,6 +58,8 @@ public interface AnnotationTaskMapper ListgetTaskBasicFile(AnnotationTaskEntity annotationTask); String getAuditFailReasonByFileId(Long taskId, Long fileId); + + int updateAnnotationInfo(AnnotationTaskAnnotatorEntity entity); //这个接口不需要,可以扩展selectAnnotationTaskList // AnnotationTaskEntity selectAnnotationTaskListUUID(Long taskId); } 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 b475a4b..d53725a 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 @@ -269,7 +269,13 @@ public class AnnotationTaskServiceImpl implements AnnotationTaskService { * 手工标注 */ @Override - public void manualAnnotate(AnnotationTaskAnnotatorEntity subTask) { + public int manualAnnotate(AnnotationTaskAnnotatorEntity subTask) { + try { + return annotationTaskMapper.updateAnnotationInfo(subTask); + }catch(Exception e){ + e.printStackTrace(); + } + return 0; } @@ -277,8 +283,8 @@ public class AnnotationTaskServiceImpl implements AnnotationTaskService { * AI标注 */ @Override - public void aiAnnotate(AnnotationTaskAnnotatorEntity subTask) { - + public int aiAnnotate(AnnotationTaskAnnotatorEntity subTask) { + return 0; } diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/dataset/ReleaseVersionServiceImpl.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/dataset/ReleaseVersionServiceImpl.java index 88c5d15..1d77a6d 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/dataset/ReleaseVersionServiceImpl.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/dataset/ReleaseVersionServiceImpl.java @@ -4,6 +4,7 @@ import com.bonus.ai.domain.dataset.ReleaseVersionEntity; import com.bonus.ai.mapper.ReleaseVersionMapper; import com.bonus.ai.service.dataset.ReleaseVersionService; import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.security.utils.SecurityUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -37,6 +38,7 @@ public class ReleaseVersionServiceImpl implements ReleaseVersionService { @Override public AjaxResult release(ReleaseVersionEntity version) { try { + version.setCreateBy(SecurityUtils.getUserId().toString()); int num = mapper.release(version); return num>0?AjaxResult.success():AjaxResult.error(); }catch (Exception e) { 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 317174a..3c45c66 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 @@ -24,10 +24,10 @@ public interface AnnotationTaskService { AnnotationTaskEntity getTaskInfo(Long taskId); /**手工标注*/ - void manualAnnotate(AnnotationTaskAnnotatorEntity subTask); + int manualAnnotate(AnnotationTaskAnnotatorEntity subTask); /**AI自动标注*/ - void aiAnnotate(AnnotationTaskAnnotatorEntity subTask); + int aiAnnotate(AnnotationTaskAnnotatorEntity subTask); // /**根据类型获取标注任务列表*/ // List getTaskList(AnnotationTaskEntity task); 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 e2e6af0..407d843 100644 --- a/bonus-modules/bonus-ai/src/main/resources/mapper/AnnotationTaskMapper.xml +++ b/bonus-modules/bonus-ai/src/main/resources/mapper/AnnotationTaskMapper.xml @@ -112,34 +112,6 @@ GROUP BY ap.task_id - - - - - - - - - - - - - - - - - - - - - - - - - - - - INSERT INTO ai_annotation_task @@ -319,22 +291,15 @@ UPDATE ai_annotation_task_annotator_map - annotation_result = #{annotationResult}, - task_name = #{taskName}, - task_uuid = #{taskUuid}, - description = #{taskDesc}, - annotation_scene = #{annotateScene}, - annotation_type = #{annotateType}, - labels = #{labels}, - is_annotation_team = #{isStartTeam}, - annotation_status = #{annotateTaskStatus}, + annotation_result = #{annotationResult}, + annotation_resource = #{annotationResource}, + annotation_status = #{annotateTaskStatus}, label_studio_project_id = #{labelStudioProjectId}, - del_flag = #{delFlag}, - update_by = #{updateBy}, + update_by = #{updateBy}, WHERE task_id = #{taskId} - + diff --git a/bonus-modules/bonus-ai/src/main/resources/mapper/ReleaseVersionMapper.xml b/bonus-modules/bonus-ai/src/main/resources/mapper/ReleaseVersionMapper.xml index 84e03ae..aa8a460 100644 --- a/bonus-modules/bonus-ai/src/main/resources/mapper/ReleaseVersionMapper.xml +++ b/bonus-modules/bonus-ai/src/main/resources/mapper/ReleaseVersionMapper.xml @@ -14,15 +14,27 @@ \ No newline at end of file diff --git a/sql/bonus_ai.sql b/sql/bonus_ai.sql index 1dd844f..7e01fc1 100644 --- a/sql/bonus_ai.sql +++ b/sql/bonus_ai.sql @@ -9,10 +9,10 @@ create table ai_annotation_task task_name varchar(64) comment '任务名称', task_uuid varchar(64) comment '任务唯一标识id', description varchar(500) default '' comment '描述', - annotation_scene char(1) comment '标注场景(对应数据集的数据类型)', - annotation_type char(2) comment '标注类型(不同数据类型有不同的标注类型,如图片:图像分类,物体检测等)', + annotation_scene char(1) default '0' comment '标注场景(对应数据集的数据类型)', + annotation_type char(2) default '0' comment '标注类型(不同数据类型有不同的标注类型,如图片:图像分类,物体检测等)', labels varchar(200) comment '允许的标签集', - is_annotation_team char(1) comment '标注团队id(0未启用,1启用团队)', + is_annotation_team char(1) default '0' comment '标注团队id(0未启用,1启用团队)', annotation_status char(1) default '0' comment '0未标注,1正在标注,2已标注,3正在审核,4已审核', label_studio_project_id bigint(20) comment "label studio 对应的projectId" del_flag char(1) default '0' comment '是否删除(0代表存在,1代表删除)', @@ -36,9 +36,9 @@ 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 审核驳回', + annotation_status char(1) default '0' comment '0未标注,1已标注,2已审核,3 审核驳回', annotation_result text comment '标注结果(json串)', - annotation_resource char(1) comment '0人工标注,1智能标注', + annotation_resource char(1) default '0' comment '0人工标注,1智能标注', del_flag char(1) default '0' comment '是否删除(0代表存在,1代表删除)', annotation_time datetime default null comment '标注时间', review_time datetime default null comment '审核时间', @@ -81,7 +81,7 @@ create table ai_basic_file file_size bigint comment '文件大小', file_last_modifytime datetime default null comment '文件最后修改时间', upload_time datetime default null comment '上传时间', - is_directory char(1) comment '是否文件夹', + is_directory char(1) default '0' comment '是否文件夹', is_public char(1) default '0' comment '0 no, 1 yes', del_flag char(1) default '0' comment '是否删除(0代表存在,1代表删除)', create_by varchar(64) default '' comment '创建者', @@ -102,8 +102,8 @@ create table ai_dataset dataset_uuid varchar(64) comment '数据集唯一标识id', dataset_name varchar(200) comment '数据集名称', description varchar(500) default '' comment '描述', - data_type char(1) comment '数据类型', - data_source char(1) comment '数据来源(0:local,1:obs)', + data_type char(1) default '0' comment '数据类型', + data_source char(1) default '0' comment '数据来源(0:local,1:obs)', input_path varchar(200) comment '输入路径', output_path varchar(200) comment '输入路径', input_id bigint(20) comment '输入文件夹id', @@ -151,7 +151,7 @@ create table ai_dataset_log operation_type varchar(64) comment '操作类型(0代表标注,1代表审核)', operation_by varchar(64) default '' comment '操作人', operation_time datetime default NULL comment '操作时间', - operation_result char(1) comment '操作结果(如审核通过,审核不通过)', + operation_result char(1) default '0' comment '操作结果(如审核通过,审核不通过)', operation_reason varchar(500) comment '操作原因(如不通过原因)', value_before text comment '操作之前的值', value_after text comment '操作之后的值',