Selaa lähdekoodia

目标物文件下载

root 2 vuotta sitten
vanhempi
commit
1ecd59c55c

+ 3 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/manager/TaskManager.java

@@ -130,7 +130,9 @@ public class TaskManager {
                 } else if ("PendingAnalysis".equals(state)) {
                     taskMapper.updateSuccessStateWithStopTime(taskId, state, TimeUtil.getNowForMysql());
                     // 创建视频和生成
-                    //1 根据 task 对应的场景的 xodr 文件
+                    //1 获取两个 csv 的目录,和 xodr 和 osgb 三个路径
+
+                    // 根据 task 对应的场景的 xodr 文件
                     String projectRunningKey = redisPrefix.getProjectRunningKey();
                     //2 输入到工具类中获取到图片
                     //3 将图片生成视频

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

@@ -13,6 +13,7 @@ import com.css.simulation.resource.scheduler.util.*;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import io.minio.MinioClient;
+import io.minio.errors.*;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.http.client.config.RequestConfig;
@@ -26,7 +27,10 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.io.File;
+import java.io.IOException;
 import java.io.InputStream;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -214,6 +218,20 @@ public class ProjectService {
                 taskPO.setModifyTime(TimeUtil.getNowForMysql());
                 taskPO.setIsDeleted("0");
                 taskMapper.insert(taskPO);
+                // 下载 xodr 和 osgb 供仿真后生成 xosc
+                String scenarioOdr = scenePO.getScenarioOdr();
+                String scenarioOsgb = scenePO.getScenarioOsgb();
+                String[] splitXodr = scenarioOdr.split("/");
+                String[] splitOsgb = scenarioOsgb.split("/");
+                try {
+                    MinioUtil.downloadToFile(minioClient, bucketName, scenarioOdr,linuxTempPath +scenarioOdr);
+                    MinioUtil.downloadToFile(minioClient, bucketName, scenarioOsgb,linuxTempPath +scenarioOsgb);
+                } catch (IOException | ServerException | InsufficientDataException | ErrorResponseException |
+                         NoSuchAlgorithmException | InvalidKeyException | InvalidResponseException |
+                         XmlParserException | InternalException e) {
+                    throw new RuntimeException(e);
+                }
+
 
                 // 组装 task 消息
                 TaskTO taskTO = TaskTO.builder()
@@ -225,8 +243,8 @@ public class ProjectService {
                                 .build())
                         .scenario(ScenarioTO.builder()
                                 .scenario_osc(scenePO.getScenarioOsc())
-                                .scenario_odr(scenePO.getScenarioOdr())
-                                .scenario_osgb(scenePO.getScenarioOsgb())
+                                .scenario_odr(scenarioOdr)
+                                .scenario_osgb(scenarioOsgb)
                                 .build())
                         .vehicle(VehicleTO.builder()
                                 .model(ModelTO.builder()

+ 2 - 4
simulation-resource-server/src/main/java/com/css/simulation/resource/project/impl/SimulationProjectServiceImpl.java

@@ -3491,7 +3491,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
             response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode("运行任务包.zip", "UTF-8"));
             zos = new ZipOutputStream(response.getOutputStream());
             int i = 1;
-            ArrayList<String> fileList = CollectionUtil.createArrayList("Ego.csv", "evaluation.csv");
+//            ArrayList<String> fileList = CollectionUtil.createArrayList("Ego.csv", "evaluation.csv");
             for (ManualProjectTaskVo v : manualProjectTaskVos) {
                 String runResultFilePath = v.getRunResultFilePath();
                 if (!isEmpty(runResultFilePath)) {
@@ -3502,7 +3502,6 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
 
                     //任务包路径
                     String taskPagePath = rootPath + File.separator + sceneName + "(" + i + ")";
-//                    FileUtil.createDirectory(taskPagePath);
 
                     //视频文件路径
                     MinioParameter minioParameter1 = new MinioParameter();
@@ -3534,7 +3533,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
                                 zos.write(buffer, 0, len);
                             }
                             in.close();
-                        } else if (fileList.contains(fileName)) {
+                        } else if ("Ego.csv".equals(fileName) || "evaluation.csv".equals(fileName)) {
 
                             MinioParameter minioParameter = new MinioParameter();
                             if (s.contains("/")) {
@@ -3548,7 +3547,6 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
 
                             //任务文件路径
                             String taskFilePath = taskPagePath + File.separator + fileName;
-//                          FileUtil.writeInputStreamToLocalFile(inputStream,taskFilePath);
 
                             ZipEntry entry = new ZipEntry(taskFilePath);
                             zos.putNextEntry(entry);