Browse Source

feature:新增工作空间AI资产计数接口

pull/44/head
西大锐 1 year ago
parent
commit
a6e13f7895
5 changed files with 63 additions and 11 deletions
  1. +9
    -4
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/workspace/WorkspaceController.java
  2. +9
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ExperimentIns.java
  3. +1
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/WorkspaceService.java
  4. +1
    -3
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentInsServiceImpl.java
  5. +43
    -4
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/WorkspaceServiceImpl.java

+ 9
- 4
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/workspace/WorkspaceController.java View File

@@ -7,10 +7,7 @@ import com.ruoyi.platform.service.JupyterService;
import com.ruoyi.platform.service.WorkspaceService; import com.ruoyi.platform.service.WorkspaceService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;


import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Map; import java.util.Map;
@@ -28,4 +25,12 @@ public class WorkspaceController extends BaseController {
public GenericsAjaxResult<Map<String, Object>> getOverview() { public GenericsAjaxResult<Map<String, Object>> getOverview() {
return genericsSuccess(this.workspaceService.getOverview()); return genericsSuccess(this.workspaceService.getOverview());
} }

@GetMapping("/assetCount")
@ApiOperation("得到AI资产计数")
public GenericsAjaxResult<Map<String, Integer>> getAssetCount(@RequestParam(value = "isPublic",
defaultValue = "true") Boolean isPublic) {
return genericsSuccess(this.workspaceService.getAssetCount(isPublic));
}

} }

+ 9
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ExperimentIns.java View File

@@ -71,6 +71,11 @@ public class ExperimentIns implements Serializable {
private Integer state; private Integer state;





@ApiModelProperty(value = "实验实例对应的流水线ID")
private Long workflowId;


public ExperimentIns() { public ExperimentIns() {
} }


@@ -201,5 +206,9 @@ public class ExperimentIns implements Serializable {
this.state = state; this.state = state;
} }


public Long getWorkflowId() {return workflowId;}

public void setWorkflowId(Long workflowId) {this.workflowId = workflowId;}

} }



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

@@ -20,4 +20,5 @@ public interface WorkspaceService {
Map<String, Object> getOverview(); Map<String, Object> getOverview();




Map<String, Integer> getAssetCount(Boolean isPublic);
} }

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

@@ -543,7 +543,7 @@ public class ExperimentInsServiceImpl implements ExperimentInsService {


@Override @Override
public Map<String, Long> countByStatus() { public Map<String, Long> countByStatus() {
// 创建一个用于存储状态计数的映射
// 创建一个用于存储状态计数的map
Map<String, Long> statusCountMap = new HashMap<>(); Map<String, Long> statusCountMap = new HashMap<>();


// 遍历枚举中的所有状态 // 遍历枚举中的所有状态
@@ -571,8 +571,6 @@ public class ExperimentInsServiceImpl implements ExperimentInsService {
//如果跟node_status里面不一样,就要去更新node_status的信息 //如果跟node_status里面不一样,就要去更新node_status的信息
String nodesStatus = ins.getNodesStatus(); String nodesStatus = ins.getNodesStatus();
Map<String, Object> nodeMap = JsonUtils.jsonToMap(nodesStatus); Map<String, Object> nodeMap = JsonUtils.jsonToMap(nodesStatus);


String keyStartsWithWorkflow = nodeMap.keySet().stream() String keyStartsWithWorkflow = nodeMap.keySet().stream()
.filter(key -> key.startsWith("workflow-")) .filter(key -> key.startsWith("workflow-"))
.findFirst() .findFirst()


+ 43
- 4
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/WorkspaceServiceImpl.java View File

@@ -1,12 +1,13 @@
package com.ruoyi.platform.service.impl; package com.ruoyi.platform.service.impl;


import com.ruoyi.platform.domain.ExperimentIns;
import com.ruoyi.platform.domain.*;
import com.ruoyi.platform.mapper.*; import com.ruoyi.platform.mapper.*;
import com.ruoyi.platform.service.ExperimentInsService; import com.ruoyi.platform.service.ExperimentInsService;
import com.ruoyi.platform.service.ModelsService; import com.ruoyi.platform.service.ModelsService;
import com.ruoyi.platform.service.WorkflowService; import com.ruoyi.platform.service.WorkflowService;
import com.ruoyi.platform.service.WorkspaceService; import com.ruoyi.platform.service.WorkspaceService;
import lombok.val; import lombok.val;
import org.checkerframework.checker.units.qual.C;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;


import javax.annotation.Resource; import javax.annotation.Resource;
@@ -58,7 +59,7 @@ public class WorkspaceServiceImpl implements WorkspaceService {


// 获取运行中实验实例数量 // 获取运行中实验实例数量
List<ExperimentIns> experimentInsList = experimentInsService.queryByExperimentIsNotTerminated(); List<ExperimentIns> experimentInsList = experimentInsService.queryByExperimentIsNotTerminated();
if (experimentInsList!=null&&!experimentInsList.isEmpty()) {
if (experimentInsList!=null && !experimentInsList.isEmpty()) {
Integer experimentInsCount = experimentInsList.size(); Integer experimentInsCount = experimentInsList.size();
resMap.put("runningExperimentInsCount", experimentInsCount); resMap.put("runningExperimentInsCount", experimentInsCount);
}else{ }else{
@@ -67,12 +68,50 @@ public class WorkspaceServiceImpl implements WorkspaceService {
//得到最近的三条实例记录,放进返回map //得到最近的三条实例记录,放进返回map
List<ExperimentIns> latestExperimentInsList = experimentInsDao.getLatestInsList(); List<ExperimentIns> latestExperimentInsList = experimentInsDao.getLatestInsList();
if (latestExperimentInsList != null && !latestExperimentInsList.isEmpty()) { if (latestExperimentInsList != null && !latestExperimentInsList.isEmpty()) {
for (ExperimentIns experimentIns : latestExperimentInsList){
Integer experimentId = experimentIns.getExperimentId();
Experiment experiment = this.experimentDao.queryById(experimentId);
//拿到对应的流水线id
Long correspondingWorkflowId = experiment.getWorkflowId();
experimentIns.setWorkflowId(correspondingWorkflowId);
}
resMap.put("latestExperimentInsList", latestExperimentInsList); resMap.put("latestExperimentInsList", latestExperimentInsList);
} }

Map<String, Long> statusMap = experimentInsService.countByStatus(); Map<String, Long> statusMap = experimentInsService.countByStatus();
resMap.put("experimentInsStatus", statusMap); resMap.put("experimentInsStatus", statusMap);

return resMap; return resMap;
} }

@Override
public Map<String, Integer> getAssetCount(Boolean isPublic) {
Map<String,Integer> assetCountMap = new HashMap<String, Integer>();
int availableRange = isPublic ? 1 : 0;
//统计数据集数量
Dataset dataset = new Dataset();
dataset.setAvailableRange(availableRange);
Integer datasetCount = (int) this.datasetDao.count(dataset);
assetCountMap.put("dataset", datasetCount);
//统计模型数量
Models models = new Models();
models.setAvailableRange(availableRange);
Integer modelCount = (int) this.modelsDao.count(models);
assetCountMap.put("model", modelCount);
//统计镜像数量
Image image = new Image();
image.setImageType(availableRange);
Integer imageCount = (int) this.imageDao.count(image);
assetCountMap.put("image", imageCount);
//统计组件数量
Component component = new Component();
Integer componentCount = (int) this.componentDao.count(component);
assetCountMap.put("component", componentCount);
//统计流水线数量
Workflow workflow = new Workflow();
Integer workflowCount = (int) this.workflowDao.count(workflow);
assetCountMap.put("workflow", workflowCount);

return assetCountMap;
}


} }

Loading…
Cancel
Save