李春阳 1 tahun lalu
induk
melakukan
069fe2e85d
20 mengubah file dengan 192 tambahan dan 11 penghapusan
  1. 8 0
      api-common/src/main/java/api/common/pojo/constants/DictConstants.java
  2. 3 0
      api-common/src/main/java/api/common/pojo/param/scene/SceneEvaluationComputeParam.java
  3. 1 0
      api-common/src/main/java/api/common/pojo/po/project/SimulationManualProjectPO.java
  4. 25 0
      api-common/src/main/java/api/common/pojo/po/system/SceneEvaluationStatusPO.java
  5. 5 0
      api-common/src/main/java/api/common/pojo/po/system/SceneImportPO.java
  6. 1 0
      api-common/src/main/java/api/common/pojo/vo/project/SimulationManualProjectSingleVo.java
  7. 1 0
      api-common/src/main/java/api/common/pojo/vo/project/SimulationManualProjectVO.java
  8. 4 0
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/domain/service/TaskDomainService.java
  9. 18 0
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infra/db/mysql/mapper/SceneEvaluationStatusMapper.java
  10. 2 0
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infra/db/mysql/mapper/SimulationManualProjectMapper.java
  11. 1 0
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infra/entity/ProjectEntity.java
  12. 79 4
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infra/runnable/SceneEvaluationComputeRunnable.java
  13. 15 0
      simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/impl/SimulationProjectServiceImpl.java
  14. 3 1
      simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/service/SceneAccidentService.java
  15. 4 1
      simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/service/SceneImportService.java
  16. 2 0
      simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/service/SceneNaturalService.java
  17. 2 0
      simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/service/SceneReferenceLibService.java
  18. 2 0
      simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/service/SceneStandardsService.java
  19. 8 1
      simulation-resource-server/src/main/resources/mysql/mapper/SceneImportMapper.xml
  20. 8 4
      simulation-resource-server/src/main/resources/mysql/mapper/SimulationManualProjectMapper.xml

+ 8 - 0
api-common/src/main/java/api/common/pojo/constants/DictConstants.java

@@ -168,6 +168,14 @@ public class DictConstants {
     public static final String SCENE_IMPORT_STATUS_4 = "4"; //解析完成
     public static final String SCENE_IMPORT_STATUS_5 = "5"; //上传失败
 
+    public static final String SCENE_EVALUATION_STATUS_0 = "0"; //未评价
+    public static final String SCENE_EVALUATION_STATUS_1 = "1"; //评价中
+    public static final String SCENE_EVALUATION_STATUS_2 = "2"; //评价完成
+    public static final String SCENE_EVALUATION_STATUS_3 = "3"; //评价失败
+
+    public static final String SCENE_IMPORT_EVALUATION_TYPE = "sceneImportTask";
+    public static final String SIMULATION_MANUAL_PROJECT_EVALUATION_TYPE = "simulationManualProject";
+
     // 项目类型
     public static final String PROJECT_TYPE_MANUAL = "1"; // 手动运行项目
     public static final String PROJECT_TYPE_AUTO_SUB = "2"; // 自动运行项目子项目

+ 3 - 0
api-common/src/main/java/api/common/pojo/param/scene/SceneEvaluationComputeParam.java

@@ -26,5 +26,8 @@ public class SceneEvaluationComputeParam implements Serializable {
     private String algorithmId;
     private String taskId;
     private String computeType;
+    private String type;
+    // 如果是场景上传则为场景上传的 id,如果是标准化测试则为 project_id,主要用于修改表状态
+    private String evaluationId;
     private List<SceneEvaluationComputeSubParam> sceneEvaluationComputeSubParam;
 }

+ 1 - 0
api-common/src/main/java/api/common/pojo/po/project/SimulationManualProjectPO.java

@@ -49,5 +49,6 @@ public class SimulationManualProjectPO extends BasePO {
     private String exposureRateEvaluationRuleId;
     // 覆盖率
     private String coverageRateEvaluationRuleId;
+    private String evaluationJsonMsg;
 
 }

+ 25 - 0
api-common/src/main/java/api/common/pojo/po/system/SceneEvaluationStatusPO.java

@@ -0,0 +1,25 @@
+package api.common.pojo.po.system;
+
+import api.common.pojo.common.CommonPO;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serializable;
+import java.sql.Timestamp;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@SuperBuilder
+@AllArgsConstructor
+@NoArgsConstructor
+public class SceneEvaluationStatusPO extends CommonPO implements Serializable {
+
+    private String id;  //任务id
+    private String evaluationStatus;
+    private String evaluationErrorMsg;
+    private Timestamp startEvaluationTime;
+    private Timestamp endEvaluationTime;
+}

+ 5 - 0
api-common/src/main/java/api/common/pojo/po/system/SceneImportPO.java

@@ -5,6 +5,7 @@ import lombok.*;
 import lombok.experimental.SuperBuilder;
 
 import java.io.Serializable;
+import java.sql.Timestamp;
 import java.util.List;
 
 @EqualsAndHashCode(callSuper = true)
@@ -27,4 +28,8 @@ public class SceneImportPO extends CommonPO implements Serializable {
     private String sceneNames;
     // 场景评价规则 id
     private String sceneEvaluationRuleId;
+    private String evaluationStatus;
+    private String evaluationErrorMsg;
+    private Timestamp startEvaluationTime;
+    private Timestamp endEvaluationTime;
 }

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

@@ -57,5 +57,6 @@ public class SimulationManualProjectSingleVo {
     private String exposureRateEvaluationRuleId;
     // 覆盖率
     private String coverageRateEvaluationRuleId;
+    private String evaluationJsonMsg;
 
 }

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

@@ -36,4 +36,5 @@ public class SimulationManualProjectVO {
     private String parallelism;
     private String isChoiceGpu;
     private String details;
+    private String evaluationJsonMsg;
 }

+ 4 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/domain/service/TaskDomainService.java

@@ -310,6 +310,8 @@ public class TaskDomainService {
             sceneComplexityEvaluationComputeParam.setSceneEvaluationRuleId(projectEntity.getComplexityEvaluationRuleId());
             sceneComplexityEvaluationComputeParam.setCreateUserId(null);
             sceneComplexityEvaluationComputeParam.setTaskId(projectId);
+            sceneComplexityEvaluationComputeParam.setEvaluationId(projectId);
+            sceneComplexityEvaluationComputeParam.setType(DictConstants.SIMULATION_MANUAL_PROJECT_EVALUATION_TYPE);
             sceneComplexityEvaluationComputeParam.setComputeType(DictConstants.COMPLEXITY);
             computeSceneEvaluation(sceneComplexityEvaluationComputeParam);
         }
@@ -317,6 +319,8 @@ public class TaskDomainService {
             sceneRiskEvaluationComputeParam.setSceneEvaluationRuleId(projectEntity.getRiskEvaluationRuleId());
             sceneRiskEvaluationComputeParam.setCreateUserId(null);
             sceneRiskEvaluationComputeParam.setTaskId(projectId);
+            sceneRiskEvaluationComputeParam.setEvaluationId(projectId);
+            sceneRiskEvaluationComputeParam.setType(DictConstants.SIMULATION_MANUAL_PROJECT_EVALUATION_TYPE);
             sceneRiskEvaluationComputeParam.setComputeType(DictConstants.RISK);
             sceneRiskEvaluationComputeParam.setVehicleId(projectEntity.getVehicle());
             sceneRiskEvaluationComputeParam.setAlgorithmId(projectEntity.getAlgorithm());

+ 18 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infra/db/mysql/mapper/SceneEvaluationStatusMapper.java

@@ -0,0 +1,18 @@
+package com.css.simulation.resource.scheduler.infra.db.mysql.mapper;
+
+import api.common.pojo.po.system.SceneEvaluationStatusPO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Update;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface SceneEvaluationStatusMapper {
+
+    @Update("UPDATE scene_evaluation_status SET evaluation_status = #{evaluationStatus} AND evaluation_error_msg = #{evaluationErrorMsg} " +
+            " AND start_evaluation_time = #{startEvaluationTime} AND end_evaluation_time = #{endEvaluationTime} WHERE id = #{id}")
+    void updateImportEvaluationStatus(SceneEvaluationStatusPO po);
+
+    @Update("UPDATE simulation_manual_project SET evaluation_json_msg = #{json} WHERE id = #{id}")
+    void updateManualProjectEvaluationStatus(String id, String json);
+}

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

@@ -22,6 +22,7 @@ public interface SimulationManualProjectMapper {
             @Result(column = "is_choice_gpu", property = "isChoiceGpu", jdbcType = JdbcType.VARCHAR),
             @Result(column = "complexity_evaluation_rule_id", property = "complexityEvaluationRuleId", jdbcType = JdbcType.VARCHAR),
             @Result(column = "risk_evaluation_rule_id", property = "riskEvaluationRuleId", jdbcType = JdbcType.VARCHAR),
+            @Result(column = "evaluation_json_msg", property = "evaluationJsonMsg", jdbcType = JdbcType.VARCHAR),
             @Result(column = "max_simulation_time", property = "maxSimulationTime", jdbcType = JdbcType.VARCHAR)
     })
     @Select("select id,\n" +
@@ -34,6 +35,7 @@ public interface SimulationManualProjectMapper {
             "       vehicle,\n" +
             "       risk_evaluation_rule_id,\n" +
             "       complexity_evaluation_rule_id,\n" +
+            "       evaluation_json_msg,\n" +
             "       '1' project_type,\n" +
             "       max_simulation_time\n" +
             "from simulation_manual_project\n" +

+ 1 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infra/entity/ProjectEntity.java

@@ -22,4 +22,5 @@ public class ProjectEntity {
     private String vehicle;
     private String complexityEvaluationRuleId;
     private String riskEvaluationRuleId;
+    private String evaluationJsonMsg;
 }

+ 79 - 4
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infra/runnable/SceneEvaluationComputeRunnable.java

@@ -6,15 +6,16 @@ import api.common.pojo.param.scene.SceneEvaluationComputeSubParam;
 import api.common.pojo.po.scene.SceneComplexityPO;
 import api.common.pojo.po.scene.SceneEvaluationRulePO;
 import api.common.pojo.po.scene.SceneRiskPO;
+import api.common.pojo.po.system.SceneEvaluationStatusPO;
 import api.common.util.CollectionUtil;
 import api.common.util.FileUtil;
 import api.common.util.StringUtil;
 import api.common.util.TimeUtil;
 import com.alibaba.druid.util.StringUtils;
+import com.alibaba.fastjson.JSONObject;
 import com.css.simulation.resource.scheduler.adapter.entity.impl.ApplicationContextAwareImpl;
-import com.css.simulation.resource.scheduler.infra.db.mysql.mapper.SceneComplexityMapper;
-import com.css.simulation.resource.scheduler.infra.db.mysql.mapper.SceneEvaluationRuleMapper;
-import com.css.simulation.resource.scheduler.infra.db.mysql.mapper.SceneRiskMapper;
+import com.css.simulation.resource.scheduler.infra.db.mysql.mapper.*;
+import com.css.simulation.resource.scheduler.infra.entity.ProjectEntity;
 import com.css.simulation.resource.scheduler.infra.fs.minio.MinioUtil;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -49,6 +50,16 @@ public class SceneEvaluationComputeRunnable implements Runnable {
 
     @Override
     public void run() {
+        // 先修改状态
+        SceneEvaluationStatusMapper sceneEvaluationStatusMapper = ApplicationContextAwareImpl.getApplicationContext().getBean(SceneEvaluationStatusMapper.class);
+        SceneEvaluationStatusPO sceneEvaluationStatusPO = new SceneEvaluationStatusPO();
+        sceneEvaluationStatusPO.setId(sceneEvaluationComputeParam.getEvaluationId());
+        sceneEvaluationStatusPO.setStartEvaluationTime(TimeUtil.getNowForMysql());
+        sceneEvaluationStatusPO.setEndEvaluationTime(null);
+        sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_1);
+        sceneEvaluationStatusPO.setEvaluationErrorMsg("");
+        updateStatus(sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
+
         String ruleId = sceneEvaluationComputeParam.getSceneEvaluationRuleId();
         log.info("开始执行线程:" + sceneEvaluationComputeParam);
         String bucketName = sceneEvaluationComputeParam.getBucketName();
@@ -60,6 +71,10 @@ public class SceneEvaluationComputeRunnable implements Runnable {
         SceneEvaluationRulePO sceneEvaluationRulePO = sceneEvaluationRuleMapper.querySceneEvaluationPyById(ruleId);
         if (sceneEvaluationRulePO == null) {
             log.error(ruleId + " 的场景评价规则已删除");
+            sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
+            sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
+            sceneEvaluationStatusPO.setEvaluationErrorMsg("场景评价规则已删除");
+            updateStatus(sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
             return;
         }
         log.info("场景评价规则为:" + sceneEvaluationRulePO);
@@ -73,6 +88,10 @@ public class SceneEvaluationComputeRunnable implements Runnable {
 
         // 下载场景评价脚本到脚本目录
         if (sceneEvaluationRulePO.getScriptPath() == null) {
+            sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
+            sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
+            sceneEvaluationStatusPO.setEvaluationErrorMsg("场景评价脚本不存在");
+            updateStatus(sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
             return;
         }
         String pyMainPath = scriptsPath + "/" + sceneEvaluationRulePO.getRuleId();
@@ -93,6 +112,10 @@ public class SceneEvaluationComputeRunnable implements Runnable {
                 Files.setPosixFilePermissions(path, permissions);
             } catch (IOException e) {
                 log.error("下载执行文件失败: " + sceneEvaluationRulePO.getScriptPath(), e);
+                sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
+                sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
+                sceneEvaluationStatusPO.setEvaluationErrorMsg("下载场景评价脚本失败");
+                updateStatus(sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
                 return;
             }
         }
@@ -144,6 +167,10 @@ public class SceneEvaluationComputeRunnable implements Runnable {
                     FileUtil.deleteFolder(riskPathFather);   // 删除临时文件
                 }
             } else {
+                sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
+                sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
+                sceneEvaluationStatusPO.setEvaluationErrorMsg("获取评价类型错误");
+                updateStatus(sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
                 return;
             }
         }
@@ -161,6 +188,10 @@ public class SceneEvaluationComputeRunnable implements Runnable {
             p = r.exec(sceneEvaluationCommand);
         } catch (IOException e) {
             log.error("执行场景评价脚本失败,脚本命令为: " + sceneEvaluationCommand, e);
+            sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
+            sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
+            sceneEvaluationStatusPO.setEvaluationErrorMsg("执行场景评价命令失败");
+            updateStatus(sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
             return;
         }
 
@@ -174,6 +205,10 @@ public class SceneEvaluationComputeRunnable implements Runnable {
             br.close();
         } catch (IOException e) {
             log.error("获取场景评价脚本返回内容失败", e);
+            sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
+            sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
+            sceneEvaluationStatusPO.setEvaluationErrorMsg("获取场景评价结果失败");
+            updateStatus(sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
             return;
         }
         sceneEvaluationResult = sb.toString();
@@ -189,6 +224,10 @@ public class SceneEvaluationComputeRunnable implements Runnable {
                 } else if (StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.RISK)) {
                     readPath = riskPathFather;
                 } else {
+                    sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
+                    sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
+                    sceneEvaluationStatusPO.setEvaluationErrorMsg("获取评价类型错误");
+                    updateStatus(sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
                     return;
                 }
                 FileInputStream fileInputStream = new FileInputStream(readPath + sceneEvaluationComputeSubParam.getSceneId() + "/scenario_evaluation.json");
@@ -255,8 +294,44 @@ public class SceneEvaluationComputeRunnable implements Runnable {
                 log.error("场景" + sceneEvaluationComputeSubParam.getSceneId() + " 的场景评价失败:", e);
             }
         }
+        sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
+        sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_2);
+        sceneEvaluationStatusPO.setEvaluationErrorMsg("");
+        updateStatus(sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
         // 删除临时文件
-//        FileUtil.deleteFolder(sceneEvaluationComputeParam.getLinuxTempPath() + "scene/evaluation/" + sceneEvaluationComputeParam.getTaskId());   // 删除临时文件
+        FileUtil.deleteFolder(sceneEvaluationComputeParam.getLinuxTempPath() + "scene/evaluation/" + sceneEvaluationComputeParam.getTaskId());   // 删除临时文件
+    }
+
+    private void updateStatus(SceneEvaluationStatusMapper sceneEvaluationStatusMapper, SceneEvaluationStatusPO sceneEvaluationStatusPO) {
+        if (StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.COMPLEXITY)) {
+            if (DictConstants.SCENE_IMPORT_EVALUATION_TYPE.equals(sceneEvaluationComputeParam.getType())) {
+                sceneEvaluationStatusMapper.updateImportEvaluationStatus(sceneEvaluationStatusPO);
+            } else if (DictConstants.SIMULATION_MANUAL_PROJECT_EVALUATION_TYPE.equals(sceneEvaluationComputeParam.getType())) {
+                // 查询 project 表
+                SimulationManualProjectMapper simulationManualProjectMapper = ApplicationContextAwareImpl.getApplicationContext().getBean(SimulationManualProjectMapper.class);
+                ProjectEntity projectEntity = simulationManualProjectMapper.selectById(sceneEvaluationComputeParam.getTaskId());
+                if (StringUtil.isNotEmpty(projectEntity.getEvaluationJsonMsg())) {
+                    // 解析 json
+                    JSONObject evaluationJsonObj = JSONObject.parseObject(projectEntity.getEvaluationJsonMsg());
+                    evaluationJsonObj.put("complexityEvaluationStatus", sceneEvaluationStatusPO.getEvaluationStatus());
+                    evaluationJsonObj.put("complexityEvaluationErrorMsg", sceneEvaluationStatusPO.getEvaluationErrorMsg());
+                    evaluationJsonObj.put("complexityStartEvaluationTime", sceneEvaluationStatusPO.getStartEvaluationTime());
+                    evaluationJsonObj.put("complexityEndEvaluationTime", sceneEvaluationStatusPO.getEndEvaluationTime());
+                    sceneEvaluationStatusMapper.updateManualProjectEvaluationStatus(sceneEvaluationStatusPO.getId(), evaluationJsonObj.toString());
+                }
+            }
+        } else if (StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.RISK)) {
+            SimulationManualProjectMapper simulationManualProjectMapper = ApplicationContextAwareImpl.getApplicationContext().getBean(SimulationManualProjectMapper.class);
+            ProjectEntity projectEntity = simulationManualProjectMapper.selectById(sceneEvaluationComputeParam.getTaskId());
+            if (StringUtil.isNotEmpty(projectEntity.getEvaluationJsonMsg())) {
+                JSONObject evaluationJsonObj = JSONObject.parseObject(projectEntity.getEvaluationJsonMsg());
+                evaluationJsonObj.put("riskEvaluationStatus", sceneEvaluationStatusPO.getEvaluationStatus());
+                evaluationJsonObj.put("riskEvaluationErrorMsg", sceneEvaluationStatusPO.getEvaluationErrorMsg());
+                evaluationJsonObj.put("riskStartEvaluationTime", sceneEvaluationStatusPO.getStartEvaluationTime());
+                evaluationJsonObj.put("riskEndEvaluationTime", sceneEvaluationStatusPO.getEndEvaluationTime());
+                sceneEvaluationStatusMapper.updateManualProjectEvaluationStatus(sceneEvaluationStatusPO.getId(), evaluationJsonObj.toString());
+            }
+        }
 
     }
 

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

@@ -23,6 +23,7 @@ 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.alibaba.fastjson.JSONObject;
 import com.css.simulation.resource.server.app.service.SceneEvaluationRuleService;
 import com.css.simulation.resource.server.domain.service.UserDomainService;
 import com.css.simulation.resource.server.infra.db.mysql.mapper.*;
@@ -1772,6 +1773,20 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         po.setRiskEvaluationRuleId(param.getRiskEvaluationRuleId());
         po.setExposureRateEvaluationRuleId(param.getExposureRateEvaluationRuleId());
         po.setCoverageRateEvaluationRuleId(param.getCoverageRateEvaluationRuleId());
+        JSONObject jsonObject = new JSONObject();
+        if (StringUtil.isNotEmpty(param.getComplexityEvaluationRuleId())) {
+            jsonObject.put("complexityEvaluationStatus", DictConstants.SCENE_EVALUATION_STATUS_0);
+        }
+        if (StringUtil.isNotEmpty(param.getRiskEvaluationRuleId())) {
+            jsonObject.put("riskEvaluationRuleStatus", DictConstants.SCENE_EVALUATION_STATUS_0);
+        }
+        if (StringUtil.isNotEmpty(param.getExposureRateEvaluationRuleId())) {
+            jsonObject.put("exposureRateEvaluationStatus", DictConstants.SCENE_EVALUATION_STATUS_0);
+        }
+        if (StringUtil.isNotEmpty(param.getCoverageRateEvaluationRuleId())) {
+            jsonObject.put("coverageRateEvaluationStatus", DictConstants.SCENE_EVALUATION_STATUS_0);
+        }
+        po.setEvaluationJsonMsg(jsonObject.toString());
 
         if (ObjectUtil.isNotNull(param.getVehicleArrayS())) {
             po.setVehicleArray(StringUtils.join(Arrays.asList(param.getVehicleArrayS()), ','));

+ 3 - 1
simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/service/SceneAccidentService.java

@@ -774,7 +774,7 @@ public class SceneAccidentService {
                     MI.setObjectName(filePath);
                     List<String> listScene = fileDownService.listDeepOne(MI).getInfo();
                     log.info("共需要上传 " + listScene.size() + " 个交通事故场景");
-                    String taskId = api.common.util.StringUtil.getRandomUUID();
+                    String taskId = StringUtil.getRandomUUID();
                     SceneEvaluationComputeParam sceneComplexityEvaluationComputeParam = new SceneEvaluationComputeParam();
                     sceneComplexityEvaluationComputeParam.setSceneEvaluationComputeSubParam(new ArrayList<>());
                     for (String scenePath : listScene) {
@@ -897,6 +897,8 @@ public class SceneAccidentService {
                     try {
                         if (CollectionUtil.isNotEmpty(sceneComplexityEvaluationComputeParam.getSceneEvaluationComputeSubParam())) {
                             sceneComplexityEvaluationComputeParam.setTaskId(taskId);
+                            sceneComplexityEvaluationComputeParam.setEvaluationId(params.getId());
+                            sceneComplexityEvaluationComputeParam.setType(DictConstants.SCENE_IMPORT_EVALUATION_TYPE);
                             sceneComplexityEvaluationComputeParam.setSceneEvaluationRuleId(params.getSceneEvaluationRuleId());
                             sceneComplexityEvaluationComputeParam.setComputeType(DictConstants.COMPLEXITY);
                             sceneComplexityEvaluationComputeParam.setCreateUserId(AuthUtil.getCurrentUserId());

+ 4 - 1
simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/service/SceneImportService.java

@@ -9,10 +9,10 @@ import api.common.util.CollectionUtil;
 import api.common.util.ObjectUtil;
 import api.common.util.StringUtil;
 import api.common.util.TimeUtil;
+import com.css.simulation.resource.server.infra.db.mysql.mapper.SceneImportMapper;
 import com.css.simulation.resource.server.infra.util.AuthUtil;
 import com.css.simulation.resource.server.infra.util.PageUtil;
 import com.css.simulation.resource.server.infra.util.PoUtil;
-import com.css.simulation.resource.server.infra.db.mysql.mapper.SceneImportMapper;
 import com.github.pagehelper.PageInfo;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
@@ -55,6 +55,9 @@ public class SceneImportService {
         PoUtil.initAddPo(po);
         String id = po.getId();
         po.setStatus(DictConstants.SCENE_IMPORT_STATUS_0); //重置状态
+        if (ObjectUtil.isNotNull(po.getSceneEvaluationRuleId())) {
+            po.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_0);
+        }
         if (ObjectUtil.isNull(id)) { // 新增场景导入任务
             po.setId(StringUtil.getRandomUUID());
             sceneImportMapper.insert(po);

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

@@ -725,6 +725,8 @@ public class SceneNaturalService {
                     try {
                         if (CollectionUtil.isNotEmpty(sceneComplexityEvaluationComputeParam.getSceneEvaluationComputeSubParam())) {
                             sceneComplexityEvaluationComputeParam.setTaskId(taskId);
+                            sceneComplexityEvaluationComputeParam.setEvaluationId(parms.getId());
+                            sceneComplexityEvaluationComputeParam.setType(DictConstants.SCENE_IMPORT_EVALUATION_TYPE);
                             sceneComplexityEvaluationComputeParam.setSceneEvaluationRuleId(parms.getSceneEvaluationRuleId());
                             sceneComplexityEvaluationComputeParam.setComputeType(DictConstants.COMPLEXITY);
                             sceneComplexityEvaluationComputeParam.setCreateUserId(AuthUtil.getCurrentUserId());

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

@@ -374,6 +374,8 @@ public class SceneReferenceLibService {
                     if (CollectionUtil.isNotEmpty(sceneComplexityEvaluationComputeParam.getSceneEvaluationComputeSubParam())) {
                         try {
                             sceneComplexityEvaluationComputeParam.setTaskId(taskId);
+                            sceneComplexityEvaluationComputeParam.setEvaluationId(params.getId());
+                            sceneComplexityEvaluationComputeParam.setType(DictConstants.SCENE_IMPORT_EVALUATION_TYPE);
                             sceneComplexityEvaluationComputeParam.setSceneEvaluationRuleId(params.getSceneEvaluationRuleId());
                             sceneComplexityEvaluationComputeParam.setComputeType(DictConstants.COMPLEXITY);
                             sceneComplexityEvaluationComputeParam.setCreateUserId(AuthUtil.getCurrentUserId());

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

@@ -446,6 +446,8 @@ public class SceneStandardsService {
                     try {
                         if (CollectionUtil.isNotEmpty(sceneComplexityEvaluationComputeParam.getSceneEvaluationComputeSubParam())) {
                             sceneComplexityEvaluationComputeParam.setTaskId(taskId);
+                            sceneComplexityEvaluationComputeParam.setEvaluationId(parms.getId());
+                            sceneComplexityEvaluationComputeParam.setType(DictConstants.SCENE_IMPORT_EVALUATION_TYPE);
                             sceneComplexityEvaluationComputeParam.setSceneEvaluationRuleId(parms.getSceneEvaluationRuleId());
                             sceneComplexityEvaluationComputeParam.setComputeType(DictConstants.COMPLEXITY);
                             sceneComplexityEvaluationComputeParam.setCreateUserId(AuthUtil.getCurrentUserId());

+ 8 - 1
simulation-resource-server/src/main/resources/mysql/mapper/SceneImportMapper.xml

@@ -29,6 +29,7 @@
            create_time,
            modify_user_id,
            modify_time,
+           evaluation_status,
            is_deleted
         )VALUES(
           #{id,jdbcType=VARCHAR},
@@ -40,6 +41,7 @@
           #{createTime,jdbcType=TIMESTAMP},
           #{modifyUserId,jdbcType=VARCHAR},
           #{modifyTime,jdbcType=TIMESTAMP},
+          #{evaluationStatus,jdbcType=VARCHAR},
           #{isDeleted,jdbcType=VARCHAR}
         )
     </insert>
@@ -51,6 +53,7 @@
           scene_type = #{sceneType,jdbcType=VARCHAR},
           create_time = #{createTime,jdbcType=TIMESTAMP},
           modify_time = #{modifyTime,jdbcType=TIMESTAMP},
+          evaluation_status = #{evaluationStatus,jdbcType=VARCHAR},
           modify_user_id = #{modifyUserId,jdbcType=VARCHAR}
         where id = #{id,jdbcType=VARCHAR}
     </update>
@@ -89,7 +92,11 @@
           error_message,
           total_time,
           create_time,
-          is_deleted
+          is_deleted,
+          evaluation_status,
+          evaluation_error_msg,
+          start_evaluation_time,
+          end_evaluation_time
         from simulation.scene_import_task
         where
         is_deleted = '0'

+ 8 - 4
simulation-resource-server/src/main/resources/mysql/mapper/SimulationManualProjectMapper.xml

@@ -40,7 +40,8 @@
          complexity_evaluation_rule_id,
          risk_evaluation_rule_id,
          exposure_rate_evaluation_rule_id,
-         coverage_rate_evaluation_rule_id)
+         coverage_rate_evaluation_rule_id,
+         evaluation_json_msg)
         values (#{id},
                 #{projectDate,jdbcType=INTEGER},
                 #{projectNum,jdbcType=INTEGER},
@@ -72,7 +73,7 @@
                 #{vehicleArray},
                 #{sceneArray},
                 #{details}, #{complexityEvaluationRuleId}, #{riskEvaluationRuleId}, #{exposureRateEvaluationRuleId},
-                #{coverageRateEvaluationRuleId})
+                #{coverageRateEvaluationRuleId}, #{evaluationJsonMsg})
     </insert>
 
     <!--根据id查询工作信息-->
@@ -96,6 +97,7 @@
             risk_evaluation_rule_id = #{riskEvaluationRuleId},
             exposure_rate_evaluation_rule_id = #{exposureRateEvaluationRuleId},
             coverage_rate_evaluation_rule_id = #{coverageRateEvaluationRuleId},
+            evaluation_json_msg = #{evaluationJsonMsg},
             parallelism         = #{parallelism},
             is_choice_gpu       = #{isChoiceGpu},
             algorithm_array     = #{algorithmArray},
@@ -189,7 +191,8 @@
         is_deleted,
         algorithm_array,
         vehicle_array,
-        scene_array
+        scene_array,
+        evaluation_json_msg
         from simulation_manual_project
         <where>
             is_deleted = '0'
@@ -267,7 +270,8 @@
                coverage_rate_evaluation_rule_id,
                exposure_rate_evaluation_rule_id,
                complexity_evaluation_rule_id,
-               risk_evaluation_rule_id
+               risk_evaluation_rule_id,
+               evaluation_json_msg
         from simulation_manual_project
         where id = #{id}
           and is_deleted = '0'