增加接口权限字符

This commit is contained in:
weiweiw 2024-11-27 08:17:22 +08:00
parent 2716b02095
commit cac6d13111
7 changed files with 144 additions and 53 deletions

View File

@ -12,6 +12,7 @@ import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.web.page.TableDataInfo;
import com.bonus.common.security.annotation.RequiresPermissions;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -33,6 +34,7 @@ public class AnnotationTaskController extends BaseController {
* @param task 新增的数据集信息
* @return 返回影响的行数或错误信
*/
@RequiresPermissions("dataCenter:task:create")
@PostMapping("/create")
public AjaxResult add(@Validated @RequestBody AnnotationTaskEntity task) {
int status = annotationTaskService.createTask(task);
@ -43,6 +45,7 @@ public class AnnotationTaskController extends BaseController {
* @param task 修改的任务
* @return 返回影响的行数或错误信
*/
@RequiresPermissions("dataCenter:task:edit")
@PostMapping("/edit")
public AjaxResult edit(@Validated @RequestBody AnnotationTaskEntity task) {
int status = annotationTaskService.updateTask(task);
@ -54,30 +57,61 @@ public class AnnotationTaskController extends BaseController {
* @param taskId 修改的任务
* @return 返回影响的行数或错误信
*/
@RequiresPermissions("dataCenter:task:delete")
@PostMapping("/delete/{taskId}")
public AjaxResult remove(@PathVariable Long taskId) {
annotationTaskService.deleteTaskById(taskId);
return AjaxResult.success();
}
/**
* 查看由我创建的任务列表和我参与的或全部任务列表
* 统一获取文件列表
* @return 返回满足条件的任务列表
*/
@GetMapping("/list")
public TableDataInfo list(AnnotationTaskEntity task) {
@RequiresPermissions("dataCenter:task:list:all")
@GetMapping("/list/all")
public TableDataInfo list() {
startPage();
List<AnnotationTaskEntity> taskList = annotationTaskService.getTaskList(task);
List<AnnotationTaskEntity> taskList = annotationTaskService.getAllTaskList();
return getDataTable(taskList);
}
/**
* 查看由我创建的任务列表
* 统一获取文件列表
* @return 返回满足条件的任务列表
*/
@RequiresPermissions("dataCenter:task:list:creation")
@GetMapping("/list/creation")
public TableDataInfo listMyCreation() {
startPage();
List<AnnotationTaskEntity> taskList = annotationTaskService.getMyCreationTaskList();
return getDataTable(taskList);
}
/**
* 查看由我参与的任务列表
* 统一获取文件列表
* @return 返回满足条件的任务列表
*/
@RequiresPermissions("dataCenter:task:list:participant")
@GetMapping("/list/participant")
public TableDataInfo listMyParticipant() {
startPage();
List<AnnotationTaskEntity> taskList = annotationTaskService.getMyParticipantTaskList();
return getDataTable(taskList);
}
/**
* 根据任务编号获取任务详情,如果是标注人员获取分配的文件列表如果是审核人员获取所有分配的文件列表如果是管理员获取所有文件列表
* @param taskId 任务编号
* @return 返回任务详情
*/
@RequiresPermissions("dataCenter:task:detail")
@GetMapping(value = "/{taskId}")
public AjaxResult getInfo(@PathVariable Long taskId) {
AnnotationTaskEntity taskEntity = annotationTaskService.getTaskInfo(taskId);
@ -90,6 +124,8 @@ public class AnnotationTaskController extends BaseController {
* ,String annotationStatus 5 表示全部0-4表示标注和审核状态
* @return 返回数据集详情
*/
@RequiresPermissions("dataCenter:task:file:annotation")
@GetMapping(value = "/getMyAnnotationFiles/{annotationStatus}/{taskId}")
public AjaxResult getMyAnnotationFilesByTaskId(@PathVariable Long taskId, @PathVariable String annotationStatus) {
try {
@ -104,6 +140,7 @@ public class AnnotationTaskController extends BaseController {
* * 根据任务id返回由我审核任务的所有文件列表
* @return 返回数据集详情
*/
@RequiresPermissions("dataCenter:task:file:audit")
@GetMapping(value = "/getMyAuditFiles/{annotationStatus}/{taskId}")
public AjaxResult getMyAuditFilesByTaskId(@PathVariable Long taskId, @PathVariable String annotationStatus) {
try {
@ -116,9 +153,10 @@ public class AnnotationTaskController extends BaseController {
/**
* * 根据任务id返回由我审核任务的所有文件列表
* * 根据任务id和文件id 返回驳回审核的原因
* @return 返回数据集详情
*/
@RequiresPermissions("dataCenter:task:file:failed_reason")
@GetMapping(value = "/getAuditFailReasonByTaskId/{taskId}/{fileId}")
public AjaxResult getAuditFailReasonByFileId(@PathVariable Long taskId, @PathVariable Long fileId) {
try {
@ -139,6 +177,7 @@ public class AnnotationTaskController extends BaseController {
* @param subTask 标注文件的信息
* @return 返回影响的行数或错误信
*/
@RequiresPermissions("dataCenter:task:manual_annotate")
@PostMapping("/manualAnnotate")
public AjaxResult manualAnnotate(@Validated @RequestBody AnnotationTaskAnnotatorEntity subTask) {
annotationTaskService.manualAnnotate(subTask);
@ -149,6 +188,7 @@ public class AnnotationTaskController extends BaseController {
* @param subTask 标注文件的信息
* @return 返回影响的行数或错误信
*/
@RequiresPermissions("dataCenter:task:ai_annotate")
@PostMapping("/aiAnnotate")
public AjaxResult aiAnnotate(@Validated @RequestBody AnnotationTaskAnnotatorEntity subTask) {

View File

@ -36,6 +36,7 @@ public class DatasetController extends BaseController {
* @param dataSet 新增的数据集信息并且建立和文件的关联关系
* @return 返回影响的行数或错误信
*/
@RequiresPermissions("dataCenter:dataSet:create")
@PostMapping("/create")
public AjaxResult create(@Validated @RequestBody DataSetEntity dataSet) {
try {
@ -53,6 +54,7 @@ public class DatasetController extends BaseController {
* @param dataSet 修改的数据集信息
* @return 返回影响的行数或错误信
*/
@RequiresPermissions("dataCenter:dataSet:edit")
@PostMapping("/edit")
public AjaxResult edit(@Validated @RequestBody DataSetEntity dataSet) {
if (!datasetService.checkDatasetNameUnique(dataSet)){
@ -67,17 +69,18 @@ public class DatasetController extends BaseController {
* @param dataSetIds 删除的数据集信息
* @return 返回影响的行数或错误信
*/
@RequiresPermissions("dataCenter:dataSet:delete")
@PostMapping("/delete/{dataSetIds}")
public AjaxResult remove(@PathVariable("dataSetIds") Long[] dataSetIds) {
return toAjax(datasetService.deleteDatasets(dataSetIds));
}
/**
* 查看由我创建的数据集
* 统一获取文件列表
* 分页返回满足条件的数据集列表
* @param
* @return 返回满足条件的数据集列表
*/
@RequiresPermissions("dataCenter:dataSet:list:page")
@GetMapping("/list")
public TableDataInfo list(DataSetEntity dataSet) {
try {
@ -90,11 +93,11 @@ public class DatasetController extends BaseController {
}
/**
* 查看由我创建的数据集
* 统一获取文件列表
* * 返回满足条件的数据集列表
* @param
* @return 返回满足条件的数据集列表
*/
@RequiresPermissions("dataCenter:dataSet:list")
@GetMapping("/datasetList")
public AjaxResult datasetList(DataSetEntity dataSet) {
return AjaxResult.success(datasetService.getDatasetList(dataSet));
@ -105,6 +108,7 @@ public class DatasetController extends BaseController {
* @param datasetId 数据集编号
* @return 返回数据集详情
*/
@RequiresPermissions("dataCenter:dataSet:detail")
@GetMapping(value = "/{datasetId}")
public AjaxResult getInfo(@PathVariable Long datasetId) {
AjaxResult ajax = AjaxResult.success();
@ -113,10 +117,11 @@ public class DatasetController extends BaseController {
return ajax;
}
/**
* 根据数据集编号获取数据集详情
* 根据搜索条件返回对应的数据集里文件列表
* @param entity 筛选条件
* @return 返回数据集详情
*/
@RequiresPermissions("dataCenter:dataSet:file:list")
@GetMapping(value = "getDataSetBasicFile")
public TableDataInfo getDataSetBasicFile(DataSetBasicFileEntity entity) {
try {
@ -133,6 +138,7 @@ public class DatasetController extends BaseController {
* 删除的数据集
* @return 返回影响的行数或错误信
*/
@RequiresPermissions("dataCenter:dataSet:file:delete")
@PostMapping("/removeDataSetBasicFile")
public AjaxResult removeDataSetBasicFile(@RequestParam("datasetId") String datasetId,@RequestParam("fileIds") String fileIds) {
// 将字符串转换为 long[] 数组并输出
@ -150,6 +156,7 @@ public class DatasetController extends BaseController {
* @param isPublic 是否设置为公共文件true - 设置为公共文件, false - 取消公共状态
* @return 操作结果
*/
@RequiresPermissions("dataCenter:dataSet:public")
@PostMapping("/setPublic")
public AjaxResult setDatasetPublicStatus(@RequestParam String datasetId, @RequestParam String isPublic){
datasetService.setPublicStatus(datasetId, isPublic);
@ -160,6 +167,7 @@ public class DatasetController extends BaseController {
* 数据集导入
* @return 返回满足条件的版本列表
*/
@RequiresPermissions("dataCenter:dataSet:import")
@PostMapping("/import")
public AjaxResult importDataset(@RequestBody DataSetEntity entity) {
return datasetService.importDataset(entity);
@ -169,6 +177,7 @@ public class DatasetController extends BaseController {
* 数据集导出
* @return 返回满足条件的版本列表
*/
@RequiresPermissions("dataCenter:dataSet:export")
@PostMapping("/export/{datasetId}")
public void exportDataset(HttpServletResponse response, HttpServletRequest request, @PathVariable Long datasetId) {
datasetService.exportDataset(request,response,datasetId);

View File

@ -5,6 +5,7 @@ import com.bonus.ai.service.dataset.ReleaseVersionService;
import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.web.page.TableDataInfo;
import com.bonus.common.security.annotation.RequiresPermissions;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -25,6 +26,7 @@ public class ReleaseVersionController extends BaseController {
* @param version 发布数据集的版本信息
* @return 返回影响的行数或错误信
*/
@RequiresPermissions("dataCenter:version:create")
@PostMapping("/release")
public AjaxResult release(@Validated @RequestBody ReleaseVersionEntity version) {
return releaseVersionService.release(version);
@ -34,6 +36,7 @@ public class ReleaseVersionController extends BaseController {
* @param versionId 发布数据集的版本id
* @return 返回影响的行数或错误信
*/
@RequiresPermissions("dataCenter:version:export")
@GetMapping(value = "/export/{versionId}")
public AjaxResult export(@PathVariable Long versionId) {
return AjaxResult.success();
@ -44,6 +47,7 @@ public class ReleaseVersionController extends BaseController {
* @param versionIds id 集合
* @return
*/
@RequiresPermissions("dataCenter:version:delete")
@PostMapping(value = "/delete/{versionIds}")
public AjaxResult delete(@PathVariable Long[] versionIds) {
return releaseVersionService.delete(versionIds);
@ -55,6 +59,7 @@ public class ReleaseVersionController extends BaseController {
* 查看发布的版本列表
* @return 返回满足条件的版本列表
*/
@RequiresPermissions("dataCenter:version:list")
@GetMapping("/list")
public TableDataInfo list(ReleaseVersionEntity version) {
try {

View File

@ -53,8 +53,8 @@ public class AnnotationTaskEntity extends BaseEntity {
/**用于查询目的*/
/**根据任务id标注人id或审核人id 和文件标注状态返回满足条件的文件列表*/
private Long annotatorId= 0L;
private Long reviewerId = 0L;
private String annotatorId= "";
private String reviewerId = "";
private String fileAnnotationStatus;
/**根据任务id 和文件id 返回审核驳回的原因*/
private Long fileId = 0L;

View File

@ -17,9 +17,9 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.CountDownLatch;
@ -66,10 +66,10 @@ public class AnnotationTaskServiceImpl implements AnnotationTaskService {
status = annotationTaskMapper.insertAnnotationTask(task);
AnnotationTaskEntity tempTask = new AnnotationTaskEntity();
tempTask.setTaskUuid(uuid);
List<AnnotationTaskEntity> tempTasks = annotationTaskMapper.selectAnnotationTaskList(task);
List<AnnotationTaskEntity> tempTasks = annotationTaskMapper.selectAnnotationTaskList(task);
Long annotationTaskid = 0L;
if (!tempTasks.isEmpty()) {
if (!tempTasks.isEmpty()){
annotationTaskid = tempTasks.get(0).getTaskId();
}
@ -86,12 +86,12 @@ public class AnnotationTaskServiceImpl implements AnnotationTaskService {
//4. 文件分配后需要调用label studio 接口创建task将taskid与 文件和标注人表进行关联因为文件较多启用异步调用
// 5. 将文件和标注人等信息 插入文件和标注人关联表
if (status == 1) {
if(status == 1){
try {
for (AnnotationTaskAnnotatorEntity entity : annotationTaskAnnotatorEntities) {
for(AnnotationTaskAnnotatorEntity entity:annotationTaskAnnotatorEntities){
status = annotationTaskMapper.insertAnnotTaskannotator(entity);
}
} catch (Exception e) {
}catch (Exception e){
log.error("Error updating task: ", e);
throw e; // 抛出异常以触发回滚
}
@ -100,16 +100,43 @@ public class AnnotationTaskServiceImpl implements AnnotationTaskService {
}
/**
* 获取任务列表分配给我的标注任务我创建的标注任务
*/
@Override
public List<AnnotationTaskEntity> getTaskList(AnnotationTaskEntity task) {
public List<AnnotationTaskEntity> getAllTaskList() {
try {
//这样设置不合适设置后会改变真实用户的意图
// String userId = SecurityUtils.getUserId().toString();
// task.setCreateBy(userId);
return annotationTaskMapper.selectMyAnnotationTaskList(task);
AnnotationTaskEntity taskEntity = new AnnotationTaskEntity();
String userId = SecurityUtils.getUserId().toString();
taskEntity.setCreateBy(userId);
taskEntity.setAnnotatorId(userId);
taskEntity.setReviewerId(userId);
return annotationTaskMapper.selectMyAnnotationTaskList(taskEntity);
} catch (Exception e) {
log.error("获取数据集列表失败", e);
return new ArrayList<>();
}
}
@Override
public List<AnnotationTaskEntity> getMyCreationTaskList() {
try {
AnnotationTaskEntity taskEntity = new AnnotationTaskEntity();
String userId = SecurityUtils.getUserId().toString();
taskEntity.setCreateBy(userId);
return annotationTaskMapper.selectMyAnnotationTaskList(taskEntity);
} catch (Exception e) {
log.error("获取数据集列表失败", e);
return new ArrayList<>();
}
}
/**根据类型获取标注任务列表*/
@Override
public List<AnnotationTaskEntity> getMyParticipantTaskList(){
try {
AnnotationTaskEntity taskEntity = new AnnotationTaskEntity();
String userId = SecurityUtils.getUserId().toString();
taskEntity.setAnnotatorId(userId);
taskEntity.setReviewerId(userId);
return annotationTaskMapper.selectMyAnnotationTaskList(taskEntity);
} catch (Exception e) {
log.error("获取数据集列表失败", e);
return new ArrayList<>();
@ -122,14 +149,16 @@ public class AnnotationTaskServiceImpl implements AnnotationTaskService {
/**
* 更新任务
*/
* 更新任务
*/
@Override
public int updateTask(AnnotationTaskEntity task) {
public int updateTask(AnnotationTaskEntity task){
int result = 0;
try {
result = annotationTaskMapper.updateAnnotationTaskById(task);
} catch (Exception e) {
task.setUpdateBy(SecurityUtils.getUserId().toString());
result = annotationTaskMapper.updateAnnotationTaskById(task);
}catch(Exception e)
{
e.printStackTrace();
}
return result;
@ -138,7 +167,6 @@ public class AnnotationTaskServiceImpl implements AnnotationTaskService {
/**
* 根据taskid 删除任务
*
* @param taskId
* @return
*/
@ -146,13 +174,13 @@ public class AnnotationTaskServiceImpl implements AnnotationTaskService {
public int deleteTaskById(Long taskId) {
//删除任务需要删除两个个表 对应两个个表删除状态修改成1
int status = 0;
try {
try{
//删除主表任务信息
status = annotationTaskMapper.deleteTaskById(taskId);
//删除团队成员表信息
status = annotationTaskMapper.deleteAnnotator(taskId);
} catch (Exception e) {
}catch (Exception e){
e.printStackTrace();
}
return status;
@ -160,7 +188,6 @@ public class AnnotationTaskServiceImpl implements AnnotationTaskService {
/**
* 获取任务详情
*
* @param taskId
* @return
*/
@ -172,20 +199,20 @@ public class AnnotationTaskServiceImpl implements AnnotationTaskService {
task.setTaskId(taskId);
//查询对应的label studio project id , 从label studio这个标注任务对应的label studio project
List<AnnotationTaskEntity> resultTasks = annotationTaskMapper.selectAnnotationTaskList(task);
if (!resultTasks.isEmpty()) {
return resultTasks.get(0);
if (!resultTasks.isEmpty()) {
return resultTasks.get(0);
}
} catch (Exception e) {
} catch (Exception e){
e.printStackTrace();
}
return null;
}
@Override
public List<DataSetBasicFileEntity> getMyAnnotaionTaskBasicFile(Long taskId, String annotationStatus) {
public List<DataSetBasicFileEntity> getMyAnnotaionTaskBasicFile(Long taskId, String annotationStatus){
try {
Long userId = SecurityUtils.getUserId();
String userId = SecurityUtils.getUserId().toString();
AnnotationTaskEntity task = new AnnotationTaskEntity();
task.setTaskId(taskId);
task.setAnnotatorId(userId);
@ -197,22 +224,23 @@ public class AnnotationTaskServiceImpl implements AnnotationTaskService {
}
task.setFileAnnotationStatus(annotationStatus);
return annotationTaskMapper.getTaskBasicFile(task);
} catch (Exception e) {
}catch(Exception e){
e.printStackTrace();
return new ArrayList<>();
}
}
@Override
public List<DataSetBasicFileEntity> getMyAuditTaskBasicFile(Long taskId, String annotationStatus) {
Long userId = SecurityUtils.getUserId();
public List<DataSetBasicFileEntity> getMyAuditTaskBasicFile(Long taskId, String annotationStatus){
String userId = SecurityUtils.getUserId().toString();
AnnotationTaskEntity task = new AnnotationTaskEntity();
task.setTaskId(taskId);
task.setReviewerId(userId);
Long intAnnotationStatus = Long.valueOf(annotationStatus);
if (intAnnotationStatus < 4 && intAnnotationStatus >= 0) {
task.setFileAnnotationStatus(annotationStatus);
} else {
}
else {
task.setFileAnnotationStatus("5");
}
return annotationTaskMapper.getTaskBasicFile(task);
@ -220,10 +248,10 @@ public class AnnotationTaskServiceImpl implements AnnotationTaskService {
@Override
public String getAuditFailReasonByFileId(Long taskId, Long fileId) {
public String getAuditFailReasonByFileId(Long taskId, Long fileId){
try {
return annotationTaskMapper.getAuditFailReasonByFileId(taskId, fileId);
} catch (Exception e) {
}catch(Exception e){
e.printStackTrace();
return "";
}
@ -231,12 +259,11 @@ public class AnnotationTaskServiceImpl implements AnnotationTaskService {
/**
* 检查任务名称是否重复
*
* @param task
* @return
*/
@Override
public boolean checkTaskNameUnique(AnnotationTaskEntity task) {
public boolean checkTaskNameUnique(AnnotationTaskEntity task){
return false;
}
@ -257,4 +284,5 @@ public class AnnotationTaskServiceImpl implements AnnotationTaskService {
}
}

View File

@ -29,8 +29,17 @@ public interface AnnotationTaskService {
/**AI自动标注*/
void aiAnnotate(AnnotationTaskAnnotatorEntity subTask);
// /**根据类型获取标注任务列表*/
// List<AnnotationTaskEntity> getTaskList(AnnotationTaskEntity task);
/**根据类型获取标注任务列表*/
List<AnnotationTaskEntity> getTaskList(AnnotationTaskEntity task);
List<AnnotationTaskEntity> getAllTaskList();
/**根据类型获取标注任务列表*/
List<AnnotationTaskEntity> getMyCreationTaskList();
/**根据类型获取标注任务列表*/
List<AnnotationTaskEntity> getMyParticipantTaskList();
/**检查标注任务名唯一性*/
boolean checkTaskNameUnique(AnnotationTaskEntity task);

View File

@ -90,19 +90,19 @@
LEFT join sys_user su on su.user_id = at.create_by
WHERE at.del_flag = '0' and ap.annotation_status IN ('0', '1', '2','3')
<choose>
<when test="annotatorId != null and annotatorId != 0 and reviewerId != null and reviewerId != 0 and createBy != null and createBy != 0">
<when test="annotatorId != null and annotatorId != '' and reviewerId != null and reviewerId != '' and createBy != null and createBy != ''">
AND (ap.annotator_id = #{annotatorId} or ap.reviewer_id = #{reviewerId} or at.create_by = #{createBy})
</when>
<when test="annotatorId != null and annotatorId != 0 and reviewerId != null and reviewerId != 0 ">
<when test="annotatorId != null and annotatorId != '' and reviewerId != null and reviewerId != '' ">
AND (ap.annotator_id = #{annotatorId} or ap.reviewer_id = #{reviewerId})
</when>
<when test="reviewerId != null and reviewerId != 0 and createBy != null and createBy != 0">
<when test="reviewerId != null and reviewerId != '' and createBy != null and createBy != ''">
AND (ap.reviewer_id = #{reviewerId} or at.create_by = #{createBy})
</when>
<when test="annotatorId != null and annotatorId != 0 and createBy != null and createBy != 0">
<when test="annotatorId != null and annotatorId != '' and createBy != null and createBy != ''">
AND (ap.annotatorId = #{annotatorId} or at.create_by = #{createBy})
</when>
<when test="createBy != null and createBy != 0">
<when test="createBy != null and createBy != ''">
AND (at.create_by = #{createBy} or at.create_by = #{createBy})
</when>
</choose>