소스 검색

项目详情任务饼图

LingxinMeng 2 년 전
부모
커밋
8a9f2d8459

+ 3 - 3
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/scheduler/ProjectScheduler.java

@@ -3,7 +3,7 @@ package com.css.simulation.resource.scheduler.scheduler;
 import api.common.pojo.dto.ProjectMessageDTO;
 import api.common.util.CollectionUtil;
 import api.common.util.JsonUtil;
-import com.css.simulation.resource.scheduler.consumer.ProjectConsumer;
+import com.css.simulation.resource.scheduler.service.ProjectService;
 import com.css.simulation.resource.scheduler.util.ProjectUtil;
 import com.css.simulation.resource.scheduler.util.RedisUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -20,7 +20,7 @@ public class ProjectScheduler {
     @Resource
     private StringRedisTemplate stringRedisTemplate;
     @Resource
-    private ProjectConsumer projectConsumer;
+    private ProjectService projectService;
     @Resource
     private ProjectUtil projectUtil;
 
@@ -34,7 +34,7 @@ public class ProjectScheduler {
             log.info("尝试启动等待中的项目:" + projectMessageKeys);
             for (String projectMessageKey : projectMessageKeys) {
                 final String projectMessage = RedisUtil.getStringByKey(stringRedisTemplate, projectMessageKey);
-                projectConsumer.cacheProject(JsonUtil.jsonToBean(projectMessage, ProjectMessageDTO.class));
+                projectService.cacheProject(JsonUtil.jsonToBean(projectMessage, ProjectMessageDTO.class));
             }
         }
     }

+ 105 - 49
simulation-resource-server/src/main/java/com/css/simulation/resource/project/service/impl/SimulationProjectServiceImpl.java

@@ -315,6 +315,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
     }
 
+    @SneakyThrows
     private void projectRunToKafka(SimulationManualProjectPO po) {
         log.info("准备发送项目消息:" + po);
         SimulationManualProjectKafkaParam kafkaParam = new SimulationManualProjectKafkaParam();
@@ -342,6 +343,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         }, failure -> log.error("发送消息失败:" + failure.getMessage()));
     }
 
+    @SneakyThrows
     private void projectStopToKafka(SimulationManualProjectPO po) {
         SimulationManualProjectKafkaParam kafkaParam = new SimulationManualProjectKafkaParam();
         kafkaParam.setProjectId(po.getId());
@@ -467,29 +469,84 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
     @SneakyThrows
     public ResponseBodyVO<ProjectDetailsVO> selectProjectDetailsByIdForScheduler(SimulationManualProjectParam param) {
 
-        ProjectDetailsVO projectDetailsVo = null;
+        ProjectDetailsVO projectDetailsVO = null;
         if (DictConstants.PROJECT_TYPE_MANUAL.equals(param.getProjectType())) { // 手动运行任务
             SimulationManualProjectPO po = simulationProjectMapper.selectProjectById(param);
-            projectDetailsVo = JsonUtil.jsonToBean(po.getDetails(), ProjectDetailsVO.class);
-            projectDetailsVo.setEvaluationLevel(getDictName(DictConstants.EVALUATION_LEVEL, po.getEvaluationLevel()));
-            projectDetailsVo.setStartTime(getRqStr(po.getStartTime(), 1));
-            projectDetailsVo.setFinishTime(getRqStr(po.getFinishTime(), 1));
-            projectDetailsVo.setNowRunState(po.getNowRunState());
-            projectDetailsVo.setNowRunStateName(getDictName(DictConstants.PROJECT_RUN_STATE, po.getNowRunState()));
+            projectDetailsVO = JsonUtil.jsonToBean(po.getDetails(), ProjectDetailsVO.class);
+            projectDetailsVO.setEvaluationLevel(getDictName(DictConstants.EVALUATION_LEVEL, po.getEvaluationLevel()));
+            projectDetailsVO.setStartTime(getRqStr(po.getStartTime(), 1));
+            projectDetailsVO.setFinishTime(getRqStr(po.getFinishTime(), 1));
+            projectDetailsVO.setNowRunState(po.getNowRunState());
+            projectDetailsVO.setNowRunStateName(getDictName(DictConstants.PROJECT_RUN_STATE, po.getNowRunState()));
         } else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(param.getProjectType())) {
             SimulationManualProjectVO po = simulationAutomaticSubProjectMapper.selectProjectInfo(param);
-            projectDetailsVo = JsonUtil.jsonToBean(po.getDetails(), ProjectDetailsVO.class);
-            projectDetailsVo.setEvaluationLevel(getDictName(DictConstants.EVALUATION_LEVEL, po.getEvaluationLevel()));
-            projectDetailsVo.setStartTime(getRqStr(po.getStartTime(), 1));
-            projectDetailsVo.setFinishTime(getRqStr(po.getFinishTime(), 1));
-            projectDetailsVo.setNowRunState(po.getNowRunState());
-            projectDetailsVo.setNowRunStateName(getDictName(DictConstants.PROJECT_RUN_STATE, po.getNowRunState()));
+            projectDetailsVO = JsonUtil.jsonToBean(po.getDetails(), ProjectDetailsVO.class);
+            projectDetailsVO.setEvaluationLevel(getDictName(DictConstants.EVALUATION_LEVEL, po.getEvaluationLevel()));
+            projectDetailsVO.setStartTime(getRqStr(po.getStartTime(), 1));
+            projectDetailsVO.setFinishTime(getRqStr(po.getFinishTime(), 1));
+            projectDetailsVO.setNowRunState(po.getNowRunState());
+            projectDetailsVO.setNowRunStateName(getDictName(DictConstants.PROJECT_RUN_STATE, po.getNowRunState()));
 
         }
         // 获取测试得分列表
         List<AlgorithmScoreVO> firstTargetScore = getFirstTargetScore(param.getId());
-        projectDetailsVo.setAlgorithmScoreList(firstTargetScore);
-        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, projectDetailsVo);
+        projectDetailsVO.setAlgorithmScoreList(firstTargetScore);
+
+        //* -------------------------------- 任务 --------------------------------
+        List<ProjectRunStateNumVo> states = null;
+        List<ProjectRunResultRatioNumVo> resultScoreList = null;
+        ProjectTaskParam projectTaskParam = new ProjectTaskParam();
+        projectTaskParam.setPId(param.getId());
+        List<ProjectRunResultRatioNumVo> projectRunResultRatioNumVos = null;
+        Integer size = simulationProjectTaskMapper.selectProjectTaskNumByProjectId(projectTaskParam);
+        if (size > 0) {
+            states = simulationProjectTaskMapper.selectRunStateCount(param.getId());
+            taskRunState(states, size);
+            projectRunResultRatioNumVos = simulationProjectTaskMapper.selectRunResultCount(param.getId());
+            taskResultState(projectRunResultRatioNumVos, size);
+
+            resultScoreList = simulationProjectTaskMapper.selectScoreCount(param.getId());
+
+            // 未完成得分为”“的改为0
+            if (!isEmpty(resultScoreList) && resultScoreList.size() == 1 && isEmpty(resultScoreList.get(0).getResultName())) {
+                ProjectRunResultRatioNumVo projectRunResultRatioNumVo = resultScoreList.get(0);
+                projectRunResultRatioNumVo.setResultName("0");
+            }
+            taskScore(resultScoreList, size);
+        }
+        projectDetailsVO.setResultList(projectRunResultRatioNumVos);
+        projectDetailsVO.setResultScoreList(resultScoreList);
+        // 汉化
+        if (CollectionUtil.isNotEmpty(states)) {
+            states.forEach(state -> {
+                if (StateConstant.Aborted.getEnglish().equals(state.getStateName())) {
+                    state.setStateName(StateConstant.Aborted.getChinese());
+                }
+                if (StateConstant.PendingAnalysis.getEnglish().equals(state.getStateName())) {
+                    state.setStateName(StateConstant.PendingAnalysis.getChinese());
+                }
+                if (StateConstant.Running.getEnglish().equals(state.getStateName())) {
+                    state.setStateName(StateConstant.Running.getChinese());
+                }
+                if (StateConstant.Analysing.getEnglish().equals(state.getStateName())) {
+                    state.setStateName(StateConstant.Analysing.getChinese());
+                }
+                if (StateConstant.Completed.getEnglish().equals(state.getStateName())) {
+                    state.setStateName(StateConstant.Completed.getChinese());
+                }
+                if (StateConstant.Terminated.getEnglish().equals(state.getStateName())) {
+                    state.setStateName(StateConstant.Terminated.getChinese());
+                }
+                if (StateConstant.Terminating.getEnglish().equals(state.getStateName())) {
+                    state.setStateName(StateConstant.Terminating.getChinese());
+                }
+                if (StateConstant.Pending.getEnglish().equals(state.getStateName())) {
+                    state.setStateName(StateConstant.Pending.getChinese());
+                }
+            });
+        }
+        projectDetailsVO.setStateList(states);
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, projectDetailsVO);
     }
 
 
@@ -504,7 +561,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
             param.setProjectType("1");// 默认
         }
 
-        ProjectDetailsVO projectDetailsVo = new ProjectDetailsVO();
+        ProjectDetailsVO projectDetailsVO = new ProjectDetailsVO();
 
         // 封装要使用到的数据
         SimulationManualProjectPO poParam = new SimulationManualProjectPO();
@@ -528,13 +585,13 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         // 获取场景包信息
         ScenePackagePO scenePackagePO = simulationProjectMapper.selectScenePackageInfoById(poParam.getScene());
 
-        projectDetailsVo.setPackageName(scenePackagePO.getPackageName());
+        projectDetailsVO.setPackageName(scenePackagePO.getPackageName());
 
         // 算法配置
         AlgorithmPO algorithmBaseInfoVo = getAlgorithmInfo(poParam);
         // 获取测试得分列表
         List<AlgorithmScoreVO> firstTargetScore = getFirstTargetScore(param.getId());
-        projectDetailsVo.setAlgorithmScoreList(firstTargetScore);
+        projectDetailsVO.setAlgorithmScoreList(firstTargetScore);
 
         // 车辆配置
         VehiclePO vehicleBaseInfoVo = null;
@@ -647,36 +704,35 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
 //
 //        }
 
-        projectDetailsVo.setProjectId(poParam.getProjectId());
-        projectDetailsVo.setProjectName(poParam.getProjectName());
-        projectDetailsVo.setProjectDescribe(poParam.getProjectDescribe());
-        projectDetailsVo.setStartTime(getRqStr(poParam.getStartTime(), 1));
-        projectDetailsVo.setFinishTime(getRqStr(poParam.getFinishTime(), 1));
-        projectDetailsVo.setNowRunState(poParam.getNowRunState());
-        projectDetailsVo.setNowRunStateName(getDictName(DictConstants.PROJECT_RUN_STATE, poParam.getNowRunState()));
-        projectDetailsVo.setEvaluationLevel(getDictName(DictConstants.EVALUATION_LEVEL, poParam.getEvaluationLevel()));
-        // projectDetailsVo.setEvaluationLevel(s);
+        projectDetailsVO.setProjectId(poParam.getProjectId());
+        projectDetailsVO.setProjectName(poParam.getProjectName());
+        projectDetailsVO.setProjectDescribe(poParam.getProjectDescribe());
+        projectDetailsVO.setStartTime(getRqStr(poParam.getStartTime(), 1));
+        projectDetailsVO.setFinishTime(getRqStr(poParam.getFinishTime(), 1));
+        projectDetailsVO.setNowRunState(poParam.getNowRunState());
+        projectDetailsVO.setNowRunStateName(getDictName(DictConstants.PROJECT_RUN_STATE, poParam.getNowRunState()));
+        projectDetailsVO.setEvaluationLevel(getDictName(DictConstants.EVALUATION_LEVEL, poParam.getEvaluationLevel()));
         if (algorithmBaseInfoVo != null) {
-            projectDetailsVo.setAlgorithmName(algorithmBaseInfoVo.getAlgorithmName());
-            projectDetailsVo.setAlgorithmDescribe(algorithmBaseInfoVo.getDescription());
+            projectDetailsVO.setAlgorithmName(algorithmBaseInfoVo.getAlgorithmName());
+            projectDetailsVO.setAlgorithmDescribe(algorithmBaseInfoVo.getDescription());
         }
         if (vehicleBaseInfoVo != null) {
-            projectDetailsVo.setVehicleName(vehicleBaseInfoVo.getVehicleName());
-            projectDetailsVo.setVehicleDescribe(vehicleBaseInfoVo.getDescription());
-            projectDetailsVo.setVehicleTopView(vehicleBaseInfoVo.getVehicleFrontView());
-
-        }
-        projectDetailsVo.setSensorCameraList(sensorCameraList);
-        projectDetailsVo.setSensorOgtList(sensorOgtList);
-        projectDetailsVo.setSensorLidarList(sensorLidarList);
-        projectDetailsVo.setSensorRadarList(sensorRadarList);
-        projectDetailsVo.setSensorGpsList(sensorGpsList);
-//        projectDetailsVo.setStateList(projectRunStateNumVos);
-//        projectDetailsVo.setResultList(projectRunResultRatioNumVos);
-//        projectDetailsVo.setResultScoreList(resultScoreList);
-
-        projectDetailsVo.setParallelism(poParam.getParallelism());
-        projectDetailsVo.setMaxSimulationTime(poParam.getMaxSimulationTime());
+            projectDetailsVO.setVehicleName(vehicleBaseInfoVo.getVehicleName());
+            projectDetailsVO.setVehicleDescribe(vehicleBaseInfoVo.getDescription());
+            projectDetailsVO.setVehicleTopView(vehicleBaseInfoVo.getVehicleFrontView());
+
+        }
+        projectDetailsVO.setSensorCameraList(sensorCameraList);
+        projectDetailsVO.setSensorOgtList(sensorOgtList);
+        projectDetailsVO.setSensorLidarList(sensorLidarList);
+        projectDetailsVO.setSensorRadarList(sensorRadarList);
+        projectDetailsVO.setSensorGpsList(sensorGpsList);
+//        projectDetailsVO.setStateList(projectRunStateNumVos);
+//        projectDetailsVO.setResultList(projectRunResultRatioNumVos);
+//        projectDetailsVO.setResultScoreList(resultScoreList);
+
+        projectDetailsVO.setParallelism(poParam.getParallelism());
+        projectDetailsVO.setMaxSimulationTime(poParam.getMaxSimulationTime());
         String isChoiceGpu = poParam.getIsChoiceGpu();
         String g = "";
         if ("0".equals(isChoiceGpu)) {
@@ -684,12 +740,12 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         } else if ("1".equals(isChoiceGpu)) {
             g = "否";
         }
-        projectDetailsVo.setIsChoiceGpu(g);
+        projectDetailsVO.setIsChoiceGpu(g);
 
         /*
          * //是否生成报告
          * boolean isCreateReport = true;
-         * String nowRunState = projectDetailsVo.getNowRunState();
+         * String nowRunState = projectDetailsVO.getNowRunState();
          * if(!ProjectRunStateEnum.FINISH.getCode().equals(nowRunState)){
          * isCreateReport = false;
          * }else{
@@ -703,10 +759,10 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
          * }
          * }
          *
-         * projectDetailsVo.setCreateReport(isCreateReport);
+         * projectDetailsVO.setCreateReport(isCreateReport);
          */
 
-        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, projectDetailsVo);
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, projectDetailsVO);
     }
 
     // 运行状态统计