root пре 2 година
родитељ
комит
52348be3ba
90 измењених фајлова са 652 додато и 653 уклоњено
  1. 3 2
      api-common/src/main/java/api/common/util/JsonUtil.java
  2. 90 26
      api-common/src/main/java/api/common/util/LinuxUtil.java
  3. 1 1
      pom.xml
  4. 0 54
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/resource/TaskLock.java
  5. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/advice/AllExceptionHandlerAdvice.java
  6. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/algorithm/AlgorithmPlatform.java
  7. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/algorithm/OauthParameter.java
  8. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/docker/DockerConfiguration.java
  9. 15 0
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/esmini/EsminiConfiguration.java
  10. 4 5
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/feign/VideoFeignClient.java
  11. 3 3
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/feign/fallback/VideoFeignClientFallBack.java
  12. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/git/GitConfiguration.java
  13. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/http/HttpConfiguration.java
  14. 3 3
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/init/CustomApplicationRunner.java
  15. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/kafka/KafkaAdminConfiguration.java
  16. 3 3
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/kubernetes/KubernetesConfiguration.java
  17. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/minio/MinioConfiguration.java
  18. 4 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/redis/CustomRedisClient.java
  19. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/redis/RedisTemplateConfiguration.java
  20. 120 121
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/consumer/ProjectConsumer.java
  21. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/controller/AlgorithmController.java
  22. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/controller/NodeController.java
  23. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/controller/TaskController.java
  24. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/AlgorithmEntity.java
  25. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/CameraEntity.java
  26. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/ClusterEntity.java
  27. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/DockerNodeTO.java
  28. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/DynamicsTO.java
  29. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/IndexTemplateEntity.java
  30. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/InfoEntity.java
  31. 4 4
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/KubernetesNodeEntity.java
  32. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/LeafIndexEntity.java
  33. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/ModelEntity.java
  34. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/NodeEntity.java
  35. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/OgtEntity.java
  36. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/PartitionEntity.java
  37. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/PrefixEntity.java
  38. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/ProjectEntity.java
  39. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/ScenarioEntity.java
  40. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/SceneEntity.java
  41. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/ScoreEntity.java
  42. 17 0
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/SensorsEntity.java
  43. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/TaskEntity.java
  44. 4 4
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/TaskMessageEntity.java
  45. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/UserEntity.java
  46. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/VehicleEntity.java
  47. 3 3
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/VehicleTO.java
  48. 5 5
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/manager/ProjectManager.java
  49. 6 6
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/manager/TaskIndexManager.java
  50. 86 106
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/manager/TaskManager.java
  51. 4 4
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/AlgorithmMapper.java
  52. 4 4
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/AutoSubProjectMapper.java
  53. 3 3
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/ClusterMapper.java
  54. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/ConfigMapper.java
  55. 4 4
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/IndexMapper.java
  56. 6 6
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/IndexTemplateMapper.java
  57. 4 4
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/ManualProjectMapper.java
  58. 8 8
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SceneMapper.java
  59. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/ScoringRulesMapper.java
  60. 3 3
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SensorCameraMapper.java
  61. 3 3
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SensorOgtMapper.java
  62. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SimulationAutomaticProjectMapper.java
  63. 8 8
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/TaskMapper.java
  64. 3 3
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/UserMapper.java
  65. 3 3
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/VehicleMapper.java
  66. 11 0
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/resource/TaskLock.java
  67. 7 7
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/scheduler/AlgorithmScheduler.java
  68. 4 4
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/scheduler/ProjectScheduler.java
  69. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/AlgorithmService.java
  70. 26 26
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/ProjectService.java
  71. 14 14
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/TaskService.java
  72. 0 19
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/domain/SensorsTO.java
  73. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/ApacheKafkaUtil.java
  74. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/GitUtil.java
  75. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/KubernetesUtil.java
  76. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/MinioUtil.java
  77. 75 53
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/ProjectUtil.java
  78. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/RedisUtil.java
  79. 0 10
      simulation-resource-scheduler/src/main/resources/bootstrap-aliyun.yaml
  80. 0 10
      simulation-resource-server/src/main/resources/bootstrap-aliyun.yaml
  81. 0 10
      simulation-resource-server/src/main/resources/bootstrap-windowstest.yaml
  82. 0 2
      simulation-resource-server/src/main/resources/simulation.sql
  83. 1 1
      simulation-resource-video/src/main/java/com/css/simulation/resource/video/configuration/minio/MinioConfiguration.java
  84. 1 1
      simulation-resource-video/src/main/java/com/css/simulation/resource/video/configuration/redis/CustomRedisClient.java
  85. 1 1
      simulation-resource-video/src/main/java/com/css/simulation/resource/video/configuration/redis/RedisTemplateConfiguration.java
  86. 8 10
      simulation-resource-video/src/main/java/com/css/simulation/resource/video/controller/VideoController.java
  87. 2 2
      simulation-resource-video/src/main/java/com/css/simulation/resource/video/entity/VehicleEntity.java
  88. 2 2
      simulation-resource-video/src/main/java/com/css/simulation/resource/video/mapper/VehicleMapper.java
  89. 14 19
      simulation-resource-video/src/main/java/com/css/simulation/resource/video/service/VideoService.java
  90. 1 1
      simulation-resource-video/src/main/java/com/css/simulation/resource/video/util/MinioUtil.java

+ 3 - 2
api-common/src/main/java/api/common/util/JsonUtil.java

@@ -7,6 +7,7 @@ import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.TextNode;
 import com.fasterxml.jackson.databind.type.TypeFactory;
+import lombok.SneakyThrows;
 
 
 import java.util.ArrayList;
@@ -43,9 +44,9 @@ public class JsonUtil {
      * @param tClass 返回值类型
      * @param <T>    声明为泛型方法
      * @return bean 对象
-     * @throws JsonProcessingException 异常
      */
-    public static <T> T jsonToBean(String json, Class<T> tClass) throws JsonProcessingException {
+    @SneakyThrows
+    public static <T> T jsonToBean(String json, Class<T> tClass) {
         return new ObjectMapper().readValue(json, tClass);
     }
 

+ 90 - 26
api-common/src/main/java/api/common/util/LinuxUtil.java

@@ -7,18 +7,24 @@ import java.io.BufferedInputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Scanner;
+import java.util.concurrent.TimeUnit;
 
 @Slf4j
 public class LinuxUtil {
 
     @SneakyThrows
-    public static String kill(String command) {
-        return execute("echo kill $(ps -ef | grep '" + command + "' | awk '{ print $2 }')");
+    public static void kill(String command) {
+        execute("echo kill $(ps -ef | grep '" + command + "' | awk '{ print $2 }')");
     }
-    public static String execute(String cmd) throws IOException {
-        log.info("开始执行 linux 命令:" + cmd);
+
+    @SneakyThrows
+    public static String execute(String command) {
+        String result;
+        log.info("开始执行 linux 命令:" + command);
         Runtime run = Runtime.getRuntime();
-        Process process = run.exec(cmd);
+        Process process = run.exec(command);
         InputStream in = new BufferedInputStream(process.getInputStream());
         StringBuilder out = new StringBuilder();
         byte[] b = new byte[8192];
@@ -27,8 +33,9 @@ public class LinuxUtil {
         }
         in.close();
         process.destroy();
-        log.info("执行结果为:" + out);
-        return out.toString();
+        result = out.toString();
+        log.info("执行结果为:" + result);
+        return result;
     }
 
     /**
@@ -38,27 +45,24 @@ public class LinuxUtil {
      * @param directory 工作目录
      * @return 执行结果
      */
+    @SneakyThrows
     public static String execute(String command, String directory) {
-        try {
-            String result;
-            log.info("execute() 开始执行 linux 命令:" + command);
-            Runtime run = Runtime.getRuntime();
-            Process process = run.exec(command, null, new File(directory));
-            InputStream in = new BufferedInputStream(process.getInputStream());
-            StringBuilder out = new StringBuilder();
-            byte[] b = new byte[8192];
-            for (int n; (n = in.read(b)) != -1; ) {
-                out.append(new String(b, 0, n));
-            }
-            in.close();
-            process.destroy();
-            result = out.toString();
-            log.info("execute() 执行结果为:" + result);
-            return result;
-        } catch (Exception e) {
-            e.printStackTrace();
-            throw new RuntimeException(e);
+
+        String result;
+        log.info("开始执行 linux 命令:" + command);
+        Runtime run = Runtime.getRuntime();
+        Process process = run.exec(command, null, new File(directory));
+        InputStream in = new BufferedInputStream(process.getInputStream());
+        StringBuilder out = new StringBuilder();
+        byte[] b = new byte[8192];
+        for (int n; (n = in.read(b)) != -1; ) {
+            out.append(new String(b, 0, n));
         }
+        in.close();
+        process.destroy();
+        result = out.toString();
+        log.info("执行结果为:" + result);
+        return result;
     }
 
     public static void execute2(String cmd1, String cmd2) throws IOException, InterruptedException {
@@ -74,4 +78,64 @@ public class LinuxUtil {
         log.info("linux 命令执行完成。");
     }
 
+
+    public static String run(String command) throws IOException {
+        Scanner input = null;
+        StringBuilder result = new StringBuilder();
+        Process process = null;
+        try {
+            process = Runtime.getRuntime().exec(command);
+            try {
+                //等待命令执行完成
+                process.waitFor(10, TimeUnit.SECONDS);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+            InputStream is = process.getInputStream();
+            input = new Scanner(is);
+            while (input.hasNextLine()) {
+                result.append(input.nextLine()).append("\n");
+            }
+            result.insert(0, command + "\n"); //加上命令本身,打印出来
+        } finally {
+            if (input != null) {
+                input.close();
+            }
+            if (process != null) {
+                process.destroy();
+            }
+        }
+        return result.toString();
+    }
+
+    public static String run(String[] command) throws IOException {
+        Scanner input = null;
+        StringBuilder result = new StringBuilder();
+        Process process = null;
+        try {
+            process = Runtime.getRuntime().exec(command);
+            try {
+                //等待命令执行完成
+                process.waitFor(10, TimeUnit.SECONDS);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+            InputStream is = process.getInputStream();
+            input = new Scanner(is);
+            while (input.hasNextLine()) {
+                result.append(input.nextLine()).append("\n");
+            }
+            result.insert(0, Arrays.toString(command) + "\n"); //加上命令本身,打印出来
+        } finally {
+            if (input != null) {
+                input.close();
+            }
+            if (process != null) {
+                process.destroy();
+            }
+        }
+        return result.toString();
+    }
+
+
 }

+ 1 - 1
pom.xml

@@ -46,6 +46,7 @@
         <!-- 消息队列 -->
         <kafka-clients.version>3.1.0</kafka-clients.version>
         <!-- 其他 -->
+        <commons-pool2.version>2.11.1</commons-pool2.version>
         <japidocs.version>1.4.4</japidocs.version>
         <junit.version>4.12</junit.version>
         <log4j.version>1.2.17</log4j.version>
@@ -53,7 +54,6 @@
         <logback-classic.version>1.2.10</logback-classic.version>
         <jjwt.version>0.9.1</jjwt.version>
         <httpclient.version>4.5.13</httpclient.version>
-        <commons-pool2.version>2.11.1</commons-pool2.version>
         <minio.version>8.3.5</minio.version>
         <okhttp.version>4.9.3</okhttp.version>
         <kubernetes-client.version>15.0.1</kubernetes-client.version>

+ 0 - 54
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/resource/TaskLock.java

@@ -1,54 +0,0 @@
-package com.css.simulation.resource.scheduler.common.resource;
-
-import api.common.pojo.dto.ProjectMessageDTO;
-import api.common.util.JsonUtil;
-import com.css.simulation.resource.scheduler.service.domain.PrefixTO;
-import com.css.simulation.resource.scheduler.common.util.ProjectUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.data.redis.core.StringRedisTemplate;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
-
-@Component
-@Slf4j
-public class TaskLock {
-    private final Lock lock = new ReentrantLock();
-
-    @Resource
-    StringRedisTemplate stringRedisTemplate;
-    @Resource
-    ProjectUtil projectUtil;
-
-    /**
-     * 判断完成度
-     */
-    public boolean complete(
-            PrefixTO redisPrefix,
-            String projectId,
-            String nodeName,
-            String podName
-    ) {
-        boolean result = false;
-        lock.lock();
-        try {
-            ProjectMessageDTO projectMessageDTO = JsonUtil.jsonToBean(stringRedisTemplate.opsForValue().get(redisPrefix.getProjectRunningKey()), ProjectMessageDTO.class);
-            int taskTotal = projectMessageDTO.getTaskTotal();
-            int taskCompleted = projectMessageDTO.getTaskCompleted();
-            log.info("complete() 项目 " + projectId + " 完成进度为:" + (taskCompleted + 1) + "/" + taskTotal);
-            if (taskCompleted + 1 == taskTotal) {
-                result = true;
-            } else {    // 项目没有完成
-                projectMessageDTO.setTaskCompleted(taskCompleted + 1);  // 增加已完成任务数
-                stringRedisTemplate.opsForValue().set(redisPrefix.getProjectRunningKey(), JsonUtil.beanToJson(projectMessageDTO));
-            }
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        } finally {
-            lock.unlock();
-        }
-        return result;
-    }
-}

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/web/controller/advice/AllExceptionHandlerAdvice.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/advice/AllExceptionHandlerAdvice.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.web.controller.advice;
+package com.css.simulation.resource.scheduler.configuration.advice;
 
 import api.common.pojo.common.ResponseBodyVO;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/configuration/algorithm/AlgorithmPlatform.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/algorithm/AlgorithmPlatform.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.common.configuration.algorithm;
+package com.css.simulation.resource.scheduler.configuration.algorithm;
 
 import api.common.util.HttpUtil;
 import api.common.util.JsonUtil;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/configuration/algorithm/OauthParameter.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/algorithm/OauthParameter.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.common.configuration.algorithm;
+package com.css.simulation.resource.scheduler.configuration.algorithm;
 
 import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/configuration/docker/DockerConfiguration.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/docker/DockerConfiguration.java

@@ -1,6 +1,6 @@
-package com.css.simulation.resource.scheduler.common.configuration.docker;
+package com.css.simulation.resource.scheduler.configuration.docker;
 
-import com.css.simulation.resource.scheduler.service.domain.DockerNodeTO;
+import com.css.simulation.resource.scheduler.entity.DockerNodeTO;
 import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;

+ 15 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/esmini/EsminiConfiguration.java

@@ -0,0 +1,15 @@
+package com.css.simulation.resource.scheduler.configuration.esmini;
+
+import com.css.simulation.resource.scheduler.entity.KubernetesNodeEntity;
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.List;
+
+@Data
+@Configuration
+@ConfigurationProperties(prefix = "esmini")
+public class EsminiConfiguration {
+    private List<KubernetesNodeEntity> nodeList;
+}

+ 4 - 5
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/feign/VideoService.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/feign/VideoFeignClient.java

@@ -1,9 +1,8 @@
-package com.css.simulation.resource.scheduler.service.feign;
+package com.css.simulation.resource.scheduler.configuration.feign;
 
 import api.common.pojo.common.ResponseBodyVO;
-import com.css.simulation.resource.scheduler.service.feign.fallback.VideoServiceFallBack;
+import com.css.simulation.resource.scheduler.configuration.feign.fallback.VideoFeignClientFallBack;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
@@ -11,9 +10,9 @@ import org.springframework.web.bind.annotation.RequestParam;
         contextId = "video",
         value = "simulation-resource-video",
         path = "/simulation/resource/video",
-        fallback = VideoServiceFallBack.class
+        fallback = VideoFeignClientFallBack.class
 )
-public interface VideoService {
+public interface VideoFeignClient {
 
     @GetMapping(value = "/generate")
     ResponseBodyVO<String> generateVideo(

+ 3 - 3
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/feign/fallback/VideoServiceFallBack.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/feign/fallback/VideoFeignClientFallBack.java

@@ -1,10 +1,10 @@
-package com.css.simulation.resource.scheduler.service.feign.fallback;
+package com.css.simulation.resource.scheduler.configuration.feign.fallback;
 
 import api.common.pojo.common.ResponseBodyVO;
-import com.css.simulation.resource.scheduler.service.feign.VideoService;
+import com.css.simulation.resource.scheduler.configuration.feign.VideoFeignClient;
 
 
-public class VideoServiceFallBack implements VideoService {
+public class VideoFeignClientFallBack implements VideoFeignClient {
     @Override
     public ResponseBodyVO<String> generateVideo(String projectId, String projectType,String maxSimulationTime, String taskId) {
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE);

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/configuration/git/GitConfiguration.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/git/GitConfiguration.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.common.configuration.git;
+package com.css.simulation.resource.scheduler.configuration.git;
 
 import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/configuration/http/HttpConfiguration.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/http/HttpConfiguration.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.common.configuration.http;
+package com.css.simulation.resource.scheduler.configuration.http;
 
 import org.apache.http.client.config.RequestConfig;
 import org.apache.http.conn.ssl.NoopHostnameVerifier;

+ 3 - 3
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/configuration/init/CustomApplicationRunner.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/init/CustomApplicationRunner.java

@@ -1,7 +1,7 @@
-package com.css.simulation.resource.scheduler.common.configuration.init;
+package com.css.simulation.resource.scheduler.configuration.init;
 
-import com.css.simulation.resource.scheduler.common.configuration.redis.CustomRedisClient;
-import com.css.simulation.resource.scheduler.common.util.ProjectUtil;
+import com.css.simulation.resource.scheduler.configuration.redis.CustomRedisClient;
+import com.css.simulation.resource.scheduler.util.ProjectUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/configuration/kafka/KafkaAdminConfiguration.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/kafka/KafkaAdminConfiguration.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.common.configuration.kafka;
+package com.css.simulation.resource.scheduler.configuration.kafka;
 
 import org.apache.kafka.clients.admin.Admin;
 import org.apache.kafka.clients.admin.KafkaAdminClient;

+ 3 - 3
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/configuration/kubernetes/KubernetesConfiguration.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/kubernetes/KubernetesConfiguration.java

@@ -1,6 +1,6 @@
-package com.css.simulation.resource.scheduler.common.configuration.kubernetes;
+package com.css.simulation.resource.scheduler.configuration.kubernetes;
 
-import com.css.simulation.resource.scheduler.service.domain.KubernetesNodeTO;
+import com.css.simulation.resource.scheduler.entity.KubernetesNodeEntity;
 import io.kubernetes.client.openapi.ApiClient;
 import io.kubernetes.client.util.ClientBuilder;
 import io.kubernetes.client.util.KubeConfig;
@@ -29,7 +29,7 @@ public class KubernetesConfiguration {
     private String commandVtdCarsimNogpu;
     private String carsimImage;
     private String carsimCommand;
-    private List<KubernetesNodeTO> nodeList;
+    private List<KubernetesNodeEntity> nodeList;
 
     @Bean
     public ApiClient apiClient() throws IOException {

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/configuration/minio/MinioConfiguration.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/minio/MinioConfiguration.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.common.configuration.minio;
+package com.css.simulation.resource.scheduler.configuration.minio;
 
 import io.minio.MinioClient;
 import lombok.Data;

+ 4 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/configuration/redis/CustomRedisClient.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/redis/CustomRedisClient.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.common.configuration.redis;
+package com.css.simulation.resource.scheduler.configuration.redis;
 
 import api.common.util.CollectionUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -33,6 +33,9 @@ public class CustomRedisClient {
     public String getStringByKey(String key) {
         return stringRedisTemplate.opsForValue().get(key);
     }
+    public String get(String key) {
+        return stringRedisTemplate.opsForValue().get(key);
+    }
 
     public Set<String> getKeySetByPrefix(String prefix) {
         return stringRedisTemplate.keys(prefix + "*");

+ 1 - 1
simulation-resource-video/src/main/java/com/css/simulation/resource/video/common/configuration/redis/RedisTemplateConfiguration.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/redis/RedisTemplateConfiguration.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.video.common.configuration.redis;
+package com.css.simulation.resource.scheduler.configuration.redis;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.PropertyAccessor;

+ 120 - 121
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/web/consumer/ProjectConsumer.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/consumer/ProjectConsumer.java

@@ -1,18 +1,17 @@
-package com.css.simulation.resource.scheduler.web.consumer;
+package com.css.simulation.resource.scheduler.consumer;
 
 
 import api.common.pojo.constants.DictConstants;
 import api.common.pojo.dto.ProjectMessageDTO;
 import api.common.util.*;
-import com.css.simulation.resource.scheduler.common.util.ApacheKafkaUtil;
-import com.css.simulation.resource.scheduler.common.util.MinioUtil;
-import com.css.simulation.resource.scheduler.common.util.ProjectUtil;
-import com.css.simulation.resource.scheduler.dao.entity.*;
-import com.css.simulation.resource.scheduler.dao.manager.ProjectManager;
-import com.css.simulation.resource.scheduler.dao.manager.TaskManager;
-import com.css.simulation.resource.scheduler.dao.mapper.*;
+import com.css.simulation.resource.scheduler.entity.*;
+import com.css.simulation.resource.scheduler.manager.ProjectManager;
+import com.css.simulation.resource.scheduler.manager.TaskManager;
+import com.css.simulation.resource.scheduler.mapper.*;
 import com.css.simulation.resource.scheduler.service.ProjectService;
-import com.css.simulation.resource.scheduler.service.domain.*;
+import com.css.simulation.resource.scheduler.util.ApacheKafkaUtil;
+import com.css.simulation.resource.scheduler.util.MinioUtil;
+import com.css.simulation.resource.scheduler.util.ProjectUtil;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import io.minio.MinioClient;
@@ -124,13 +123,13 @@ public class ProjectConsumer {
         // -------------------------------- 1 查询场景 --------------------------------
         log.info("项目 " + projectId + " 开始查询场景。");
         //根据场景测试包 packageId,拿到场景集合(包括重复场景),重复场景会在发送消息时根据叶子指标发送多次。
-        List<ScenePO> scenePOList = projectService.getSceneList(projectId, packageId);
-        int taskTotal = scenePOList.size();
+        List<SceneEntity> sceneEntityList = projectService.getSceneList(projectId, packageId);
+        int taskTotal = sceneEntityList.size();
         projectMessageDTO.setTaskTotal(taskTotal);
         projectMessageDTO.setTaskCompleted(0);
         //去重,之后发送消息的时候会补全指标,如果不去重的话会出现多个场景重复关联多个指标
-        Set<ScenePO> scenePOSet = new HashSet<>(scenePOList);
-        log.info("项目 " + projectId + " 场景包括:" + scenePOSet);
+        Set<SceneEntity> sceneEntitySet = new HashSet<>(sceneEntityList);
+        log.info("项目 " + projectId + " 场景包括:" + sceneEntitySet);
         // -------------------------------- 2 算法导入 --------------------------------
         log.info("项目 " + projectId + " 开始算法导入。");
         String algorithmDockerImage = projectService.handleAlgorithm(projectId, algorithmId);
@@ -139,14 +138,14 @@ public class ProjectConsumer {
         if ("1".equals(modelType)) {
             log.info("项目 " + projectId + " 开始查询模型。");
             //2-1 根据车辆配置id vehicleConfigId, 获取 模型信息和传感器信息
-            VehiclePO vehiclePO = vehicleMapper.selectByVehicleConfigId(vehicleConfigId);   // 车辆
-            List<CameraPO> cameraPOList = sensorCameraMapper.selectCameraByVehicleConfigId(vehicleConfigId);    // 摄像头
-            List<OgtPO> ogtPOList = sensorOgtMapper.selectOgtByVehicleId(vehicleConfigId); // 完美传感器
+            VehicleEntity vehicleEntity = vehicleMapper.selectByVehicleConfigId(vehicleConfigId);   // 车辆
+            List<CameraEntity> cameraEntityList = sensorCameraMapper.selectCameraByVehicleConfigId(vehicleConfigId);    // 摄像头
+            List<OgtEntity> ogtEntityList = sensorOgtMapper.selectOgtByVehicleId(vehicleConfigId); // 完美传感器
             // -------------------------------- 4 保存任务消息 --------------------------------
             log.info("项目 " + projectId + " 开始保存任务消息。");
-            List<TaskPO> taskList = new ArrayList<>();
-            for (ScenePO scenePO : scenePOSet) {
-                String sceneId = scenePO.getId();
+            List<TaskEntity> taskList = new ArrayList<>();
+            for (SceneEntity sceneEntity : sceneEntitySet) {
+                String sceneId = sceneEntity.getId();
                 //3-1 可能会存在多个指标下有同样的场景,所以会查出多个指标,多个指标的场景需要发送多次
                 List<String> lastTargetIdList = null;
                 if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) {
@@ -160,25 +159,25 @@ public class ProjectConsumer {
                 for (String lastTargetId : lastTargetIdList) {
                     String taskId = StringUtil.getRandomUUID();
                     // 保存任务信息
-                    TaskPO taskPO = TaskPO.builder() // run_start_time 和 run_end_time 不填
+                    TaskEntity taskEntity = TaskEntity.builder() // run_start_time 和 run_end_time 不填
                             .id(taskId)
                             .pId(projectId)
                             .sceneId(sceneId)
                             .lastTargetId(lastTargetId)
-                            .sceneName(scenePO.getName())
-                            .sceneType(scenePO.getType())
+                            .sceneName(sceneEntity.getName())
+                            .sceneType(sceneEntity.getType())
                             .runState(DictConstants.TASK_PENDING)
                             .runResultFilePath(projectResultPathOfMinio + projectId + "/" + taskId)
                             .build();
-                    taskPO.setCreateTime(TimeUtil.getNowForMysql());
-                    taskPO.setCreateUserId(userId);
-                    taskPO.setModifyTime(TimeUtil.getNowForMysql());
-                    taskPO.setModifyUserId(userId);
-                    taskPO.setModifyTime(TimeUtil.getNowForMysql());
-                    taskPO.setIsDeleted("0");
-                    taskList.add(taskPO);
+                    taskEntity.setCreateTime(TimeUtil.getNowForMysql());
+                    taskEntity.setCreateUserId(userId);
+                    taskEntity.setModifyTime(TimeUtil.getNowForMysql());
+                    taskEntity.setModifyUserId(userId);
+                    taskEntity.setModifyTime(TimeUtil.getNowForMysql());
+                    taskEntity.setIsDeleted("0");
+                    taskList.add(taskEntity);
                     // 将 xosc、xodr、osgb 全部上传到仿真结果路径
-                    String scenarioOsc = scenePO.getScenarioOsc();
+                    String scenarioOsc = sceneEntity.getScenarioOsc();
                     String[] splitXosc = scenarioOsc.split("/");
                     String xoscName = splitXosc[splitXosc.length - 1];
                     String[] xoscNameSplit = xoscName.split("\\.");
@@ -188,7 +187,7 @@ public class ProjectConsumer {
                     MinioUtil.downloadToFile(minioClient, bucketName, scenarioOsc, xoscPathOfLinux);
                     MinioUtil.uploadFromFile(minioClient, xoscPathOfLinux, bucketName, xoscPathOfMinio);
 
-                    String scenarioOdr = scenePO.getScenarioOdr();
+                    String scenarioOdr = sceneEntity.getScenarioOdr();
                     String[] splitXodr = scenarioOdr.split("/");
                     String xodrName = splitXodr[splitXodr.length - 1];
                     String[] xodrNameSplit = xodrName.split("\\.");
@@ -198,7 +197,7 @@ public class ProjectConsumer {
                     MinioUtil.downloadToFile(minioClient, bucketName, scenarioOdr, xodrPathOfLinux);
                     MinioUtil.uploadFromFile(minioClient, xodrPathOfLinux, bucketName, xodrPathOfMinio);
 
-                    String scenarioOsgb = scenePO.getScenarioOsgb();
+                    String scenarioOsgb = sceneEntity.getScenarioOsgb();
                     String[] splitOsgb = scenarioOsgb.split("/");
                     String osgbName = splitOsgb[splitOsgb.length - 1];
                     String[] osgbNameSplit = osgbName.split("\\.");
@@ -210,49 +209,49 @@ public class ProjectConsumer {
                     log.info("cacheManualProject() 已经将 xosc、xodr、osgb 上传到 minio 的结果文件目录:" + projectResultPathOfMinio);
 
                     // 组装 task 消息
-                    TaskTO taskTO = TaskTO.builder()
-                            .info(InfoTO.builder()
-                                    .project_id(taskPO.getPId())
-                                    .task_id(taskPO.getId())
-                                    .task_path(taskPO.getRunResultFilePath())
+                    TaskMessageEntity taskMessageEntity = TaskMessageEntity.builder()
+                            .info(InfoEntity.builder()
+                                    .project_id(taskEntity.getPId())
+                                    .task_id(taskEntity.getId())
+                                    .task_path(taskEntity.getRunResultFilePath())
                                     .default_time(videoTime)
                                     .build())
-                            .scenario(ScenarioTO.builder()
+                            .scenario(ScenarioEntity.builder()
                                     .scenario_osc(xoscPathOfMinio)
                                     .scenario_odr(xodrPathOfMinio)
                                     .scenario_osgb(osgbPathOfMinio)
                                     .build())
                             .vehicle(VehicleTO.builder()
-                                    .model(ModelTO.builder()
-                                            .model_label(vehiclePO.getModelLabel())
+                                    .model(ModelEntity.builder()
+                                            .model_label(vehicleEntity.getModelLabel())
                                             .build())
                                     .dynamics(DynamicsTO.builder()
-                                            .dynamics_maxspeed(vehiclePO.getMaxSpeed())
-                                            .dynamics_enginepower(vehiclePO.getEnginePower())
-                                            .dynamics_maxdecel(vehiclePO.getMaxDeceleration())
-                                            .dynamics_maxsteering(vehiclePO.getMaxSteeringAngle())
-                                            .dynamics_mass(vehiclePO.getMass())
-                                            .dynamics_frontsurfaceeffective(vehiclePO.getFrontSurfaceEffective())
-                                            .dynamics_airdragcoefficient(vehiclePO.getAirDragCoefficient())
-                                            .dynamics_rollingresistance(vehiclePO.getRollingResistanceCoefficient())
-                                            .dynamics_wheeldiameter(vehiclePO.getWheelDiameter())
-                                            .dynamics_wheeldrive(vehiclePO.getWheelDrive())
-                                            .dynamics_overallefficiency(vehiclePO.getOverallEfficiency())
-                                            .dynamics_distfront(vehiclePO.getFrontDistance())
-                                            .dynamics_distrear(vehiclePO.getRearDistance())
-                                            .dynamics_distleft(vehiclePO.getLeftDistance())
-                                            .dynamics_distright(vehiclePO.getRightDistance())
-                                            .dynamics_distheight(vehiclePO.getHeightDistance())
-                                            .dynamics_wheelbase(vehiclePO.getWheelbase())
+                                            .dynamics_maxspeed(vehicleEntity.getMaxSpeed())
+                                            .dynamics_enginepower(vehicleEntity.getEnginePower())
+                                            .dynamics_maxdecel(vehicleEntity.getMaxDeceleration())
+                                            .dynamics_maxsteering(vehicleEntity.getMaxSteeringAngle())
+                                            .dynamics_mass(vehicleEntity.getMass())
+                                            .dynamics_frontsurfaceeffective(vehicleEntity.getFrontSurfaceEffective())
+                                            .dynamics_airdragcoefficient(vehicleEntity.getAirDragCoefficient())
+                                            .dynamics_rollingresistance(vehicleEntity.getRollingResistanceCoefficient())
+                                            .dynamics_wheeldiameter(vehicleEntity.getWheelDiameter())
+                                            .dynamics_wheeldrive(vehicleEntity.getWheelDrive())
+                                            .dynamics_overallefficiency(vehicleEntity.getOverallEfficiency())
+                                            .dynamics_distfront(vehicleEntity.getFrontDistance())
+                                            .dynamics_distrear(vehicleEntity.getRearDistance())
+                                            .dynamics_distleft(vehicleEntity.getLeftDistance())
+                                            .dynamics_distright(vehicleEntity.getRightDistance())
+                                            .dynamics_distheight(vehicleEntity.getHeightDistance())
+                                            .dynamics_wheelbase(vehicleEntity.getWheelbase())
                                             .build())
-                                    .sensors(SensorsTO.builder()   // 根据 vehicleId 查询绑定的传感器列表
-                                            .camera(cameraPOList)
-                                            .OGT(ogtPOList)
+                                    .sensors(SensorsEntity.builder()   // 根据 vehicleId 查询绑定的传感器列表
+                                            .camera(cameraEntityList)
+                                            .OGT(ogtEntityList)
                                             .build())
                                     .build())
                             .build();
-                    FileUtil.writeStringToLocalFile(JsonUtil.beanToJson(taskTO), projectPath + taskId + ".json");
-                    log.info("项目 " + projectId + " 将任务消息转成 json 保存到临时目录等待资源分配后执行:" + taskTO.getInfo().getTask_id());
+                    FileUtil.writeStringToLocalFile(JsonUtil.beanToJson(taskMessageEntity), projectPath + taskId + ".json");
+                    log.info("项目 " + projectId + " 将任务消息转成 json 保存到临时目录等待资源分配后执行:" + taskMessageEntity.getInfo().getTask_id());
                 }
             }
             taskManager.batchInsertTask(taskList);
@@ -260,14 +259,14 @@ public class ProjectConsumer {
         } else if ("2".equals(modelType)) {
             log.info("项目 " + projectId + " 开始查询模型。");
 
-            VehiclePO vehiclePO = vehicleMapper.selectByVehicleConfigId(vehicleConfigId);   // 车辆
-            List<CameraPO> cameraPOList = sensorCameraMapper.selectCameraByVehicleConfigId(vehicleConfigId);    // 摄像头
-            List<OgtPO> ogtPOList = sensorOgtMapper.selectOgtByVehicleId(vehicleConfigId); // 完美传感器
+            VehicleEntity vehicleEntity = vehicleMapper.selectByVehicleConfigId(vehicleConfigId);   // 车辆
+            List<CameraEntity> cameraEntityList = sensorCameraMapper.selectCameraByVehicleConfigId(vehicleConfigId);    // 摄像头
+            List<OgtEntity> ogtEntityList = sensorOgtMapper.selectOgtByVehicleId(vehicleConfigId); // 完美传感器
             // -------------------------------- 4 保存任务消息 --------------------------------
             log.info("项目 " + projectId + " 开始保存任务消息。");
-            List<TaskPO> taskList = new ArrayList<>();
-            for (ScenePO scenePO : scenePOSet) {
-                String sceneId = scenePO.getId();
+            List<TaskEntity> taskList = new ArrayList<>();
+            for (SceneEntity sceneEntity : sceneEntitySet) {
+                String sceneId = sceneEntity.getId();
                 //3-1 可能会存在多个指标下有同样的场景,所以会查出多个指标,多个指标的场景需要发送多次
                 List<String> lastTargetIdList = null;
                 if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) {
@@ -281,25 +280,25 @@ public class ProjectConsumer {
                 for (String lastTargetId : lastTargetIdList) {
                     String taskId = StringUtil.getRandomUUID();
                     // 保存任务信息
-                    TaskPO taskPO = TaskPO.builder() // run_start_time 和 run_end_time 不填
+                    TaskEntity taskEntity = TaskEntity.builder() // run_start_time 和 run_end_time 不填
                             .id(taskId)
                             .pId(projectId)
                             .sceneId(sceneId)
                             .lastTargetId(lastTargetId)
-                            .sceneName(scenePO.getName())
-                            .sceneType(scenePO.getType())
+                            .sceneName(sceneEntity.getName())
+                            .sceneType(sceneEntity.getType())
                             .runState(DictConstants.TASK_PENDING)
                             .runResultFilePath(projectResultPathOfMinio + projectId + "/" + taskId)
                             .build();
-                    taskPO.setCreateTime(TimeUtil.getNowForMysql());
-                    taskPO.setCreateUserId(userId);
-                    taskPO.setModifyTime(TimeUtil.getNowForMysql());
-                    taskPO.setModifyUserId(userId);
-                    taskPO.setModifyTime(TimeUtil.getNowForMysql());
-                    taskPO.setIsDeleted("0");
-                    taskList.add(taskPO);
+                    taskEntity.setCreateTime(TimeUtil.getNowForMysql());
+                    taskEntity.setCreateUserId(userId);
+                    taskEntity.setModifyTime(TimeUtil.getNowForMysql());
+                    taskEntity.setModifyUserId(userId);
+                    taskEntity.setModifyTime(TimeUtil.getNowForMysql());
+                    taskEntity.setIsDeleted("0");
+                    taskList.add(taskEntity);
                     // 将 xosc、xodr、osgb 全部上传到仿真结果路径
-                    String scenarioOsc = scenePO.getScenarioOsc();
+                    String scenarioOsc = sceneEntity.getScenarioOsc();
                     String[] splitXosc = scenarioOsc.split("/");
                     String xoscName = splitXosc[splitXosc.length - 1];
                     String[] xoscNameSplit = xoscName.split("\\.");
@@ -309,7 +308,7 @@ public class ProjectConsumer {
                     MinioUtil.downloadToFile(minioClient, bucketName, scenarioOsc, xoscPathOfLinux);
                     MinioUtil.uploadFromFile(minioClient, xoscPathOfLinux, bucketName, xoscPathOfMinio);
 
-                    String scenarioOdr = scenePO.getScenarioOdr();
+                    String scenarioOdr = sceneEntity.getScenarioOdr();
                     String[] splitXodr = scenarioOdr.split("/");
                     String xodrName = splitXodr[splitXodr.length - 1];
                     String[] xodrNameSplit = xodrName.split("\\.");
@@ -319,7 +318,7 @@ public class ProjectConsumer {
                     MinioUtil.downloadToFile(minioClient, bucketName, scenarioOdr, xodrPathOfLinux);
                     MinioUtil.uploadFromFile(minioClient, xodrPathOfLinux, bucketName, xodrPathOfMinio);
 
-                    String scenarioOsgb = scenePO.getScenarioOsgb();
+                    String scenarioOsgb = sceneEntity.getScenarioOsgb();
                     String[] splitOsgb = scenarioOsgb.split("/");
                     String osgbName = splitOsgb[splitOsgb.length - 1];
                     String[] osgbNameSplit = osgbName.split("\\.");
@@ -332,32 +331,32 @@ public class ProjectConsumer {
 
                     // 组装 task 消息
                     // carsim 不需要查询模型参数
-                    TaskTO taskTO = TaskTO.builder()
-                            .info(InfoTO.builder()
-                                    .project_id(taskPO.getPId())
-                                    .task_id(taskPO.getId())
-                                    .task_path(taskPO.getRunResultFilePath())
+                    TaskMessageEntity taskMessageEntity = TaskMessageEntity.builder()
+                            .info(InfoEntity.builder()
+                                    .project_id(taskEntity.getPId())
+                                    .task_id(taskEntity.getId())
+                                    .task_path(taskEntity.getRunResultFilePath())
                                     .default_time(videoTime)
                                     .build())
-                            .scenario(ScenarioTO.builder()
+                            .scenario(ScenarioEntity.builder()
                                     .scenario_osc(xoscPathOfMinio)
                                     .scenario_odr(xodrPathOfMinio)
                                     .scenario_osgb(osgbPathOfMinio)
                                     .build())
                             .vehicle(VehicleTO.builder()
-                                    .model(ModelTO.builder()
-                                            .model_label(vehiclePO.getModelLabel())
+                                    .model(ModelEntity.builder()
+                                            .model_label(vehicleEntity.getModelLabel())
                                             .build())
                                     .dynamics(null)
-                                    .sensors(SensorsTO.builder()   // 根据 vehicleId 查询绑定的传感器列表
-                                            .camera(cameraPOList)
-                                            .OGT(ogtPOList)
+                                    .sensors(SensorsEntity.builder()   // 根据 vehicleId 查询绑定的传感器列表
+                                            .camera(cameraEntityList)
+                                            .OGT(ogtEntityList)
                                             .build())
                                     .build())
                             .build();
 
-                    FileUtil.writeStringToLocalFile(JsonUtil.beanToJson(taskTO), projectPath + taskId + ".json");
-                    log.info("项目 " + projectId + " 将任务消息转成 json 保存到临时目录等待资源分配后执行:" + taskTO.getInfo().getTask_id());
+                    FileUtil.writeStringToLocalFile(JsonUtil.beanToJson(taskMessageEntity), projectPath + taskId + ".json");
+                    log.info("项目 " + projectId + " 将任务消息转成 json 保存到临时目录等待资源分配后执行:" + taskMessageEntity.getInfo().getTask_id());
                 }
             }
             taskManager.batchInsertTask(taskList);
@@ -399,37 +398,37 @@ public class ProjectConsumer {
             return;
         }
         //3 获取用户类型(管理员账户、管理员子账户、普通账户、普通子账户)(独占、共享)
-        UserPO userPO = userMapper.selectById(userId);
-        log.info("cacheManualProject() 项目 " + projectId + " 的创建人为:" + userPO);
-        String roleCode = userPO.getRoleCode();
-        String useType = userPO.getUseType();
-        ClusterPO clusterPO;
+        UserEntity userEntity = userMapper.selectById(userId);
+        log.info("cacheManualProject() 项目 " + projectId + " 的创建人为:" + userEntity);
+        String roleCode = userEntity.getRoleCode();
+        String useType = userEntity.getUseType();
+        ClusterEntity clusterEntity;
         if (DictConstants.ROLE_CODE_SYSADMIN.equals(roleCode) || DictConstants.ROLE_CODE_ADMIN.equals(roleCode)) {  //3-1 管理员账户和管理员子账户直接执行
             log.info("cacheManualProject() 项目 " + projectId + " 的创建人 " + userId + " 为管理员账户或管理员子账户,直接判断服务器能否执行。");
-            PrefixTO redisPrefix = projectUtil.getRedisPrefixByClusterIdAndProjectId(DictConstants.SYSTEM_CLUSTER_ID, projectId);
+            PrefixEntity redisPrefix = projectUtil.getRedisPrefixByClusterIdAndProjectId(DictConstants.SYSTEM_CLUSTER_ID, projectId);
             run(projectMessageDTO, DictConstants.SYSTEM_CLUSTER_ID, redisPrefix.getProjectRunningKey(), redisPrefix.getProjectWaitingKey());
             return;
         } else if (DictConstants.ROLE_CODE_UESR.equals(roleCode)) { //3-2 普通账户,不管是独占还是共享,都在自己的集群里排队,根据自己的独占节点排队
-            clusterPO = clusterMapper.selectByUserId(userId);
-            log.info("cacheManualProject() 项目 " + projectId + " 的创建人 " + userId + " 为普通账户(包括独占或共享都在自己的集群),集群为:" + clusterPO);
+            clusterEntity = clusterMapper.selectByUserId(userId);
+            log.info("cacheManualProject() 项目 " + projectId + " 的创建人 " + userId + " 为普通账户(包括独占或共享都在自己的集群),集群为:" + clusterEntity);
         } else if (DictConstants.ROLE_CODE_SUBUESR.equals(roleCode)) {
             if (DictConstants.USER_TYPE_EXCLUSIVE.equals(useType)) {   //3-3 普通子账户,根据自己的独占节点排队
-                clusterPO = clusterMapper.selectByUserId(userId);
-                log.info("cacheManualProject() 项目 " + projectId + " 的创建人 " + userId + " 为普通独占子账户(自己的集群),集群为:" + clusterPO);
+                clusterEntity = clusterMapper.selectByUserId(userId);
+                log.info("cacheManualProject() 项目 " + projectId + " 的创建人 " + userId + " 为普通独占子账户(自己的集群),集群为:" + clusterEntity);
             } else {    //3-4 共享子账户,根据父账户的共享节点排队
-                String parentUserId = userPO.getCreateUserId();
-                clusterPO = clusterMapper.selectByUserId(parentUserId);
-                log.info("cacheManualProject() 项目 " + projectId + " 的创建人 " + userId + " 为普通共享子账户(父账户的集群),集群为:" + clusterPO);
+                String parentUserId = userEntity.getCreateUserId();
+                clusterEntity = clusterMapper.selectByUserId(parentUserId);
+                log.info("cacheManualProject() 项目 " + projectId + " 的创建人 " + userId + " 为普通共享子账户(父账户的集群),集群为:" + clusterEntity);
             }
         } else {
             log.error("cacheManualProject() 项目 " + projectId + " 的创建人 " + userId + " 为未知账户类型,不予执行!");
             return;
         }
         // 获取拥有的节点数量,即仿真软件证书数量
-        String clusterId = clusterPO.getId();
-        int simulationLicenseNumber = clusterPO.getNumSimulationLicense();
+        String clusterId = clusterEntity.getId();
+        int simulationLicenseNumber = clusterEntity.getNumSimulationLicense();
         // 获取该集群中正在运行的项目,如果没有则立即执行
-        PrefixTO redisPrefix = projectUtil.getRedisPrefixByClusterIdAndProjectId(clusterId, projectId);
+        PrefixEntity redisPrefix = projectUtil.getRedisPrefixByClusterIdAndProjectId(clusterId, projectId);
         // 获取正在运行的项目的并行度总和
         int currentParallelismSum = projectUtil.getCurrentParallelismSum(redisPrefix.getClusterRunningPrefix());
         // 如果执行后的并行度总和小于最大节点数则执行,否则不执行
@@ -476,9 +475,9 @@ public class ProjectConsumer {
         String projectId = projectMessageDTO.getProjectId();    // 项目 id
         String modelType = projectMessageDTO.getModelType();
         String vehicleConfigId = projectMessageDTO.getVehicleConfigId();
-        ProjectPO projectPO = projectUtil.getProjectByProjectId(projectId);
-        log.info("项目 " + projectId + " 信息为:" + projectPO);
-        String isChoiceGpu = projectPO.getIsChoiceGpu();
+        ProjectEntity projectEntity = projectUtil.getProjectByProjectId(projectId);
+        log.info("项目 " + projectId + " 信息为:" + projectEntity);
+        String isChoiceGpu = projectEntity.getIsChoiceGpu();
         // 项目类型
         int currentParallelism = projectMessageDTO.getCurrentParallelism();   // 当前并行度
 
@@ -514,7 +513,7 @@ public class ProjectConsumer {
         //* -------------------------------- 3 根据算法id查询算法名称 --------------------------------
         String algorithmDockerImage = algorithmMapper.selectDockerImageById(algorithmId);
         // -------------------------------- 4 发送任务消息 --------------------------------
-        List<NodeTO> nodeListToCount = projectUtil.getNodeListToCount(nodeMap);
+        List<NodeEntity> nodeListToCount = projectUtil.getNodeListToCount(nodeMap);
         int messageNumber = 0;
         ApacheKafkaUtil.createTopic(kafkaAdminClient, projectId, realCurrentParallelism, (short) 1);   // 创建主题
         TimeUnit.SECONDS.sleep(7);
@@ -537,24 +536,24 @@ public class ProjectConsumer {
             //4-6 发送成功过的同时创建 pod.yaml 文件并把文件地址存到 redis
             // 选一个 count 最少的 node
             String currentNodeName = "";
-            NodeTO currentNodeTO = null;
+            NodeEntity currentNodeEntity = null;
             int currentCount = Integer.MAX_VALUE;
             log.info("各节点已经预定的任务个数为:" + nodeListToCount);
-            for (NodeTO nodeTO : nodeListToCount) {
-                int tempCount = nodeTO.getCount();
-                String tempNodeName = nodeTO.getNodeName();
+            for (NodeEntity nodeEntity : nodeListToCount) {
+                int tempCount = nodeEntity.getCount();
+                String tempNodeName = nodeEntity.getNodeName();
                 if (tempCount < currentCount) {
                     currentCount = tempCount;
                     currentNodeName = tempNodeName;
-                    currentNodeTO = nodeTO;
+                    currentNodeEntity = nodeEntity;
                 }
             }
-            if (currentNodeTO == null) {
+            if (currentNodeEntity == null) {
                 String errorMessage = "挑选节点失败。";
                 log.info(errorMessage);
                 throw new RuntimeException(errorMessage);
             }
-            currentNodeTO.setCount(currentNodeTO.getCount() + 1);
+            currentNodeEntity.setCount(currentNodeEntity.getCount() + 1);
             Integer cpuOrder = null;
             if (currentCount == 0) {
                 // 根据各节点剩余并行度,倒序获取 cpu 编号

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/web/controller/AlgorithmController.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/controller/AlgorithmController.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.web.controller;
+package com.css.simulation.resource.scheduler.controller;
 
 
 import api.common.pojo.common.ResponseBodyVO;

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/web/controller/NodeController.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/controller/NodeController.java

@@ -1,6 +1,6 @@
-package com.css.simulation.resource.scheduler.web.controller;
+package com.css.simulation.resource.scheduler.controller;
 
-import com.css.simulation.resource.scheduler.common.util.ProjectUtil;
+import com.css.simulation.resource.scheduler.util.ProjectUtil;
 import org.springframework.cloud.context.config.annotation.RefreshScope;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/web/controller/TaskController.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/controller/TaskController.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.web.controller;
+package com.css.simulation.resource.scheduler.controller;
 
 
 import com.css.simulation.resource.scheduler.service.TaskService;

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/entity/AlgorithmPO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/AlgorithmEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.dao.entity;
+package com.css.simulation.resource.scheduler.entity;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.AllArgsConstructor;
@@ -8,7 +8,7 @@ import lombok.NoArgsConstructor;
 @Data
 @NoArgsConstructor
 @AllArgsConstructor
-public class AlgorithmPO {
+public class AlgorithmEntity {
 
     @JsonFormat
     private String id;

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/entity/CameraPO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/CameraEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.dao.entity;
+package com.css.simulation.resource.scheduler.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -9,7 +9,7 @@ import java.math.BigDecimal;
 @Data
 @NoArgsConstructor
 @AllArgsConstructor
-public class CameraPO {
+public class CameraEntity {
 
     /**
      * 					"sensor_name": "following_view_camera",

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/entity/ClusterPO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/ClusterEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.dao.entity;
+package com.css.simulation.resource.scheduler.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -7,7 +7,7 @@ import lombok.NoArgsConstructor;
 @Data
 @NoArgsConstructor
 @AllArgsConstructor
-public class ClusterPO {
+public class ClusterEntity {
     private String id; // id
     private String userId; // 用户id
     private Integer numSimulationLicense; // 仿真软件证书数量

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/domain/DockerNodeTO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/DockerNodeTO.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.service.domain;
+package com.css.simulation.resource.scheduler.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/domain/DynamicsTO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/DynamicsTO.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.service.domain;
+package com.css.simulation.resource.scheduler.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/entity/IndexTemplatePO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/IndexTemplateEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.dao.entity;
+package com.css.simulation.resource.scheduler.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -9,7 +9,7 @@ import lombok.NoArgsConstructor;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class IndexTemplatePO {
+public class IndexTemplateEntity {
 
     private String indexId;
     private String sceneNaturalIds;

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/domain/InfoTO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/InfoEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.service.domain;
+package com.css.simulation.resource.scheduler.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -9,7 +9,7 @@ import lombok.NoArgsConstructor;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class InfoTO {
+public class InfoEntity {
 
     private String project_id;
     private String task_id;

+ 4 - 4
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/domain/KubernetesNodeTO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/KubernetesNodeEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.service.domain;
+package com.css.simulation.resource.scheduler.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -9,7 +9,7 @@ import lombok.NoArgsConstructor;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class KubernetesNodeTO implements Cloneable{
+public class KubernetesNodeEntity implements Cloneable{
     private String name;
     private Integer maxParallelism;
 //    private String hostname;
@@ -18,10 +18,10 @@ public class KubernetesNodeTO implements Cloneable{
 
 
     @Override
-    public KubernetesNodeTO clone() {
+    public KubernetesNodeEntity clone() {
         try {
             // TODO: copy mutable state here, so the clone can't change the internals of the original
-            return (KubernetesNodeTO) super.clone();
+            return (KubernetesNodeEntity) super.clone();
         } catch (CloneNotSupportedException e) {
             throw new AssertionError();
         }

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/entity/LeafIndexPO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/LeafIndexEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.dao.entity;
+package com.css.simulation.resource.scheduler.entity;
 
 import api.common.pojo.common.CommonPO;
 import lombok.*;
@@ -8,7 +8,7 @@ import lombok.*;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class LeafIndexPO extends CommonPO {
+public class LeafIndexEntity extends CommonPO {
 
     private String id;
     private String pId; // 项目 id

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/domain/ModelTO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/ModelEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.service.domain;
+package com.css.simulation.resource.scheduler.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -9,6 +9,6 @@ import lombok.NoArgsConstructor;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class ModelTO {
+public class ModelEntity {
     private String model_label;
 }

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/domain/NodeTO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/NodeEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.service.domain;
+package com.css.simulation.resource.scheduler.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -9,7 +9,7 @@ import lombok.NoArgsConstructor;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class NodeTO {
+public class NodeEntity {
     private String nodeName;
     private Integer count;
 }

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/entity/OgtPO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/OgtEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.dao.entity;
+package com.css.simulation.resource.scheduler.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -30,7 +30,7 @@ import java.math.BigDecimal;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class OgtPO {
+public class OgtEntity {
     private String sensor_name;
     private BigDecimal sensor_fovHLeft;
     private BigDecimal sensor_fovHRight;

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/domain/PartitionTO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/PartitionEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.service.domain;
+package com.css.simulation.resource.scheduler.entity;
 
 
 import lombok.AllArgsConstructor;
@@ -10,7 +10,7 @@ import lombok.NoArgsConstructor;
 @NoArgsConstructor
 @AllArgsConstructor
 @Builder
-public class PartitionTO {
+public class PartitionEntity {
     Integer partition;
     Integer offset;
 }

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/domain/PrefixTO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/PrefixEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.service.domain;
+package com.css.simulation.resource.scheduler.entity;
 
 
 import lombok.AllArgsConstructor;
@@ -10,7 +10,7 @@ import lombok.NoArgsConstructor;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class PrefixTO {
+public class PrefixEntity {
 
     private String clusterPrefix;
     private String clusterRunningPrefix;

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/entity/ProjectPO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/ProjectEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.dao.entity;
+package com.css.simulation.resource.scheduler.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -9,7 +9,7 @@ import lombok.NoArgsConstructor;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class ProjectPO {
+public class ProjectEntity {
 
     private String id;
     private String scenePackageId;

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/domain/ScenarioTO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/ScenarioEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.service.domain;
+package com.css.simulation.resource.scheduler.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -9,7 +9,7 @@ import lombok.NoArgsConstructor;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class ScenarioTO {
+public class ScenarioEntity {
     private String scenario_osc;
     private String scenario_odr;
     private String scenario_osgb;

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/entity/ScenePO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/SceneEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.dao.entity;
+package com.css.simulation.resource.scheduler.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -9,7 +9,7 @@ import lombok.NoArgsConstructor;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class ScenePO {
+public class SceneEntity {
 
 
     private String id;

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/domain/ScoreTO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/ScoreEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.service.domain;
+package com.css.simulation.resource.scheduler.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -9,7 +9,7 @@ import lombok.NoArgsConstructor;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class ScoreTO {
+public class ScoreEntity {
     private String unit_scene_ID;
     private Double unit_scene_score;
     private String evaluate_item;

+ 17 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/SensorsEntity.java

@@ -0,0 +1,17 @@
+package com.css.simulation.resource.scheduler.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SensorsEntity {
+    private List<CameraEntity> camera;
+    private List<OgtEntity> OGT;
+}

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/entity/TaskPO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/TaskEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.dao.entity;
+package com.css.simulation.resource.scheduler.entity;
 
 import api.common.pojo.common.CommonPO;
 import lombok.*;
@@ -8,7 +8,7 @@ import lombok.*;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class TaskPO extends CommonPO {
+public class TaskEntity extends CommonPO {
     private String id;
     private String pId;
     private String sceneId;

+ 4 - 4
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/domain/TaskTO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/TaskMessageEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.service.domain;
+package com.css.simulation.resource.scheduler.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -117,10 +117,10 @@ import lombok.NoArgsConstructor;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class TaskTO {
+public class TaskMessageEntity {
 
-    private InfoTO info;
-    private ScenarioTO scenario;
+    private InfoEntity info;
+    private ScenarioEntity scenario;
     private VehicleTO vehicle;
 
 }

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/entity/UserPO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/UserEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.dao.entity;
+package com.css.simulation.resource.scheduler.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -7,7 +7,7 @@ import lombok.NoArgsConstructor;
 @Data
 @NoArgsConstructor
 @AllArgsConstructor
-public class UserPO {
+public class UserEntity {
     private String id; // id
     private String roleCode; // 角色
     private String useType; // 占用类型

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/entity/VehiclePO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/VehicleEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.dao.entity;
+package com.css.simulation.resource.scheduler.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -11,7 +11,7 @@ import java.math.BigDecimal;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class VehiclePO {
+public class VehicleEntity {
 
     /**
      * 车辆模型

+ 3 - 3
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/domain/VehicleTO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/VehicleTO.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.service.domain;
+package com.css.simulation.resource.scheduler.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -11,8 +11,8 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 public class VehicleTO {
 
-    private ModelTO model;
+    private ModelEntity model;
     private DynamicsTO dynamics;
-    private SensorsTO sensors;
+    private SensorsEntity sensors;
 
 }

+ 5 - 5
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/manager/ProjectManager.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/manager/ProjectManager.java

@@ -1,11 +1,11 @@
-package com.css.simulation.resource.scheduler.dao.manager;
+package com.css.simulation.resource.scheduler.manager;
 
 import api.common.pojo.constants.DictConstants;
 import api.common.util.FileUtil;
-import com.css.simulation.resource.scheduler.common.configuration.kubernetes.KubernetesConfiguration;
-import com.css.simulation.resource.scheduler.common.configuration.minio.MinioConfiguration;
-import com.css.simulation.resource.scheduler.dao.mapper.VehicleMapper;
-import com.css.simulation.resource.scheduler.common.util.ProjectUtil;
+import com.css.simulation.resource.scheduler.configuration.kubernetes.KubernetesConfiguration;
+import com.css.simulation.resource.scheduler.configuration.minio.MinioConfiguration;
+import com.css.simulation.resource.scheduler.mapper.VehicleMapper;
+import com.css.simulation.resource.scheduler.util.ProjectUtil;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;

+ 6 - 6
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/manager/TaskIndexManager.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/manager/TaskIndexManager.java

@@ -1,7 +1,7 @@
-package com.css.simulation.resource.scheduler.dao.manager;
+package com.css.simulation.resource.scheduler.manager;
 
-import com.css.simulation.resource.scheduler.dao.mapper.IndexMapper;
-import com.css.simulation.resource.scheduler.dao.entity.LeafIndexPO;
+import com.css.simulation.resource.scheduler.mapper.IndexMapper;
+import com.css.simulation.resource.scheduler.entity.LeafIndexEntity;
 import org.apache.ibatis.session.ExecutorType;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactory;
@@ -16,12 +16,12 @@ public class TaskIndexManager {
     @Resource
     private SqlSessionFactory sqlSessionFactory;
 
-    public void batchInsertLeafIndex(List<LeafIndexPO> leafTaskIndexList) {
+    public void batchInsertLeafIndex(List<LeafIndexEntity> leafTaskIndexList) {
 
         try(SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH,false)){
             IndexMapper indexMapper = sqlSession.getMapper(IndexMapper.class);
-            for (LeafIndexPO leafIndexPO : leafTaskIndexList) {
-                indexMapper.insertLeafIndex(leafIndexPO);
+            for (LeafIndexEntity leafIndexEntity : leafTaskIndexList) {
+                indexMapper.insertLeafIndex(leafIndexEntity);
             }
             sqlSession.commit();
         }

+ 86 - 106
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/manager/TaskManager.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/manager/TaskManager.java

@@ -1,20 +1,13 @@
-package com.css.simulation.resource.scheduler.dao.manager;
+package com.css.simulation.resource.scheduler.manager;
 
-import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.constants.DictConstants;
 import api.common.util.*;
-import com.css.simulation.resource.scheduler.common.configuration.kubernetes.KubernetesConfiguration;
-import com.css.simulation.resource.scheduler.common.configuration.redis.CustomRedisClient;
-import com.css.simulation.resource.scheduler.common.resource.TaskLock;
-import com.css.simulation.resource.scheduler.common.util.*;
-import com.css.simulation.resource.scheduler.dao.entity.IndexTemplatePO;
-import com.css.simulation.resource.scheduler.dao.entity.LeafIndexPO;
-import com.css.simulation.resource.scheduler.dao.entity.ProjectPO;
-import com.css.simulation.resource.scheduler.dao.entity.TaskPO;
-import com.css.simulation.resource.scheduler.dao.mapper.*;
-import com.css.simulation.resource.scheduler.service.domain.PrefixTO;
-import com.css.simulation.resource.scheduler.service.domain.ScoreTO;
-import com.css.simulation.resource.scheduler.service.feign.VideoService;
+import com.css.simulation.resource.scheduler.configuration.feign.VideoFeignClient;
+import com.css.simulation.resource.scheduler.configuration.kubernetes.KubernetesConfiguration;
+import com.css.simulation.resource.scheduler.entity.*;
+import com.css.simulation.resource.scheduler.mapper.*;
+import com.css.simulation.resource.scheduler.resource.TaskLock;
+import com.css.simulation.resource.scheduler.util.*;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import io.kubernetes.client.openapi.ApiClient;
@@ -38,7 +31,6 @@ import java.io.BufferedReader;
 import java.io.File;
 import java.io.InputStreamReader;
 import java.util.*;
-import java.util.concurrent.FutureTask;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
@@ -64,8 +56,6 @@ public class TaskManager {
     private String evaluationLevelUri;
     @Value("${scheduler.minio-path.project-result}")
     private String resultPathMinio;
-    @Value("${spring.kafka.hostname}")
-    private String hostnameKafka;
     @Resource
     private StringRedisTemplate stringRedisTemplate;
     @Resource
@@ -89,7 +79,7 @@ public class TaskManager {
     @Resource
     private ProjectUtil projectUtil;
     @Resource
-    private VideoService videoService;
+    private VideoFeignClient videoFeignClient;
     @Resource
     private SqlSessionFactory sqlSessionFactory;
     @Resource
@@ -100,14 +90,12 @@ public class TaskManager {
     private ApiClient apiClient;
     @Resource(name = "myKafkaAdmin")
     private Admin admin;
-    @Resource
-    private CustomRedisClient customRedisClient;
 
-    public void batchInsertTask(List<TaskPO> taskPOList) {
+    public void batchInsertTask(List<TaskEntity> taskEntityList) {
         try (SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false)) {
             TaskMapper taskMapper1 = sqlSession.getMapper(TaskMapper.class);
-            for (TaskPO taskPO : taskPOList) {
-                taskMapper1.insert(taskPO);
+            for (TaskEntity taskEntity : taskEntityList) {
+                taskMapper1.insert(taskEntity);
             }
             sqlSession.commit();
         }
@@ -117,8 +105,8 @@ public class TaskManager {
      * 加事务的话高并发情况下会死锁
      */
     @SneakyThrows
-    public boolean isProjectCompleted(PrefixTO redisPrefix, String projectId, String projectType, String maxSimulationTime, String taskId, String state, String podName) {
-        boolean result = false;
+    public boolean isProjectCompleted(PrefixEntity redisPrefix, String projectId, String projectType, String maxSimulationTime, String taskId, String state, String podName) {
+        boolean result;
         String nodeName = projectUtil.getNodeNameOfPod(projectId, podName);
         if (DictConstants.TASK_RUNNING.equals(state)) {  // 运行中的 pod 无需删除
             // 将运行中的任务的 pod 名称放入 redis
@@ -129,65 +117,57 @@ public class TaskManager {
             return false;
         } else { // 结束的 pod 都直接删除,并判断项目是否完成
             // -------------------------------- 处理状态 --------------------------------
-            try {
-                log.info("修改任务 " + taskId + "的状态为 " + state + ",pod 名称为:" + podName + ",并删除 pod。");
-                if (DictConstants.TASK_ABORTED.equals(state)) {
-                    String minioPathOfErrorLog = resultPathMinio + projectId + "/" + taskId + "error.log";
-                    boolean objectExist = MinioUtil.isObjectExist(minioClient, bucketName, minioPathOfErrorLog);
-                    String targetEvaluate;
-                    if (objectExist) {
-                        String errorString = MinioUtil.downloadToString(minioClient, bucketName, minioPathOfErrorLog);
-                        String[] lines = errorString.split("\n");
-                        StringBuilder errorMessage = new StringBuilder();
-                        for (String line : lines) {
-                            if (line.startsWith("Original Error")) {
-                                errorMessage.append(line).append("\n");
-                            }
-                            if (line.startsWith("Possible Cause")) {
-                                errorMessage.append(line);
-                                break;
-                            }
+            log.info("修改任务 {} 的状态为 {} ,pod 名称为 {} ,并删除 pod。", taskId, state, podName);
+            if (DictConstants.TASK_ABORTED.equals(state)) {
+                String minioPathOfErrorLog = resultPathMinio + projectId + "/" + taskId + "error.log";
+                boolean objectExist = MinioUtil.isObjectExist(minioClient, bucketName, minioPathOfErrorLog);
+                String targetEvaluate;
+                if (objectExist) {
+                    String errorString = MinioUtil.downloadToString(minioClient, bucketName, minioPathOfErrorLog);
+                    String[] lines = errorString.split("\n");
+                    StringBuilder errorMessage = new StringBuilder();
+                    for (String line : lines) {
+                        if (line.startsWith("Original Error")) {
+                            errorMessage.append(line).append("\n");
                         }
-                        targetEvaluate = errorMessage.toString();
-                    } else {
-                        targetEvaluate = DictConstants.TASK_ERROR_REASON_2;
-                    }
-                    taskMapper.updateFailStateWithStopTime(taskId, state, TimeUtil.getNowForMysql(), targetEvaluate);
-                } else if (DictConstants.TASK_TERMINATED.equals(state)) {
-                    taskMapper.updateFailStateWithStopTime(taskId, state, TimeUtil.getNowForMysql(), DictConstants.TASK_ERROR_REASON_3);
-                } else if (DictConstants.TASK_ANALYSIS.equals(state)) {
-                    taskMapper.updateSuccessStateWithStopTime(taskId, state, TimeUtil.getNowForMysql());
-                    // 查询项目是否使用 gpu 生成视频(0是1否)
-                    String isChoiceGpu = projectUtil.getProjectByProjectId(projectId).getIsChoiceGpu();
-                    if (DictConstants.VIDEO_GPU.equals(isChoiceGpu)) {
-                        log.info("项目 {} 使用 GPU 生成视频。", projectId);
-                    } else if (DictConstants.VIDEO_CPU.equals(isChoiceGpu)) {
-                        log.info("项目 {} 使用 CPU 生成视频。", projectId);
-                        final Boolean success = customRedisClient.getDistributedLock("project:" + projectId + ":task:" + taskId + ":sendRequestToGenerateVideo:");   // 分布式锁
-                        if (Boolean.TRUE.equals(success)) {
-                            log.info("项目 {} 的任务 {} 获取锁成功。", projectId, taskId);
-                            FutureTask<ResponseBodyVO<String>> videoTask = new FutureTask<>(() -> videoService.generateVideo(projectId, projectType, maxSimulationTime, taskId));
-                            new Thread(videoTask, "generateVideo-" + StringUtil.getRandomEightBitUUID()).start();
+                        if (line.startsWith("Possible Cause")) {
+                            errorMessage.append(line);
+                            break;
                         }
-                    } else {
-                        throw new RuntimeException("未设置视频生成。");
                     }
+                    targetEvaluate = errorMessage.toString();
+                } else {
+                    targetEvaluate = DictConstants.TASK_ERROR_REASON_2;
                 }
-                // -------------------------------- 判断项目是否结束 --------------------------------
-                result = taskLock.complete(redisPrefix, projectId, nodeName, podName);
-                if (!result) {
-                    log.info("项目 " + projectId + " 还未运行完成。");
-                    projectUtil.createNextPod3(projectId, nodeName, podName);
+                taskMapper.updateFailStateWithStopTime(taskId, state, TimeUtil.getNowForMysql(), targetEvaluate);
+            } else if (DictConstants.TASK_TERMINATED.equals(state)) {
+                taskMapper.updateFailStateWithStopTime(taskId, state, TimeUtil.getNowForMysql(), DictConstants.TASK_ERROR_REASON_3);
+            } else if (DictConstants.TASK_ANALYSIS.equals(state)) { // 该状态只会获得一次
+                taskMapper.updateSuccessStateWithStopTime(taskId, state, TimeUtil.getNowForMysql());
+                // 查询项目是否使用 gpu 生成视频(0是1否)
+                String isChoiceGpu = projectUtil.getProjectByProjectId(projectId).getIsChoiceGpu();
+                if (DictConstants.VIDEO_GPU.equals(isChoiceGpu)) {
+                    log.info("项目 {} 使用 GPU 生成视频。", projectId);
+                } else if (DictConstants.VIDEO_CPU.equals(isChoiceGpu)) {
+                    log.info("项目 {} 使用 CPU 生成视频。", projectId);
+                    log.info("项目 {} 使用 CPU 生成视频。", projectId);
+                    videoFeignClient.generateVideo(projectId, projectType, maxSimulationTime, taskId);
                 } else {
-                    //如果项目已完成先把 pod 删除,并归还并行度
-                    KubernetesUtil.deletePod2(apiClient, kubernetesConfiguration.getNamespace(), podName);
-                    projectUtil.addOneParallelismToNode(nodeName);
+                    throw new RuntimeException("未设置视频生成。");
                 }
-                RedisUtil.deleteByPrefix(stringRedisTemplate, redisPrefix.getTaskMessageKey());
-                RedisUtil.deleteByPrefix(stringRedisTemplate, redisPrefix.getTaskPodKey());
-            } catch (Exception exception) {
-                log.info("报错。", exception);
             }
+            // -------------------------------- 判断项目是否结束 --------------------------------
+            result = projectUtil.complete(redisPrefix, projectId);
+            if (!result) {
+                log.info("项目 " + projectId + " 还未运行完成。");
+                projectUtil.createNextPod3(projectId, nodeName, podName);
+            } else {
+                //如果项目已完成先把 pod 删除,并归还并行度
+                KubernetesUtil.deletePod2(apiClient, kubernetesConfiguration.getNamespace(), podName);
+                projectUtil.addOneParallelismToNode(nodeName);
+            }
+            RedisUtil.deleteByPrefix(stringRedisTemplate, redisPrefix.getTaskMessageKey());
+            RedisUtil.deleteByPrefix(stringRedisTemplate, redisPrefix.getTaskPodKey());
         }
         return result;
     }
@@ -203,15 +183,15 @@ public class TaskManager {
     @SneakyThrows
     public void score(String userId, String projectId, String projectType, ClientSession session) {
         // -------------------------------- 打分 --------------------------------
-        ProjectPO projectPO = null;
+        ProjectEntity projectEntity = null;
         if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) {
-            projectPO = manualProjectMapper.selectById(projectId);
+            projectEntity = manualProjectMapper.selectById(projectId);
         } else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(projectType)) {
-            projectPO = autoSubProjectMapper.selectById(projectId);
+            projectEntity = autoSubProjectMapper.selectById(projectId);
         }
-        String packageId = projectPO.getScenePackageId();  // 场景测试包 id,指标的rootId
+        String packageId = projectEntity.getScenePackageId();  // 场景测试包 id,指标的rootId
         TimeUnit.SECONDS.sleep(10); // 先等一下数据库更新
-        List<TaskPO> taskList = taskMapper.selectTaskListByProjectId(projectId);  // 所有任务信息
+        List<TaskEntity> taskList = taskMapper.selectTaskListByProjectId(projectId);  // 所有任务信息
         if (CollectionUtil.isEmpty(taskList)) {
             log.error("项目 " + projectId + " 下没有查询到任务!");
             return;
@@ -223,14 +203,14 @@ public class TaskManager {
         String leafIndexKey = "project:" + projectId + ":package:" + packageId + ":leaf";
         String allIndexTemplateListJson = stringRedisTemplate.opsForValue().get(allIndexKey);
         String leafIndexTemplateListJson = stringRedisTemplate.opsForValue().get(leafIndexKey);
-        List<IndexTemplatePO> allIndexTemplateList = JsonUtil.jsonToList(allIndexTemplateListJson, IndexTemplatePO.class);
-        List<IndexTemplatePO> leafIndexTemplateList = JsonUtil.jsonToList(leafIndexTemplateListJson, IndexTemplatePO.class);
+        List<IndexTemplateEntity> allIndexTemplateList = JsonUtil.jsonToList(allIndexTemplateListJson, IndexTemplateEntity.class);
+        List<IndexTemplateEntity> leafIndexTemplateList = JsonUtil.jsonToList(leafIndexTemplateListJson, IndexTemplateEntity.class);
         log.info("共有 " + leafIndexTemplateList.size() + "个叶子节点:" + leafIndexTemplateListJson);
         int maxLevel = 1; // 用于计算指标得分
-        List<LeafIndexPO> leafIndexList = new ArrayList<>();
+        List<LeafIndexEntity> leafIndexList = new ArrayList<>();
         for (int i = 0; i < leafIndexTemplateList.size(); i++) {
             String scoreExplain = null; // 每个叶子指标下的任务的得分说明一样和叶子指标一致
-            IndexTemplatePO leafIndexTemplate = leafIndexTemplateList.get(i);
+            IndexTemplateEntity leafIndexTemplate = leafIndexTemplateList.get(i);
             String indexId = leafIndexTemplate.getIndexId(); // 叶子指标id
             String parentId = leafIndexTemplate.getParentId(); // 父 id
             String rootId = leafIndexTemplate.getRootId(); // 包 id
@@ -256,13 +236,13 @@ public class TaskManager {
             String ruleFilePath = scoreDirectoryOfUser + "scripts/" + ruleName.split("_")[0] + "/" + ruleName + ".py";
             FileUtil.writeInputStreamToLocalFile(IoUtil.stringToInputStream(ruleDetails), ruleFilePath);
             log.info("将叶子节点 " + indexId + " 对应的打分规则保存到临时目录:" + ruleFilePath);
-            List<TaskPO> taskListOfLeafIndex = taskList.stream()
+            List<TaskEntity> taskListOfLeafIndex = taskList.stream()
                     .filter(task -> indexId.equals(task.getLastTargetId()))
                     .collect(Collectors.toList());
             log.info("叶子节点 " + indexId + " 包括 " + taskListOfLeafIndex.size() + " 个任务:" + taskListOfLeafIndex);
             // 计算叶子指标的得分
             // 使用 stream 流会出现无法进入循环的情况
-            for (TaskPO taskOfLeaf : taskListOfLeafIndex) {
+            for (TaskEntity taskOfLeaf : taskListOfLeafIndex) {
                 String task2Id = taskOfLeaf.getId();
 
                 String runState = taskOfLeaf.getRunState();
@@ -276,7 +256,7 @@ public class TaskManager {
                     String result2OfLinux = linuxTempPath + result2OfMinio;
                     String scoreCommand = "python3 " + scoreDirectoryOfUser + "main.py " + result1OfLinux + " " + result2OfLinux + " " + taskOfLeaf.getSceneType() + " " + ruleName; // 指定打分脚本
                     String scoreResult;
-                    ScoreTO score = null;
+                    ScoreEntity score = null;
                     log.info("下载 minio 上的结果文件 " + result1OfMinio + " 和 " + result2OfMinio + " 到临时目录:" + linuxTempPath);
                     MinioUtil.downloadToFile(minioClient, bucketName, result1OfMinio, result1OfLinux);  // 也可改成下载到指定ip的服务器上,需要保证和打分脚本在一台机器上。
                     MinioUtil.downloadToFile(minioClient, bucketName, result2OfMinio, result2OfLinux);  // 也可改成下载到指定ip的服务器上,需要保证和打分脚本在一台机器上。
@@ -293,7 +273,7 @@ public class TaskManager {
                     log.info("项目" + projectId + " 的任务 " + task2Id + " 打分结束,结果为:" + scoreResult);
                     String replace = StringUtil.replace(scoreResult, "'", "\"");
                     try {
-                        score = JsonUtil.jsonToBean(replace, ScoreTO.class);
+                        score = JsonUtil.jsonToBean(replace, ScoreEntity.class);
                     } catch (Exception e) { // 打分失败
                         log.info("项目" + projectId + " 的任务 " + task2Id + " 打分失败:", e);
                     }
@@ -332,7 +312,7 @@ public class TaskManager {
             int notStandardSceneNumber = 0;
             int standardSceneNumber = 0;
             double leafSum = 0.0;
-            for (TaskPO task : taskListOfLeafIndex) {
+            for (TaskEntity task : taskListOfLeafIndex) {
                 Double scoreTemp = task.getScore();
                 if (scoreTemp == null) {   // 失败状态的任务是没有分数的,计作 0 分。
                     errorSceneNumber++;
@@ -363,7 +343,7 @@ public class TaskManager {
             // 创建叶子指标对象
             leafIndexTemplate.setTempScore(leafIndexScore);
 
-            LeafIndexPO leafIndex = LeafIndexPO.builder()
+            LeafIndexEntity leafIndex = LeafIndexEntity.builder()
                     .id(StringUtil.getRandomUUID())
                     .pId(projectId)
                     .target(leafIndexTemplate.getIndexId())
@@ -395,13 +375,13 @@ public class TaskManager {
         log.info("项目 " + projectId + " 打分完成!");
     }
 
-    public void computeFirst(List<LeafIndexPO> leafIndexList, List<IndexTemplatePO> allIndexTemplateList, String projectId, int maxLevel) {
+    public void computeFirst(List<LeafIndexEntity> leafIndexList, List<IndexTemplateEntity> allIndexTemplateList, String projectId, int maxLevel) {
 
         log.info("计算父指标得分:" + leafIndexList);
-        Iterator<LeafIndexPO> leafTaskIndexIterator = leafIndexList.iterator();
+        Iterator<LeafIndexEntity> leafTaskIndexIterator = leafIndexList.iterator();
         // 把 1 级的指标得分直接保存
         while (leafTaskIndexIterator.hasNext()) {
-            LeafIndexPO leafTaskIndex = leafTaskIndexIterator.next();
+            LeafIndexEntity leafTaskIndex = leafTaskIndexIterator.next();
             if (leafTaskIndex.getPackageLevel() == 1) {
                 leafTaskIndex.setCreateUserId(leafTaskIndex.getCreateUserId());
                 leafTaskIndex.setCreateTime(TimeUtil.getNowForMysql());
@@ -413,27 +393,27 @@ public class TaskManager {
             }
         }
         if (leafIndexList.size() > 0) {
-            List<LeafIndexPO> nextLevelIndexList = new ArrayList<>();
+            List<LeafIndexEntity> nextLevelIndexList = new ArrayList<>();
             // 找出等级和 maxLevel 不相同的指标暂时不计算
             leafIndexList.stream()
                     .filter(po -> maxLevel != po.getPackageLevel())
                     .forEach(nextLevelIndexList::add);
             // 找出等级和 maxLevel 相同的指标并根据父指标分组
-            Map<String, List<LeafIndexPO>> sonTaskIndexMap = leafIndexList.stream()
+            Map<String, List<LeafIndexEntity>> sonTaskIndexMap = leafIndexList.stream()
                     .filter(po -> maxLevel == po.getPackageLevel())
-                    .collect(Collectors.groupingBy(LeafIndexPO::getParentId));
+                    .collect(Collectors.groupingBy(LeafIndexEntity::getParentId));
             Set<String> parentIdSet = sonTaskIndexMap.keySet();
             List<String> parentIdList = CollectionUtil.setToList(parentIdSet);
 
-            List<IndexTemplatePO> parentIndexTemplateList = allIndexTemplateList.stream()
+            List<IndexTemplateEntity> parentIndexTemplateList = allIndexTemplateList.stream()
                     .filter(indexTemplate -> parentIdList.contains(indexTemplate.getIndexId()))
                     .collect(Collectors.toList());
             // 计算父指标得分
             parentIndexTemplateList.forEach(indexTemplate -> {
                 String weight = indexTemplate.getWeight();
-                List<LeafIndexPO> sonTaskIndexList = sonTaskIndexMap.get(indexTemplate.getIndexId());
+                List<LeafIndexEntity> sonTaskIndexList = sonTaskIndexMap.get(indexTemplate.getIndexId());
                 double parentScore = sonTaskIndexList.stream().mapToDouble(taskIndex -> taskIndex.getScore() * Double.parseDouble(taskIndex.getWeight()) / 100).sum();
-                LeafIndexPO parentTaskIndex = LeafIndexPO.builder()
+                LeafIndexEntity parentTaskIndex = LeafIndexEntity.builder()
                         .id(StringUtil.getRandomUUID())
                         .pId(projectId)
                         .target(indexTemplate.getIndexId())
@@ -479,11 +459,11 @@ public class TaskManager {
 
     public void taskTick(String taskId) {
         log.info("收到任务 " + taskId + " 的心跳。");
-        TaskPO taskPO = taskMapper.selectById(taskId);
-        String projectId = taskPO.getPId();
-        String userId = taskPO.getCreateUserId();
+        TaskEntity taskEntity = taskMapper.selectById(taskId);
+        String projectId = taskEntity.getPId();
+        String userId = taskEntity.getCreateUserId();
         // 刷新 redis 心跳时间
-        PrefixTO redisPrefix = projectUtil.getRedisPrefixByUserIdAndProjectIdAndTaskId(userId, projectId, taskId);
+        PrefixEntity redisPrefix = projectUtil.getRedisPrefixByUserIdAndProjectIdAndTaskId(userId, projectId, taskId);
         if (RedisUtil.getStringByKey(stringRedisTemplate, redisPrefix.getProjectRunningKey()) != null) {
             stringRedisTemplate.opsForValue().set(redisPrefix.getTaskTickKey(), TimeUtil.getNowString());
         }
@@ -492,7 +472,7 @@ public class TaskManager {
 
 
     @SneakyThrows
-    public void done(PrefixTO redisPrefix, SshClient sshClient, ClientSession clientSession, String projectId, String projectType) {
+    public void done(PrefixEntity redisPrefix, SshClient sshClient, ClientSession clientSession, String projectId, String projectType) {
 
         // 关闭 ssh 连接
         clientSession.close();

+ 4 - 4
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/mapper/AlgorithmMapper.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/AlgorithmMapper.java

@@ -1,7 +1,7 @@
-package com.css.simulation.resource.scheduler.dao.mapper;
+package com.css.simulation.resource.scheduler.mapper;
 
 
-import com.css.simulation.resource.scheduler.dao.entity.AlgorithmPO;
+import com.css.simulation.resource.scheduler.entity.AlgorithmEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 
@@ -38,7 +38,7 @@ public interface AlgorithmMapper {
             "       git_password\n" +
             "from algorithm\n" +
             "where id = #{id}")
-    AlgorithmPO selectById(@Param("id") String id);
+    AlgorithmEntity selectById(@Param("id") String id);
     @Select("select docker_image\n" +
             "from algorithm\n" +
             "where id = #{id}")
@@ -56,7 +56,7 @@ public interface AlgorithmMapper {
             "from algorithm\n" +
             "where docker_import = #{dockerImport}\n" +
             "order by create_time desc")
-    List<AlgorithmPO> selectByDockerImport(@Param("dockerImport") String dockerImport);
+    List<AlgorithmEntity> selectByDockerImport(@Param("dockerImport") String dockerImport);
 
     @Update("update algorithm\n" +
             "set docker_import = #{dockerImport},\n" +

+ 4 - 4
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/mapper/AutoSubProjectMapper.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/AutoSubProjectMapper.java

@@ -1,7 +1,7 @@
-package com.css.simulation.resource.scheduler.dao.mapper;
+package com.css.simulation.resource.scheduler.mapper;
 
 
-import com.css.simulation.resource.scheduler.dao.entity.ProjectPO;
+import com.css.simulation.resource.scheduler.entity.ProjectEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 
@@ -29,7 +29,7 @@ public interface AutoSubProjectMapper {
             "from simulation_automatic_subproject sas\n" +
             "         left join simulation_automatic_project sap on sas.parent_id = sap.id\n" +
             "where sas.id = #{projectId}")
-    ProjectPO selectById(@Param("projectId") String projectId);
+    ProjectEntity selectById(@Param("projectId") String projectId);
 
     @ResultMap("project")
     @Select("select sas.id, sap.scene, sas.create_user_id, sap.parallelism, '2' project_type\n" +
@@ -37,7 +37,7 @@ public interface AutoSubProjectMapper {
             "         left join simulation_automatic_project sap on sas.parent_id = sap.id\n" +
             "where sas.is_deleted = '0'\n" +
             "  and sas.now_run_state = #{nowRunState}")
-    List<ProjectPO> selectByNowRunState(@Param("nowRunState") String nowRunState);
+    List<ProjectEntity> selectByNowRunState(@Param("nowRunState") String nowRunState);
 
     @Select("select create_user_id\n" +
             "from simulation_automatic_subproject\n" +

+ 3 - 3
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/mapper/ClusterMapper.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/ClusterMapper.java

@@ -1,7 +1,7 @@
-package com.css.simulation.resource.scheduler.dao.mapper;
+package com.css.simulation.resource.scheduler.mapper;
 
 
-import com.css.simulation.resource.scheduler.dao.entity.ClusterPO;
+import com.css.simulation.resource.scheduler.entity.ClusterEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 
@@ -19,6 +19,6 @@ public interface ClusterMapper {
             "from system_cluster\n" +
             "where is_deleted = '0'\n" +
             "  and user_id = #{userId}")
-    ClusterPO selectByUserId(@Param("userId")String userId);
+    ClusterEntity selectByUserId(@Param("userId")String userId);
 
 }

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/mapper/ConfigMapper.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/ConfigMapper.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.dao.mapper;
+package com.css.simulation.resource.scheduler.mapper;
 
 
 import org.apache.ibatis.annotations.Mapper;

+ 4 - 4
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/mapper/IndexMapper.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/IndexMapper.java

@@ -1,7 +1,7 @@
-package com.css.simulation.resource.scheduler.dao.mapper;
+package com.css.simulation.resource.scheduler.mapper;
 
 
-import com.css.simulation.resource.scheduler.dao.entity.LeafIndexPO;
+import com.css.simulation.resource.scheduler.entity.LeafIndexEntity;
 import org.apache.ibatis.annotations.*;
 
 import java.util.List;
@@ -50,7 +50,7 @@ public interface IndexMapper {
             "        #{leaf.modifyTime},\n" +
             "        #{leaf.modifyUserId},\n" +
             "        #{leaf.isDeleted})")
-    void insertLeafIndex(@Param("leaf") LeafIndexPO leafIndexPO);
+    void insertLeafIndex(@Param("leaf") LeafIndexEntity leafIndexEntity);
 
     @Insert("insert into simulation_mpt_first_target_score(id,\n" +
             "                                             p_id,\n" +
@@ -72,7 +72,7 @@ public interface IndexMapper {
             "        #{first.modifyTime},\n" +
             "        #{first.modifyUserId},\n" +
             "        #{first.isDeleted})")
-    void insertFirstIndex(@Param("first") LeafIndexPO firstTaskIndex);
+    void insertFirstIndex(@Param("first") LeafIndexEntity firstTaskIndex);
 
     @Select("select sublist_id\n" +
             "from scene_package_sublist\n" +

+ 6 - 6
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/mapper/IndexTemplateMapper.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/IndexTemplateMapper.java

@@ -1,7 +1,7 @@
-package com.css.simulation.resource.scheduler.dao.mapper;
+package com.css.simulation.resource.scheduler.mapper;
 
 
-import com.css.simulation.resource.scheduler.dao.entity.IndexTemplatePO;
+import com.css.simulation.resource.scheduler.entity.IndexTemplateEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 
@@ -44,7 +44,7 @@ public interface IndexTemplateMapper {
             "from scene_package_sublist sps left join scoring_rules sr on sps.package_and_rules = sr.rules_id\n" +
             "where sps.root_id = #{packageId}\n" +
             "and sps.is_deleted = '0'")
-    List<IndexTemplatePO> selectByPackageIdIncludeDeleted(@Param("packageId") String packageId);
+    List<IndexTemplateEntity> selectByPackageIdIncludeDeleted(@Param("packageId") String packageId);
 
 
 
@@ -55,7 +55,7 @@ public interface IndexTemplateMapper {
             "where is_deleted = '0'\n" +
             "  and root_id = #{packageId}\n" +
             "  and package_and_rules is not null and package_and_rules != ''")
-    List<IndexTemplatePO> selectLeafIndexByPackageId(@Param("packageId") String packageId);
+    List<IndexTemplateEntity> selectLeafIndexByPackageId(@Param("packageId") String packageId);
 
     @ResultMap("index")
     @Select("select sps.sublist_id,\n" +
@@ -74,7 +74,7 @@ public interface IndexTemplateMapper {
             "  and root_id = #{packageId}\n" +
             "  and package_and_rules is not null\n" +
             "  and package_and_rules != ''")
-    List<IndexTemplatePO> selectLeafIndexWithRuleDetailsByPackageId(@Param("packageId") String packageId);
+    List<IndexTemplateEntity> selectLeafIndexWithRuleDetailsByPackageId(@Param("packageId") String packageId);
 
 
     @ResultMap("index")
@@ -95,5 +95,5 @@ public interface IndexTemplateMapper {
             "       </foreach>\n" +
             "</if>\n" +
             "</script>")
-    List<IndexTemplatePO> selectByIdList(@Param("idList") List<String> idList);
+    List<IndexTemplateEntity> selectByIdList(@Param("idList") List<String> idList);
 }

+ 4 - 4
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/mapper/ManualProjectMapper.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/ManualProjectMapper.java

@@ -1,7 +1,7 @@
-package com.css.simulation.resource.scheduler.dao.mapper;
+package com.css.simulation.resource.scheduler.mapper;
 
 
-import com.css.simulation.resource.scheduler.dao.entity.ProjectPO;
+import com.css.simulation.resource.scheduler.entity.ProjectEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 
@@ -29,7 +29,7 @@ public interface ManualProjectMapper {
             "       max_simulation_time\n" +
             "from simulation_manual_project\n" +
             "where id = #{projectId}")
-    ProjectPO selectById(@Param("projectId") String projectId);
+    ProjectEntity selectById(@Param("projectId") String projectId);
 
 
     @Select("select is_choice_gpu\n" +
@@ -42,7 +42,7 @@ public interface ManualProjectMapper {
             "from simulation_manual_project\n" +
             "where is_deleted = '0'\n" +
             "  and now_run_state = #{nowRunState}")
-    List<ProjectPO> selectByNowRunState(@Param("nowRunState") String nowRunState);
+    List<ProjectEntity> selectByNowRunState(@Param("nowRunState") String nowRunState);
 
 
     @Update("update simulation_manual_project\n" +

+ 8 - 8
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/mapper/SceneMapper.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SceneMapper.java

@@ -1,8 +1,8 @@
-package com.css.simulation.resource.scheduler.dao.mapper;
+package com.css.simulation.resource.scheduler.mapper;
 
 
-import com.css.simulation.resource.scheduler.dao.entity.IndexTemplatePO;
-import com.css.simulation.resource.scheduler.dao.entity.ScenePO;
+import com.css.simulation.resource.scheduler.entity.IndexTemplateEntity;
+import com.css.simulation.resource.scheduler.entity.SceneEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 
@@ -32,7 +32,7 @@ public interface SceneMapper {
             "  and ((scene_natural_ids is not null and scene_natural_ids != '')\n" +
             "    or (scene_traffic_ids is not null and scene_traffic_ids != '')\n" +
             "    or (scene_statue_ids is not null and scene_statue_ids != ''))")
-    List<IndexTemplatePO> selectLeafIndexByPackageId(@Param("packageId") String packageId);
+    List<IndexTemplateEntity> selectLeafIndexByPackageId(@Param("packageId") String packageId);
 
 
     @Results(id = "scene", value = {
@@ -59,7 +59,7 @@ public interface SceneMapper {
             "       </foreach>\n" +
             "</if>\n" +
             "</script>")
-    List<ScenePO> selectNaturalByIdList(@Param("idList") List<String> idList);
+    List<SceneEntity> selectNaturalByIdList(@Param("idList") List<String> idList);
 
 
     @ResultMap("scene")
@@ -79,7 +79,7 @@ public interface SceneMapper {
             "       </foreach>\n" +
             "</if>\n" +
             "</script>")
-    List<ScenePO> selectStandardByIdList(@Param("idList") List<String> idList);
+    List<SceneEntity> selectStandardByIdList(@Param("idList") List<String> idList);
 
     @ResultMap("scene")
     @Select("<script>" +
@@ -98,7 +98,7 @@ public interface SceneMapper {
             "       </foreach>\n" +
             "</if>\n" +
             "</script>")
-    List<ScenePO> selectAccidentByIdList(@Param("idList") List<String> idList);
+    List<SceneEntity> selectAccidentByIdList(@Param("idList") List<String> idList);
 
     @ResultMap("scene")
     @Select("<script>" +
@@ -117,5 +117,5 @@ public interface SceneMapper {
             "       </foreach>\n" +
             "</if>\n" +
             "</script>")
-    List<ScenePO> selectGeneralizationByIdList(@Param("idList")List<String> idList);
+    List<SceneEntity> selectGeneralizationByIdList(@Param("idList")List<String> idList);
 }

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/mapper/ScoringRulesMapper.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/ScoringRulesMapper.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.dao.mapper;
+package com.css.simulation.resource.scheduler.mapper;
 
 
 import org.apache.ibatis.annotations.Mapper;

+ 3 - 3
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/mapper/SensorCameraMapper.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SensorCameraMapper.java

@@ -1,6 +1,6 @@
-package com.css.simulation.resource.scheduler.dao.mapper;
+package com.css.simulation.resource.scheduler.mapper;
 
-import com.css.simulation.resource.scheduler.dao.entity.CameraPO;
+import com.css.simulation.resource.scheduler.entity.CameraEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 
@@ -40,5 +40,5 @@ public interface SensorCameraMapper {
             "from model_sensor_camera msc left join relation_config_sensor rcs on msc.id = rcs.sensor_id\n" +
             "where msc.is_deleted = '0' and rcs.is_deleted = '0'\n" +
             "   and rcs.config_id = #{vehicleConfigId}")
-    List<CameraPO> selectCameraByVehicleConfigId(@Param("vehicleConfigId") String vehicleConfigId);
+    List<CameraEntity> selectCameraByVehicleConfigId(@Param("vehicleConfigId") String vehicleConfigId);
 }

+ 3 - 3
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/mapper/SensorOgtMapper.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SensorOgtMapper.java

@@ -1,6 +1,6 @@
-package com.css.simulation.resource.scheduler.dao.mapper;
+package com.css.simulation.resource.scheduler.mapper;
 
-import com.css.simulation.resource.scheduler.dao.entity.OgtPO;
+import com.css.simulation.resource.scheduler.entity.OgtEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 
@@ -48,5 +48,5 @@ public interface SensorOgtMapper {
             "from model_sensor_ogt mso left join relation_config_sensor rcs on mso.id = rcs.sensor_id\n" +
             "where mso.is_deleted = '0' and rcs.is_deleted = '0'\n" +
             "   and rcs.config_id = #{vehicleConfigId}")
-    List<OgtPO> selectOgtByVehicleId(@Param("vehicleConfigId") String vehicleConfigId);
+    List<OgtEntity> selectOgtByVehicleId(@Param("vehicleConfigId") String vehicleConfigId);
 }

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/mapper/SimulationAutomaticProjectMapper.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SimulationAutomaticProjectMapper.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.dao.mapper;
+package com.css.simulation.resource.scheduler.mapper;
 
 
 import org.apache.ibatis.annotations.Mapper;

+ 8 - 8
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/mapper/TaskMapper.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/TaskMapper.java

@@ -1,7 +1,7 @@
-package com.css.simulation.resource.scheduler.dao.mapper;
+package com.css.simulation.resource.scheduler.mapper;
 
 
-import com.css.simulation.resource.scheduler.dao.entity.TaskPO;
+import com.css.simulation.resource.scheduler.entity.TaskEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 import org.springframework.context.annotation.Scope;
@@ -38,13 +38,13 @@ public interface TaskMapper {
             "       last_targer_id\n" +
             "from simulation_manual_project_task\n" +
             "where p_id = #{projectId}")
-    List<TaskPO> selectTaskListByProjectId(@Param("projectId") String projectId);
+    List<TaskEntity> selectTaskListByProjectId(@Param("projectId") String projectId);
 
     @ResultMap("task")
     @Select("select p_id, create_user_id\n" +
             "from simulation_manual_project_task\n" +
             "where id = #{taskId}")
-    TaskPO selectById(@Param("taskId")String taskId);
+    TaskEntity selectById(@Param("taskId")String taskId);
 
     @ResultMap("task")
     @Select("select smpt.id, smpt.p_id, smpt.create_user_id\n" +
@@ -54,7 +54,7 @@ public interface TaskMapper {
             "where smpt.is_deleted = '0'\n" +
             "  and run_state = 'Running'\n" +
             "  and (smp.is_deleted = 0 or sas.is_deleted = 0)")
-    List<TaskPO> selectByRunStateAndProjectIsNotDeleted(@Param("runState") String runState);
+    List<TaskEntity> selectByRunStateAndProjectIsNotDeleted(@Param("runState") String runState);
 
 
 
@@ -87,7 +87,7 @@ public interface TaskMapper {
             "                                           modify_user_id, is_deleted)\n" +
             "values (#{task.id},#{task.pId},#{task.sceneId},#{task.sceneName},#{task.sceneType},#{task.lastTargetId},#{task.runState},\n" +
             "#{task.runResultFilePath},#{task.createTime},#{task.createUserId},#{task.modifyTime},#{task.modifyUserId},#{task.isDeleted})")
-    void insert(@Param("task") TaskPO task);
+    void insert(@Param("task") TaskEntity task);
 
     @Select("select run_state\n" +
             "from simulation_manual_project_task\n" +
@@ -105,7 +105,7 @@ public interface TaskMapper {
             "    modify_user_id  = #{task.modifyUserId},\n" +
             "    modify_time     = #{task.modifyTime}\n" +
             "  where id = #{task.id}")
-    void updateSuccessStateAndScoreResultWithStopTime(@Param("task") TaskPO task, @Param("runState") String runState, @Param("runStopTime") Timestamp runStopTime);
+    void updateSuccessStateAndScoreResultWithStopTime(@Param("task") TaskEntity task, @Param("runState") String runState, @Param("runStopTime") Timestamp runStopTime);
 
     @Update("update simulation_manual_project_task\n" +
             "set run_state = #{runState}," +
@@ -117,7 +117,7 @@ public interface TaskMapper {
             "    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);
+    void updateSuccessState(@Param("task") TaskEntity task, @Param("runState") String runState);
 
 
 

+ 3 - 3
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/mapper/UserMapper.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/UserMapper.java

@@ -1,7 +1,7 @@
-package com.css.simulation.resource.scheduler.dao.mapper;
+package com.css.simulation.resource.scheduler.mapper;
 
 
-import com.css.simulation.resource.scheduler.dao.entity.UserPO;
+import com.css.simulation.resource.scheduler.entity.UserEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 
@@ -21,6 +21,6 @@ public interface UserMapper {
             "       create_user_id\n" +
             "from system_user\n" +
             "where id = #{userId}")
-    UserPO selectById(@Param("userId")String userId);
+    UserEntity selectById(@Param("userId")String userId);
 
 }

+ 3 - 3
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/dao/mapper/VehicleMapper.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/VehicleMapper.java

@@ -1,6 +1,6 @@
-package com.css.simulation.resource.scheduler.dao.mapper;
+package com.css.simulation.resource.scheduler.mapper;
 
-import com.css.simulation.resource.scheduler.dao.entity.VehiclePO;
+import com.css.simulation.resource.scheduler.entity.VehicleEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 
@@ -52,7 +52,7 @@ public interface VehicleMapper {
             "    from model_config mc\n" +
             "    where mc.id = #{vehicleConfigId}\n" +
             ")")
-    VehiclePO selectByVehicleConfigId(@Param("vehicleConfigId") String vehicleConfigId);
+    VehicleEntity selectByVehicleConfigId(@Param("vehicleConfigId") String vehicleConfigId);
 
     @Select("select par_file_path\n" +
             "from model_vehicle\n" +

+ 11 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/resource/TaskLock.java

@@ -0,0 +1,11 @@
+package com.css.simulation.resource.scheduler.resource;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+@Component
+@Slf4j
+public class TaskLock {
+
+
+}

+ 7 - 7
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/web/scheduler/AlgorithmScheduler.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/scheduler/AlgorithmScheduler.java

@@ -1,10 +1,10 @@
-package com.css.simulation.resource.scheduler.web.scheduler;
+package com.css.simulation.resource.scheduler.scheduler;
 
 import api.common.util.SshUtil;
-import com.css.simulation.resource.scheduler.common.configuration.docker.DockerConfiguration;
-import com.css.simulation.resource.scheduler.dao.mapper.AlgorithmMapper;
-import com.css.simulation.resource.scheduler.dao.entity.AlgorithmPO;
-import com.css.simulation.resource.scheduler.service.domain.DockerNodeTO;
+import com.css.simulation.resource.scheduler.configuration.docker.DockerConfiguration;
+import com.css.simulation.resource.scheduler.mapper.AlgorithmMapper;
+import com.css.simulation.resource.scheduler.entity.AlgorithmEntity;
+import com.css.simulation.resource.scheduler.entity.DockerNodeTO;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.sshd.client.SshClient;
@@ -36,7 +36,7 @@ public class AlgorithmScheduler {
         int maxAlgorithmImage = dockerConfiguration.getMaxAlgorithmImage();
         int minAlgorithmImage = dockerConfiguration.getMinAlgorithmImage();
         //1 查询已经导入的算法,根据创建时间排序
-        List<AlgorithmPO> algorithmImportedList = algorithmMapper.selectByDockerImport("1");
+        List<AlgorithmEntity> algorithmImportedList = algorithmMapper.selectByDockerImport("1");
         int algorithmImportNumber = algorithmImportedList.size();
         log.info("AlgorithmScheduler--removeAlgorithmImage kubernetes 各个节点已经导入 " + algorithmImportNumber + " 个算法。");
         if (algorithmImportNumber < maxAlgorithmImage) {
@@ -47,7 +47,7 @@ public class AlgorithmScheduler {
         StringBuilder dockerRmiCommand = new StringBuilder("docker rmi ");
         StringBuilder registryRmCommand = new StringBuilder("rm -rf ");
         for (int i = minAlgorithmImage; i < algorithmImportedList.size(); i++) {
-            AlgorithmPO tempAlgorithm = algorithmImportedList.get(i);
+            AlgorithmEntity tempAlgorithm = algorithmImportedList.get(i);
             String tempAlgorithmId = tempAlgorithm.getId();
             String algorithmCode = tempAlgorithm.getAlgorithmCode();
             algorithmIdToUpdateList.add(tempAlgorithm.getId());

+ 4 - 4
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/web/scheduler/ProjectScheduler.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/scheduler/ProjectScheduler.java

@@ -1,9 +1,9 @@
-package com.css.simulation.resource.scheduler.web.scheduler;
+package com.css.simulation.resource.scheduler.scheduler;
 
 import api.common.util.CollectionUtil;
-import com.css.simulation.resource.scheduler.common.util.ProjectUtil;
-import com.css.simulation.resource.scheduler.common.util.RedisUtil;
-import com.css.simulation.resource.scheduler.web.consumer.ProjectConsumer;
+import com.css.simulation.resource.scheduler.util.ProjectUtil;
+import com.css.simulation.resource.scheduler.util.RedisUtil;
+import com.css.simulation.resource.scheduler.consumer.ProjectConsumer;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.kafka.clients.consumer.ConsumerRecord;
 import org.springframework.data.redis.core.StringRedisTemplate;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/AlgorithmService.java

@@ -2,7 +2,7 @@ package com.css.simulation.resource.scheduler.service;
 
 import api.common.pojo.common.ResponseBodyVO;
 import api.common.util.FileUtil;
-import com.css.simulation.resource.scheduler.common.util.MinioUtil;
+import com.css.simulation.resource.scheduler.util.MinioUtil;
 import io.minio.MinioClient;
 import lombok.SneakyThrows;
 import org.springframework.beans.factory.annotation.Value;

+ 26 - 26
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/ProjectService.java

@@ -3,16 +3,16 @@ package com.css.simulation.resource.scheduler.service;
 import api.common.pojo.constants.DictConstants;
 import api.common.pojo.dto.ProjectMessageDTO;
 import api.common.util.*;
-import com.css.simulation.resource.scheduler.common.configuration.docker.DockerConfiguration;
-import com.css.simulation.resource.scheduler.common.configuration.git.GitConfiguration;
-import com.css.simulation.resource.scheduler.common.configuration.kubernetes.KubernetesConfiguration;
-import com.css.simulation.resource.scheduler.common.util.*;
-import com.css.simulation.resource.scheduler.dao.mapper.*;
-import com.css.simulation.resource.scheduler.dao.manager.ProjectManager;
-import com.css.simulation.resource.scheduler.dao.entity.AlgorithmPO;
-import com.css.simulation.resource.scheduler.dao.entity.IndexTemplatePO;
-import com.css.simulation.resource.scheduler.dao.entity.ScenePO;
-import com.css.simulation.resource.scheduler.service.domain.PrefixTO;
+import com.css.simulation.resource.scheduler.configuration.docker.DockerConfiguration;
+import com.css.simulation.resource.scheduler.configuration.git.GitConfiguration;
+import com.css.simulation.resource.scheduler.configuration.kubernetes.KubernetesConfiguration;
+import com.css.simulation.resource.scheduler.entity.AlgorithmEntity;
+import com.css.simulation.resource.scheduler.entity.IndexTemplateEntity;
+import com.css.simulation.resource.scheduler.entity.SceneEntity;
+import com.css.simulation.resource.scheduler.manager.ProjectManager;
+import com.css.simulation.resource.scheduler.mapper.*;
+import com.css.simulation.resource.scheduler.entity.PrefixEntity;
+import com.css.simulation.resource.scheduler.util.*;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import io.minio.MinioClient;
 import lombok.SneakyThrows;
@@ -121,20 +121,20 @@ public class ProjectService {
 
     @SneakyThrows
     @Transactional
-    public List<ScenePO> getSceneList(String projectId, String packageId) {
+    public List<SceneEntity> getSceneList(String projectId, String packageId) {
 
         String allIndexPrefix = "project:" + projectId + ":package:" + packageId + ":all";
         String leafIndexPrefix = "project:" + projectId + ":package:" + packageId + ":leaf";
         //1 查询该场景包的所有指标列表,包删了无所谓,但要过滤删掉的指标。并保存成 json 文件。
-        List<IndexTemplatePO> allIndexList = indexTemplateMapper.selectByPackageIdIncludeDeleted(packageId);
+        List<IndexTemplateEntity> allIndexList = indexTemplateMapper.selectByPackageIdIncludeDeleted(packageId);
 //        FileUtil.writeStringToLocalFile(JsonUtil.listToJson(allIndexList), projectPath + "all-index-list.json");
         stringRedisTemplate.opsForValue().set(allIndexPrefix, JsonUtil.listToJson(allIndexList));
         //2 查询场景包叶子指标
-        List<IndexTemplatePO> leafIndexList = allIndexList.stream().filter(index -> StringUtil.isNotEmpty(index.getRuleId())).collect(Collectors.toList());
+        List<IndexTemplateEntity> leafIndexList = allIndexList.stream().filter(index -> StringUtil.isNotEmpty(index.getRuleId())).collect(Collectors.toList());
         log.info("getSceneList() 项目 " + projectId + " 的叶子指标为:" + leafIndexList);
 //        FileUtil.writeStringToLocalFile(JsonUtil.listToJson(allIndexList), projectPath + "leaf-index-list.json");
         stringRedisTemplate.opsForValue().set(leafIndexPrefix, JsonUtil.listToJson(leafIndexList));
-        List<ScenePO> sceneList = new ArrayList<>();
+        List<SceneEntity> sceneList = new ArrayList<>();
         leafIndexList.forEach(leafIndex -> {
             String naturalIds = leafIndex.getSceneNaturalIds();
             String standardIds = leafIndex.getSceneStatueIds();
@@ -208,29 +208,29 @@ public class ProjectService {
     @Transactional
     public String handleAlgorithm(String projectId, String algorithmId) {
         //4-1 根据算法 id 获取算法文件地址、是否已导入成镜像。
-        AlgorithmPO algorithmPO = algorithmMapper.selectById(algorithmId);
+        AlgorithmEntity algorithmEntity = algorithmMapper.selectById(algorithmId);
         String dockerImage;
         String algorithmDirectoryLinuxTempPath;
         String algorithmTarLinuxTempPath = null;
-        if (algorithmPO != null) {
-            log.info("项目" + projectId + "需要使用仿真平台自己的算法 " + algorithmPO);
-            String algorithmCode = algorithmPO.getAlgorithmCode();
-            String dockerImport = algorithmPO.getDockerImport();
+        if (algorithmEntity != null) {
+            log.info("项目" + projectId + "需要使用仿真平台自己的算法 " + algorithmEntity);
+            String algorithmCode = algorithmEntity.getAlgorithmCode();
+            String dockerImport = algorithmEntity.getDockerImport();
             dockerImage = dockerConfiguration.getRegistry() + "/algorithm_" + algorithmCode + ":latest";
             if ("1".equals(dockerImport) && StringUtil.isNotEmpty(dockerImport)) { // 已经导入同时存在镜像名称
-                return algorithmPO.getDockerImage();
+                return algorithmEntity.getDockerImage();
             } else if (dockerImport == null || "0".equals(dockerImport)) {  // 未导入
-                String uploadMode = algorithmPO.getUploadMode();
+                String uploadMode = algorithmEntity.getUploadMode();
                 if (DictConstants.ALGORITHM_UPLOAD_MODE_FILE.equals(uploadMode)) {
                     algorithmTarLinuxTempPath = linuxTempPath + "algorithm-file/" + algorithmCode + "/" + algorithmCode + ".tar";
-                    String minioPath = algorithmPO.getMinioPath();
+                    String minioPath = algorithmEntity.getMinioPath();
                     log.info("下载 minio 算法文件 " + minioPath + " 到本地 " + algorithmTarLinuxTempPath);
                     MinioUtil.downloadToFile(minioClient, bucketName, minioPath, algorithmTarLinuxTempPath);
                 } else if (DictConstants.ALGORITHM_UPLOAD_MODE_GIT.equals(uploadMode)) {
                     algorithmDirectoryLinuxTempPath = linuxTempPath + "algorithm-git/" + algorithmCode + "/";
-                    String gitUrl = algorithmPO.getGitUrl().replace(gitConfiguration.getName(), gitConfiguration.getUrl());
-                    String gitUserName = algorithmPO.getGitUserName();
-                    String gitPassword = algorithmPO.getGitPassword();
+                    String gitUrl = algorithmEntity.getGitUrl().replace(gitConfiguration.getName(), gitConfiguration.getUrl());
+                    String gitUserName = algorithmEntity.getGitUserName();
+                    String gitPassword = algorithmEntity.getGitPassword();
                     log.info("下载 git 算法文件 " + gitUrl + " 到本地 " + algorithmDirectoryLinuxTempPath);
                     GitUtil.clone(gitUrl, gitUserName, gitPassword, algorithmDirectoryLinuxTempPath, true);
                     for (String filename : Objects.requireNonNull(new File(algorithmDirectoryLinuxTempPath).list())) {
@@ -296,7 +296,7 @@ public class ProjectService {
     public void stopProject(String projectId, String projectType) {
 
         //1 判断项目是否已经运行
-        PrefixTO redisPrefix = projectUtil.getRedisPrefixByProjectIdAndProjectType(projectId, projectType);
+        PrefixEntity redisPrefix = projectUtil.getRedisPrefixByProjectIdAndProjectType(projectId, projectType);
         final String projectRunningKeyPrefix = redisPrefix.getProjectRunningKey();
         final Set<String> projectRunningKeySet = RedisUtil.getKeySetByPrefix(stringRedisTemplate, projectRunningKeyPrefix);
         boolean isRunning = !CollectionUtil.isEmpty(projectRunningKeySet);

+ 14 - 14
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/TaskService.java

@@ -1,12 +1,12 @@
 package com.css.simulation.resource.scheduler.service;
 
 import api.common.util.SshUtil;
-import com.css.simulation.resource.scheduler.dao.manager.TaskManager;
-import com.css.simulation.resource.scheduler.dao.mapper.TaskMapper;
-import com.css.simulation.resource.scheduler.dao.entity.ProjectPO;
-import com.css.simulation.resource.scheduler.dao.entity.TaskPO;
-import com.css.simulation.resource.scheduler.service.domain.PrefixTO;
-import com.css.simulation.resource.scheduler.common.util.ProjectUtil;
+import com.css.simulation.resource.scheduler.manager.TaskManager;
+import com.css.simulation.resource.scheduler.mapper.TaskMapper;
+import com.css.simulation.resource.scheduler.entity.ProjectEntity;
+import com.css.simulation.resource.scheduler.entity.TaskEntity;
+import com.css.simulation.resource.scheduler.entity.PrefixEntity;
+import com.css.simulation.resource.scheduler.util.ProjectUtil;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.sshd.client.SshClient;
@@ -38,17 +38,17 @@ public class TaskService {
     @SneakyThrows
     public void taskState(String taskId, String state, String podName) {
         log.info("接收到参数为:taskId=" + taskId + ",state=" + state + ",podName=" + podName);
-        TaskPO taskPO = taskMapper.selectById(taskId);
-        if (taskPO == null) {
+        TaskEntity taskEntity = taskMapper.selectById(taskId);
+        if (taskEntity == null) {
             log.error("接收到已删除但还在执行的任务:taskId=" + taskId + ",state=" + state + ",podName=" + podName);
             return;
         }
-        String projectId = taskPO.getPId(); // 项目 id
-        ProjectPO projectPO = projectUtil.getProjectByProjectId(projectId);
-        String projectType = projectPO.getProjectType();  // 项目类型
-        String maxSimulationTime = projectPO.getMaxSimulationTime();  // 项目类型
-        String userId = taskPO.getCreateUserId();   // 用户 id
-        PrefixTO redisPrefix = projectUtil.getRedisPrefixByUserIdAndProjectIdAndTaskId(userId, projectId, taskId);  // 项目前缀
+        String projectId = taskEntity.getPId(); // 项目 id
+        ProjectEntity projectEntity = projectUtil.getProjectByProjectId(projectId);
+        String projectType = projectEntity.getProjectType();  // 项目类型
+        String maxSimulationTime = projectEntity.getMaxSimulationTime();  // 项目类型
+        String userId = taskEntity.getCreateUserId();   // 用户 id
+        PrefixEntity redisPrefix = projectUtil.getRedisPrefixByUserIdAndProjectIdAndTaskId(userId, projectId, taskId);  // 项目前缀
         //1 判断项目是否已完成
         boolean projectCompleted = taskManager.isProjectCompleted(redisPrefix, projectId, projectType, maxSimulationTime, taskId, state, podName);
         if (!projectCompleted) {

+ 0 - 19
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/domain/SensorsTO.java

@@ -1,19 +0,0 @@
-package com.css.simulation.resource.scheduler.service.domain;
-
-import com.css.simulation.resource.scheduler.dao.entity.CameraPO;
-import com.css.simulation.resource.scheduler.dao.entity.OgtPO;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.util.List;
-
-@Data
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class SensorsTO {
-    private List<CameraPO> camera;
-    private List<OgtPO> OGT;
-}

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/util/ApacheKafkaUtil.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/ApacheKafkaUtil.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.common.util;
+package com.css.simulation.resource.scheduler.util;
 
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/util/GitUtil.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/GitUtil.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.common.util;
+package com.css.simulation.resource.scheduler.util;
 
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/util/KubernetesUtil.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/KubernetesUtil.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.common.util;
+package com.css.simulation.resource.scheduler.util;
 
 import api.common.util.SshUtil;
 import io.kubernetes.client.openapi.ApiClient;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/util/MinioUtil.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/MinioUtil.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.common.util;
+package com.css.simulation.resource.scheduler.util;
 
 import io.minio.*;
 import io.minio.errors.*;

+ 75 - 53
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/util/ProjectUtil.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/ProjectUtil.java

@@ -1,18 +1,19 @@
-package com.css.simulation.resource.scheduler.common.util;
+package com.css.simulation.resource.scheduler.util;
 
 import api.common.pojo.constants.DictConstants;
 import api.common.pojo.dto.ProjectMessageDTO;
 import api.common.util.*;
-import com.css.simulation.resource.scheduler.common.configuration.kubernetes.KubernetesConfiguration;
-import com.css.simulation.resource.scheduler.dao.entity.ProjectPO;
-import com.css.simulation.resource.scheduler.dao.entity.UserPO;
-import com.css.simulation.resource.scheduler.dao.mapper.AutoSubProjectMapper;
-import com.css.simulation.resource.scheduler.dao.mapper.ClusterMapper;
-import com.css.simulation.resource.scheduler.dao.mapper.ManualProjectMapper;
-import com.css.simulation.resource.scheduler.dao.mapper.UserMapper;
-import com.css.simulation.resource.scheduler.service.domain.KubernetesNodeTO;
-import com.css.simulation.resource.scheduler.service.domain.NodeTO;
-import com.css.simulation.resource.scheduler.service.domain.PrefixTO;
+import com.css.simulation.resource.scheduler.configuration.kubernetes.KubernetesConfiguration;
+import com.css.simulation.resource.scheduler.configuration.redis.CustomRedisClient;
+import com.css.simulation.resource.scheduler.entity.ProjectEntity;
+import com.css.simulation.resource.scheduler.entity.UserEntity;
+import com.css.simulation.resource.scheduler.mapper.AutoSubProjectMapper;
+import com.css.simulation.resource.scheduler.mapper.ClusterMapper;
+import com.css.simulation.resource.scheduler.mapper.ManualProjectMapper;
+import com.css.simulation.resource.scheduler.mapper.UserMapper;
+import com.css.simulation.resource.scheduler.entity.KubernetesNodeEntity;
+import com.css.simulation.resource.scheduler.entity.NodeEntity;
+import com.css.simulation.resource.scheduler.entity.PrefixEntity;
 import io.kubernetes.client.openapi.ApiClient;
 import io.kubernetes.client.openapi.ApiException;
 import lombok.SneakyThrows;
@@ -59,6 +60,8 @@ public class ProjectUtil {
     private ApiClient apiClient;
     @Resource
     private StringRedisTemplate stringRedisTemplate;
+    @Resource
+    private CustomRedisClient customRedisClient;
 
 
     @SneakyThrows
@@ -72,11 +75,11 @@ public class ProjectUtil {
     }
 
 
-    public List<NodeTO> getNodeListToCount(Map<String, Integer> nodeMap) {
-        List<NodeTO> result = new ArrayList<>();
+    public List<NodeEntity> getNodeListToCount(Map<String, Integer> nodeMap) {
+        List<NodeEntity> result = new ArrayList<>();
         nodeMap.forEach((nodeName, parallelism) -> {
             for (int i = 0; i < parallelism; i++) {
-                result.add(new NodeTO(nodeName, 0));
+                result.add(new NodeEntity(nodeName, 0));
             }
         });
         return result;
@@ -164,7 +167,7 @@ public class ProjectUtil {
     /**
      * @param redisKey yaml 地址的缓存 key
      */
-    public void createPodBegin(String projectId,String redisKey) {
+    public void createPodBegin(String projectId, String redisKey) {
         final String podYamlPath = stringRedisTemplate.opsForValue().get(redisKey);
         if (podYamlPath == null) {
             throw new RuntimeException("createPod3() 根据缓存 key 获取 yaml 地址为 null:" + redisKey);
@@ -194,13 +197,13 @@ public class ProjectUtil {
     }
 
 
-    public ProjectPO getProjectByProjectId(String projectId) {
-        ProjectPO manualProjectPO = manualProjectMapper.selectById(projectId);
-        ProjectPO autoSubProjectPO = autoSubProjectMapper.selectById(projectId);
-        if (manualProjectPO != null) {
-            return manualProjectPO;
-        } else if (autoSubProjectPO != null) {
-            return autoSubProjectPO;
+    public ProjectEntity getProjectByProjectId(String projectId) {
+        ProjectEntity manualProjectEntity = manualProjectMapper.selectById(projectId);
+        ProjectEntity autoSubProjectEntity = autoSubProjectMapper.selectById(projectId);
+        if (manualProjectEntity != null) {
+            return manualProjectEntity;
+        } else if (autoSubProjectEntity != null) {
+            return autoSubProjectEntity;
         }
         throw new RuntimeException("getProjectByProjectId() 不存在项目:" + projectId);
     }
@@ -239,11 +242,11 @@ public class ProjectUtil {
      * @return 节点映射(节点名,并行度)
      */
     public Map<String, Integer> getNodeMap() {
-        List<KubernetesNodeTO> initialNodeList = kubernetesConfiguration.getNodeList(); // 预设并行度的节点列表
+        List<KubernetesNodeEntity> initialNodeList = kubernetesConfiguration.getNodeList(); // 预设并行度的节点列表
         log.info("预设并行度的节点列表为:" + initialNodeList);
         Map<String, Integer> resultNodeMap = new HashMap<>();    // 用于执行的节点映射(节点名,并行度)
-        for (KubernetesNodeTO kubernetesNodeSource : initialNodeList) {
-            KubernetesNodeTO kubernetesNodeCopy = kubernetesNodeSource.clone();
+        for (KubernetesNodeEntity kubernetesNodeSource : initialNodeList) {
+            KubernetesNodeEntity kubernetesNodeCopy = kubernetesNodeSource.clone();
             String nodeName = kubernetesNodeCopy.getName();
             int maxParallelism = kubernetesNodeCopy.getMaxParallelism();
             String restParallelismKey = "node:" + nodeName + ":parallelism";
@@ -268,11 +271,11 @@ public class ProjectUtil {
      * @return 集群剩余并行度
      */
     public int getRestParallelism() {
-        List<KubernetesNodeTO> initialNodeList = kubernetesConfiguration.getNodeList(); // 预设并行度的节点列表
+        List<KubernetesNodeEntity> initialNodeList = kubernetesConfiguration.getNodeList(); // 预设并行度的节点列表
         // 遍历所有节点,获取还有剩余并行度的节点
-        List<KubernetesNodeTO> restNodeList = new ArrayList<>();    // 剩余并行度的节点列表
-        for (KubernetesNodeTO kubernetesNodeSource : initialNodeList) {
-            KubernetesNodeTO kubernetesNodeCopy = kubernetesNodeSource.clone();
+        List<KubernetesNodeEntity> restNodeList = new ArrayList<>();    // 剩余并行度的节点列表
+        for (KubernetesNodeEntity kubernetesNodeSource : initialNodeList) {
+            KubernetesNodeEntity kubernetesNodeCopy = kubernetesNodeSource.clone();
             String nodeName = kubernetesNodeCopy.getName();   // 节点名称
             int maxParallelism = kubernetesNodeCopy.getMaxParallelism();
             String restParallelismString = stringRedisTemplate.opsForValue().get("node:" + nodeName + ":parallelism");// 获取节点剩余并行度的 key
@@ -290,7 +293,7 @@ public class ProjectUtil {
             }
         }
         log.info("ProjectUtil--getRestParallelism 集群剩余并行度为:" + restNodeList);
-        return restNodeList.size() == 0 ? 0 : restNodeList.stream().mapToInt(KubernetesNodeTO::getMaxParallelism).sum();
+        return restNodeList.size() == 0 ? 0 : restNodeList.stream().mapToInt(KubernetesNodeEntity::getMaxParallelism).sum();
     }
 
     /**
@@ -300,12 +303,12 @@ public class ProjectUtil {
      * @return 节点映射(节点名,并行度)
      */
     public Map<String, Integer> getNodeMapToUse(int parallelism) {
-        List<KubernetesNodeTO> initialNodeList = kubernetesConfiguration.getNodeList(); // 预设并行度的节点列表
+        List<KubernetesNodeEntity> initialNodeList = kubernetesConfiguration.getNodeList(); // 预设并行度的节点列表
         log.info("预设并行度的节点列表为:" + initialNodeList);
         // 遍历所有节点,获取还有剩余并行度的节点
-        List<KubernetesNodeTO> restNodeList = new ArrayList<>();    // 剩余并行度的节点列表
-        for (KubernetesNodeTO kubernetesNodeSource : initialNodeList) {
-            KubernetesNodeTO kubernetesNodeCopy = kubernetesNodeSource.clone();
+        List<KubernetesNodeEntity> restNodeList = new ArrayList<>();    // 剩余并行度的节点列表
+        for (KubernetesNodeEntity kubernetesNodeSource : initialNodeList) {
+            KubernetesNodeEntity kubernetesNodeCopy = kubernetesNodeSource.clone();
             String nodeName = kubernetesNodeCopy.getName();   // 节点名称
             int maxParallelism = kubernetesNodeCopy.getMaxParallelism();
             String restParallelismString = stringRedisTemplate.opsForValue().get("node:" + nodeName + ":parallelism");// 获取节点剩余并行度的 key
@@ -326,7 +329,7 @@ public class ProjectUtil {
         Map<String, Integer> resultNodeMap = new HashMap<>();    // 用于执行的节点映射(节点名,并行度)
         if (!CollectionUtil.isEmpty(restNodeList)) {
             if (restNodeList.size() == 1) {
-                KubernetesNodeTO tempNode = restNodeList.get(0);
+                KubernetesNodeEntity tempNode = restNodeList.get(0);
                 String tempNodeName = tempNode.getName();
                 int tempParallelism = tempNode.getMaxParallelism();
                 resultNodeMap.put(tempNodeName, Math.min(tempParallelism, parallelism));
@@ -335,7 +338,7 @@ public class ProjectUtil {
                 for (int i = 0; i < parallelism; i++) {
                     // 每次降序排序都取剩余并行度最大的一个。
                     restNodeList.sort((o1, o2) -> o2.getMaxParallelism() - o1.getMaxParallelism());
-                    KubernetesNodeTO tempNode = restNodeList.get(0);
+                    KubernetesNodeEntity tempNode = restNodeList.get(0);
                     String tempNodeName = tempNode.getName();
                     int tempParallelism = tempNode.getMaxParallelism();
                     if (tempParallelism > 0) {
@@ -350,11 +353,11 @@ public class ProjectUtil {
     }
 
 
-    public PrefixTO getRedisPrefixByUserIdAndProjectIdAndTaskId(String userId, String projectId, String taskId) {
+    public PrefixEntity getRedisPrefixByUserIdAndProjectIdAndTaskId(String userId, String projectId, String taskId) {
         //3 获取用户类型(管理员账户、管理员子账户、普通账户、普通子账户)(独占、共享)
-        UserPO userPO = userMapper.selectById(userId);
-        String roleCode = userPO.getRoleCode();
-        String useType = userPO.getUseType();
+        UserEntity userEntity = userMapper.selectById(userId);
+        String roleCode = userEntity.getRoleCode();
+        String useType = userEntity.getUseType();
         String clusterId;
         if (DictConstants.ROLE_CODE_SYSADMIN.equals(roleCode) || DictConstants.ROLE_CODE_ADMIN.equals(roleCode)) {  //3-1 管理员账户和管理员子账户直接执行
             clusterId = DictConstants.SYSTEM_CLUSTER_ID;
@@ -364,7 +367,7 @@ public class ProjectUtil {
             if (DictConstants.USER_TYPE_EXCLUSIVE.equals(useType)) {   //3-3 普通子账户,根据自己的独占节点排队
                 clusterId = clusterMapper.selectByUserId(userId).getId();
             } else {    //3-4 共享子账户,根据父账户的共享节点排队
-                String parentUserId = userPO.getCreateUserId();
+                String parentUserId = userEntity.getCreateUserId();
                 clusterId = clusterMapper.selectByUserId(parentUserId).getId();
             }
         } else {
@@ -378,7 +381,7 @@ public class ProjectUtil {
         String taskRetryKey = projectRunningKey + ":task:" + taskId + ":retry";
         String taskMessageKey = projectRunningKey + ":task:" + taskId + ":message";
 
-        return PrefixTO.builder()
+        return PrefixEntity.builder()
                 .clusterPrefix(clusterPrefix)
                 .clusterRunningPrefix(clusterRunningPrefix)
                 .projectRunningKey(projectRunningKey)
@@ -391,7 +394,7 @@ public class ProjectUtil {
     }
 
 
-    public PrefixTO getRedisPrefixByClusterIdAndProjectId(String clusterId, String projectId) {
+    public PrefixEntity getRedisPrefixByClusterIdAndProjectId(String clusterId, String projectId) {
         String clusterPrefix = "cluster:" + clusterId;
         String clusterRunningPrefix = clusterPrefix + ":running";
         String clusterWaitingPrefix = clusterPrefix + ":waiting";
@@ -399,7 +402,7 @@ public class ProjectUtil {
         String projectWaitingKey = clusterWaitingPrefix + ":" + projectId;
         String projectCheckKey = clusterWaitingPrefix + ":" + projectId + ":check";
 
-        return PrefixTO.builder()
+        return PrefixEntity.builder()
                 .clusterPrefix(clusterPrefix)
                 .clusterRunningPrefix(clusterRunningPrefix)
                 .clusterWaitingPrefix(clusterWaitingPrefix)
@@ -422,7 +425,7 @@ public class ProjectUtil {
     }
 
 
-    public PrefixTO getRedisPrefixByProjectIdAndProjectType(String projectId, String projectType) {
+    public PrefixEntity getRedisPrefixByProjectIdAndProjectType(String projectId, String projectType) {
         String userId;
         if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) {
             userId = manualProjectMapper.selectCreateUserById(projectId);
@@ -433,9 +436,9 @@ public class ProjectUtil {
         }
 
         //3 获取用户类型(管理员账户、管理员子账户、普通账户、普通子账户)(独占、共享)
-        UserPO userPO = userMapper.selectById(userId);
-        String roleCode = userPO.getRoleCode();
-        String useType = userPO.getUseType();
+        UserEntity userEntity = userMapper.selectById(userId);
+        String roleCode = userEntity.getRoleCode();
+        String useType = userEntity.getUseType();
         String clusterId;
         if (DictConstants.ROLE_CODE_SYSADMIN.equals(roleCode) || DictConstants.ROLE_CODE_ADMIN.equals(roleCode)) {  //3-1 管理员账户和管理员子账户直接执行
             clusterId = DictConstants.SYSTEM_CLUSTER_ID;
@@ -445,7 +448,7 @@ public class ProjectUtil {
             if (DictConstants.USER_TYPE_EXCLUSIVE.equals(useType)) {   //3-3 普通子账户,根据自己的独占节点排队
                 clusterId = clusterMapper.selectByUserId(userId).getId();
             } else {    //3-4 共享子账户,根据父账户的共享节点排队
-                String parentUserId = userPO.getCreateUserId();
+                String parentUserId = userEntity.getCreateUserId();
                 clusterId = clusterMapper.selectByUserId(parentUserId).getId();
             }
         } else {
@@ -458,7 +461,7 @@ public class ProjectUtil {
         String projectWaitingKey = clusterWaitingPrefix + ":" + projectId;
         String projectCheckKey = projectRunningKey + ":check";
 
-        return PrefixTO.builder()
+        return PrefixEntity.builder()
                 .clusterPrefix(clusterPrefix)
                 .clusterRunningPrefix(clusterRunningPrefix)
                 .clusterWaitingPrefix(clusterWaitingPrefix)
@@ -505,12 +508,31 @@ public class ProjectUtil {
     }
 
     public void resetNodeParallelism() {
-        List<KubernetesNodeTO> initialNodeList = kubernetesConfiguration.getNodeList();
+        List<KubernetesNodeEntity> initialNodeList = kubernetesConfiguration.getNodeList();
         List<String> podNameList = KubernetesUtil.getPod(apiClient, kubernetesConfiguration.getNamespace());
         if (CollectionUtil.isEmpty(podNameList)) {
-            for (KubernetesNodeTO kubernetesNodeTO : initialNodeList) {
-                stringRedisTemplate.opsForValue().set("node:" + kubernetesNodeTO.getName() + ":parallelism", kubernetesNodeTO.getMaxParallelism() + "");
+            for (KubernetesNodeEntity kubernetesNodeEntity : initialNodeList) {
+                stringRedisTemplate.opsForValue().set("node:" + kubernetesNodeEntity.getName() + ":parallelism", kubernetesNodeEntity.getMaxParallelism() + "");
             }
         }
     }
+
+    /**
+     * 判断项目完成度
+     */
+    @Synchronized
+    public boolean complete(PrefixEntity redisPrefix, String projectId) {
+        boolean result = false;
+        ProjectMessageDTO projectMessageDTO = JsonUtil.jsonToBean(customRedisClient.get(redisPrefix.getProjectRunningKey()), ProjectMessageDTO.class);
+        int taskTotal = projectMessageDTO.getTaskTotal();
+        int taskCompleted = projectMessageDTO.getTaskCompleted();
+        log.info("complete() 项目 " + projectId + " 完成进度为:" + (taskCompleted + 1) + "/" + taskTotal);
+        if (taskCompleted + 1 == taskTotal) {
+            result = true;
+        } else {    // 项目没有完成
+            projectMessageDTO.setTaskCompleted(taskCompleted + 1);  // 增加已完成任务数
+            stringRedisTemplate.opsForValue().set(redisPrefix.getProjectRunningKey(), JsonUtil.beanToJson(projectMessageDTO));
+        }
+        return result;
+    }
 }

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/util/RedisUtil.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/RedisUtil.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.common.util;
+package com.css.simulation.resource.scheduler.util;
 
 import api.common.util.CollectionUtil;
 import lombok.extern.slf4j.Slf4j;

+ 0 - 10
simulation-resource-scheduler/src/main/resources/bootstrap-aliyun.yaml

@@ -1,10 +0,0 @@
-spring:
-  cloud:
-    nacos:
-      discovery:
-        server-addr: 172.17.0.185:8848
-        namespace: 3698bfc2-a612-487a-b2a2-aaad16cd9d9d
-      config:
-        server-addr: 172.17.0.185:8848
-        namespace: 3698bfc2-a612-487a-b2a2-aaad16cd9d9d
-        file-extension: yaml

+ 0 - 10
simulation-resource-server/src/main/resources/bootstrap-aliyun.yaml

@@ -1,10 +0,0 @@
-spring:
-  cloud:
-    nacos:
-      discovery:
-        server-addr: 172.17.0.185:8848
-        namespace: 3698bfc2-a612-487a-b2a2-aaad16cd9d9d
-      config:
-        server-addr: 172.17.0.185:8848
-        namespace: 3698bfc2-a612-487a-b2a2-aaad16cd9d9d
-        file-extension: yaml

+ 0 - 10
simulation-resource-server/src/main/resources/bootstrap-windowstest.yaml

@@ -1,10 +0,0 @@
-spring:
-  cloud:
-    nacos:
-      discovery:
-        server-addr: 10.15.12.70:8848
-        namespace: 3698bfc2-a612-487a-b2a2-aaad16cd9d9d
-      config:
-        server-addr: 10.15.12.70:8848
-        namespace: 3698bfc2-a612-487a-b2a2-aaad16cd9d9d
-        file-extension: yaml

+ 0 - 2
simulation-resource-server/src/main/resources/simulation.sql

@@ -1,2 +0,0 @@
-alter table simulation.model_vehicle
-    add parameter_type varchar(1) null comment '参数类型 1 vtd 2 carsim';

+ 1 - 1
simulation-resource-video/src/main/java/com/css/simulation/resource/video/common/configuration/minio/MinioConfiguration.java → simulation-resource-video/src/main/java/com/css/simulation/resource/video/configuration/minio/MinioConfiguration.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.video.common.configuration.minio;
+package com.css.simulation.resource.video.configuration.minio;
 
 import io.minio.MinioClient;
 import lombok.Data;

+ 1 - 1
simulation-resource-video/src/main/java/com/css/simulation/resource/video/common/configuration/redis/CustomRedisClient.java → simulation-resource-video/src/main/java/com/css/simulation/resource/video/configuration/redis/CustomRedisClient.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.video.common.configuration.redis;
+package com.css.simulation.resource.video.configuration.redis;
 
 import api.common.util.CollectionUtil;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/common/configuration/redis/RedisTemplateConfiguration.java → simulation-resource-video/src/main/java/com/css/simulation/resource/video/configuration/redis/RedisTemplateConfiguration.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.common.configuration.redis;
+package com.css.simulation.resource.video.configuration.redis;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.PropertyAccessor;

+ 8 - 10
simulation-resource-video/src/main/java/com/css/simulation/resource/video/controller/VideoController.java

@@ -3,7 +3,8 @@ package com.css.simulation.resource.video.controller;
 import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.po.scene.VehicleTypePO;
 import api.common.util.LinuxUtil;
-import com.css.simulation.resource.video.common.configuration.redis.CustomRedisClient;
+import api.common.util.StringUtil;
+import com.css.simulation.resource.video.configuration.redis.CustomRedisClient;
 import com.css.simulation.resource.video.service.VideoService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
@@ -41,14 +42,11 @@ public class VideoController {
             @RequestParam("taskId") String taskId
     ) {
         log.info("收到项目 " + projectId + " 的任务 " + taskId + " 生成 cpu 视频的请求。");
-        final Boolean success = customRedisClient.getDistributedLock("project:" + projectId + ":task:" + taskId + ":receiveRequestToGenerateVideo:");   // 分布式锁
-        if (Boolean.TRUE.equals(success)) {
-            return videoService.generateVideo(projectId, projectType, maxSimulationTime, taskId);
-        }
-        {
-            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "重复任务。", null);
-        }
-
+        new Thread(
+                () -> videoService.generateVideo(projectId, projectType, maxSimulationTime, taskId),
+                "generateVideo-" + StringUtil.getRandomEightBitUUID()
+        ).start();
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
     }
 
 
@@ -56,7 +54,7 @@ public class VideoController {
      * 接受 xosc 文件
      */
     @RequestMapping(value = "/test")
-    public void testGenerateVideo() throws IOException {
+    public void testGenerateVideo() {
 //        LinuxUtil.execute("/root/disk1/simulation-cloud/esmini/code-examples-bin/image-capture /root/disk1/simulation-cloud/esmini/resources/xosc/lane_change_crest.xosc /root/disk1/simulation-cloud/esmini/test/screenshot ");
         LinuxUtil.execute(testCommand);
     }

+ 2 - 2
simulation-resource-video/src/main/java/com/css/simulation/resource/video/pojo/po/VehiclePO.java → simulation-resource-video/src/main/java/com/css/simulation/resource/video/entity/VehicleEntity.java

@@ -1,11 +1,11 @@
-package com.css.simulation.resource.video.pojo.po;
+package com.css.simulation.resource.video.entity;
 
 import lombok.Data;
 
 import java.math.BigDecimal;
 
 @Data
-public class VehiclePO {
+public class VehicleEntity {
 
     //主键id
     private String id;

+ 2 - 2
simulation-resource-video/src/main/java/com/css/simulation/resource/video/mapper/VehicleMapper.java

@@ -1,6 +1,6 @@
 package com.css.simulation.resource.video.mapper;
 
-import com.css.simulation.resource.video.pojo.po.VehiclePO;
+import com.css.simulation.resource.video.entity.VehicleEntity;
 import feign.Param;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Result;
@@ -67,5 +67,5 @@ public interface VehicleMapper {
             "       share\n" +
             "from model_vehicle\n" +
             "where  id = #{vehicleId}\n")
-    VehiclePO getVehicleInfo(@Param("vehicleId") String vehicleId);
+    VehicleEntity getVehicleInfo(@Param("vehicleId") String vehicleId);
 }

+ 14 - 19
simulation-resource-video/src/main/java/com/css/simulation/resource/video/service/VideoService.java

@@ -1,16 +1,14 @@
 package com.css.simulation.resource.video.service;
 
-import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.po.scene.VehicleTypePO;
 import api.common.util.FileUtil;
 import api.common.util.LinuxUtil;
 import api.common.util.StringUtil;
+import com.css.simulation.resource.video.entity.VehicleEntity;
 import com.css.simulation.resource.video.mapper.ConfigMapper;
-import com.css.simulation.resource.video.mapper.DictMapper;
 import com.css.simulation.resource.video.mapper.SimulationAutomaticProjectMapper;
 import com.css.simulation.resource.video.mapper.VehicleMapper;
-import com.css.simulation.resource.video.pojo.po.VehiclePO;
-import com.css.simulation.resource.video.common.util.MinioUtil;
+import com.css.simulation.resource.video.util.MinioUtil;
 import io.minio.MinioClient;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
@@ -41,11 +39,9 @@ public class VideoService {
     @Resource
     private ConfigMapper configMapper;
     @Resource
-    SimulationAutomaticProjectMapper simulationAutomaticProjectMapper;
+    private SimulationAutomaticProjectMapper simulationAutomaticProjectMapper;
     @Resource
-    MinioClient minioClient;
-    @Resource
-    DictMapper dictMapper;
+    private MinioClient minioClient;
     //* -------------------------------- Comment --------------------------------
 
     public static final String oldXoscName = "simulation_my0.xosc";
@@ -57,24 +53,24 @@ public class VideoService {
 
     //* -------------------------------- Comment --------------------------------
     @Value("${scheduler.linux-path.temp}")
-    String linuxTempPath;
+    private String linuxTempPath;
     @Value("${scheduler.Xvfb-command}")
-    String XvfbCommand;
+    private String XvfbCommand;
     @Value("${scheduler.esmini-command}")
-    String esminiCommand;
+    private String esminiCommand;
     @Value("${scheduler.python-command}")
-    String pythonCommand;
+    private  String pythonCommand;
     @Value("${scheduler.minio-path.project-result}")
-    String projectResultPathOfMinio;
+    private String projectResultPathOfMinio;
     @Value("${minio.bucket-name}")
-    String bucketName;
+    private  String bucketName;
 
 
     /**
      * 生成视频
      */
     @SneakyThrows
-    public ResponseBodyVO<String> generateVideo(String projectId, String projectType, String maxSimulationTime, String taskId) {
+    public void generateVideo(String projectId, String projectType, String maxSimulationTime, String taskId) {
         String rootDirectoryPathOfMinio = projectResultPathOfMinio + projectId + "/" + taskId + "/";
         String xodrPathOfMinio = rootDirectoryPathOfMinio + taskId + ".xodr";
         String osgbPathOfMinio = rootDirectoryPathOfMinio + taskId + ".osgb";
@@ -97,7 +93,8 @@ public class VideoService {
         String pictureDirectoryPath = rootDirectoryPathOfLinux + "picture";
         FileUtil.createDirectory(pictureDirectoryPath);
         String esminiCommandTemp = esminiCommand + " " + xoscPath + " " + pictureDirectoryPath + "/screenshot " + StringUtil.doubleToString(Double.parseDouble(maxSimulationTime), 2);
-        LinuxUtil.execute2(XvfbCommand, esminiCommandTemp);
+        LinuxUtil.execute(XvfbCommand);
+        LinuxUtil.execute(esminiCommandTemp);
         log.info("删除 esmini 进程。");
         LinuxUtil.kill(esminiCommandTemp);
         int num = 14;
@@ -131,8 +128,6 @@ public class VideoService {
 
         //* -------------------------------- 删除临时文件 --------------------------------
         LinuxUtil.execute(removeAll);
-
-        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
     }
 
     /**
@@ -311,7 +306,7 @@ public class VideoService {
         String vehicleId = configMapper.getVehicleId(vehicle);
 
         log.info("vehicleById() 车辆 Id 为:" + vehicleId);
-        VehiclePO vehicleInfo = vehicleMapper.getVehicleInfo(vehicleId);
+        VehicleEntity vehicleInfo = vehicleMapper.getVehicleInfo(vehicleId);
         log.info("vehicleById() 车辆信息为:" + vehicleInfo);
 
         //自车模型

+ 1 - 1
simulation-resource-video/src/main/java/com/css/simulation/resource/video/common/util/MinioUtil.java → simulation-resource-video/src/main/java/com/css/simulation/resource/video/util/MinioUtil.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.video.common.util;
+package com.css.simulation.resource.video.util;
 
 import io.minio.*;
 import io.minio.errors.*;