李春阳 1 gadu atpakaļ
vecāks
revīzija
a7379e8ce0

+ 37 - 0
api-common/src/main/java/api/common/pojo/vo/project/SimulationManualProjectEvaluationRuleVo.java

@@ -0,0 +1,37 @@
+package api.common.pojo.vo.project;
+
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class SimulationManualProjectEvaluationRuleVo {
+
+    // id
+    private String id;
+
+    // 项目名称
+    private String projectName;
+
+    // 项目描述
+    private String projectDescribe;
+    private String scene;
+    private Integer sceneNum;
+    private String testPackageExposureRate;
+    private String testPackageCoverageRate;
+
+    // 复杂度规则
+    private String complexityEvaluationRuleId;
+    private String complexityEvaluationRuleName;
+    // 危险度
+    private String riskEvaluationRuleId;
+    private String riskEvaluationRuleName;
+    // 暴露率
+    private String exposureRateEvaluationRuleId;
+    private String exposureRateEvaluationRuleName;
+    // 覆盖率
+    private String coverageRateEvaluationRuleId;
+    private String coverageRateEvaluationRuleName;
+
+}

+ 8 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infra/runnable/SceneEvaluationComputeRunnable.java

@@ -25,6 +25,7 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.file.attribute.PosixFilePermission;
+import java.text.DecimalFormat;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -174,6 +175,7 @@ public class SceneEvaluationComputeRunnable implements Runnable {
         }
         sceneEvaluationResult = sb.toString();
         log.info("场景评价结束,结果为:" + sceneEvaluationResult);
+        DecimalFormat df = new DecimalFormat("#.###");
         for (SceneEvaluationComputeSubParam sceneEvaluationComputeSubParam : sceneEvaluationComputeParam.getSceneEvaluationComputeSubParam()) {
             // 读文件
             StringBuilder result = new StringBuilder();
@@ -210,12 +212,14 @@ public class SceneEvaluationComputeRunnable implements Runnable {
                     String complexity = rootNode.path("复杂度").asText();
                     String complexityLevel = rootNode.path("复杂度等级").asText();
                     SceneComplexityPO sceneComplexityPO = new SceneComplexityPO();
+                    double complexityD = Double.parseDouble(complexity);
+                    String formattedNumber = df.format(complexityD);
+                    sceneComplexityPO.setComplexity(formattedNumber);
                     sceneComplexityPO.setSceneId(sceneEvaluationComputeSubParam.getSceneId());
                     sceneComplexityPO.setComplexityId(StringUtil.getRandomUUID());
                     sceneComplexityPO.setSceneType(sceneEvaluationComputeSubParam.getSceneType());
                     sceneComplexityPO.setRuleId(ruleId);
                     sceneComplexityPO.setTaskId(sceneEvaluationComputeParam.getTaskId());
-                    sceneComplexityPO.setComplexity(complexity);
                     sceneComplexityPO.setComplexityLevel(matchLevelEnumByLevel(complexityLevel));
                     sceneComplexityPO.setIsDeleted(DictConstants.IS_NOT_DELETED);
                     sceneComplexityPO.setCreateUserId(sceneEvaluationComputeParam.getCreateUserId());
@@ -225,12 +229,14 @@ public class SceneEvaluationComputeRunnable implements Runnable {
                     String risk = rootNode.path("危险度").asText();
                     String riskLevel = rootNode.path("危险度等级").asText();
                     SceneRiskPO sceneRiskPO = new SceneRiskPO();
+                    double riskD = Double.parseDouble(risk);
+                    String formattedNumber = df.format(riskD);
+                    sceneRiskPO.setRisk(formattedNumber);
                     sceneRiskPO.setSceneId(sceneEvaluationComputeSubParam.getSceneId());
                     sceneRiskPO.setRiskId(StringUtil.getRandomUUID());
                     sceneRiskPO.setSceneType(sceneEvaluationComputeSubParam.getSceneType());
                     sceneRiskPO.setRuleId(ruleId);
                     sceneRiskPO.setTaskId(sceneEvaluationComputeParam.getTaskId());
-                    sceneRiskPO.setRisk(risk);
                     sceneRiskPO.setRiskLevel(matchLevelEnumByLevel(riskLevel));
                     sceneRiskPO.setIsDeleted(DictConstants.IS_NOT_DELETED);
                     sceneRiskPO.setCreateUserId(sceneEvaluationComputeParam.getCreateUserId());

+ 7 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/server/adapter/controller/job_manage/JobManageController.java

@@ -313,6 +313,13 @@ public class JobManageController {
     return simulationProjectService.updateAutoProjectNowRunState(param);
   }
 
+  /**
+   * 根据id查询自动运行项目信息
+   */
+  @RequestMapping("/getEvaluationRuleDetail")
+  public ResponseBodyVO<SimulationManualProjectEvaluationRuleVo> getEvaluationRuleDetail(@RequestBody SimulationManualProjectParam param) {
+    return simulationProjectService.getEvaluationRuleDetail(param);
+  }
 
   @RequestMapping("/selectMultiSimulationProject")
   public ResponseBodyVO<PageInfo<MultiSimulationProjectVO>> selectMultiSimulationProject(@RequestBody MultiSimulationProjectParam param) {

+ 39 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/impl/SimulationProjectServiceImpl.java

@@ -20,10 +20,12 @@ import api.common.pojo.po.model.ConfigSensorPO;
 import api.common.pojo.po.model.VehiclePO;
 import api.common.pojo.po.project.*;
 import api.common.pojo.po.scene.SceneComplexityPO;
+import api.common.pojo.po.scene.SceneEvaluationRulePO;
 import api.common.pojo.po.scene.ScenePackagePO;
 import api.common.pojo.po.scene.SceneRiskPO;
 import api.common.pojo.vo.algorithm.AlgorithmVO;
 import api.common.pojo.vo.project.*;
+import api.common.pojo.vo.scene.ScenePackageNewVO;
 import api.common.util.*;
 import com.css.simulation.resource.server.domain.service.UserDomainService;
 import com.css.simulation.resource.server.infra.db.mysql.mapper.*;
@@ -125,6 +127,9 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
     @Resource
     private SceneEvaluationRuleMapper sceneEvaluationRuleMapper;
 
+    @Resource
+    ScenePackageMapper scenePackageMapper;
+
     // * -------------------------------- Comment --------------------------------
 
     private final String[] dateFmtArr = new String[]{"yyyyMMdd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd"};
@@ -5201,6 +5206,40 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "操作失败");
     }
 
+    @SneakyThrows
+    @Override
+    public ResponseBodyVO<SimulationManualProjectEvaluationRuleVo> getEvaluationRuleDetail(SimulationManualProjectParam param) {
+        if (isEmpty(param.getId()) || isEmpty(param.getProjectType())) {
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "id或类型不能为空");
+        }
+        SimulationManualProjectEvaluationRuleVo po = simulationManualProjectMapper.selectEvaluationDetailByProjectId(param);
+        if (po == null) {
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "数据没有找到");
+        }
+        if (po.getComplexityEvaluationRuleId() != null) {
+            SceneEvaluationRulePO sceneCompRule = sceneEvaluationRuleMapper.querySceneEvaluationPyById(po.getComplexityEvaluationRuleId());
+            po.setComplexityEvaluationRuleName(sceneCompRule == null ? null : sceneCompRule.getRuleName());
+        }
+
+        if (po.getRiskEvaluationRuleId() != null) {
+            SceneEvaluationRulePO sceneRiskRule = sceneEvaluationRuleMapper.querySceneEvaluationPyById(po.getRiskEvaluationRuleId());
+            po.setRiskEvaluationRuleName(sceneRiskRule == null ? null : sceneRiskRule.getRuleName());
+        }
+
+        if (po.getCoverageRateEvaluationRuleId() != null) {
+            SceneEvaluationRulePO sceneCoverRule = sceneEvaluationRuleMapper.querySceneEvaluationPyById(po.getCoverageRateEvaluationRuleId());
+            po.setCoverageRateEvaluationRuleName(sceneCoverRule == null ? null : sceneCoverRule.getRuleName());
+        }
+
+        if (po.getExposureRateEvaluationRuleId() != null) {
+            SceneEvaluationRulePO sceneExRule = sceneEvaluationRuleMapper.querySceneEvaluationPyById(po.getExposureRateEvaluationRuleId());
+            po.setExposureRateEvaluationRuleName(sceneExRule == null ? null : sceneExRule.getRuleName());
+        }
+        ScenePackageNewVO scenePackagePO = scenePackageMapper.queryScenePackageBySublist(po.getScene());
+        po.setSceneNum(scenePackagePO.getSceneNum());
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, po);
+    }
+
     private void convertPoToVo(SimulationAutomaticProjectPO po, SimulationManualProjectSingleVo vo) {
         vo.setId(po.getId());
         vo.setProjectName(po.getProjectName());

+ 2 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/service/job_manage/SimulationProjectService.java

@@ -81,4 +81,6 @@ public interface SimulationProjectService {
   ResponseBodyVO<SimulationManualProjectSingleVo> selectAutomaticProjectById(SimulationManualProjectParam param);
 
   ResponseBodyVO<String> updateAutoProjectNowRunState(SimulationManualProjectParam param);
+
+  ResponseBodyVO<SimulationManualProjectEvaluationRuleVo> getEvaluationRuleDetail(SimulationManualProjectParam param);
 }

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

@@ -155,4 +155,6 @@ public interface SimulationManualProjectMapper {
     String selectAlgorithmTypeById(SimulationManualProjectEntity build);
 
     String selectAlgorithmById(SimulationManualProjectEntity build);
+
+    SimulationManualProjectEvaluationRuleVo selectEvaluationDetailByProjectId(SimulationManualProjectParam param);
 }

+ 10 - 3
simulation-resource-server/src/main/resources/mysql/mapper/SimulationManualProjectMapper.xml

@@ -40,7 +40,7 @@
          complexity_evaluation_rule_id,
          risk_evaluation_rule_id,
          exposure_rate_evaluation_rule_id,
-         coverage_rate_evaluation_ruleId)
+         coverage_rate_evaluation_rule_id)
         values (#{id},
                 #{projectDate,jdbcType=INTEGER},
                 #{projectNum,jdbcType=INTEGER},
@@ -75,6 +75,13 @@
                 #{coverageRateEvaluationRuleId})
     </insert>
 
+    <!--根据id查询工作信息-->
+    <select id="selectEvaluationDetailByProjectId" parameterType="api.common.pojo.param.project.SimulationManualProjectParam" resultType="api.common.pojo.vo.project.SimulationManualProjectEvaluationRuleVo">
+        select id,project_name,project_describe,scene,coverage_rate_evaluation_rule_id,exposure_rate_evaluation_rule_id,complexity_evaluation_rule_id,risk_evaluation_rule_id
+        from simulation_manual_project
+        where id = #{id,jdbcType=VARCHAR}
+    </select>
+
     <!--修改-->
     <update id="update" parameterType="api.common.pojo.po.project.SimulationManualProjectPO">
         update simulation_manual_project
@@ -88,7 +95,7 @@
             complexity_evaluation_rule_id = #{complexityEvaluationRuleId},
             risk_evaluation_rule_id = #{riskEvaluationRuleId},
             exposure_rate_evaluation_rule_id = #{exposureRateEvaluationRuleId},
-            coverage_rate_evaluation_ruleId = #{coverageRateEvaluationRuleId},
+            coverage_rate_evaluation_rule_id = #{coverageRateEvaluationRuleId},
             parallelism         = #{parallelism},
             is_choice_gpu       = #{isChoiceGpu},
             algorithm_array     = #{algorithmArray},
@@ -257,7 +264,7 @@
                algorithm_array,
                vehicle_array,
                scene_array,
-               coverage_rate_evaluation_ruleId,
+               coverage_rate_evaluation_rule_id,
                exposure_rate_evaluation_rule_id,
                complexity_evaluation_rule_id,
                risk_evaluation_rule_id