Browse Source

项目管理

lyhzzz 1 year ago
parent
commit
242c53a49e

+ 2 - 0
src/main/java/com/fdkankan/manage_jp/common/ResultCode.java

@@ -47,6 +47,8 @@ public enum ResultCode  {
     SCENE_MODELING(5028, "正在计算中,请耐心等待"),
     SCENE_MODELING(5028, "正在计算中,请耐心等待"),
     PROJECT_NOT_EXITS(5029, "项目不存在"),
     PROJECT_NOT_EXITS(5029, "项目不存在"),
 
 
+    SCENE_NOT_EXIST_E57(5030, "场景不存在e57文件"),
+
 
 
     ;
     ;
 
 

+ 28 - 0
src/main/java/com/fdkankan/manage_jp/controller/UserSceneController.java

@@ -73,6 +73,34 @@ public class UserSceneController extends BaseController{
         return Result.success(downService.downloadProcess(num,isObj,getLang()));
         return Result.success(downService.downloadProcess(num,isObj,getLang()));
     }
     }
 
 
+
+    /**
+     * 检查下载
+     * num      场景码
+     */
+    @GetMapping("/checkDownLoadE57")
+    public Result checkDownLoadE57(@RequestParam(required = false) String num){
+        return Result.success(downService.checkDownLoadE57(num));
+    }
+
+    /**
+     * 下载场景
+     * num      场景码
+     */
+    @GetMapping("/downSceneE57")
+    public Result downSceneE57(@RequestParam(required = false) String num){
+        return Result.success(downService.downE57(num));
+    }
+
+    /**
+     * 下载场景进度条
+     * num      场景码
+     */
+    @GetMapping("/downloadProcessE57")
+    public Result downloadProcessE57(@RequestParam(required = false) String num){
+        return Result.success(downService.downloadProcessE57(num));
+    }
+
     @PostMapping("/delete")
     @PostMapping("/delete")
     public Result deleteScene(@RequestBody SceneDeleteParam param){
     public Result deleteScene(@RequestBody SceneDeleteParam param){
         if(StringUtils.isEmpty(param.getSceneNum())){
         if(StringUtils.isEmpty(param.getSceneNum())){

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

@@ -92,4 +92,10 @@ public interface LaserClient {
 
 
     @Get("/laser/controlPoint/${0}/detail/${1}")
     @Get("/laser/controlPoint/${0}/detail/${1}")
     Result getDataSetDetail(String num,String id);
     Result getDataSetDetail(String num,String id);
+
+    @Post("/laser/4dage/downE57Status")
+    Result downE57Status(@JSONBody SSDownSceneParam param);
+
+    @Post("/laser/4dage/downE57")
+    Result downE57(@JSONBody SSDownSceneParam param);
 }
 }

+ 51 - 0
src/main/java/com/fdkankan/manage_jp/httpClient/service/LaserService.java

@@ -2,6 +2,8 @@ package com.fdkankan.manage_jp.httpClient.service;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
+import com.fdkankan.manage_jp.common.ResultCode;
+import com.fdkankan.manage_jp.exception.BusinessException;
 import com.fdkankan.manage_jp.httpClient.param.LaserSceneMoveParam;
 import com.fdkankan.manage_jp.httpClient.param.LaserSceneMoveParam;
 import com.fdkankan.manage_jp.service.*;
 import com.fdkankan.manage_jp.service.*;
 import com.fdkankan.manage_jp.vo.response.SceneGpsVo;
 import com.fdkankan.manage_jp.vo.response.SceneGpsVo;
@@ -345,4 +347,53 @@ public class LaserService {
         }
         }
         return null;
         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("downE57Status-根据场景码获取激光转台下载状态失败:{}",responseEntity);
+                return null;
+            }
+            if(responseEntity.getCode() == 407){
+                throw new BusinessException(ResultCode.SCENE_NOT_EXIST_E57);
+            }
+            vo = JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getData()), SSDownSceneVo.class);
+            return vo;
+
+        }catch (BusinessException e){
+            throw new BusinessException(ResultCode.SCENE_NOT_EXIST_E57);
+        }catch (Exception e){
+            log.error("downE57Status-根据场景码获取激光转台下载状态失败!",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("downE57-根据场景码获取激光转台下载失败:{}",responseEntity);
+                return null;
+            }
+            if(responseEntity.getCode() == 407){
+                throw new BusinessException(ResultCode.SCENE_NOT_EXIST_E57);
+            }
+            vo = JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getData()), SSDownSceneVo.class);
+            return vo ;
+        }catch (BusinessException e){
+            throw new BusinessException(ResultCode.SCENE_NOT_EXIST_E57);
+        }catch (Exception e){
+            log.error("downE57-根据场景码获取激光转台下载状态失败!",e);
+        }
+        return null ;
+    }
+
 }
 }

+ 7 - 0
src/main/java/com/fdkankan/manage_jp/service/IDownService.java

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

+ 65 - 0
src/main/java/com/fdkankan/manage_jp/service/impl/DownService.java

@@ -292,4 +292,69 @@ public class DownService implements IDownService {
         return downVo;
         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() == 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 || vo.getStatus() == 2){    //下载完成
+            ssNumProcessNumE57Map.remove(num);
+            downVo.setPercent(100);
+            downVo.setUrl(vo.getUrl());
+            downVo.setStatus(1002);
+        }
+        return downVo;
+    }
+
 }
 }