| @@ -128,6 +128,14 @@ public class DatasetController { | |||||
| return ResponseEntity.ok(this.datasetService.uploadDataset(file, dataset_version_id)); | 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)); | |||||
| } | |||||
| } | } | ||||
| @@ -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)); | |||||
| } | |||||
| /** | /** | ||||
| * 模型下载 | * 模型下载 | ||||
| @@ -81,5 +81,7 @@ public interface DatasetVersionDao { | |||||
| int deleteById(Integer id); | int deleteById(Integer id); | ||||
| List<DatasetVersion> queryByDatasetId(Integer datasetId); | List<DatasetVersion> queryByDatasetId(Integer datasetId); | ||||
| DatasetVersion queryByDatasetVersion(DatasetVersion datasetVersion); | |||||
| } | } | ||||
| @@ -82,5 +82,6 @@ public interface ModelsVersionDao { | |||||
| List<ModelsVersion> queryByModelsId(Integer modelsId); | List<ModelsVersion> queryByModelsId(Integer modelsId); | ||||
| ModelsVersion queryByModelsVersion(ModelsVersion modelsVersion); | |||||
| } | } | ||||
| @@ -1,6 +1,7 @@ | |||||
| package com.ruoyi.platform.service; | package com.ruoyi.platform.service; | ||||
| import com.ruoyi.platform.domain.Dataset; | import com.ruoyi.platform.domain.Dataset; | ||||
| import com.ruoyi.platform.domain.DatasetVersion; | |||||
| import org.springframework.core.io.InputStreamResource; | import org.springframework.core.io.InputStreamResource; | ||||
| import org.springframework.data.domain.Page; | import org.springframework.data.domain.Page; | ||||
| import org.springframework.data.domain.PageRequest; | import org.springframework.data.domain.PageRequest; | ||||
| @@ -67,4 +68,6 @@ public interface DatasetService { | |||||
| ResponseEntity<InputStreamResource> downloadDataset(Integer id); | ResponseEntity<InputStreamResource> downloadDataset(Integer id); | ||||
| String uploadDataset(MultipartFile file, Integer id) throws Exception; | String uploadDataset(MultipartFile file, Integer id) throws Exception; | ||||
| String uploadDatasetPipeline(DatasetVersion datasetVersion); | |||||
| } | } | ||||
| @@ -63,4 +63,6 @@ public interface DatasetVersionService { | |||||
| List<DatasetVersion> queryByDatasetId(Integer datasetId); | List<DatasetVersion> queryByDatasetId(Integer datasetId); | ||||
| DatasetVersion duplicateDatasetVersion(DatasetVersion oldDatasetVersion); | DatasetVersion duplicateDatasetVersion(DatasetVersion oldDatasetVersion); | ||||
| DatasetVersion queryByDatasetVersion(DatasetVersion datasetVersion); | |||||
| } | } | ||||
| @@ -3,6 +3,7 @@ package com.ruoyi.platform.service; | |||||
| import com.ruoyi.platform.domain.Models; | import com.ruoyi.platform.domain.Models; | ||||
| import com.ruoyi.platform.domain.ModelsVersion; | |||||
| import org.springframework.core.io.InputStreamResource; | import org.springframework.core.io.InputStreamResource; | ||||
| import org.springframework.data.domain.Page; | import org.springframework.data.domain.Page; | ||||
| import org.springframework.data.domain.PageRequest; | import org.springframework.data.domain.PageRequest; | ||||
| @@ -64,4 +65,6 @@ public interface ModelsService { | |||||
| ResponseEntity<InputStreamResource> downloadModels(Integer id); | ResponseEntity<InputStreamResource> downloadModels(Integer id); | ||||
| String uploadModels(MultipartFile file, Integer id) throws Exception; | String uploadModels(MultipartFile file, Integer id) throws Exception; | ||||
| String uploadModelsPipeline(ModelsVersion modelsVersion); | |||||
| } | } | ||||
| @@ -63,4 +63,6 @@ public interface ModelsVersionService { | |||||
| List<ModelsVersion> queryByModelsId(Integer modelsId); | List<ModelsVersion> queryByModelsId(Integer modelsId); | ||||
| ModelsVersion duplicateModelsVersion(ModelsVersion oldModelsVersion); | ModelsVersion duplicateModelsVersion(ModelsVersion oldModelsVersion); | ||||
| ModelsVersion queryByModelsVersion(ModelsVersion modelsVersion); | |||||
| } | } | ||||
| @@ -13,6 +13,7 @@ import com.ruoyi.platform.utils.MinioUtil; | |||||
| import com.ruoyi.system.api.model.LoginUser; | import com.ruoyi.system.api.model.LoginUser; | ||||
| import io.minio.MinioClient; | import io.minio.MinioClient; | ||||
| import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
| import org.springframework.beans.BeanUtils; | |||||
| import org.springframework.beans.factory.annotation.Value; | import org.springframework.beans.factory.annotation.Value; | ||||
| import org.springframework.core.io.InputStreamResource; | import org.springframework.core.io.InputStreamResource; | ||||
| import org.springframework.data.domain.Page; | import org.springframework.data.domain.Page; | ||||
| @@ -263,10 +264,40 @@ public class DatasetServiceImpl implements DatasetService { | |||||
| datasetVersionDao.update(datasetVersionToUse); | datasetVersionDao.update(datasetVersionToUse); | ||||
| return "数据集成功上传到: " + objectName; | return "数据集成功上传到: " + objectName; | ||||
| } catch (Exception e) { | } 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) { | private String extractFileName(String urlStr) { | ||||
| @@ -140,4 +140,9 @@ public class DatasetVersionServiceImpl implements DatasetVersionService { | |||||
| return this.insert(newDatasetVersion); | return this.insert(newDatasetVersion); | ||||
| } | } | ||||
| @Override | |||||
| public DatasetVersion queryByDatasetVersion(DatasetVersion datasetVersion) { | |||||
| return datasetVersionDao.queryByDatasetVersion(datasetVersion); | |||||
| } | |||||
| } | } | ||||
| @@ -13,6 +13,7 @@ import com.ruoyi.platform.utils.MinioUtil; | |||||
| import com.ruoyi.system.api.model.LoginUser; | import com.ruoyi.system.api.model.LoginUser; | ||||
| import io.minio.MinioClient; | import io.minio.MinioClient; | ||||
| import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
| import org.springframework.beans.BeanUtils; | |||||
| import org.springframework.beans.factory.annotation.Value; | import org.springframework.beans.factory.annotation.Value; | ||||
| import org.springframework.core.io.InputStreamResource; | import org.springframework.core.io.InputStreamResource; | ||||
| import org.springframework.data.domain.Page; | import org.springframework.data.domain.Page; | ||||
| @@ -254,9 +255,42 @@ public class ModelsServiceImpl implements ModelsService { | |||||
| modelsVersionDao.update(modelsVersionToUse); | modelsVersionDao.update(modelsVersionToUse); | ||||
| return "模型成功上传到: " + objectName; | return "模型成功上传到: " + objectName; | ||||
| } catch (Exception e) { | } 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) { | private String extractFileName(String urlStr) { | ||||
| return urlStr.substring(urlStr.lastIndexOf('/') + 1); | return urlStr.substring(urlStr.lastIndexOf('/') + 1); | ||||
| } | } | ||||
| @@ -145,6 +145,8 @@ public class ModelsVersionServiceImpl implements ModelsVersionService { | |||||
| return this.insert(newModelsVersion); | return this.insert(newModelsVersion); | ||||
| } | } | ||||
| public ModelsVersion queryByModelsVersion(ModelsVersion modelsVersion){ | |||||
| return this.modelsVersionDao.queryByModelsVersion(modelsVersion); | |||||
| } | |||||
| } | } | ||||
| @@ -34,6 +34,21 @@ | |||||
| where dataset_id = #{datasetId} and state = 1 | where dataset_id = #{datasetId} and state = 1 | ||||
| </select> | </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 id="queryAllByLimit" resultMap="DatasetVersionMap"> | ||||
| select | select | ||||
| @@ -30,6 +30,22 @@ | |||||
| where id = #{id} and state = 1 | where id = #{id} and state = 1 | ||||
| </select> | </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 id="queryAllByLimit" resultMap="ModelsVersionMap"> | ||||
| select | select | ||||