李春阳 1 рік тому
батько
коміт
70dec766cf

+ 1 - 0
api-common/src/main/java/api/common/pojo/vo/project/ManualProjectTaskVo.java

@@ -37,4 +37,5 @@ public class ManualProjectTaskVo {
     private String complexityLevel;
     // 危险度等级
     private String riskLevel;
+    private String scoreResult;
 }

+ 1 - 0
api-common/src/main/java/api/common/pojo/vo/project/ProjectDetailsVO.java

@@ -37,4 +37,5 @@ public class ProjectDetailsVO {
     private boolean createReport; //是否生成报告
     private String packageName; //场景包名
     private List<AlgorithmScoreVO> algorithmScoreList; //算法测试得分
+    private boolean reportForReferenceLib; // 是否有基准场景库专用报告
 }

+ 31 - 29
api-common/src/main/java/api/common/pojo/vo/project/ProjectReportForReferenceVO.java

@@ -5,6 +5,7 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -23,35 +24,36 @@ public class ProjectReportForReferenceVO {
     private String passRate;
     private String packageName; //场景包名
     private String finishTime; //测试时间(开始时间)
-    Map<String, Integer> compRange;
-    Map<String, Integer> riskRange;
-    Map<String, Map<String, Integer>> compLevelForPassNum;
-    Map<String, Map<String, Integer>> riskLevelForPassNum;
-    Map<String, Integer> otherBehaviorTypeForNum;
-    Map<String, Map<String, Integer>> otherBehaviorForCompLevelNum ;
-    Map<String, Map<String, Integer>> otherBehaviorForRiskLevelNum;
-
-    Map<String, Integer> weatherTypeForNum;
-    Map<String, Map<String, Integer>> weatherForCompLevelNum;
-    Map<String, Map<String, Integer>> weatherForRiskLevelNum ;
-
-    Map<String, Integer> roadTypeForNum;
-
-    Map<String, Integer> operationAreaTypeForNum;
-    Map<String, Map<String, Integer>> operationAreaForCompLevelNum;
-    Map<String, Map<String, Integer>> operationAreaForRiskLevelNum;
-
-    Map<String, Integer> roadGeometryPlaneTypeForNum;
-    Map<String, Map<String, Integer>> roadGeometryPlaneForCompLevelNum;
-    Map<String, Map<String, Integer>> roadGeometryPlaneForRiskLevelNum;
-
-    Map<String, Integer> roadGeometryVerticalTypeForNum;
-    Map<String, Map<String, Integer>> roadGeometryVerticalForCompLevelNum;
-    Map<String, Map<String, Integer>> roadGeometryVerticalForRiskLevelNum;
-
-    Map<String, Map<String, Integer>> otherBehaviorAndAreaPassNum;
-    Map<String, Map<String, Integer>> weatherAndAreaPassNum;
-    Map<String, Map<String, Integer>> roadPlanePassNum;
+    private Map<String, Integer> compRange;
+    private Map<String, Integer> riskRange;
+    private Map<String, Map<String, Integer>> compLevelForPassNum;
+    private Map<String, Map<String, Integer>> riskLevelForPassNum;
+    private Map<String, Integer> otherBehaviorTypeForNum;
+    private Map<String, Map<String, Integer>> otherBehaviorForCompLevelNum;
+    private Map<String, Map<String, Integer>> otherBehaviorForRiskLevelNum;
+
+    private Map<String, Integer> weatherTypeForNum;
+    private Map<String, Map<String, Integer>> weatherForCompLevelNum;
+    private Map<String, Map<String, Integer>> weatherForRiskLevelNum;
+
+    private Map<String, Integer> roadTypeForNum;
+
+    private Map<String, Integer> operationAreaTypeForNum;
+    private Map<String, Map<String, Integer>> operationAreaForCompLevelNum;
+    private Map<String, Map<String, Integer>> operationAreaForRiskLevelNum;
+
+    private Map<String, Integer> roadGeometryPlaneTypeForNum;
+    private Map<String, Map<String, Integer>> roadGeometryPlaneForCompLevelNum;
+    private Map<String, Map<String, Integer>> roadGeometryPlaneForRiskLevelNum;
+
+    private Map<String, Integer> roadGeometryVerticalTypeForNum;
+    private Map<String, Map<String, Integer>> roadGeometryVerticalForCompLevelNum;
+    private Map<String, Map<String, Integer>> roadGeometryVerticalForRiskLevelNum;
+
+    private Map<String, Map<String, Integer>> otherBehaviorAndAreaPassNum;
+    private Map<String, Map<String, Integer>> weatherAndAreaPassNum;
+    private Map<String, Map<String, Integer>> roadPlanePassNum;
+    private List<ManualProjectTaskVo> manualProjectTaskVos;
 }
 
 

+ 29 - 1
simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/impl/SimulationProjectServiceImpl.java

@@ -351,7 +351,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
     }
 
-    private String getEvaluationJson(SimulationManualProjectPO simulationManualProjectPO){
+    private String getEvaluationJson(SimulationManualProjectPO simulationManualProjectPO) {
         JSONObject jsonObject = new JSONObject();
         if (StringUtil.isNotEmpty(simulationManualProjectPO.getComplexityEvaluationRuleId())) {
             jsonObject.put("complexityEvaluationStatus", DictConstants.SCENE_EVALUATION_STATUS_0);
@@ -508,6 +508,12 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         List<ProjectRunResultRatioNumVo> projectRunResultRatioNumVos = null;
         Integer size = simulationManualProjectTaskMapper.selectProjectTaskNumByProjectId(projectTaskParam);
         if (size > 0) {
+            if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) {
+                int isNotReferenceLibNum = simulationManualProjectTaskMapper.selectIsNotReferenceLibNum(param.getId());
+                if (isNotReferenceLibNum == 0) {
+                    projectDetailsVO.setReportForReferenceLib(true);
+                }
+            }
             states = simulationManualProjectTaskMapper.selectRunStateCount(param.getId());
             taskRunState(states, size);
             projectRunResultRatioNumVos = simulationManualProjectTaskMapper.selectRunResultCount(param.getId());
@@ -3011,14 +3017,35 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         ProjectTaskParam projectTaskParam = new ProjectTaskParam();
         projectTaskParam.setPId(param.getId());
         List<ManualProjectTaskVo> tasks = simulationManualProjectTaskMapper.selectProjectTaskByProjectId(projectTaskParam);
+
+        // 添加复杂度 危险度数据
+        List<String> sceneIdList = tasks.stream().map(ManualProjectTaskVo::getSceneId).collect(Collectors.toList());
+        SceneEvaluationForListParam sceneEvaluationForListParam = new SceneEvaluationForListParam();
+        sceneEvaluationForListParam.setSceneIdList(sceneIdList);
+        sceneEvaluationForListParam.setTaskId(param.getId());
+        SceneEvaluationOperatePO sceneEvaluationOperatePO = sceneEvaluationRuleService.getSceneEvaluationFirst(sceneEvaluationForListParam);
+        Map<String, SceneComplexityPO> firstComplexityPOMap = sceneEvaluationOperatePO.getSceneComplexityPOMap();
+        Map<String, SceneRiskPO> firstRiskPOMap = sceneEvaluationOperatePO.getSceneRiskPOMap();
+
         SimulationManualProjectEvaluationRuleVo simulationManualProjectEvaluationRuleVo = simulationManualProjectMapper.selectEvaluationDetailByProjectId(param);
         ScenePackagePO scenePackagePO = scenePackageMapper.queryScenePackage(ScenePackageParam.builder().packageId(simulationManualProjectEvaluationRuleVo.getScene()).build());
         Map<String, ManualProjectTaskVo> taskMap = null;
         if (CollectionUtil.isNotEmpty(tasks)) {
             taskMap = tasks.stream().collect(Collectors.toMap(ManualProjectTaskVo::getSceneId, Function.identity()));
             for (ManualProjectTaskVo task : tasks) {
+                if (firstComplexityPOMap.get(task.getSceneId()) != null) {
+                    task.setComplexity(String.valueOf(firstComplexityPOMap.get(task.getSceneId()).getComplexity()));
+                    task.setComplexityLevel(String.valueOf(firstComplexityPOMap.get(task.getSceneId()).getComplexityLevel()));
+                }
+                if (firstRiskPOMap.get(task.getSceneId()) != null) {
+                    task.setRisk(String.valueOf(firstRiskPOMap.get(task.getSceneId()).getRisk()));
+                    task.setRiskLevel(String.valueOf(firstRiskPOMap.get(task.getSceneId()).getRiskLevel()));
+                }
                 if (task.getScore() >= 80) {
                     passNum++;
+                    task.setScoreResult("pass");
+                } else {
+                    task.setScoreResult("unPass");
                 }
             }
             sceneNum = tasks.size();
@@ -3026,6 +3053,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
             DecimalFormat df = new DecimalFormat("#.###");
             formattedNumber = df.format(passRate);
         }
+        projectReportForReferenceVO.setManualProjectTaskVos(tasks);
 
         projectReportForReferenceVO.setProjectName(vo.getProjectName());
         projectReportForReferenceVO.setFinishTime(simulationManualProjectEvaluationRuleVo.getFinishTime());

+ 2 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/server/infra/db/mysql/mapper/SimulationManualProjectTaskMapper.java

@@ -43,6 +43,8 @@ public interface SimulationManualProjectTaskMapper {
 
     SceneScoreVo selectRunStateByAborted(SimulationMptSceneScorePO po);
 
+    int selectIsNotReferenceLibNum(String pId);
+
 
     List<ManualProjectTaskVo> selectProjectTaskById(String id);
 

+ 10 - 0
simulation-resource-server/src/main/resources/mysql/mapper/SimulationManualProjectTaskMapper.xml

@@ -124,6 +124,16 @@
           and p_id = #{pId,jdbcType=VARCHAR}
     </select>
 
+    <!--查询不是基准场景库的场景数量-->
+    <select id="selectIsNotReferenceLibNum" parameterType="string" resultType="int">
+        SELECT count(*) AS num
+        FROM simulation_manual_project_task
+        WHERE is_deleted = '0' AND scene_type != '5'
+          AND p_id = #{pId,jdbcType=VARCHAR}
+    </select>
+
+
+
     <!--根据任务运行状态分组查询统计数量-->
     <select id="selectRunStateCount" parameterType="string"
             resultType="api.common.pojo.vo.project.ProjectRunStateNumVo">