Просмотр исходного кода

Merge branch '20240309-saq-fix' of gitee.com:lingxinmeng/simulation-cloud into 20240309-saq-fix

夜得朦胧 1 год назад
Родитель
Сommit
c0d5dc320e

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

@@ -8,8 +8,17 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface SceneComplexityMapper {
 
-    @Insert( "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 (#{complexityId,jdbcType=VARCHAR}, #{sceneId,jdbcType=VARCHAR}, #{sceneType,jdbcType=VARCHAR},#{ruleId,jdbcType=VARCHAR},#{taskId,jdbcType=VARCHAR}, #{complexity,jdbcType=VARCHAR},#{complexityLevel,jdbcType=VARCHAR},#{isDeleted,jdbcType=VARCHAR},#{createUserId,jdbcType=VARCHAR}, #{createTime}")
+    @Insert("        insert into simulation.scene_complexity\n" +
+            "        (complexity_id, scene_id, scene_type, rule_id,\n" +
+            "         task_id, complexity, complexity_level,\n" +
+            "         is_deleted, create_user_id, create_time\n" +
+            "        )\n" +
+            "        values (#{complexityId,jdbcType=VARCHAR}, #{sceneId,jdbcType=VARCHAR}, #{sceneType,jdbcType=VARCHAR},\n" +
+            "                #{ruleId,jdbcType=VARCHAR},\n" +
+            "                #{taskId,jdbcType=VARCHAR}, #{complexity,jdbcType=VARCHAR},\n" +
+            "                #{complexityLevel,jdbcType=VARCHAR},\n" +
+            "                #{isDeleted,jdbcType=VARCHAR},\n" +
+            "                #{createUserId,jdbcType=VARCHAR}, #{createTime})")
     void saveSceneComplexity(SceneComplexityPO params);
 
 }

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

@@ -18,13 +18,6 @@ public interface SceneComplexityMapper {
             "where sc.scene_id = #{sceneId} order by sc.create_time desc")
     List<SceneComplexityPO> querySceneEvaluationComplexityDetail(@Param("sceneId") String sceneId);
 
-    void saveSceneComplexity(SceneComplexityPO params);
-
-    void saveSceneComplexityS(List<SceneComplexityPO> list);
-
-    @Select("SELECT * FROM scene_complexity WHERE scene_id = #{sceneId} AND task_id = #{taskId}")
-    List<SceneComplexityPO> selectSceneComplexityEvaluation(@Param("taskId") String taskId, @Param("sceneId") String sceneId);
-
     List<SceneComplexityPO> selectSceneComplexityEvaluationForExport(@Param("taskId") String taskId, @Param("list") List<String> list);
 
 }

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

@@ -22,6 +22,4 @@ public interface SceneRiskMapper {
             "where sr.scene_id = #{sceneId} order by sr.create_time desc" )
     List<SceneRiskPO> querySceneEvaluationRiskDetail(@Param("sceneId") String sceneId);
 
-    void saveSceneRisk(SceneRiskPO params);
-
 }

+ 0 - 253
simulation-resource-server/src/main/java/com/css/simulation/resource/server/infra/runnable/SceneEvaluationComputeRunnable.java

@@ -1,253 +0,0 @@
-package com.css.simulation.resource.server.infra.runnable;
-
-import api.common.pojo.constants.DictConstants;
-import api.common.pojo.param.MinioParameter;
-import api.common.pojo.param.scene.SceneEvaluationComputeParam;
-import api.common.pojo.param.scene.SceneImportParam;
-import api.common.pojo.po.scene.SceneComplexityPO;
-import api.common.pojo.po.scene.SceneEvaluationRulePO;
-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.css.simulation.resource.server.infra.db.mysql.mapper.SceneComplexityMapper;
-import com.css.simulation.resource.server.infra.db.mysql.mapper.SceneEvaluationRuleMapper;
-import com.css.simulation.resource.server.infra.feign.service.FileDownService;
-import com.css.simulation.resource.server.app.impl.ApplicationContextAwareImpl;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import feign.Response;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeanUtils;
-
-import java.io.*;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.attribute.PosixFilePermission;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import static api.common.pojo.enums.SceneEvaluationEnum.matchLevelEnumByLevel;
-
-/**
- * @author 15765
- * @date 2024/4/10 22:22
- */
-@Slf4j
-public class SceneEvaluationComputeRunnable implements Runnable {
-
-    private final String linuxTempPath;
-    private final SceneImportParam param;
-    private final List<SceneEvaluationComputeParam> sceneEvaluationComputeParams;
-
-    public SceneEvaluationComputeRunnable(SceneImportParam param, List<SceneEvaluationComputeParam> sceneEvaluationComputeParams, String linuxTempPath) {
-        this.param = param;
-        this.sceneEvaluationComputeParams = sceneEvaluationComputeParams;
-        this.linuxTempPath = linuxTempPath;
-    }
-
-    @Override
-    public void run() {
-//        String ruleId = param.getSceneEvaluationRuleId();
-//        log.info("开始执行线程:" + ruleId);
-//        SceneEvaluationRuleMapper sceneEvaluationRuleMapper = ApplicationContextAwareImpl.getApplicationContext().getBean(SceneEvaluationRuleMapper.class);
-//        SceneComplexityMapper sceneComplexityMapper = ApplicationContextAwareImpl.getApplicationContext().getBean(SceneComplexityMapper.class);
-//        // 获取场景评价规则
-//        SceneEvaluationRulePO sceneEvaluationRulePO = sceneEvaluationRuleMapper.querySceneEvaluationPyById(ruleId);
-//        if (sceneEvaluationRulePO == null) {
-//            log.error(ruleId + " 的场景评价规则已删除");
-//            return;
-//        }
-//        log.info("场景评价规则为:" + sceneEvaluationRulePO);
-//        // 1 判断有没有用户目录,没有则复制
-//        String evaluationDirectoryOfUser = linuxTempPath + "scene/evaluation/" + sceneEvaluationComputeParams.get(0).getTaskId() + "/";
-//        String scriptsPath = evaluationDirectoryOfUser + "scripts";
-//        if (!new File(evaluationDirectoryOfUser).exists()) {
-//            // 1 将场景评价规则脚本保存到 script 目录
-//            FileUtil.createDirectory(scriptsPath);
-//        }
-//
-//        // 下载场景评价脚本到脚本目录
-//        if (sceneEvaluationRulePO.getScriptPath() == null) {
-//            return;
-//        }
-//        String pyMainPath = scriptsPath + "/" + sceneEvaluationRulePO.getRuleId();
-//        if (!new File(pyMainPath).exists()) {
-//            try {
-//                downloadDependFile(sceneEvaluationRulePO.getScriptPath(), pyMainPath);
-//                Path path = Paths.get(pyMainPath);
-//                Set<PosixFilePermission> permissions = new HashSet<>();
-//                permissions.add(PosixFilePermission.OWNER_READ);
-//                permissions.add(PosixFilePermission.OWNER_WRITE);
-//                permissions.add(PosixFilePermission.OWNER_EXECUTE);
-//                permissions.add(PosixFilePermission.GROUP_READ);
-//                permissions.add(PosixFilePermission.GROUP_WRITE);
-//                permissions.add(PosixFilePermission.GROUP_EXECUTE);
-//                permissions.add(PosixFilePermission.OTHERS_READ);
-//                permissions.add(PosixFilePermission.OTHERS_WRITE);
-//                permissions.add(PosixFilePermission.OTHERS_EXECUTE);
-//                Files.setPosixFilePermissions(path, permissions);
-//            } catch (IOException e) {
-//                log.error("下载执行文件失败: " + sceneEvaluationRulePO.getScriptPath(), e);
-//                return;
-//            }
-//        }
-//        String scenePathFather = evaluationDirectoryOfUser + "scene/";
-//        for (SceneEvaluationComputeParam sceneEvaluationComputeParam : sceneEvaluationComputeParams) {
-//            // 创建场景路径
-//            String scenePath = scenePathFather + sceneEvaluationComputeParam.getSceneId();
-//            if (!new File(scenePath).exists()) {
-//                FileUtil.createDirectory(scenePath);
-//            } else {
-//                // 一个场景只计算一次
-//                return;
-//            }
-//            try {
-//                if (StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.COMPLEXITY)) {
-//                    if (StringUtil.isEmpty(sceneEvaluationComputeParam.getSceneXODRPath())
-//                            || StringUtil.isEmpty(sceneEvaluationComputeParam.getSceneXOSCPath())) {
-//                        continue;
-//                    }
-//                    // 计算复杂度,根据场景 id 获取场景信息,下载 osc odr
-//                    String scenarioOsc = sceneEvaluationComputeParam.getSceneXOSCPath();
-//                    String[] splitXosc = scenarioOsc.split("/");
-//                    String xoscName = splitXosc[splitXosc.length - 1];
-//                    downloadDependFile(sceneEvaluationComputeParam.getSceneXOSCPath(), scenePath + "/" + xoscName);
-//
-//                    String scenarioOdr = sceneEvaluationComputeParam.getSceneXODRPath();
-//                    String[] splitXodr = scenarioOdr.split("/");
-//                    String xodrName = splitXodr[splitXodr.length - 1];
-//                    downloadDependFile(sceneEvaluationComputeParam.getSceneXODRPath(), scenePath + "/" + xodrName);
-//                } else {
-//                    return;
-//                }
-//            } catch (IOException e) {
-//                log.error("文件下载失败", e);
-//                FileUtil.deleteFolder(scenePath);   // 删除临时文件
-//            }
-//        }
-//        String sceneEvaluationCommand;
-//        if (StringUtils.equals(sceneEvaluationComputeParams.get(0).getComputeType(), DictConstants.COMPLEXITY)) {
-//            sceneEvaluationCommand = pyMainPath + " " + scenePathFather + " complexity";
-//        } else {
-//            sceneEvaluationCommand = pyMainPath + " " + scenePathFather + " criticality";
-//        }
-//        String sceneEvaluationResult;
-//        log.info("开始执行场景评价命令:" + sceneEvaluationCommand);
-//        Runtime r = Runtime.getRuntime();
-//        Process p;
-//        try {
-//            p = r.exec(sceneEvaluationCommand);
-//        } catch (IOException e) {
-//            log.error("执行场景评价脚本失败,脚本命令为: " + sceneEvaluationCommand, e);
-//            return;
-//        }
-//
-//        StringBuilder sb = new StringBuilder();
-//        try {
-//            BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
-//            String inline;
-//            while ((inline = br.readLine()) != null) {
-//                sb.append(inline).append("\n");
-//            }
-//            br.close();
-//        } catch (IOException e) {
-//            log.error("获取场景评价脚本返回内容失败", e);
-//            return;
-//        }
-//        sceneEvaluationResult = sb.toString();
-//        log.info("场景评价结束,结果为:" + sceneEvaluationResult);
-//        for (SceneEvaluationComputeParam sceneEvaluationComputeParam : sceneEvaluationComputeParams) {
-//            // 读文件
-//            StringBuilder result = new StringBuilder();
-//            try {
-//                FileInputStream fileInputStream = new FileInputStream(scenePathFather + sceneEvaluationComputeParam.getSceneId() + "/scenario_evaluation.json");
-//                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
-//
-//                String line;
-//                while ((line = bufferedReader.readLine()) != null) {
-//                    result.append(line).append("\n");
-//                }
-//                bufferedReader.close();
-//            } catch (IOException e) {
-//                log.error("读取场景评价结果失败", e);
-//                continue;
-//            }
-//            String resultStr = result.toString();
-//            String replace = StringUtil.replace(resultStr, "'", "\"");
-//            JsonNode rootNode;
-//            try {
-//                ObjectMapper mapper = new ObjectMapper();
-//                //JSON ----> JsonNode
-//                rootNode = mapper.readTree(replace);
-//
-//                if (StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.COMPLEXITY)) {
-//                    String complexity = rootNode.path("复杂度").asText();
-//                    String complexityLevel = rootNode.path("复杂度等级").asText();
-//                    SceneComplexityPO sceneComplexityPO = new SceneComplexityPO();
-//                    sceneComplexityPO.setSceneId(sceneEvaluationComputeParam.getSceneId());
-//                    sceneComplexityPO.setComplexityId(StringUtil.getRandomUUID());
-//                    sceneComplexityPO.setSceneType(sceneEvaluationComputeParam.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());
-//                    sceneComplexityPO.setCreateTime(TimeUtil.getNowForMysql());
-//                    sceneComplexityMapper.saveSceneComplexity(sceneComplexityPO);
-//                    if (CollectionUtil.isNotEmpty(sceneEvaluationComputeParam.getCopySceneId())) {
-//                        copySceneComplexityResult(sceneEvaluationComputeParam.getTaskId(), sceneEvaluationComputeParam.getSceneId(), sceneEvaluationComputeParam.getCopySceneId());
-//                    }
-//                }
-//            } catch (Exception e) {
-//                log.error("场景" + sceneEvaluationComputeParam.getSceneId() + " 的场景评价失败:", e);
-//            }
-//        }
-//        // 删除临时文件
-//        FileUtil.deleteFolder(linuxTempPath + "scene/evaluation/" + sceneEvaluationComputeParams.get(0).getTaskId());   // 删除临时文件
-//    }
-//
-//
-//    private void downloadDependFile(String minioPath, String localPath) throws IOException {
-//        FileDownService fileDownService = ApplicationContextAwareImpl.getApplicationContext().getBean(FileDownService.class);
-//        Response download = fileDownService.download(MinioParameter.builder().objectName(minioPath).build());
-//        Response.Body body = download.body();
-//        InputStream inputStream;
-//        inputStream = body.asInputStream();
-//        File file = new File(localPath);
-//        OutputStream outputStream = Files.newOutputStream(file.toPath());
-//        byte[] buffer = new byte[1024];
-//        int bytesRead;
-//        while ((bytesRead = inputStream.read(buffer)) != -1) {
-//            outputStream.write(buffer, 0, bytesRead);
-//        }
-//        inputStream.close();
-//        outputStream.close();
-//        download.close();
-    }
-
-    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);
-            }
-        }
-    }
-}

+ 0 - 19
simulation-resource-server/src/main/java/com/css/simulation/resource/server/infra/threadpool/ThreadPool.java

@@ -1,19 +0,0 @@
-package com.css.simulation.resource.server.infra.threadpool;
-
-import org.glassfish.jersey.internal.guava.ThreadFactoryBuilder;
-
-import java.util.concurrent.*;
-
-/**
- * @author lcy
- * @date 2024/4/10 21:01
- */
-public class ThreadPool {
-    private static final ThreadFactory sceneEvaluationComputeFactory = new ThreadFactoryBuilder()
-            .setNameFormat("scene-evaluation-compute-pool-%d").build();
-
-    public static ExecutorService sceneEvaluationComputePool = new ThreadPoolExecutor(5, 200,
-            0L, TimeUnit.MILLISECONDS,
-            new LinkedBlockingQueue<>(1024), sceneEvaluationComputeFactory, new ThreadPoolExecutor.AbortPolicy());
-
-}

+ 0 - 31
simulation-resource-server/src/main/resources/mysql/mapper/SceneComplexityMapper.xml

@@ -55,35 +55,4 @@
         ORDER BY create_time DESC;
     </select>
 
-    <insert id="saveSceneComplexity" parameterType="api.common.pojo.po.scene.SceneComplexityPO">
-        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 (#{complexityId,jdbcType=VARCHAR}, #{sceneId,jdbcType=VARCHAR}, #{sceneType,jdbcType=VARCHAR},
-                #{ruleId,jdbcType=VARCHAR},
-                #{taskId,jdbcType=VARCHAR}, #{complexity,jdbcType=VARCHAR},
-                #{complexityLevel,jdbcType=VARCHAR},
-                #{isDeleted,jdbcType=VARCHAR},
-                #{createUserId,jdbcType=VARCHAR}, #{createTime})
-    </insert>
-
-    <insert id="saveSceneComplexityS">
-        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>
-    </insert>
-
 </mapper>

+ 0 - 14
simulation-resource-server/src/main/resources/mysql/mapper/SceneRiskMapper.xml

@@ -54,18 +54,4 @@
         </where>
         ORDER BY create_time DESC;
     </select>
-
-    <insert id="saveSceneRisk" parameterType="api.common.pojo.po.scene.SceneRiskPO">
-        insert into simulation.scene_risk
-        (risk_id, scene_id, scene_type, rule_id,algorithm_id,vehicle_id
-         task_id, risk, risk_level,
-         is_deleted, create_user_id, create_time
-        )
-        values (#{riskId,jdbcType=VARCHAR}, #{sceneId,jdbcType=VARCHAR}, #{sceneType,jdbcType=VARCHAR},
-                #{ruleId,jdbcType=VARCHAR},#{algorithmId,jdbcType=VARCHAR},#{vehicleId,jdbcType=VARCHAR},
-                #{taskId,jdbcType=VARCHAR}, #{risk,jdbcType=VARCHAR},
-                #{riskLevel,jdbcType=VARCHAR},
-                #{isDeleted,jdbcType=VARCHAR},
-                #{createUserId,jdbcType=VARCHAR}, #{createTime})
-    </insert>
 </mapper>