Browse Source

新增流水线上传数据集模型方法

tags/v20240126
fans 2 years ago
parent
commit
6e3d4c9070
14 changed files with 137 additions and 4 deletions
  1. +9
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/DatasetController.java
  2. +9
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/ModelsController.java
  3. +2
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/DatasetVersionDao.java
  4. +1
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelsVersionDao.java
  5. +3
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DatasetService.java
  6. +2
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DatasetVersionService.java
  7. +3
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java
  8. +2
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsVersionService.java
  9. +32
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetServiceImpl.java
  10. +5
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetVersionServiceImpl.java
  11. +35
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java
  12. +3
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsVersionServiceImpl.java
  13. +15
    -0
      ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/DatasetVersionDaoMapper.xml
  14. +16
    -0
      ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelsVersionDaoMapper.xml

+ 9
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/DatasetController.java View File

@@ -128,6 +128,14 @@ public class DatasetController {
return ResponseEntity.ok(this.datasetService.uploadDataset(file, dataset_version_id));
}


/**
* 从流水线上传数据集,不会给二进制文件,这边只存路径
* @return 上传结果
*/
@PostMapping("/upload_pipeline")
@ApiOperation(value = "从流水线上传数据集", notes = "并将信息存入数据库。")
public ResponseEntity<String> uploadDatasetPipeline(@RequestBody DatasetVersion datasetVersion) {
return ResponseEntity.ok(this.datasetService.uploadDatasetPipeline(datasetVersion));
}
}


+ 9
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/ModelsController.java View File

@@ -111,6 +111,15 @@ public class ModelsController {

}

/**
* 从流水线上传模型,不会给二进制文件,这边只存路径
* @return 上传结果
*/
@PostMapping("/upload_pipeline")
@ApiOperation(value = "从流水线上传模型", notes = "并将信息存入数据库。")
public ResponseEntity<String> uploadModelsPipeline(@RequestBody ModelsVersion modelsVersion) throws Exception {
return ResponseEntity.ok(this.modelsService.uploadModelsPipeline(modelsVersion));
}

/**
* 模型下载


+ 2
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/DatasetVersionDao.java View File

@@ -81,5 +81,7 @@ public interface DatasetVersionDao {
int deleteById(Integer id);

List<DatasetVersion> queryByDatasetId(Integer datasetId);

DatasetVersion queryByDatasetVersion(DatasetVersion datasetVersion);
}


+ 1
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelsVersionDao.java View File

@@ -82,5 +82,6 @@ public interface ModelsVersionDao {

List<ModelsVersion> queryByModelsId(Integer modelsId);

ModelsVersion queryByModelsVersion(ModelsVersion modelsVersion);
}


+ 3
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DatasetService.java View File

@@ -1,6 +1,7 @@
package com.ruoyi.platform.service;

import com.ruoyi.platform.domain.Dataset;
import com.ruoyi.platform.domain.DatasetVersion;
import org.springframework.core.io.InputStreamResource;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
@@ -67,4 +68,6 @@ public interface DatasetService {
ResponseEntity<InputStreamResource> downloadDataset(Integer id);

String uploadDataset(MultipartFile file, Integer id) throws Exception;

String uploadDatasetPipeline(DatasetVersion datasetVersion);
}

+ 2
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DatasetVersionService.java View File

@@ -63,4 +63,6 @@ public interface DatasetVersionService {
List<DatasetVersion> queryByDatasetId(Integer datasetId);

DatasetVersion duplicateDatasetVersion(DatasetVersion oldDatasetVersion);

DatasetVersion queryByDatasetVersion(DatasetVersion datasetVersion);
}

+ 3
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java View File

@@ -3,6 +3,7 @@ package com.ruoyi.platform.service;


import com.ruoyi.platform.domain.Models;
import com.ruoyi.platform.domain.ModelsVersion;
import org.springframework.core.io.InputStreamResource;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
@@ -64,4 +65,6 @@ public interface ModelsService {
ResponseEntity<InputStreamResource> downloadModels(Integer id);

String uploadModels(MultipartFile file, Integer id) throws Exception;

String uploadModelsPipeline(ModelsVersion modelsVersion);
}

+ 2
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsVersionService.java View File

@@ -63,4 +63,6 @@ public interface ModelsVersionService {
List<ModelsVersion> queryByModelsId(Integer modelsId);

ModelsVersion duplicateModelsVersion(ModelsVersion oldModelsVersion);

ModelsVersion queryByModelsVersion(ModelsVersion modelsVersion);
}

+ 32
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetServiceImpl.java View File

@@ -13,6 +13,7 @@ import com.ruoyi.platform.utils.MinioUtil;
import com.ruoyi.system.api.model.LoginUser;
import io.minio.MinioClient;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.InputStreamResource;
import org.springframework.data.domain.Page;
@@ -263,10 +264,40 @@ public class DatasetServiceImpl implements DatasetService {
datasetVersionDao.update(datasetVersionToUse);
return "数据集成功上传到: " + objectName;
} catch (Exception e) {
throw new Exception("上传到MinIO失败: " + e.getMessage(), e);
throw new Exception("上传到数据集失败: " + e.getMessage(), e);
}
}

@Override
public String uploadDatasetPipeline(DatasetVersion datasetVersion) {
String username = SecurityUtils.getLoginUser().getUsername();
// 检查是否存在
DatasetVersion version = datasetVersionService.queryByDatasetVersion(datasetVersion);
Dataset dataset = this.queryById(datasetVersion.getDatasetId());
String url = "";
if (version == null) {
//插表,因为这里是一次直接插表所以这里定掉date,然后用DAO插入
Date date = new Date();
String timestamp = new SimpleDateFormat("yyyyMMdd-HHmmss").format(date);
url = "datasets/" + username + "/" + dataset.getName() + "-" + timestamp + "/" + datasetVersion.getVersion() + "/" + datasetVersion.getFileName();
datasetVersion.setUrl(url);
datasetVersion.setCreateBy(username);
datasetVersion.setUpdateBy(username);
datasetVersion.setCreateTime(date);
datasetVersion.setUpdateTime(date);
datasetVersion.setState(1);
datasetVersionDao.insert(datasetVersion);
}else {
//改表
BeanUtils.copyProperties(datasetVersion, version);
Date createTime = version.getCreateTime();
String timestamp = new SimpleDateFormat("yyyyMMdd-HHmmss").format(createTime);
url = "datasets/" + username + "/" + dataset.getName() + "-" + timestamp + "/" + datasetVersion.getVersion() + "/" + datasetVersion.getFileName();
version.setUrl(url);
datasetVersionService.update(version);
}
return "数据集成功上传到: " + url;
}


private String extractFileName(String urlStr) {


+ 5
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetVersionServiceImpl.java View File

@@ -140,4 +140,9 @@ public class DatasetVersionServiceImpl implements DatasetVersionService {
return this.insert(newDatasetVersion);
}

@Override
public DatasetVersion queryByDatasetVersion(DatasetVersion datasetVersion) {
return datasetVersionDao.queryByDatasetVersion(datasetVersion);
}

}

+ 35
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java View File

@@ -13,6 +13,7 @@ import com.ruoyi.platform.utils.MinioUtil;
import com.ruoyi.system.api.model.LoginUser;
import io.minio.MinioClient;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.InputStreamResource;
import org.springframework.data.domain.Page;
@@ -254,9 +255,42 @@ public class ModelsServiceImpl implements ModelsService {
modelsVersionDao.update(modelsVersionToUse);
return "模型成功上传到: " + objectName;
} catch (Exception e) {
throw new Exception("上传到MinIO失败: " + e.getMessage(), e);
throw new Exception("上传到模型失败: " + e.getMessage(), e);
}
}


@Override
public String uploadModelsPipeline(ModelsVersion modelsVersion) {
String username = SecurityUtils.getLoginUser().getUsername();
// 检查是否存在
ModelsVersion version = modelsVersionService.queryByModelsVersion(modelsVersion);
Models models = this.queryById(modelsVersion.getModelsId());
String url = "";
if (version == null) {
//插表,因为这里是一次直接插表所以这里定掉date,然后用DAO插入
Date date = new Date();
String timestamp = new SimpleDateFormat("yyyyMMdd-HHmmss").format(date);
url = "models/" + username + "/" + models.getName() + "-" + timestamp + "/" + modelsVersion.getVersion() + "/" + modelsVersion.getFileName();
modelsVersion.setUrl(url);
modelsVersion.setCreateBy(username);
modelsVersion.setUpdateBy(username);
modelsVersion.setCreateTime(date);
modelsVersion.setUpdateTime(date);
modelsVersion.setState(1);
modelsVersionDao.insert(modelsVersion);
}else {
//改表
BeanUtils.copyProperties(modelsVersion, version);
Date createTime = version.getCreateTime();
String timestamp = new SimpleDateFormat("yyyyMMdd-HHmmss").format(createTime);
url = "models/" + username + "/" + models.getName() + "-" + timestamp + "/" + modelsVersion.getVersion() + "/" + modelsVersion.getFileName();
version.setUrl(url);
modelsVersionService.update(version);
}
return "模型成功上传到: " + url;
}

private String extractFileName(String urlStr) {
return urlStr.substring(urlStr.lastIndexOf('/') + 1);
}


+ 3
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsVersionServiceImpl.java View File

@@ -145,6 +145,8 @@ public class ModelsVersionServiceImpl implements ModelsVersionService {
return this.insert(newModelsVersion);
}


public ModelsVersion queryByModelsVersion(ModelsVersion modelsVersion){
return this.modelsVersionDao.queryByModelsVersion(modelsVersion);
}

}

+ 15
- 0
ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/DatasetVersionDaoMapper.xml View File

@@ -34,6 +34,21 @@
where dataset_id = #{datasetId} and state = 1
</select>

<select id="queryByDatasetVersion" resultMap="DatasetVersionMap">
select
id,dataset_id,version,url,file_name,file_size,available_cluster,status,create_by,create_time,update_by,update_time,state
from dataset_version
<where>
state = 1
<if test="datasetVersion.datasetId != null">
and dataset_id = #{datasetVersion.datasetId}
</if>
<if test="datasetVersion.version != null and datasetVersion.version != ''">
and version = #{datasetVersion.version}
</if>
</where>
limit 1
</select>
<!--查询指定行数据-->
<select id="queryAllByLimit" resultMap="DatasetVersionMap">
select


+ 16
- 0
ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelsVersionDaoMapper.xml View File

@@ -30,6 +30,22 @@
where id = #{id} and state = 1
</select>

<select id="queryByModelsVersion" resultMap="ModelsVersionMap">
select
id,models_id,version,url,file_name,file_size,status,create_by,create_time,update_by,update_time,state
from models_version
<where>
state = 1
<if test="modelsVersion.modelsId != null">
and models_id = #{modelsVersion.modelsId}
</if>
<if test="modelsVersion.version != null and modelsVersion.version != ''">
and version = #{modelsVersion.version}
</if>
</where>
limit 1
</select>

<!--查询指定行数据-->
<select id="queryAllByLimit" resultMap="ModelsVersionMap">
select


Loading…
Cancel
Save