瀏覽代碼

项目报告字段修改

root 2 年之前
父節點
當前提交
c26f564d02

+ 15 - 12
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/manager/TaskManager.java

@@ -260,14 +260,21 @@ public class TaskManager {
                             throw new RuntimeException("------- TaskService--state 项目" + projectId + "的任务" + task2Id + " 打分出错,命令为:" + scoreCommand + " 修改状态为:" + DictConstants.TASK_ABORTED + "\n" + e.getMessage());
                             throw new RuntimeException("------- TaskService--state 项目" + projectId + "的任务" + task2Id + " 打分出错,命令为:" + scoreCommand + " 修改状态为:" + DictConstants.TASK_ABORTED + "\n" + e.getMessage());
                         }
                         }
                         taskOfLeaf.setReturnSceneId(score.getUnit_scene_ID());
                         taskOfLeaf.setReturnSceneId(score.getUnit_scene_ID());
-                        taskOfLeaf.setScore(score.getUnit_scene_score());
                         taskOfLeaf.setTargetEvaluate(score.getEvaluate_item());
                         taskOfLeaf.setTargetEvaluate(score.getEvaluate_item());
                         taskOfLeaf.setScoreExplain(score.getScore_description());
                         taskOfLeaf.setScoreExplain(score.getScore_description());
                         taskOfLeaf.setModifyUserId(userId);
                         taskOfLeaf.setModifyUserId(userId);
                         taskOfLeaf.setModifyTime(TimeUtil.getNowForMysql());
                         taskOfLeaf.setModifyTime(TimeUtil.getNowForMysql());
                         scoreExplain.set(score.getScore_description());
                         scoreExplain.set(score.getScore_description());
                         taskOfLeaf.setRunState(DictConstants.TASK_COMPLETED);
                         taskOfLeaf.setRunState(DictConstants.TASK_COMPLETED);
-                        taskMapper.updateSuccessStateAndScoreResultWithStopTime(taskOfLeaf, DictConstants.TASK_COMPLETED, TimeUtil.getNowForMysql());
+                        double taskScore = score.getUnit_scene_score();
+                        if (taskScore == -1.0) {
+                            taskOfLeaf.setScore(0.0);
+                            taskOfLeaf.setScored(false);
+                        } else {
+                            taskOfLeaf.setScore(taskScore);
+                            taskOfLeaf.setScored(true);
+                        }
+                        taskMapper.updateSuccessState(taskOfLeaf, DictConstants.TASK_COMPLETED);
                     }
                     }
                 } catch (Exception e) {
                 } catch (Exception e) {
                     taskOfLeaf.setRunState(DictConstants.TASK_ABORTED);
                     taskOfLeaf.setRunState(DictConstants.TASK_ABORTED);
@@ -280,19 +287,19 @@ public class TaskManager {
 
 
             // 计算不合格的任务数(不到100分就是不合格,执行失败的不算)
             // 计算不合格的任务数(不到100分就是不合格,执行失败的不算)
             // 计算叶子指标下任务得分总和
             // 计算叶子指标下任务得分总和
-            int errorSceneNumber = 0;
-            int notScoredSceneNumber = 0;
+            int errorSceneNumber = 0;   // 仿真失败的任务
+            int notScoredSceneNumber = 0;   // 评分失败的任务
             int notStandardSceneNumber = 0;
             int notStandardSceneNumber = 0;
             int standardSceneNumber = 0;
             int standardSceneNumber = 0;
             double leafSum = 0.0;
             double leafSum = 0.0;
             for (TaskPO task : taskListOfLeafIndex) {
             for (TaskPO task : taskListOfLeafIndex) {
                 Double scoreTemp = task.getScore();
                 Double scoreTemp = task.getScore();
-                if (scoreTemp == null) {   // 失败状态的任务是没有分数的,计 0 分。
+                if (scoreTemp == null) {   // 失败状态的任务是没有分数的,计 0 分。
                     errorSceneNumber++;
                     errorSceneNumber++;
                     scoreTemp = 0.0;
                     scoreTemp = 0.0;
-                } else if ("-1".equals(task.getScore().toString())) {  // 如果得分是 -1 ,说明是评分规则无法打分,即也不参与计
+                } else if (!task.getScored()) {  // 如果评分失败,也计作 0 
                     notScoredSceneNumber++;
                     notScoredSceneNumber++;
-                    continue;
+                    scoreTemp = 0.0;
                 } else if (scoreTemp < 100.0) {
                 } else if (scoreTemp < 100.0) {
                     notStandardSceneNumber++;
                     notStandardSceneNumber++;
                 } else if (scoreTemp == 100.0) {
                 } else if (scoreTemp == 100.0) {
@@ -303,17 +310,13 @@ public class TaskManager {
             }
             }
 
 
             // 计算任务的个数
             // 计算任务的个数
-            long taskNumberToScore = errorSceneNumber + notStandardSceneNumber + standardSceneNumber;
+            long taskNumberToScore = taskListOfLeafIndex.size();
             log.info("TaskManager--score 项目 " + projectId + " 的叶子指标 " + indexId
             log.info("TaskManager--score 项目 " + projectId + " 的叶子指标 " + indexId
                     + " 下参与计算的任务总数为 " + taskNumberToScore
                     + " 下参与计算的任务总数为 " + taskNumberToScore
                     + ":仿真异常场景个数 " + errorSceneNumber
                     + ":仿真异常场景个数 " + errorSceneNumber
                     + "、未达标场景个数 " + notStandardSceneNumber
                     + "、未达标场景个数 " + notStandardSceneNumber
                     + "、达标场景个数 " + standardSceneNumber
                     + "、达标场景个数 " + standardSceneNumber
             );
             );
-            // 如果叶子指标下的所有任务得分都是 -1,则直接跳过该指标,不参与后边的总分计算
-            if (taskNumberToScore == 0) {
-                continue;
-            }
 
 
             // 计算叶子指标得分(任务得分总和 / 任务数量)
             // 计算叶子指标得分(任务得分总和 / 任务数量)
             double leafIndexScore = NumberUtil.cut(leafSum / taskNumberToScore, 2);
             double leafIndexScore = NumberUtil.cut(leafSum / taskNumberToScore, 2);

+ 13 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/TaskMapper.java

@@ -105,6 +105,19 @@ public interface TaskMapper {
             "  where id = #{task.id}")
             "  where id = #{task.id}")
     void updateSuccessStateAndScoreResultWithStopTime(@Param("task") TaskPO task, @Param("runState") String runState, @Param("runStopTime") Timestamp runStopTime);
     void updateSuccessStateAndScoreResultWithStopTime(@Param("task") TaskPO task, @Param("runState") String runState, @Param("runStopTime") Timestamp runStopTime);
 
 
+    @Update("update simulation_manual_project_task\n" +
+            "set run_state = #{runState}," +
+            "    run_result = 'Success'," +
+            "    return_scene_id = #{task.returnSceneId},\n" +
+            "    score           = #{task.score},\n" +
+            "    target_evaluate = #{task.targetEvaluate},\n" +
+            "    score_explain   = #{task.scoreExplain},\n" +
+            "    modify_user_id  = #{task.modifyUserId},\n" +
+            "    modify_time     = #{task.modifyTime}\n" +
+            "  where id = #{task.id}")
+    void updateSuccessState(@Param("task") TaskPO task, @Param("runState") String runState);
+
+
 
 
     @Update("update simulation_manual_project_task\n" +
     @Update("update simulation_manual_project_task\n" +
             "set run_state = #{runState}\n" +
             "set run_state = #{runState}\n" +

+ 1 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/pojo/po/TaskPO.java

@@ -18,6 +18,7 @@ public class TaskPO extends CommonPO {
     private String runResultFilePath;
     private String runResultFilePath;
     private String returnSceneId;
     private String returnSceneId;
     private Double score;
     private Double score;
+    private Boolean scored;
     private String targetEvaluate;
     private String targetEvaluate;
     private String scoreExplain;
     private String scoreExplain;
     private Long maxSimulationTime;
     private Long maxSimulationTime;

+ 2 - 2
simulation-resource-server/src/main/java/com/css/simulation/resource/model/ctrl/VehicleTempCtrl.java

@@ -63,12 +63,12 @@ public class VehicleTempCtrl {
     @ResponseBody
     @ResponseBody
     public ResponseBodyVO<VehicleTempPO> saveVehicleTemp(@RequestBody VehicleTempPO po){
     public ResponseBodyVO<VehicleTempPO> saveVehicleTemp(@RequestBody VehicleTempPO po){
         if(ObjectUtil.isNull(po)){
         if(ObjectUtil.isNull(po)){
-            return new ResponseBodyVO(false, 500, "参数必传!",null);
+            return new ResponseBodyVO<>(false, 500, "参数必传!",null);
         }
         }
         ResponseBodyVO<VehicleTempPO> response = new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
         ResponseBodyVO<VehicleTempPO> response = new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
         po = vehicleTempService.saveVehicleTemp(po);
         po = vehicleTempService.saveVehicleTemp(po);
         if(ObjectUtil.isNull(po.getId())){
         if(ObjectUtil.isNull(po.getId())){
-            return new ResponseBodyVO(false, 500, "车辆类型、型号、颜色重复!",null);
+            return new ResponseBodyVO<>(false, 500, "车辆类型、型号、颜色重复!",null);
         }
         }
         response.setInfo(po);
         response.setInfo(po);
         return response;
         return response;

+ 1 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/model/mapper/VehicleTempMapper.java

@@ -20,6 +20,7 @@ public interface VehicleTempMapper {
 
 
     List<VehicleTempVO> checkVehicleName(VehicleTempPO po);
     List<VehicleTempVO> checkVehicleName(VehicleTempPO po);
 
 
+
     void insert(VehicleTempPO po);
     void insert(VehicleTempPO po);
 
 
     void update(VehicleTempPO po);
     void update(VehicleTempPO po);

+ 4 - 2
simulation-resource-server/src/main/resources/mapper/model/VehicleTempMapper.xml

@@ -109,11 +109,13 @@
         from model_vehicle_template
         from model_vehicle_template
         where is_deleted = '0'
         where is_deleted = '0'
           and id &lt;&gt; #{id,jdbcType=VARCHAR}
           and id &lt;&gt; #{id,jdbcType=VARCHAR}
-          and vehicle_type = #{vehicleType,jdbcType=VARCHAR}
+          and (vehicle_type = #{vehicleType,jdbcType=VARCHAR}
           and vehicle_model = #{vehicleModel,jdbcType=VARCHAR}
           and vehicle_model = #{vehicleModel,jdbcType=VARCHAR}
-          and vehicle_colour = #{vehicleColour,jdbcType=VARCHAR}
+          and vehicle_colour = #{vehicleColour,jdbcType=VARCHAR})
+          or model_label = #{modelLabel,jdbcType=VARCHAR}
     </select>
     </select>
 
 
+
     <insert id="insert" parameterType="api.common.pojo.po.model.VehicleTempPO">
     <insert id="insert" parameterType="api.common.pojo.po.model.VehicleTempPO">
         insert into model_vehicle_template(
         insert into model_vehicle_template(
             id,
             id,