李春阳 преди 1 година
родител
ревизия
8ac814d1ac

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

@@ -1,8 +1,10 @@
 package com.css.simulation.resource.scheduler.infra.db.mysql.mapper;
 package com.css.simulation.resource.scheduler.infra.db.mysql.mapper;
 
 
 import api.common.pojo.po.scene.SceneComplexityPO;
 import api.common.pojo.po.scene.SceneComplexityPO;
-import org.apache.ibatis.annotations.Insert;
-import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.*;
+import org.apache.ibatis.type.JdbcType;
+
+import java.util.List;
 
 
 
 
 @Mapper
 @Mapper
@@ -21,4 +23,39 @@ public interface SceneComplexityMapper {
             "                #{createUserId,jdbcType=VARCHAR}, #{createTime})")
             "                #{createUserId,jdbcType=VARCHAR}, #{createTime})")
     void saveSceneComplexity(SceneComplexityPO params);
     void saveSceneComplexity(SceneComplexityPO params);
 
 
+    @Results(id = "complexityEvaluationResult", value = {
+            @Result(column = "complexity_id", property = "complexityId", jdbcType = JdbcType.VARCHAR),
+            @Result(column = "scene_id", property = "sceneId", jdbcType = JdbcType.VARCHAR),
+            @Result(column = "scene_type", property = "sceneType", jdbcType = JdbcType.VARCHAR),
+            @Result(column = "rule_id", property = "ruleId", jdbcType = JdbcType.VARCHAR),
+            @Result(column = "rule_name", property = "ruleName", jdbcType = JdbcType.INTEGER),
+            @Result(column = "task_id", property = "taskId", jdbcType = JdbcType.INTEGER),
+            @Result(column = "complexity_level", property = "complexityLevel", jdbcType = JdbcType.INTEGER),
+            @Result(column = "is_deleted", property = "isDeleted", jdbcType = JdbcType.INTEGER),
+            @Result(column = "create_user_id", property = "createUserId", jdbcType = JdbcType.INTEGER),
+            @Result(column = "create_time", property = "createTime", jdbcType = JdbcType.TIMESTAMP)
+    })
+    @Select("        SELECT " +
+            "        *" +
+            "        FROM scene_complexity " +
+            "        WHERE " +
+            "            is_deleted = '0' AND task_id = #{taskId} AND scene_id = #{sceneId}" +
+            "        ORDER BY create_time DESC")
+    List<SceneComplexityPO> selectSceneComplexityEvaluation(@Param("taskId") String taskId, @Param("sceneId") String sceneId);
+
+    @Insert("<script>insert into simulation.scene_complexity" +
+            "            (complexity_id, scene_id, scene_type, rule_id," +
+            "    task_id, complexity, complexity_level," +
+            "    is_deleted, create_user_id, create_time" +
+            "    )" +
+            "    values " +
+            "     <foreach collection='list' item='item' separator=','>" +
+            "            (#{item.complexityId,jdbcType=VARCHAR}, #{item.sceneId,jdbcType=VARCHAR}, #{item.sceneType,jdbcType=VARCHAR}," +
+            "            #{item.ruleId,jdbcType=VARCHAR}," +
+            "            #{item.taskId,jdbcType=VARCHAR}, #{item.complexity,jdbcType=VARCHAR}," +
+            "            #{item.complexityLevel,jdbcType=VARCHAR}," +
+            "            #{item.isDeleted,jdbcType=VARCHAR}," +
+            "            #{item.createUserId,jdbcType=VARCHAR}, #{item.createTime})" +
+            "    </foreach></script>")
+    void saveSceneComplexityS(List<SceneComplexityPO> list);
 }
 }

+ 28 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infra/runnable/SceneEvaluationComputeRunnable.java

@@ -6,6 +6,7 @@ import api.common.pojo.param.scene.SceneEvaluationComputeSubParam;
 import api.common.pojo.po.scene.SceneComplexityPO;
 import api.common.pojo.po.scene.SceneComplexityPO;
 import api.common.pojo.po.scene.SceneEvaluationRulePO;
 import api.common.pojo.po.scene.SceneEvaluationRulePO;
 import api.common.pojo.po.scene.SceneRiskPO;
 import api.common.pojo.po.scene.SceneRiskPO;
+import api.common.util.CollectionUtil;
 import api.common.util.FileUtil;
 import api.common.util.FileUtil;
 import api.common.util.StringUtil;
 import api.common.util.StringUtil;
 import api.common.util.TimeUtil;
 import api.common.util.TimeUtil;
@@ -19,6 +20,7 @@ import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import io.minio.MinioClient;
 import io.minio.MinioClient;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 
 
 import java.io.*;
 import java.io.*;
 import java.nio.file.Files;
 import java.nio.file.Files;
@@ -26,7 +28,9 @@ import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.file.Paths;
 import java.nio.file.attribute.PosixFilePermission;
 import java.nio.file.attribute.PosixFilePermission;
 import java.text.DecimalFormat;
 import java.text.DecimalFormat;
+import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 import java.util.Set;
 
 
 import static api.common.pojo.enums.SceneEvaluationEnum.matchLevelEnumByLevel;
 import static api.common.pojo.enums.SceneEvaluationEnum.matchLevelEnumByLevel;
@@ -225,6 +229,9 @@ public class SceneEvaluationComputeRunnable implements Runnable {
                     sceneComplexityPO.setCreateUserId(sceneEvaluationComputeParam.getCreateUserId());
                     sceneComplexityPO.setCreateUserId(sceneEvaluationComputeParam.getCreateUserId());
                     sceneComplexityPO.setCreateTime(TimeUtil.getNowForMysql());
                     sceneComplexityPO.setCreateTime(TimeUtil.getNowForMysql());
                     sceneComplexityMapper.saveSceneComplexity(sceneComplexityPO);
                     sceneComplexityMapper.saveSceneComplexity(sceneComplexityPO);
+                    if (CollectionUtil.isNotEmpty(sceneEvaluationComputeSubParam.getCopySceneId())) {
+                        copySceneComplexityResult(sceneComplexityPO.getTaskId(), sceneEvaluationComputeSubParam.getSceneId(), sceneEvaluationComputeSubParam.getCopySceneId());
+                    }
                 } else {
                 } else {
                     String risk = rootNode.path("危险度").asText();
                     String risk = rootNode.path("危险度").asText();
                     String riskLevel = rootNode.path("危险度等级").asText();
                     String riskLevel = rootNode.path("危险度等级").asText();
@@ -251,5 +258,26 @@ public class SceneEvaluationComputeRunnable implements Runnable {
         }
         }
         // 删除临时文件
         // 删除临时文件
 //        FileUtil.deleteFolder(sceneEvaluationComputeParam.getLinuxTempPath() + "scene/evaluation/" + sceneEvaluationComputeParam.getTaskId());   // 删除临时文件
 //        FileUtil.deleteFolder(sceneEvaluationComputeParam.getLinuxTempPath() + "scene/evaluation/" + sceneEvaluationComputeParam.getTaskId());   // 删除临时文件
+
+    }
+
+    public void copySceneComplexityResult(String taskId, String tempSceneId, List<String> copySceneIds) {
+        SceneComplexityMapper sceneComplexityMapper = ApplicationContextAwareImpl.getApplicationContext().getBean(SceneComplexityMapper.class);
+        List<SceneComplexityPO> sceneComplexityPOS = sceneComplexityMapper.selectSceneComplexityEvaluation(taskId, tempSceneId);
+        List<SceneComplexityPO> saveList = new ArrayList<>();
+        if (CollectionUtil.isNotEmpty(sceneComplexityPOS)) {
+            for (SceneComplexityPO sceneComplexityPO : sceneComplexityPOS) {
+                for (String copySceneId : copySceneIds) {
+                    SceneComplexityPO tempComplexityPO = new SceneComplexityPO();
+                    BeanUtils.copyProperties(sceneComplexityPO, tempComplexityPO);
+                    tempComplexityPO.setSceneId(copySceneId);
+                    tempComplexityPO.setComplexityId(StringUtil.getRandomUUID());
+                    saveList.add(tempComplexityPO);
+                }
+            }
+            if (CollectionUtil.isNotEmpty(saveList)) {
+                sceneComplexityMapper.saveSceneComplexityS(saveList);
+            }
+        }
     }
     }
 }
 }