diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelDependency1Dao.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelDependency1Dao.java index 22c4559e..c7367379 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelDependency1Dao.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelDependency1Dao.java @@ -9,8 +9,12 @@ public interface ModelDependency1Dao { int insert(ModelDependency1 modelDependency1); + int updateState(@Param("repoId") Integer repoId, @Param("identifier") String identifier, @Param("version") String version, @Param("state") Integer state); + List queryModelDependency(@Param("modelName") String modelName, @Param("repoId") Integer repoId, @Param("owner") String owner); + ModelDependency1 getBuildingModel(@Param("repoId") Integer repoId, @Param("identifier") String identifier, @Param("version") String version); + ModelDependency1 queryByRepoAndVersion(@Param("repoId") Integer repoId, @Param("identifier") String identifier, @Param("version") String version); List queryByParentModel(@Param("parentModel") String parentModel); diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentServiceImpl.java index 5e171f51..293a4e10 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentServiceImpl.java @@ -3,6 +3,7 @@ package com.ruoyi.platform.service.impl; import com.alibaba.fastjson2.JSON; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.platform.annotations.CheckDuplicate; +import com.ruoyi.platform.constant.Constant; import com.ruoyi.platform.domain.*; import com.ruoyi.platform.domain.dependencydomain.ProjectDepency; import com.ruoyi.platform.domain.dependencydomain.TrainTaskDepency; @@ -599,6 +600,7 @@ public class ExperimentServiceImpl implements ExperimentService { modelMetaVo.setName((String) targetModel.get("model_name")); modelMetaVo.setVersion((String) targetModel.get("model_version")); modelMetaVo.setOwner(gitLinkUsername); + modelDependency.setModelName((String) targetModel.get("model_name")); List versionVos = new ArrayList<>(); for (Map outputFile : outputList) { @@ -615,17 +617,20 @@ public class ExperimentServiceImpl implements ExperimentService { } modelMetaVo.setModelVersionVos(versionVos); } - modelsService.newCreateVersion(modelMetaVo); + String meta = JSON.toJSONString(modelMetaVo); + modelDependency.setMeta(meta); + modelDependency.setOwner(gitLinkUsername); + modelDependency.setState(Constant.State_building); + modelDependency1Dao.insert(modelDependency); } } else { String meta = JSON.toJSONString(modelMetaVo); modelDependency.setMeta(meta); modelDependency.setOwner(gitLinkUsername); + modelDependency.setState(Constant.State_building); modelDependency1Dao.insert(modelDependency); } - } - } /** diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java index 7f94f7ca..95dc35c2 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java @@ -684,7 +684,6 @@ public class ModelsServiceImpl implements ModelsService { if (oldModelDependencys.stream().anyMatch(oldModelDependency -> oldModelDependency.getVersion().equals(modelsVo.getVersion()))) { throw new RuntimeException("模型版本已存在,请勿重复创建"); } - //新建版本 String branchName = modelsVo.getVersion(); String owner = (String) userInfo.get("login"); @@ -753,15 +752,21 @@ public class ModelsServiceImpl implements ModelsService { Map params = modelMetaVo.getParams(); YamlUtils.generateYamlFile(params, rootPath, "params"); - //保存模型依赖 - modelDependency.setRepoId(modelsVo.getId()); - modelDependency.setIdentifier(repositoryName); - modelDependency.setModelName(modelsVo.getName()); - modelDependency.setVersion(modelsVo.getVersion()); - modelDependency.setParentModel(modelsVo.getParentModel()); - modelDependency.setOwner(gitLinkUsername); - modelDependency.setMeta(meta); - modelDependency1Dao.insert(modelDependency); + ModelDependency1 buildingModel = modelDependency1Dao.getBuildingModel(modelsVo.getId(), modelsVo.getIdentifier(), modelsVo.getVersion()); + if (buildingModel != null) { + //更新模型依赖 + modelDependency1Dao.updateState(modelsVo.getId(), modelsVo.getIdentifier(), modelsVo.getVersion(), Constant.State_valid); + } else { + //保存模型依赖 + modelDependency.setRepoId(modelsVo.getId()); + modelDependency.setIdentifier(repositoryName); + modelDependency.setModelName(modelsVo.getName()); + modelDependency.setVersion(modelsVo.getVersion()); + modelDependency.setParentModel(modelsVo.getParentModel()); + modelDependency.setOwner(gitLinkUsername); + modelDependency.setMeta(meta); + modelDependency1Dao.insert(modelDependency); + } // 配置远程S3地址 String s3Path = "management-platform-files/" + ci4sUsername + "/model/" + modelsVo.getId() + "/" + repositoryName + "/" + branchName; diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelDependency1DaoMapper.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelDependency1DaoMapper.xml index 8c68ca2d..031a2d73 100644 --- a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelDependency1DaoMapper.xml +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelDependency1DaoMapper.xml @@ -40,6 +40,15 @@ and state = 1 + + update model_dependency1 set state = 0 @@ -54,4 +63,13 @@ set parent_model = null where JSON_CONTAINS(parent_model, #{parentModel}) + + + update model_dependency1 + set state = 1 + where repo_id = #{repoId} + and identifier = #{identifier} + and version = #{version} + and state = 2 + \ No newline at end of file