智能标注应用层代码 提交
This commit is contained in:
parent
8cdf118c3b
commit
27a09e6722
|
|
@ -1,42 +1,32 @@
|
|||
package com.bonus.ai.controller;
|
||||
|
||||
import com.bonus.ai.client.intelligentAnnotation.AnnotationRequest;
|
||||
import com.bonus.ai.client.intelligentAnnotation.AnnotationResult;
|
||||
import com.bonus.ai.client.intelligentAnnotation.IntelligentAnnotationServiceOkHttp;
|
||||
import com.bonus.ai.domain.DataSetBasicFileEntity;
|
||||
import com.bonus.ai.domain.dataset.AnnotationTaskAnnotatorEntity;
|
||||
import com.bonus.ai.domain.DataSetSampleEntity;
|
||||
import com.bonus.ai.domain.dataset.AnnotationTaskEntity;
|
||||
import com.bonus.ai.domain.dataset.IntelligentAnnotationServiceEntity;
|
||||
import com.bonus.ai.service.DataSetTeamMemberService;
|
||||
import com.bonus.ai.service.dataset.AnnotationTaskService;
|
||||
import com.bonus.ai.service.dataset.IntelligentAnnotationService;
|
||||
import com.bonus.ai.utils.MinioUtil;
|
||||
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.log.annotation.SysLog;
|
||||
import com.bonus.common.log.enums.OperaType;
|
||||
import com.bonus.common.security.annotation.RequiresPermissions;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.apache.catalina.security.SecurityUtil;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.checkerframework.checker.units.qual.A;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/intelligentAnnotation")
|
||||
public class IntelligentAnnotationController {
|
||||
public class IntelligentAnnotationController extends BaseController {
|
||||
|
||||
@Resource
|
||||
private IntelligentAnnotationService intelligentAnnotationService;
|
||||
|
|
@ -45,23 +35,94 @@ public class IntelligentAnnotationController {
|
|||
@Resource
|
||||
private AnnotationTaskService annotationTaskService;
|
||||
|
||||
@RequiresPermissions("dataCenter:annotation:intelligentAnnotation:list")
|
||||
/**
|
||||
* 查询列表
|
||||
*/
|
||||
@RequiresPermissions("dataCenter:ailabelservice:list")
|
||||
@GetMapping("/service/list")
|
||||
public AjaxResult getAIAnnotationServiceList() {
|
||||
public TableDataInfo list(IntelligentAnnotationServiceEntity entity)
|
||||
{
|
||||
try {
|
||||
List<IntelligentAnnotationServiceEntity> serviceList = intelligentAnnotationService.getAIAnnotationServiceList();
|
||||
return AjaxResult.success(serviceList);
|
||||
}catch (Exception e){
|
||||
return AjaxResult.error("获取智能标注服务列表失败");
|
||||
startPage();
|
||||
List<IntelligentAnnotationServiceEntity> list = intelligentAnnotationService.getAIAnnotationServiceList(entity);
|
||||
return getDataTable(list);
|
||||
}catch (Exception e) {
|
||||
return getDataTable(new ArrayList<>());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取详细信息
|
||||
*/
|
||||
@RequiresPermissions("dataCenter:sample:query")
|
||||
@GetMapping(value = "/getInfo/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id) {
|
||||
try {
|
||||
IntelligentAnnotationServiceEntity service = intelligentAnnotationService.getAIAnnotationServiceById(id);
|
||||
return AjaxResult.success(service);
|
||||
} catch (Exception e){
|
||||
return AjaxResult.error("获取智能标注服务详细信息失败");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**智能标注,预留接口
|
||||
/**
|
||||
* 新增
|
||||
*/
|
||||
@RequiresPermissions("dataCenter:ailabelservice:add")
|
||||
@PostMapping("/add")
|
||||
@SysLog(title = "智能标注服务管理", businessType = OperaType.INSERT,logType = 0,module = "智能标注服务管理",details = "新增数据")
|
||||
public AjaxResult add(@RequestBody IntelligentAnnotationServiceEntity entity)
|
||||
{
|
||||
try {
|
||||
int result = intelligentAnnotationService.insertAIAnnotationService(entity);
|
||||
return AjaxResult.success(result);
|
||||
}catch(Exception e){
|
||||
return AjaxResult.error("新增失败");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*/
|
||||
@RequiresPermissions("dataCenter:ailabelservice:edit")
|
||||
@PostMapping("/update")
|
||||
@SysLog(title = "智能标注服务管理", businessType = OperaType.UPDATE,logType = 0,module = "智能标注服务管理",details = "修改数据")
|
||||
public AjaxResult edit(@RequestBody IntelligentAnnotationServiceEntity entity)
|
||||
{
|
||||
try {
|
||||
int result = intelligentAnnotationService.updateAIAnnotationService(entity);
|
||||
return AjaxResult.success(result);
|
||||
}catch(Exception e){
|
||||
return AjaxResult.error("更新失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
@RequiresPermissions("dataCenter:ailabelservice:remove")
|
||||
@PostMapping("/delete/{ids}")
|
||||
@SysLog(title = "智能标注服务管理", businessType = OperaType.DELETE,logType = 0,module = "智能标注服务管理",details = "删除数据")
|
||||
public AjaxResult remove(@PathVariable Long[] ids)
|
||||
{
|
||||
try {
|
||||
int result = intelligentAnnotationService.deleteAIAnnotationService(ids);
|
||||
return AjaxResult.success(result);
|
||||
}catch(Exception e){
|
||||
return AjaxResult.error("删除失败");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**智能标注,预留接口
|
||||
* @param task 标注文件的信息
|
||||
* @return 返回影响的行数或错误信,AnnotationTaskAnnotatorEntity
|
||||
*/
|
||||
@PostMapping("/annotate")
|
||||
@SysLog(title = "智能标注服务管理", businessType = OperaType.OTHER,logType = 0,module = "智能标注服务管理",details = "智能标注")
|
||||
public AjaxResult aiAnnotate(@Validated @RequestBody AnnotationTaskEntity task) throws IOException {
|
||||
try {
|
||||
IntelligentAnnotationServiceEntity service = intelligentAnnotationService.getAIAnnotationServiceById(task.getIntelligentAnnotationServiceId());
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ public interface IntelligentAnnotationMapper
|
|||
*/
|
||||
int insertIntelligentAnnotationService(IntelligentAnnotationServiceEntity serviceInfo);
|
||||
|
||||
int deleteIntelligentAnnotationService(Long serviceId);
|
||||
int deleteIntelligentAnnotationService(Long[] ids);
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -33,7 +33,7 @@ public interface IntelligentAnnotationMapper
|
|||
* 获取所有未被删除的服务信息列表
|
||||
* @return 服务信息
|
||||
*/
|
||||
List<IntelligentAnnotationServiceEntity> getIntelligentAnnotationService();
|
||||
List<IntelligentAnnotationServiceEntity> getIntelligentAnnotationService(IntelligentAnnotationServiceEntity entity);
|
||||
|
||||
/**
|
||||
* 获取所有未被删除的服务信息列表
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import com.bonus.ai.mapper.DatasetMapper;
|
|||
import com.bonus.ai.mapper.IntelligentAnnotationMapper;
|
||||
import com.bonus.ai.service.dataset.IntelligentAnnotationService;
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.common.security.utils.SecurityUtils;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -38,8 +39,8 @@ public class IntelligentAnnotationServiceImpl implements IntelligentAnnotationSe
|
|||
private MinioConfig minioConfig;
|
||||
|
||||
@Override
|
||||
public List<IntelligentAnnotationServiceEntity> getAIAnnotationServiceList() {
|
||||
return intelligentAnnotationMapper.getIntelligentAnnotationService();
|
||||
public List<IntelligentAnnotationServiceEntity> getAIAnnotationServiceList(IntelligentAnnotationServiceEntity entity) {
|
||||
return intelligentAnnotationMapper.getIntelligentAnnotationService(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -47,6 +48,27 @@ public class IntelligentAnnotationServiceImpl implements IntelligentAnnotationSe
|
|||
return intelligentAnnotationMapper.getIntelligentAnnotationServiceById(serviceId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteAIAnnotationService(Long[] ids) {
|
||||
return intelligentAnnotationMapper.deleteIntelligentAnnotationService(ids);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertAIAnnotationService(IntelligentAnnotationServiceEntity serviceInfo)
|
||||
{
|
||||
serviceInfo.setCreateBy(SecurityUtils.getUsername());
|
||||
return intelligentAnnotationMapper.insertIntelligentAnnotationService(serviceInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateAIAnnotationService(IntelligentAnnotationServiceEntity serviceInfo)
|
||||
{
|
||||
serviceInfo.setUpdateBy(SecurityUtils.getUsername());
|
||||
return intelligentAnnotationMapper.updateIntelligentAnnotationService(serviceInfo);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public AjaxResult aiAnnotate(AnnotationTaskEntity taskInfo, List<DataSetBasicFileEntity> fileList, IntelligentAnnotationServiceEntity aiAnnotationServiceInfo) {
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -13,9 +13,14 @@ import java.util.List;
|
|||
|
||||
public interface IntelligentAnnotationService {
|
||||
|
||||
List<IntelligentAnnotationServiceEntity> getAIAnnotationServiceList();
|
||||
List<IntelligentAnnotationServiceEntity> getAIAnnotationServiceList(IntelligentAnnotationServiceEntity entity);
|
||||
|
||||
IntelligentAnnotationServiceEntity getAIAnnotationServiceById(Long serviceId);
|
||||
|
||||
AjaxResult aiAnnotate(AnnotationTaskEntity taskInfo,List<DataSetBasicFileEntity> filelist,IntelligentAnnotationServiceEntity aiAnnotationServiceInfo);
|
||||
|
||||
int deleteAIAnnotationService(Long[] ids);
|
||||
int insertAIAnnotationService(IntelligentAnnotationServiceEntity serviceInfo);
|
||||
int updateAIAnnotationService(IntelligentAnnotationServiceEntity serviceInfo);
|
||||
|
||||
}
|
||||
|
|
@ -18,6 +18,20 @@
|
|||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectIntelligentAnnotationServiceVo">
|
||||
select intelligent_annotation_service_id, intelligent_annotation_service_name, intelligent_annotation_service_url, del_flag, create_by, create_time, update_by, update_time from ai_intelligent_annotation_service
|
||||
</sql>
|
||||
|
||||
<!-- 查询所有有效记录 -->
|
||||
<select id="getIntelligentAnnotationService" parameterType="com.bonus.ai.domain.dataset.IntelligentAnnotationServiceEntity" resultMap="IntelligentAnnotationServiceResultMap">
|
||||
<include refid="selectIntelligentAnnotationServiceVo"/>
|
||||
<where>
|
||||
<if test="serviceName != null and serviceName != ''"> intelligent_annotation_service_name like concat('%', #{serviceName}, '%')</if>
|
||||
and del_flag = '0'
|
||||
</where>
|
||||
ORDER BY create_time DESC
|
||||
</select>
|
||||
|
||||
<!-- 插入 -->
|
||||
<insert id="insertIntelligentAnnotationService" parameterType="com.bonus.ai.domain.dataset.IntelligentAnnotationServiceEntity" useGeneratedKeys="true" keyProperty="serviceId">
|
||||
INSERT INTO ai_intelligent_annotation_service
|
||||
|
|
@ -44,34 +58,28 @@
|
|||
</insert>
|
||||
|
||||
<!-- 更新 -->
|
||||
<update id="updateIntelligentAnnotationService">
|
||||
UPDATE ai_intelligent_annotation_service
|
||||
SET intelligent_annotation_service_name = #{serviceName},
|
||||
intelligent_annotation_service_url = #{serviceUrl},
|
||||
intelligent_annotation_service_labels = #{annotationLabels},
|
||||
del_flag = #{delFlag},
|
||||
update_by = #{updateBy},
|
||||
update_time = #{updateTime}
|
||||
WHERE intelligent_annotation_service_id = #{serviceId}
|
||||
<update id="updateIntelligentAnnotationService" parameterType="com.bonus.ai.domain.dataset.IntelligentAnnotationServiceEntity">
|
||||
update ai_intelligent_annotation_service
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="serviceName != null and serviceName != ''">intelligent_annotation_service_name = #{serviceName},</if>
|
||||
<if test="serviceUrl != null and serviceUrl != ''">intelligent_annotation_service_url = #{serviceUrl},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
</trim>
|
||||
where intelligent_annotation_service_id = #{serviceId}
|
||||
</update>
|
||||
|
||||
<update id="deleteIntelligentAnnotationService">
|
||||
UPDATE ai_intelligent_annotation_service
|
||||
SET del_flag = '1'
|
||||
WHERE intelligent_annotation_service_id = #{serviceId}
|
||||
update ai_intelligent_annotation_service set del_flag='1' where intelligent_annotation_service_id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 按 ID 查询 -->
|
||||
<select id="getIntelligentAnnotationServiceById" resultMap="IntelligentAnnotationServiceResultMap">
|
||||
SELECT * FROM ai_intelligent_annotation_service
|
||||
WHERE intelligent_annotation_service_id = #{serviceId}
|
||||
</select>
|
||||
|
||||
<!-- 查询所有有效记录 -->
|
||||
<select id="getIntelligentAnnotationService" resultMap="IntelligentAnnotationServiceResultMap">
|
||||
SELECT * FROM ai_intelligent_annotation_service
|
||||
WHERE del_flag = '0'
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -247,8 +247,8 @@ create table ai_intelligent_annotation_service
|
|||
del_flag char(1) default '0' comment '是否删除(0代表存在,1代表删除)',
|
||||
create_by varchar(64) default '' comment '创建者',
|
||||
update_by varchar(64) default '' comment '更新者',
|
||||
update_time datetime default null comment '更新时间',
|
||||
create_time datetime default null comment '创建时间',
|
||||
update_time datetime default CURRENT_TIMESTAMP on UPDATE CURRENT_TIMESTAMP comment '更新时间',
|
||||
create_time datetime default CURRENT_TIMESTAMP comment '创建时间',
|
||||
primary key(intelligent_annotation_service_id)
|
||||
)engine=innodb comment = '智能标注服务;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue