lyhzzz пре 6 месеци
родитељ
комит
4815234bdb

+ 19 - 5
src/main/java/com/fdkankan/fusion/down/CaseDownService.java

@@ -30,6 +30,7 @@ import org.springframework.stereotype.Service;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.nio.charset.StandardCharsets;
+import java.util.HashSet;
 import java.util.List;
 
 @Service
@@ -62,6 +63,8 @@ public class CaseDownService {
     public static String caseImg =      "/caseImg/getFfmpegImage?caseId=";
 
     public static String laserData = "/laser/dataset/%s/getDataSet";
+    public static String laserDataQuery = "/laser/filter/%s/query?datasetId=%s";
+
 
     @Autowired
     ICaseService caseService;
@@ -127,7 +130,7 @@ public class CaseDownService {
             if( redisUtil.hasKey(redisKey)){
                 String res = redisUtil.get(redisKey);
                 DownloadProcessVo downloadProcessVo = JSONObject.parseObject(res, DownloadProcessVo.class);
-                if(downloadProcessVo.getPercent()== null || downloadProcessVo.getPercent() != 100){
+                if(downloadProcessVo.getStatus() != 1003 && (downloadProcessVo.getPercent()== null || downloadProcessVo.getPercent() != 100)){
                     return;
                 }
             }
@@ -221,6 +224,7 @@ public class CaseDownService {
             }
             if(sceneData.getType() == 2 || sceneData.getType() == 5){
                 FdkkResponse sceneInfo = laserService.getSceneInfo(sceneData.getNum());
+                HashSet<String> dataSetIds = new HashSet<>();
                 if(sceneInfo != null){
                     JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(sceneInfo.getData()));
                     JSONArray newJsonArray = new JSONArray();
@@ -231,9 +235,17 @@ public class CaseDownService {
                         sceneInfoObj.put("oldWebBin",oldPath);
                         sceneInfoObj.put("webBin",newPath + oldPath);
                         newJsonArray.add(sceneInfoObj);
+                        dataSetIds.add( sceneInfoObj.getString("id"));
                     }
                     sceneInfo.setData(newJsonArray);
                     jsonObject.put(String.format(laserData,sceneData.getNum()),sceneInfo);
+                    if(!dataSetIds.isEmpty()){
+                        for (String dataSetId : dataSetIds) {
+                            FdkkResponse sceneInfo2 = laserService.getSceneInfoQuery(sceneData.getNum(),dataSetId);
+                            jsonObject.put(String.format(laserDataQuery,sceneData.getNum(),dataSetId),sceneInfo2);
+                        }
+                    }
+
                 }
 
             }
@@ -266,8 +278,7 @@ public class CaseDownService {
 
         List<CaseFiles> caseFilesList = caseFilesService.allList(caseId, null);
         for (CaseFiles files : caseFilesList) {
-            String fileUrl = String.format(FilePath.File_OSS_PATH,environment,files.getFilesId());
-            downResource(caseId,queryPath +fileUrl);
+            downResource(caseId,files.getFilesUrl());
         }
         jsonObject.put(basePath+caseFiles+caseId, ResultData.ok(caseFilesList));
 
@@ -418,9 +429,12 @@ public class CaseDownService {
         JSONArray jsonArray = JSONArray.parseArray(modelGlbUrl);
         for (Object object : jsonArray) {
             String res = (String) object;
+            log.info("下载模型:{}",res);
             res = res.replace(queryPath, "");
-            File file = new File(res);
-            ShellUtil.yunDownload(file.getParentFile().getPath(), path +queryPath + file.getParentFile().getPath());
+            if(res.contains(".json") || res.contains(".shp")){
+                res = new File(res).getParentFile().getPath();
+            }
+            ShellUtil.yunDownload(res, path +queryPath + res);
         }
     }
     public void downResources(Integer caseId,String urls) {

+ 9 - 0
src/main/java/com/fdkankan/fusion/httpClient/LaserService.java

@@ -74,4 +74,13 @@ public class LaserService {
         }
         return  null;
     }
+    public FdkkResponse getSceneInfoQuery(String num,String id) {
+        try {
+           return laserClient.getSceneInfoQuery(num,id);
+
+        }catch (Exception e){
+            log.info("获取激光场景信息失败getSceneInfo-error:{}",num,e);
+        }
+        return  null;
+    }
 }

+ 4 - 0
src/main/java/com/fdkankan/fusion/httpClient/client/LaserClient.java

@@ -50,4 +50,8 @@ public interface LaserClient {
 
     @Get("/laser/dataset/{num}/getDataSet")
     FdkkResponse getSceneInfo(@Var("num")String num);
+
+    @Get("/laser/filter/{num}/query")
+    FdkkResponse getSceneInfoQuery(@Var("num")String num,@Query("datasetId") String datasetId);
+
 }