Explorar o código

激光系统下载e57

lyhzzz hai 1 ano
pai
achega
faff21e70a

+ 28 - 0
src/main/java/com/fdkankan/manage/controller/SceneController.java

@@ -123,6 +123,34 @@ public class SceneController {
         return ResultData.ok(downService.downloadProcess(num,isObj));
     }
 
+
+    /**
+     * 检查下载
+     * num      场景码
+     */
+    @GetMapping("/checkDownLoadE57")
+    public ResultData checkDownLoadE57(@RequestParam(required = false) String num){
+        return ResultData.ok(downService.checkDownLoadE57(num));
+    }
+
+    /**
+     * 下载场景
+     * num      场景码
+     */
+    @GetMapping("/downSceneE57")
+    public ResultData downSceneE57(@RequestParam(required = false) String num){
+        return ResultData.ok(downService.downE57(num));
+    }
+
+    /**
+     * 下载场景进度条
+     * num      场景码
+     */
+    @GetMapping("/downloadProcessE57")
+    public ResultData downloadProcessE57(@RequestParam(required = false) String num){
+        return ResultData.ok(downService.downloadProcessE57(num));
+    }
+
     /**
      * 场景重算
      * num      场景码

+ 6 - 0
src/main/java/com/fdkankan/manage/httpClient/client/LaserClient.java

@@ -77,4 +77,10 @@ public interface LaserClient {
      */
     @Post("/laser/4dage/scene/camera/toBind")
     Result toBind(@JSONBody SsBindParam param) ;
+
+    @Post("/laser/4dage/downE57Status")
+    Result downE57Status(@JSONBody SSDownSceneParam param);
+
+    @Post("/laser/4dage/downE57")
+    Result downE57(@JSONBody SSDownSceneParam param);
 }

+ 39 - 0
src/main/java/com/fdkankan/manage/httpClient/service/LaserService.java

@@ -393,6 +393,45 @@ public class LaserService {
         }
         return null ;
     }
+
+    public SSDownSceneVo downE57Status(String num) {
+        try {
+            SSDownSceneVo vo ;
+            SSDownSceneParam param = new SSDownSceneParam();
+            param.setSceneCode(num);
+            Result responseEntity = laserClient.downE57Status(param);
+            if( responseEntity.getCode() != HttpStatus.OK.value()){
+                log.error("downOfflineSceneStatus-根据场景码获取激光转台下载状态失败:{}",responseEntity);
+                return null;
+            }
+            vo = JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getData()), SSDownSceneVo.class);
+            return vo;
+
+        }catch (Exception e){
+            log.error("downOfflineSceneStatus-根据场景码获取激光转台下载状态失败!",e);
+        }
+        return null ;
+    }
+
+    public SSDownSceneVo downE57(String num) {
+        try {
+            SSDownSceneVo vo ;
+            SSDownSceneParam param = new SSDownSceneParam();
+            param.setSceneCode(num);
+            Result responseEntity = laserClient.downE57(param);
+            if( responseEntity.getCode() != HttpStatus.OK.value()){
+                log.error("downOfflineScene-根据场景码获取激光转台下载失败:{}",responseEntity);
+                return null;
+            }
+            vo = JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getData()), SSDownSceneVo.class);
+            return vo ;
+        }catch (Exception e){
+            log.error("downOfflineScene-根据场景码获取激光转台下载状态失败!",e);
+        }
+        return null ;
+    }
+
+
     public void toBind(String snCode) {
         try {
             SsBindParam param = new SsBindParam();

+ 6 - 0
src/main/java/com/fdkankan/manage/service/IDownService.java

@@ -10,4 +10,10 @@ public interface IDownService {
     DownVo down(String sceneNum,Integer isObj);
 
     DownloadProcessVo downloadProcess(String num,Integer isObj);
+
+    DownVo checkDownLoadE57(String num);
+
+    DownVo downE57(String num);
+
+    DownloadProcessVo downloadProcessE57(String num);
 }

+ 64 - 0
src/main/java/com/fdkankan/manage/service/impl/DownService.java

@@ -294,4 +294,68 @@ public class DownService implements IDownService {
         return downVo;
     }
 
+
+    @Override
+    public DownVo checkDownLoadE57(String num) {
+        DownVo downVo = new DownVo();
+        SSDownSceneVo vo = laserService.downE57Status(num);
+        if(vo == null){
+            throw new BusinessException(ResultCode.SS_SCENE_DOWN_ERROR);
+        }
+        downVo.setDownloadStatus(0);
+        if(vo.getStatus() == 1){
+            downVo.setDownloadStatus(3);
+            downVo.setDownloadUrl(vo.getUrl());
+        }
+        if(vo.getStatus() == 2){
+            downVo.setDownloadStatus(2);
+        }
+        if(vo.getStatus() == 3){
+            downVo.setDownloadStatus(1);
+        }
+        return downVo;
+    }
+
+    @Override
+    public DownVo downE57(String num) {
+        DownVo downVo = new DownVo();
+
+        //status :0:正在生成 1,初次生成  2,已经生成直接下载 3,重新生成
+        SSDownSceneVo vo = laserService.downE57(num);
+        if(vo == null){
+            throw new BusinessException(ResultCode.SS_SCENE_DOWN_ERROR);
+        }
+        downVo.setDownloadStatus(1);
+        return downVo;
+    }
+
+    public static HashMap<String,Integer> ssNumProcessNumE57Map = new HashMap<>();
+
+
+    @Override
+    public DownloadProcessVo downloadProcessE57(String num) {
+        DownloadProcessVo downVo = new DownloadProcessVo();
+        SSDownSceneVo vo = laserService.downE57Status(num);
+        if(vo == null){
+            throw new BusinessException(ResultCode.SS_SCENE_DOWN_ERROR);
+        }
+        downVo.setStatus(1003);
+        if(vo.getStatus() == 0 || vo.getStatus() == 2 || vo.getStatus() == 3){    //下载中
+            ssNumProcessNumE57Map.merge(num, 1, Integer::sum);
+            Integer percent = ssNumProcessNumE57Map.get(num);
+            percent = percent /2;
+            if(percent >50){
+                percent = 50;
+            }
+            downVo.setStatus(1001);
+            downVo.setPercent(percent);
+        }
+        if(vo.getStatus() == 1){    //下载完成
+            ssNumProcessNumE57Map.remove(num);
+            downVo.setPercent(100);
+            downVo.setUrl(vo.getUrl());
+            downVo.setStatus(1002);
+        }
+        return downVo;
+    }
 }