|
@@ -37,8 +37,7 @@ import java.util.Map;
|
|
|
import static io.renren.common.utils.ShiroUtils.getUserId;
|
|
|
|
|
|
/**
|
|
|
- * @Author: Ivan Q
|
|
|
- * @Date: 2021/6/10 20:56
|
|
|
+ * @Author: Zishang
|
|
|
*/
|
|
|
|
|
|
@RestController
|
|
@@ -84,7 +83,7 @@ public class algsController{
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 信息
|
|
|
+ * 信息,根据版本号列出文件信息
|
|
|
*/
|
|
|
@GetMapping("/info/{algsId}")
|
|
|
@RequiresPermissions("algs:info")
|
|
@@ -112,7 +111,7 @@ public class algsController{
|
|
|
alg.setRemark(request.getParameter("remark"));
|
|
|
alg.setCategoryId(Long.parseLong(request.getParameter("categoryId")));
|
|
|
alg.setUid(Long.parseLong(request.getParameter("uid")));
|
|
|
- alg.setFrameId(Long.parseLong(request.getParameter("frameId")));
|
|
|
+ alg.setFrameId(Long.parseLong(request.getParameter("frameId")));//镜像的id
|
|
|
alg.setNumber(Long.parseLong(request.getParameter("number")));
|
|
|
|
|
|
ValidatorUtils.validateEntity(alg, AddGroup.class);
|
|
@@ -130,11 +129,14 @@ public class algsController{
|
|
|
|
|
|
Long algId=algsService.selectByAlgName(alg.getAlgorithmName()).getAlgorithmId();
|
|
|
alg.setAlgorithmId(algId);
|
|
|
+ //获取上传的文件列表
|
|
|
List<MultipartFile> files=request.getFiles("file");
|
|
|
//若是智能算法,则调用上传智能算法方法,-1为传统算法,其他为智能算法
|
|
|
if(alg.getFrameId()!=-1){
|
|
|
+ //初始化数据集列表
|
|
|
List<DataSet> dataSets = new ArrayList<>();
|
|
|
List<DataSetDy> dataSetsDy = new ArrayList<>();
|
|
|
+ //从请求参数中获取数据集和动态数据集的信息。如果这些参数不为空,将其解析为相应的对象列表。
|
|
|
if (StringUtils.isNotEmpty(request.getParameter("dataSets"))) {
|
|
|
dataSets = JSON.parseArray(request.getParameter("dataSets"), DataSet.class);//如果有选择数据集,则将数据集从minio中拷贝到相应位置
|
|
|
}
|
|
@@ -154,6 +156,7 @@ public class algsController{
|
|
|
if (StringUtils.isNotEmpty(request.getParameter("dataSetsDy"))) {
|
|
|
dataSetsDy = JSON.parseArray(request.getParameter("dataSetsDy"), DataSetDy.class);
|
|
|
}
|
|
|
+ //从请求参数中获取算法结果名称、结果位置、参数名称和参数类型的信息。
|
|
|
String algResultNameString=request.getParameter("algResultNames");
|
|
|
String algResultLocationString=request.getParameter("algResultLocations");
|
|
|
String algParameterNameString=request.getParameter("algParameterName");
|
|
@@ -174,29 +177,33 @@ public class algsController{
|
|
|
* @param files 算法文件
|
|
|
*/
|
|
|
public void saveIntelligentAlg(Algorithm alg,List<DataSet> dataSets, List<DataSetDy> dataSetsDy,String algModelsString,String algTemplatesString,List<MultipartFile> files) throws IOException, InvalidKeyException, NoSuchAlgorithmException, InsufficientDataException, InvalidResponseException, ErrorResponseException, XmlParserException, InvalidBucketNameException, InternalException {
|
|
|
- Long algId=alg.getAlgorithmId();
|
|
|
- Version version=new Version();
|
|
|
+ Long algId=alg.getAlgorithmId();//获取算法ID
|
|
|
+ Version version=new Version();//创建版本信息
|
|
|
version.setAlgorithmId(algId);
|
|
|
+ System.out.println(versionService.getMaxId());
|
|
|
version.setVersionName(alg.getAlgorithmName()+"#"+ (versionService.getMaxId() + 1));
|
|
|
version.setCreationTime(new Date());
|
|
|
version.setVersionStatus((byte) 0);
|
|
|
version.setDeleteStatus((byte) 0);
|
|
|
versionService.save(version);
|
|
|
+ //上传算法文件
|
|
|
for(MultipartFile file:files){
|
|
|
if(file.isEmpty()) break;
|
|
|
MinIoUtils.uploadMultipartFile(file,"algorithm","alg"+algId+"/version"+versionService.getMaxId()+"/"+file.getOriginalFilename());
|
|
|
}
|
|
|
- //将数据集上传
|
|
|
+ //将数据集上传,将静态数据集从MinIO中复制到相应的位置
|
|
|
if (!dataSets.isEmpty()) {
|
|
|
for (DataSet dataSet : dataSets) {
|
|
|
CategoryEntity category = categoryService.getById(dataSet.getCategoryId());
|
|
|
if (DataSetType.DIR_DATASET.getClassificationName().equals(category.getCategoryName())) {
|
|
|
MinIoUtils.copyFolder("algorithm", "alg"+algId+"/", DataSetType.STATIC_DATASET.getBucketName(), dataSet.getDatasetName() + "/");
|
|
|
+ System.out.println(1111111);
|
|
|
} else {
|
|
|
MinIoUtils.copyFile("algorithm",
|
|
|
- "alg"+algId+"/version"+versionService.getMaxId()+"/"+ dataSet.getDatasetName()+".csv",
|
|
|
+ "alg"+algId+"/version"+versionService.getMaxId()+"/"+ dataSet.getDatasetName(),
|
|
|
DataSetType.STATIC_DATASET.getBucketName(),
|
|
|
- dataSet.getDatasetName()+".csv");
|
|
|
+ dataSet.getDatasetName());
|
|
|
+ System.out.println(2222222);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -216,6 +223,7 @@ public class algsController{
|
|
|
// }
|
|
|
// }
|
|
|
//MinIoUtils.copyFile("algorithm","alg"+algId+"/version"+versionService.getMaxId()+"/fea_data.csv","dataset","fea_data.csv");
|
|
|
+ //处理算法库文件
|
|
|
if(algModelsString.length()!=0){
|
|
|
String[] algModels=algModelsString.split(",");
|
|
|
for(String algModelId:algModels){
|
|
@@ -227,6 +235,7 @@ public class algsController{
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ //处理算法模板文件
|
|
|
if(algTemplatesString.length()!=0){
|
|
|
String[] algTemplates=algTemplatesString.split(",");
|
|
|
for(String algTemplateId:algTemplates){
|
|
@@ -376,6 +385,9 @@ public class algsController{
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 列出算法文件同一目录下的所有文件,包括数据集文件
|
|
|
+ */
|
|
|
@GetMapping("/listFiles")
|
|
|
public R listFiles(String algId) throws IOException, InvalidKeyException, NoSuchAlgorithmException, InsufficientDataException, InvalidResponseException, ErrorResponseException, XmlParserException, InvalidBucketNameException, InternalException {
|
|
|
|