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