From cb10ed7f7c0ee431979293fea6421e1c9fc44846 Mon Sep 17 00:00:00 2001 From: jiang Date: Tue, 10 Dec 2024 16:20:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/controller/ModelManagerController.java | 83 +++++++++++++ .../ai/domain/DataSetBasicFileEntity.java | 2 +- .../bonus/ai/domain/ModelManagerEntity.java | 59 +++++++++ .../domain/dataset/AnnotationTaskEntity.java | 2 + .../bonus/ai/mapper/ModelManagerMapper.java | 54 +++++++++ .../service/Impl/ModelManagerServiceImpl.java | 108 +++++++++++++++++ .../bonus/ai/service/ModelManagerService.java | 56 +++++++++ .../resources/mapper/AnnotationTaskMapper.xml | 1 + .../main/resources/mapper/DatasetMapper.xml | 3 +- .../resources/mapper/ModelManagerMapper.xml | 112 ++++++++++++++++++ 10 files changed, 478 insertions(+), 2 deletions(-) create mode 100644 bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/ModelManagerController.java create mode 100644 bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/ModelManagerEntity.java create mode 100644 bonus-modules/bonus-ai/src/main/java/com/bonus/ai/mapper/ModelManagerMapper.java create mode 100644 bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/ModelManagerServiceImpl.java create mode 100644 bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/ModelManagerService.java create mode 100644 bonus-modules/bonus-ai/src/main/resources/mapper/ModelManagerMapper.xml diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/ModelManagerController.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/ModelManagerController.java new file mode 100644 index 0000000..3b86801 --- /dev/null +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/ModelManagerController.java @@ -0,0 +1,83 @@ +package com.bonus.ai.controller; + +import com.bonus.ai.domain.ModelManagerEntity; +import com.bonus.ai.service.ModelManagerService; +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 org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * 模型管理Controller + * + * @author bonus + * @date 2024-12-10 + */ +@RestController +@RequestMapping("/manager") +public class ModelManagerController extends BaseController { + @Resource + private ModelManagerService aiModelManagerService; + + /** + * 查询模型管理列表 + */ + @RequiresPermissions("model:manager:list") + @GetMapping("/list") + public TableDataInfo list(ModelManagerEntity aiModelManager) { + try { + startPage(); + List list = aiModelManagerService.selectAiModelManagerList(aiModelManager); + return getDataTable(list); + } catch (Exception e) { + return getDataTable(new ArrayList<>()); + } + + } + + /** + * 获取模型管理详细信息 + */ + @RequiresPermissions("model:manager:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return aiModelManagerService.selectAiModelManagerById(id); + } + + /** + * 新增模型管理 + */ + @RequiresPermissions("model:manager:add") + @PostMapping("/add") + @SysLog(title = "模型管理", businessType = OperaType.INSERT, logType = 0, module = "模型管理", details = "导出模型管理列表") + public AjaxResult add(@RequestBody ModelManagerEntity aiModelManager) { + return aiModelManagerService.insertAiModelManager(aiModelManager); + } + + /** + * 修改模型管理 + */ + @RequiresPermissions("model:manager:edit") + @PostMapping("/edit") + @SysLog(title = "模型管理", businessType = OperaType.UPDATE, logType = 0, module = "模型管理", details = "导出模型管理列表") + public AjaxResult edit(@RequestBody ModelManagerEntity aiModelManager) { + return aiModelManagerService.updateAiModelManager(aiModelManager); + } + + /** + * 删除模型管理 + */ + @RequiresPermissions("model:manager:remove") + @PostMapping("/delete/{ids}") + @SysLog(title = "模型管理", businessType = OperaType.DELETE, logType = 0, module = "模型管理", details = "导出模型管理列表") + public AjaxResult remove(@PathVariable Long[] ids) { + return aiModelManagerService.deleteAiModelManagerByIds(ids); + } +} diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/DataSetBasicFileEntity.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/DataSetBasicFileEntity.java index adb6ad3..50e61e3 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/DataSetBasicFileEntity.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/DataSetBasicFileEntity.java @@ -69,7 +69,7 @@ public class DataSetBasicFileEntity extends BaseEntity { private Date uploadTime; private Long dataSetId; - + private String auditFailedReason; /**查询目的,表示文件在当前任务下的标注状态*/ String fileAnnotationStatus; String annotationResult; diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/ModelManagerEntity.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/ModelManagerEntity.java new file mode 100644 index 0000000..bb8b69f --- /dev/null +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/ModelManagerEntity.java @@ -0,0 +1,59 @@ +package com.bonus.ai.domain; + +import com.bonus.common.core.annotation.Excel; +import com.bonus.common.core.web.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 模型管理对象 ai_model_manager + * + * @author bonus + * @date 2024-12-10 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class ModelManagerEntity extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * 模型名称 + */ + private String modelName; + + /** + * 版本号 + */ + private String modelVersion; + + /** + * 模型类型 + */ + private String modelType; + + /** + * 模型框架 + */ + private String modelFrame; + + /** + * 模型上传path + */ + private String modelPath; + + /** + * 使用手册path + */ + private String modelManual; + + /** + * 是否删除 + */ + private String isActive; + +} diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/dataset/AnnotationTaskEntity.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/dataset/AnnotationTaskEntity.java index 604c66f..5cd5a4c 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/dataset/AnnotationTaskEntity.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/dataset/AnnotationTaskEntity.java @@ -79,6 +79,8 @@ public class AnnotationTaskEntity extends BaseEntity { /**最新版本数*/ private String lastVersionName; + private String auditFailedReason; + @Data public static class UserFileCount{ diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/mapper/ModelManagerMapper.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/mapper/ModelManagerMapper.java new file mode 100644 index 0000000..34efac1 --- /dev/null +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/mapper/ModelManagerMapper.java @@ -0,0 +1,54 @@ +package com.bonus.ai.mapper; + + +import com.bonus.ai.domain.ModelManagerEntity; + +import java.util.List; + +/** + * 模型管理Mapper接口 + * + * @author bonus + * @date 2024-12-10 + */ +public interface ModelManagerMapper { + /** + * 查询模型管理 + * + * @param id 模型管理主键 + * @return 模型管理 + */ + public ModelManagerEntity selectAiModelManagerById(Long id); + + /** + * 查询模型管理列表 + * + * @param aiModelManager 模型管理 + * @return 模型管理集合 + */ + public List selectAiModelManagerList(ModelManagerEntity aiModelManager); + + /** + * 新增模型管理 + * + * @param aiModelManager 模型管理 + * @return 结果 + */ + public int insertAiModelManager(ModelManagerEntity aiModelManager); + + /** + * 修改模型管理 + * + * @param aiModelManager 模型管理 + * @return 结果 + */ + public int updateAiModelManager(ModelManagerEntity aiModelManager); + + /** + * 批量删除模型管理 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteAiModelManagerByIds(Long[] ids); +} diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/ModelManagerServiceImpl.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/ModelManagerServiceImpl.java new file mode 100644 index 0000000..7896fb2 --- /dev/null +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/ModelManagerServiceImpl.java @@ -0,0 +1,108 @@ +package com.bonus.ai.service.Impl; + +import java.util.List; + +import com.bonus.ai.domain.ModelManagerEntity; +import com.bonus.ai.mapper.ModelManagerMapper; +import com.bonus.ai.service.ModelManagerService; +import com.bonus.common.core.utils.DateUtils; +import com.bonus.common.core.web.domain.AjaxResult; +import org.apache.commons.lang3.ObjectUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + + +/** + * 模型管理Service业务层处理 + * + * @author bonus + * @date 2024-12-10 + */ +@Service +public class ModelManagerServiceImpl implements ModelManagerService { + @Resource + private ModelManagerMapper aiModelManagerMapper; + + /** + * 查询模型管理 + * + * @param id 模型管理主键 + * @return 模型管理 + */ + @Override + public AjaxResult selectAiModelManagerById(Long id) { + try { + ModelManagerEntity aiModelManager = aiModelManagerMapper.selectAiModelManagerById(id); + if (ObjectUtils.isEmpty(aiModelManager)) { + return AjaxResult.error(); + } else { + return AjaxResult.success(); + } + } catch (Exception e) { + return AjaxResult.error(); + } + } + + /** + * 查询模型管理列表 + * + * @param aiModelManager 模型管理 + * @return 模型管理 + */ + @Override + public List selectAiModelManagerList(ModelManagerEntity aiModelManager) { + return aiModelManagerMapper.selectAiModelManagerList(aiModelManager); + } + + /** + * 新增模型管理 + * + * @param aiModelManager 模型管理 + * @return 结果 + */ + @Override + public AjaxResult insertAiModelManager(ModelManagerEntity aiModelManager) { + aiModelManager.setCreateTime(DateUtils.getNowDate()); + try { + int rows = aiModelManagerMapper.insertAiModelManager(aiModelManager); + return rows > 0 ? AjaxResult.success() : AjaxResult.error(); + } catch (Exception e) { + return AjaxResult.error(); + } + } + + /** + * 修改模型管理 + * + * @param aiModelManager 模型管理 + * @return 结果 + */ + @Override + public AjaxResult updateAiModelManager(ModelManagerEntity aiModelManager) { + aiModelManager.setUpdateTime(DateUtils.getNowDate()); + try { + int rows = aiModelManagerMapper.updateAiModelManager(aiModelManager); + return rows > 0 ? AjaxResult.success() : AjaxResult.error(); + } catch (Exception e) { + return AjaxResult.error(); + } + } + + /** + * 批量删除模型管理 + * + * @param ids 需要删除的模型管理主键 + * @return 结果 + */ + @Override + public AjaxResult deleteAiModelManagerByIds(Long[] ids) { + try { + int rows = aiModelManagerMapper.deleteAiModelManagerByIds(ids); + return rows > 0 ? AjaxResult.success() : AjaxResult.error(); + } catch (Exception e) { + return AjaxResult.error(); + } + } +} diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/ModelManagerService.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/ModelManagerService.java new file mode 100644 index 0000000..e1cfde1 --- /dev/null +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/ModelManagerService.java @@ -0,0 +1,56 @@ +package com.bonus.ai.service; + +import com.bonus.ai.domain.ModelManagerEntity; +import com.bonus.common.core.web.domain.AjaxResult; + +import java.util.List; + +/** + * 模型管理Service接口 + * + * @author bonus + * @date 2024-12-10 + */ +public interface ModelManagerService +{ + /** + * 查询模型管理 + * + * @param id 模型管理主键 + * @return 模型管理 + */ + public AjaxResult selectAiModelManagerById(Long id); + + /** + * 查询模型管理列表 + * + * @param aiModelManager 模型管理 + * @return 模型管理集合 + */ + public List selectAiModelManagerList(ModelManagerEntity aiModelManager); + + /** + * 新增模型管理 + * + * @param aiModelManager 模型管理 + * @return 结果 + */ + public AjaxResult insertAiModelManager(ModelManagerEntity aiModelManager); + + /** + * 修改模型管理 + * + * @param aiModelManager 模型管理 + * @return 结果 + */ + public AjaxResult updateAiModelManager(ModelManagerEntity aiModelManager); + + /** + * 批量删除模型管理 + * + * @param ids 需要删除的模型管理主键集合 + * @return 结果 + */ + public AjaxResult deleteAiModelManagerByIds(Long[] ids); + +} 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 b86c7cd..7d3cb9a 100644 --- a/bonus-modules/bonus-ai/src/main/resources/mapper/AnnotationTaskMapper.xml +++ b/bonus-modules/bonus-ai/src/main/resources/mapper/AnnotationTaskMapper.xml @@ -240,6 +240,7 @@ adfm.create_time AS createTime, atap.annotation_status AS fileAnnotationStatus, atap.annotation_result AS annotationResult, + atap.audit_failed_reason AS auditFailedReason, aat.task_id FROM ai_basic_file abf LEFT JOIN ai_dataset_file_map adfm ON abf.file_id = adfm.file_id diff --git a/bonus-modules/bonus-ai/src/main/resources/mapper/DatasetMapper.xml b/bonus-modules/bonus-ai/src/main/resources/mapper/DatasetMapper.xml index 8969e5d..c099a6f 100644 --- a/bonus-modules/bonus-ai/src/main/resources/mapper/DatasetMapper.xml +++ b/bonus-modules/bonus-ai/src/main/resources/mapper/DatasetMapper.xml @@ -48,7 +48,8 @@ WHERE adfm.dataset_id = ad.dataset_id) AS annotatedCount, (SELECT COUNT(*) FROM ai_dataset_file_map adfm - WHERE adfm.dataset_id = ad.dataset_id AND adfm.is_annotated = '0') AS notAnnotatedCount + WHERE adfm.dataset_id = ad.dataset_id AND adfm.is_annotated = '0') AS notAnnotatedCount, + ( SELECT adv.version_name FROM ai_dataset_version adv WHERE adv.dataset_id = ad.dataset_id ORDER BY adv.create_time DESC LIMIT 1 ) AS latestVersionName FROM ai_dataset ad diff --git a/bonus-modules/bonus-ai/src/main/resources/mapper/ModelManagerMapper.xml b/bonus-modules/bonus-ai/src/main/resources/mapper/ModelManagerMapper.xml new file mode 100644 index 0000000..8f424b4 --- /dev/null +++ b/bonus-modules/bonus-ai/src/main/resources/mapper/ModelManagerMapper.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + select id, + create_by, + model_name, + model_version, + model_type, + model_frame, + model_path, + model_manual, + remark, + create_time, + update_time, + is_active + from ai_model_manager + + + + + + + + insert into ai_model_manager + + id, + create_by, + model_name, + model_version, + model_type, + model_frame, + model_path, + model_manual, + remark, + create_time, + update_time, + is_active, + + + #{id}, + #{createBy}, + #{modelName}, + #{modelVersion}, + #{modelType}, + #{modelFrame}, + #{modelPath}, + #{modelManual}, + #{remark}, + #{createTime}, + #{updateTime}, + #{isActive}, + + + + + update ai_model_manager + + create_by = #{createBy}, + model_name = #{modelName}, + model_version = #{modelVersion}, + model_type = #{modelType}, + model_frame = #{modelFrame}, + model_path = #{modelPath}, + model_manual = #{modelManual}, + remark = #{remark}, + create_time = #{createTime}, + update_time = #{updateTime}, + is_active = #{isActive}, + + where id = #{id} + + + + delete from ai_model_manager where id in + + #{id} + + + \ No newline at end of file