lyhzzz vor 1 Jahr
Ursprung
Commit
abdd70674b
1 geänderte Dateien mit 95 neuen und 102 gelöschten Zeilen
  1. 95 102
      src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java

+ 95 - 102
src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java

@@ -351,123 +351,116 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             throw new BusinessException(ResultCode.CAMERA_SN_NOT_EXIST);
         }
         if(StringUtils.isNotBlank(param.getNum())){
-            param.getNumList().add(param.getNum());
+           moveScene(param.getNum(),camera,cameraDetail);
         }
         Integer successNum = param.getNumList().size();
         for (String num : param.getNumList()) {
-            ScenePro scenePro = this.getByNum(num);
-            ScenePlus scenePlus = scenePlusService.getByNum(num);
-            if((scenePro == null || scenePro.getCameraId() == null ) && (scenePlus== null || scenePlus.getCameraId() == null)){
+            try {
+                moveScene(num,camera,cameraDetail);
+            }catch (Exception e){
                 successNum --;
-                continue;
-                //throw new BusinessException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
-            }
-            Integer status =  scenePro == null ? scenePlus.getSceneStatus() : scenePro.getStatus();
-            if(status != -2){
-                successNum --;
-                continue;
-                //throw new BusinessException(SceneConstant.FAILURE_CODE_5037, SceneConstant.FAILURE_MSG_5037);
             }
+        }
+        return successNum;
+    }
 
-            Long sceneCameraId = scenePro == null ? scenePlus.getCameraId() : scenePro.getCameraId();
-            Long space = scenePro == null ? 0 :scenePro.getSpace();
-            String dataSource = scenePro == null ? null :scenePro.getDataSource();
-            if(scenePlus !=null){
-                ScenePlusExt scenePlusExt = scenePlusExtService.getByPlusId(scenePlus.getId());
-                space = scenePlusExt.getSpace();
-                dataSource = scenePlusExt.getDataSource();
-            }
-            space = space == null ? 0 :space;
-            cameraDetailService.initSpace(cameraDetail.getCameraId());
-            Boolean checkSpace = cameraDetailService.checkSpace(cameraDetail, space);
-            //深时场景无限容量
-            if( !checkSpace){
-                successNum --;
-                continue;
-                //throw new BusinessException(ResultCode.CAMERA_SPACE_ERROR);
-            }
+    private void moveScene(String num,Camera camera,CameraDetail cameraDetail){
+        ScenePro scenePro = this.getByNum(num);
+        ScenePlus scenePlus = scenePlusService.getByNum(num);
+        if((scenePro == null || scenePro.getCameraId() == null ) && (scenePlus== null || scenePlus.getCameraId() == null)){
+            throw new BusinessException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
+        }
+        Integer status =  scenePro == null ? scenePlus.getSceneStatus() : scenePro.getStatus();
+        if(status != -2){
+            throw new BusinessException(SceneConstant.FAILURE_CODE_5037, SceneConstant.FAILURE_MSG_5037);
+        }
 
-            Camera oldCamera = cameraService.getById(sceneCameraId);
-            if(oldCamera == null){
-                successNum --;
-                continue;
-                //throw new BusinessException(ResultCode.CAMERA_NOT_EXIST);
-            }
-            CameraDetail oldCameraDetail = cameraDetailService.getByCameraId(oldCamera.getId());
-            if(oldCameraDetail == null){
-                successNum --;
-                continue;
-                //throw new BusinessException(ResultCode.CAMERA_NOT_EXIST);
-            }
-            if(oldCameraDetail.getCameraId().equals(cameraDetail.getCameraId())){
-                successNum --;
-                continue;
-                //throw new BusinessException(ResultCode.CAMERA_NOT_MOVE);
-            }
-            if(!oldCameraDetail.getType().equals(cameraDetail.getType())){
-                successNum --;
-                continue;
-                //throw new BusinessException(ResultCode.CAMERA_TYPE_NOT_ERROR);
-            }
+        Long sceneCameraId = scenePro == null ? scenePlus.getCameraId() : scenePro.getCameraId();
+        Long space = scenePro == null ? 0 :scenePro.getSpace();
+        String dataSource = scenePro == null ? null :scenePro.getDataSource();
+        if(scenePlus !=null){
+            ScenePlusExt scenePlusExt = scenePlusExtService.getByPlusId(scenePlus.getId());
+            space = scenePlusExt.getSpace();
+            dataSource = scenePlusExt.getDataSource();
+        }
+        space = space == null ? 0 :space;
+        cameraDetailService.initSpace(cameraDetail.getCameraId());
+        Boolean checkSpace = cameraDetailService.checkSpace(cameraDetail, space);
+        //深时场景无限容量
+        if( !checkSpace){
+            throw new BusinessException(ResultCode.CAMERA_SPACE_ERROR);
+        }
 
-            Long oldUseSpace = oldCameraDetail.getUsedSpace() - space < 0 ? 0 : oldCameraDetail.getUsedSpace() - space;
-            if("GB".equals(oldCameraDetail.getUnit())){
-                oldUseSpace = 1L;
-            }
-            Long subSpace =  oldCameraDetail.getTotalSpace() - oldUseSpace;
+        Camera oldCamera = cameraService.getById(sceneCameraId);
+        if(oldCamera == null){
+            throw new BusinessException(ResultCode.CAMERA_NOT_EXIST);
+        }
+        CameraDetail oldCameraDetail = cameraDetailService.getByCameraId(oldCamera.getId());
+        if(oldCameraDetail == null){
+            throw new BusinessException(ResultCode.CAMERA_NOT_EXIST);
+        }
+        if(oldCameraDetail.getCameraId().equals(cameraDetail.getCameraId())){
+            throw new BusinessException(ResultCode.CAMERA_NOT_MOVE);
+        }
+        if(!oldCameraDetail.getType().equals(cameraDetail.getType())){
+            throw new BusinessException(ResultCode.CAMERA_TYPE_NOT_ERROR);
+        }
 
-            if(scenePro!=null){
-                LambdaUpdateWrapper<ScenePro> wrapper = new LambdaUpdateWrapper<>();
-                wrapper.eq(ScenePro::getId,scenePro.getId());
-                wrapper.set(ScenePro::getCameraId,camera.getId());
-                wrapper.set(ScenePro::getUserId,cameraDetail.getUserId());
-                // wrapper.set(ScenePro::getStatus,0);
-                // this.updateOssStatus(String.format(OssPath.v3_statusPath,scenePro.getNum()),0,"status");
-                this.update(wrapper);
-                //场景迁移到另外的相机清除本身在的文件夹
-                folderSceneService.delBySceneId(scenePro.getId());
-            }
-            if(scenePlus!=null){
-                LambdaUpdateWrapper<ScenePlus> wrapper = new LambdaUpdateWrapper<>();
-                wrapper.eq(ScenePlus::getId,scenePlus.getId());
-                wrapper.set(ScenePlus::getCameraId,camera.getId());
-                wrapper.set(ScenePlus::getUserId,cameraDetail.getUserId());
-                //wrapper.set(ScenePlus::getSceneStatus,0);
-                //this.updateOssStatus(String.format(OssPath.v4_statusPath,scenePlus.getNum()),0,"status");
-                scenePlusService.update(wrapper);
-                folderSceneService.delBySceneId(scenePlus.getId());
-            }
-            //协作相机
-            sceneResourceCameraService.setCooperationUser(cameraDetail,num);
+        Long oldUseSpace = oldCameraDetail.getUsedSpace() - space < 0 ? 0 : oldCameraDetail.getUsedSpace() - space;
+        if("GB".equals(oldCameraDetail.getUnit())){
+            oldUseSpace = 1L;
+        }
+        Long subSpace =  oldCameraDetail.getTotalSpace() - oldUseSpace;
 
-            //String newDataSource = updateFdageNewDataSource(scenePro, scenePlus, oldCamera.getSnCode(), param.getSnCode(), dataSource);
+        if(scenePro!=null){
+            LambdaUpdateWrapper<ScenePro> wrapper = new LambdaUpdateWrapper<>();
+            wrapper.eq(ScenePro::getId,scenePro.getId());
+            wrapper.set(ScenePro::getCameraId,camera.getId());
+            wrapper.set(ScenePro::getUserId,cameraDetail.getUserId());
+            // wrapper.set(ScenePro::getStatus,0);
+            // this.updateOssStatus(String.format(OssPath.v3_statusPath,scenePro.getNum()),0,"status");
+            this.update(wrapper);
+            //场景迁移到另外的相机清除本身在的文件夹
+            folderSceneService.delBySceneId(scenePro.getId());
+        }
+        if(scenePlus!=null){
+            LambdaUpdateWrapper<ScenePlus> wrapper = new LambdaUpdateWrapper<>();
+            wrapper.eq(ScenePlus::getId,scenePlus.getId());
+            wrapper.set(ScenePlus::getCameraId,camera.getId());
+            wrapper.set(ScenePlus::getUserId,cameraDetail.getUserId());
+            //wrapper.set(ScenePlus::getSceneStatus,0);
+            //this.updateOssStatus(String.format(OssPath.v4_statusPath,scenePlus.getNum()),0,"status");
+            scenePlusService.update(wrapper);
+            folderSceneService.delBySceneId(scenePlus.getId());
+        }
+        //协作相机
+        sceneResourceCameraService.setCooperationUser(cameraDetail,num);
 
-            if(cameraDetail.getType() == 10 || cameraDetail.getType() == 11){       //深时场景
-                //迁移深时 dataSource
-                //FileUtil.move(new File(dataSource +"_laserData"),new File(newDataSource+"_laserData"),true);
-                laserService.move(num,oldCamera.getSnCode(),camera.getSnCode(),cameraDetail.getUserId(),dataSource);
-            }
-            cameraDetailService.initSpace(oldCameraDetail);
-            cameraDetailService.initSpace(cameraDetail);
+        //String newDataSource = updateFdageNewDataSource(scenePro, scenePlus, oldCamera.getSnCode(), param.getSnCode(), dataSource);
 
-            if(!"aws".equals(CacheUtil.uploadType) && oldCameraDetail.getType() != 11 && oldCameraDetail.getType() != 10 && subSpace >0){           //有剩余容量解封容量内场景
-                this.lockOrUnLockBySpace(oldCameraDetail.getCameraId());
-            }
-            if(!"aws".equals(CacheUtil.uploadType) && cameraDetail.getType() != 11 && cameraDetail.getType() != 10){           //有剩余容量解封容量内场景
-                this.lockOrUnLockBySpace(cameraDetail.getCameraId());
-            }
+        if(cameraDetail.getType() == 10 || cameraDetail.getType() == 11){       //深时场景
+            //迁移深时 dataSource
+            //FileUtil.move(new File(dataSource +"_laserData"),new File(newDataSource+"_laserData"),true);
+            laserService.move(num,oldCamera.getSnCode(),camera.getSnCode(),cameraDetail.getUserId(),dataSource);
+        }
+        cameraDetailService.initSpace(oldCameraDetail);
+        cameraDetailService.initSpace(cameraDetail);
 
-            if("aws".equals(CacheUtil.uploadType) && subSpace >0){           //有剩余容量解封容量内场景
-                this.lockOrUnLockBySpace(oldCameraDetail.getCameraId());
-            }
-            if("aws".equals(CacheUtil.uploadType)){           //有剩余容量解封容量内场景
-                this.lockOrUnLockBySpace(cameraDetail.getCameraId());
-            }
-            sceneMoveLogService.saveLog(scenePro,scenePlus,camera.getSnCode(),oldCamera.getSnCode(),dataSource,dataSource, null);
-            laserService.moveWenBao(num,oldCamera.getSnCode(),camera.getSnCode(),cameraDetail.getUserId(),dataSource);
+        if(!"aws".equals(CacheUtil.uploadType) && oldCameraDetail.getType() != 11 && oldCameraDetail.getType() != 10 && subSpace >0){           //有剩余容量解封容量内场景
+            this.lockOrUnLockBySpace(oldCameraDetail.getCameraId());
+        }
+        if(!"aws".equals(CacheUtil.uploadType) && cameraDetail.getType() != 11 && cameraDetail.getType() != 10){           //有剩余容量解封容量内场景
+            this.lockOrUnLockBySpace(cameraDetail.getCameraId());
         }
 
-        return successNum;
+        if("aws".equals(CacheUtil.uploadType) && subSpace >0){           //有剩余容量解封容量内场景
+            this.lockOrUnLockBySpace(oldCameraDetail.getCameraId());
+        }
+        if("aws".equals(CacheUtil.uploadType)){           //有剩余容量解封容量内场景
+            this.lockOrUnLockBySpace(cameraDetail.getCameraId());
+        }
+        sceneMoveLogService.saveLog(scenePro,scenePlus,camera.getSnCode(),oldCamera.getSnCode(),dataSource,dataSource, null);
+        laserService.moveWenBao(num,oldCamera.getSnCode(),camera.getSnCode(),cameraDetail.getUserId(),dataSource);
     }