Jelajahi Sumber

迁移接口

lyhzzz 1 tahun lalu
induk
melakukan
6fdbd370af

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

@@ -41,6 +41,9 @@ public enum ResultCode  {
     GENERATE_OBJ_ERROR(5023, "当前场景不支持 生成OBJ"),
     GENERATE_OBJ_ERROR(5023, "当前场景不支持 生成OBJ"),
 
 
     SCENE_CONTRACTOR_ERROR3(5024, "场景协作失败,请填写公司管理员账号"),
     SCENE_CONTRACTOR_ERROR3(5024, "场景协作失败,请填写公司管理员账号"),
+    GENERATE_OBJ_EXITS(5025, "场景已生成obj"),
+    CAMERA_NOT_MOVE(5026, "场景已在改相机,无需迁移"),
+    CAMERA_TYPE_NOT_ERROR(5027, "相机类型不同,不能迁移"),
 
 
 
 
     ;
     ;

+ 14 - 0
src/main/java/com/fdkankan/manage_jp/controller/SceneProController.java

@@ -140,5 +140,19 @@ public class SceneProController extends BaseController{
         sceneProService.generateObjFile(requestScene.getNum());
         sceneProService.generateObjFile(requestScene.getNum());
         return Result.success();
         return Result.success();
     }
     }
+
+    /**
+     * 场景迁移
+     * num     迁移场景码
+     * snCode  迁移至相机snCode
+     */
+    @PostMapping("/move")
+    public Result move(@RequestBody SceneParam param){
+        if(StringUtils.isEmpty(param.getNum()) || StringUtils.isEmpty(param.getSnCode())){
+            throw new BusinessException(ResultCode.PARAM_ERROR);
+        }
+        sceneProService.move(param);
+        return Result.success();
+    }
 }
 }
 
 

+ 2 - 0
src/main/java/com/fdkankan/manage_jp/service/IScenePlusService.java

@@ -29,4 +29,6 @@ public interface IScenePlusService extends IService<ScenePlus> {
     void updateTitleByNum(String sceneNum, String sceneNewTitle);
     void updateTitleByNum(String sceneNum, String sceneNewTitle);
 
 
     HashMap<String, ScenePlus> getByNumList(List<String> numList);
     HashMap<String, ScenePlus> getByNumList(List<String> numList);
+
+    void move(String num, String version, CameraDetail cameraDetail, User user);
 }
 }

+ 2 - 0
src/main/java/com/fdkankan/manage_jp/service/ISceneProService.java

@@ -39,4 +39,6 @@ public interface ISceneProService extends IService<ScenePro> {
     HashMap<String, ScenePro> getByNumList(List<String> numList);
     HashMap<String, ScenePro> getByNumList(List<String> numList);
 
 
     void generateObjFile(String num);
     void generateObjFile(String num);
+
+    void move(SceneParam param);
 }
 }

+ 27 - 0
src/main/java/com/fdkankan/manage_jp/service/impl/ScenePlusServiceImpl.java

@@ -132,6 +132,33 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
     }
     }
 
 
     @Override
     @Override
+    public void move(String num, String version, CameraDetail cameraDetail, User user) {
+        if(version.equals("v3")){
+            LambdaUpdateWrapper<ScenePro> wrapper2 = new LambdaUpdateWrapper<>();
+            wrapper2.eq(ScenePro::getNum,num);
+            if(cameraDetail != null){
+                wrapper2.set(ScenePro::getCameraId,cameraDetail.getCameraId());
+            }
+            if(user != null){
+                wrapper2.set(ScenePro::getUserId,user.getId());
+            }
+            sceneProService.update(wrapper2);
+        }else if(version.equals("v4")){
+            LambdaUpdateWrapper<ScenePlus> wrapper = new LambdaUpdateWrapper<>();
+            wrapper.eq(ScenePlus::getNum,num);
+            if(cameraDetail != null){
+                wrapper.set(ScenePlus::getCameraId,cameraDetail.getCameraId());
+            }
+            if(user != null){
+                wrapper.set(ScenePlus::getUserId,user.getId());
+            }
+            this.update(wrapper);
+        }
+
+
+    }
+
+    @Override
     public void updatePayStatus(String num,String version,Integer sceneSource,Integer payStatus,CameraDetail cameraDetail,User user) {
     public void updatePayStatus(String num,String version,Integer sceneSource,Integer payStatus,CameraDetail cameraDetail,User user) {
         if(version.equals("v3")){
         if(version.equals("v3")){
             LambdaUpdateWrapper<ScenePro> wrapper2 = new LambdaUpdateWrapper<>();
             LambdaUpdateWrapper<ScenePro> wrapper2 = new LambdaUpdateWrapper<>();

+ 50 - 6
src/main/java/com/fdkankan/manage_jp/service/impl/SceneProServiceImpl.java

@@ -92,6 +92,12 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     private ISceneUpgradeMapper sceneUpgradeMapper;
     private ISceneUpgradeMapper sceneUpgradeMapper;
     @Autowired
     @Autowired
     ISceneCopyLogService sceneCopyLogService;
     ISceneCopyLogService sceneCopyLogService;
+    @Autowired
+    ICameraDetailService cameraDetailService;
+    @Autowired
+    ICameraService cameraService;
+    @Autowired
+    IUserService userService;
 
 
 
 
     @Override
     @Override
@@ -330,12 +336,6 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         if(sceneCopyLogs!=null && sceneCopyLogs.size()>0){
         if(sceneCopyLogs!=null && sceneCopyLogs.size()>0){
             throw new BusinessException(ResultCode.GENERATE_OBJ_ERROR);
             throw new BusinessException(ResultCode.GENERATE_OBJ_ERROR);
         }
         }
-        laserService.updateBuildObjStatus(num,2);
-
-        Integer sceneSource = sceneProEntity == null ? scenePlusEntity.getSceneSource() : sceneProEntity.getSceneSource();
-        if(sceneSource != 4){
-            throw new BusinessException(ResultCode.GENERATE_OBJ_ERROR_TYPE);
-        }
         String path = null;
         String path = null;
         ScenePlusExt scenePlusExt = null;
         ScenePlusExt scenePlusExt = null;
         if(scenePlusEntity != null){
         if(scenePlusEntity != null){
@@ -347,6 +347,13 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         }else {
         }else {
             path = sceneProEntity.getDataSource();
             path = sceneProEntity.getDataSource();
         }
         }
+
+        Integer sceneSource = sceneProEntity == null ? scenePlusEntity.getSceneSource() : sceneProEntity.getSceneSource();
+        if(sceneSource != 4){
+            throw new BusinessException(ResultCode.GENERATE_OBJ_ERROR_TYPE);
+        }
+
+        laserService.updateBuildObjStatus(num,2);
         String ossPath = path.replace("/mnt/data","home")+"/data.fdage";
         String ossPath = path.replace("/mnt/data","home")+"/data.fdage";
         if(!fYunFileServiceInterface.fileExist(ossPath)){
         if(!fYunFileServiceInterface.fileExist(ossPath)){
             throw new BusinessException(ResultCode.GENERATE_OBJ_ERROR);
             throw new BusinessException(ResultCode.GENERATE_OBJ_ERROR);
@@ -404,4 +411,41 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         mqMsg.setPath(dataSource);
         mqMsg.setPath(dataSource);
         mqProducer.sendByWorkQueue(queueObjModelingPre,mqMsg);
         mqProducer.sendByWorkQueue(queueObjModelingPre,mqMsg);
     }
     }
+
+    @Override
+    public void move(SceneParam param) {
+        if(param.getNumList().isEmpty() || param.getCameraId() == null || StringUtils.isBlank(param.getUserName())){
+            throw new BusinessException(ResultCode.PARAM_ERROR);
+        }
+        for (String num : param.getNumList()) {
+            User user = userService.getByUserName(param.getUserName());
+            if(user == null || user.getCompanyId() == null){
+                throw new BusinessException(ResultCode.USER_NOT_EXIST);
+            }
+            ScenePlus scenePlus = scenePlusService.getByNum(num);
+            ScenePro scenePro = this.getByNum(num);
+            if(scenePlus == null && scenePro == null){
+                throw new BusinessException(ResultCode.SCENE_NOT_EXIT);
+            }
+            Long cameraId = scenePro == null ? scenePlus.getCameraId() : scenePro.getCameraId();
+            Integer sceneSource = scenePro == null ? scenePlus.getSceneSource() : scenePro.getSceneSource();
+
+            Camera oldCamera = cameraService.getById(cameraId);
+            Camera camera = cameraService.getById(param.getCameraId());
+            CameraDetail oldCameraDetail = cameraDetailService.getByCameraId(cameraId);
+            CameraDetail cameraDetail = cameraDetailService.getByCameraId(param.getCameraId());
+            if(oldCamera == null || oldCameraDetail == null || camera == null || cameraDetail == null){
+                throw new BusinessException(ResultCode.CAMERA_NOT_EXIST);
+            }
+            if(!oldCameraDetail.getType().equals(cameraDetail.getType())){
+                throw new BusinessException(ResultCode.CAMERA_TYPE_NOT_ERROR);
+            }
+            scenePlusService.updatePayStatus(num,scenePro == null ?"v4":"v3",scenePro == null?scenePlus.getSceneSource():scenePro.getSceneSource(),1,cameraDetail,user);
+            scenePlusService.move(num,scenePro == null ?"v4":"v3",cameraDetail,user);
+            if(sceneSource == 4 || sceneSource == 5){
+                String dataSource = scenePro == null ? scenePlusExtService.getByPlusId(scenePlus.getId()).getDataSource() : scenePro.getDataSource();
+                laserService.move(num, oldCamera.getSnCode(), camera.getSnCode(), user.getId(), dataSource);
+            }
+        }
+    }
 }
 }