소스 검색

深光slam增加点位统计 增加统计原始数据大小

dsx 1 년 전
부모
커밋
fd907985f4

+ 40 - 4
src/main/java/com/fdkankan/contro/mq/service/impl/BuildSceneServiceImpl.java

@@ -31,6 +31,7 @@ import com.fdkankan.model.constants.UploadFilePath;
 import com.fdkankan.model.enums.ModelTypeEnums;
 import com.fdkankan.model.utils.CreateHouseJsonUtil;
 import com.fdkankan.model.utils.CreateObjUtil;
+import com.fdkankan.model.utils.SceneUtil;
 import com.fdkankan.push.config.PushMessageConfig;
 import com.fdkankan.push.utils.PushMsgUtil;
 import com.fdkankan.rabbitmq.bean.BuildSceneCallMessage;
@@ -142,7 +143,13 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
     @Autowired
     private ISceneColdStorageService sceneColdStorageService;
     @Autowired
-    private IOrigFileUploadBatchService
+    private IOrigFileUploadBatchService origFileUploadBatchService;
+    @Autowired
+    private IOrigFileUploadService origFileUploadService;
+
+    public static void main(String[] args) {
+        HttpUtil.downloadFile("https://4dkk.4dage.com/scene_view_data/KJ-00ZGf9jK3PT/data/scene.json", new File("D:\\test5\\aaa\\scene.json"));
+    }
 
     @Override
     public void buildScenePre(BuildSceneCallMessage message) throws Exception{
@@ -151,9 +158,8 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
         String batchId = (String) message.getExt().get("batchId");
         try {
 
-            if(StrUtil.isNotEmpty(batchId)){
-
-            }
+            //如果场景原始资源上传批次id不为空,则需要下载批次文件上传到oss目录
+            this.downloadOrigFile(batchId, message.getPath());
 
             //开始计算前发送mq消息,监听project.json文件的变化以更新进度条
             mqProducer.sendByWorkQueue(modelingProgressNotice, message);
@@ -232,6 +238,36 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
         }
     }
 
+    private void downloadOrigFile(String batchId, String dataSource){
+        if(StrUtil.isEmpty(batchId)){
+            return;
+        }
+        List<OrigFileUpload> fileList = origFileUploadService.getByBatchId(batchId);
+        if(CollUtil.isEmpty(fileList)){
+            return;
+        }
+        String homePath = "/oss/4dkankan/" + SceneUtil.getHomePath(dataSource);
+        for (OrigFileUpload origFileUpload : fileList) {
+            int times = 0;
+            String filePath = homePath.concat(origFileUpload.getFileName());
+            do{
+                try {
+                    ++times;
+                    HttpUtil.downloadFile(origFileUpload.getFileUrl(), new File(filePath), 10 * 60 * 1000);
+                    if(FileUtil.exist(filePath)){
+                        break;
+                    }
+                }catch (Exception e){
+                    log.info("原始文件第{}次下载失败,fileUrl:{}, filePath:{}", origFileUpload.getFileUrl(), filePath);
+                }
+            }while (times < 4);
+
+            if(!FileUtil.exist(filePath)){
+                throw new RuntimeException("原始文件下载失败,fileUrl:" + origFileUpload.getFileUrl() + ", filePath:" + filePath);
+            }
+        }
+    }
+
     private String getOssPath(String path) {
         String ossPath = ConstantFilePath.OSS_PREFIX
                 + path.replace(ConstantFilePath.BUILD_MODEL_PATH, "")

+ 3 - 1
src/main/java/com/fdkankan/contro/service/IOrigFileUploadService.java

@@ -4,6 +4,8 @@ import com.fdkankan.contro.entity.OrigFileUpload;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.contro.entity.OrigFileUploadBatch;
 
+import java.util.List;
+
 /**
  * <p>
  * 场景原始文件上传明细 服务类
@@ -14,7 +16,7 @@ import com.fdkankan.contro.entity.OrigFileUploadBatch;
  */
 public interface IOrigFileUploadService extends IService<OrigFileUpload> {
 
-//    OrigFileUploadBatch
+    List<OrigFileUpload> getByBatchId(String batchId);
 
 
 }

+ 7 - 0
src/main/java/com/fdkankan/contro/service/impl/OrigFileUploadServiceImpl.java

@@ -1,11 +1,14 @@
 package com.fdkankan.contro.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.contro.entity.OrigFileUpload;
 import com.fdkankan.contro.mapper.IOrigFileUploadMapper;
 import com.fdkankan.contro.service.IOrigFileUploadService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 场景原始文件上传明细 服务实现类
@@ -17,4 +20,8 @@ import org.springframework.stereotype.Service;
 @Service
 public class OrigFileUploadServiceImpl extends ServiceImpl<IOrigFileUploadMapper, OrigFileUpload> implements IOrigFileUploadService {
 
+    @Override
+    public List<OrigFileUpload> getByBatchId(String batchId) {
+        return this.list(new LambdaQueryWrapper<OrigFileUpload>().eq(OrigFileUpload::getBatchId, batchId));
+    }
 }

+ 1 - 1
src/main/java/com/fdkankan/contro/service/impl/SceneFileBuildServiceImpl.java

@@ -2308,7 +2308,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             cameraType = 10L;
         }
 
-        String fileId = getFileIdByFolderName(uuid);
+//        String fileId = getFileIdByFolderName(uuid);
         String subFolder = snCode.concat(File.separator).concat(fileId).concat(File.separator).concat(uuid);
         String dataSource = ConstantFilePath.BUILD_MODEL_PATH.concat(subFolder);
         log.info("dataSource 为:{}", dataSource);