lyhzzz 1 éve
szülő
commit
6a592c79c4

+ 141 - 128
src/main/java/com/fdkankan/manage_jp/service/impl/SceneCommonService.java

@@ -214,85 +214,92 @@ public class SceneCommonService {
 
     @Async
     public void v4Async(ScenePlusExt plusExt, String oldNum, String newNum, ScenePlus scenePlus, Long plusId, String oldSceneName){
-        String oldDataSource = plusExt.getDataSource();
+        try {
+            String oldDataSource = plusExt.getDataSource();
 
-        String newDataSource = this.getNewDataSource(oldDataSource);
+            String newDataSource = this.getNewDataSource(oldDataSource);
 
-        log.info("sceneCopy-V4-oldNum:{},oldDataSource:{},newNum:{},newDataSource:{}",
-                oldNum,oldDataSource,newNum,newDataSource);
+            log.info("sceneCopy-V4-oldNum:{},oldDataSource:{},newNum:{},newDataSource:{}",
+                    oldNum,oldDataSource,newNum,newDataSource);
 
 
 
-        String newVideos = plusExt.getVideos();
-        if(StrUtil.isNotEmpty(newVideos)){
-            newVideos = plusExt.getVideos().replaceAll("/data/data" + oldNum, "/scene_view_data/" + newNum + "/data").replaceAll(oldNum, newNum);
-        }
-        plusExt.setId(null);
-        plusExt.setPlusId(scenePlus.getId());
-        plusExt.setDataSource(newDataSource);
-        plusExt.setWebSite(plusExt.getWebSite().replace(oldNum, newNum));
-        plusExt.setThumb(plusExt.getThumb().replace(oldNum, newNum));
-        plusExt.setVideos(newVideos);
-        plusExt.setViewCount(0);
-        scenePlusExtService.save(plusExt);
-
-        SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(plusId);
-        Long sceneEditInfoId = sceneEditInfo.getId();
-
-        sceneEditInfo.setId(null);
-        sceneEditInfo.setScenePlusId(scenePlus.getId());
-        sceneEditInfo.setSceneProId(null);
-        sceneEditInfo.setTitle(scenePlus.getTitle());
-        sceneEditInfoService.save(sceneEditInfo);
-
-        SceneEditInfoExt sceneEditInfoExt = sceneEditInfoExtService.getByEditInfoId(sceneEditInfoId);
-        sceneEditInfoExt.setId(null);
-        sceneEditInfoExt.setEditInfoId(sceneEditInfo.getId());
-        sceneEditInfoExt.setScenePlusId(scenePlus.getId());
-        sceneEditInfoExt.setSceneProId(null);
-        sceneEditInfoExtService.save(sceneEditInfoExt);
-
-        SceneEditControls sceneEditControls = sceneEditControlsService.getBySceneEditId(sceneEditInfoId);
-        sceneEditControls.setId(null);
-        sceneEditControls.setEditInfoId(sceneEditInfo.getId());
-        sceneEditControlsService.save(sceneEditControls);
-
-        List<Surveillance> list = surveillanceService.list(new LambdaQueryWrapper<Surveillance>().eq(Surveillance::getNum, oldNum));
-        if (!Objects.isNull(list)) {
-            list.stream().forEach(item -> {
-                item.setNum(newNum);
-                item.setId(null);
-                surveillanceService.save(item);
-            });
-        }
+            String newVideos = plusExt.getVideos();
+            if(StrUtil.isNotEmpty(newVideos)){
+                newVideos = plusExt.getVideos().replaceAll("/data/data" + oldNum, "/scene_view_data/" + newNum + "/data").replaceAll(oldNum, newNum);
+            }
+            plusExt.setId(null);
+            plusExt.setPlusId(scenePlus.getId());
+            plusExt.setDataSource(newDataSource);
+            plusExt.setWebSite(plusExt.getWebSite().replace(oldNum, newNum));
+            plusExt.setThumb(plusExt.getThumb().replace(oldNum, newNum));
+            plusExt.setVideos(newVideos);
+            plusExt.setViewCount(0);
+            scenePlusExtService.save(plusExt);
+
+            SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(plusId);
+            Long sceneEditInfoId = sceneEditInfo.getId();
+
+            sceneEditInfo.setId(null);
+            sceneEditInfo.setScenePlusId(scenePlus.getId());
+            sceneEditInfo.setSceneProId(null);
+            sceneEditInfo.setTitle(scenePlus.getTitle());
+            sceneEditInfoService.save(sceneEditInfo);
+
+            SceneEditInfoExt sceneEditInfoExt = sceneEditInfoExtService.getByEditInfoId(sceneEditInfoId);
+            sceneEditInfoExt.setId(null);
+            sceneEditInfoExt.setEditInfoId(sceneEditInfo.getId());
+            sceneEditInfoExt.setScenePlusId(scenePlus.getId());
+            sceneEditInfoExt.setSceneProId(null);
+            sceneEditInfoExtService.save(sceneEditInfoExt);
+
+            SceneEditControls sceneEditControls = sceneEditControlsService.getBySceneEditId(sceneEditInfoId);
+            sceneEditControls.setId(null);
+            sceneEditControls.setEditInfoId(sceneEditInfo.getId());
+            sceneEditControlsService.save(sceneEditControls);
+
+            List<Surveillance> list = surveillanceService.list(new LambdaQueryWrapper<Surveillance>().eq(Surveillance::getNum, oldNum));
+            if (!Objects.isNull(list)) {
+                list.stream().forEach(item -> {
+                    item.setNum(newNum);
+                    item.setId(null);
+                    surveillanceService.save(item);
+                });
+            }
 
-        if(scenePlus.getSceneSource() == 4){  //深时复制
-            laserService.copy(scenePlus.getCameraId(),scenePlus.getCreateTime(),newNum,0,null,
-                    sceneEditInfo.getScenePassword(),scenePlus.getTitle(),scenePlus.getUserId(),"V4");
-        }else {
-            laserService.cloudPointBuild(oldNum,newNum);
-        }
+            if(scenePlus.getSceneSource() == 4){  //深时复制
+                laserService.copy(scenePlus.getCameraId(),scenePlus.getCreateTime(),newNum,0,null,
+                        sceneEditInfo.getScenePassword(),scenePlus.getTitle(),scenePlus.getUserId(),"V4");
+            }else {
+                laserService.cloudPointBuild(oldNum,newNum);
+            }
 
-        //重新生成编辑页基础设置二维码
-        this.createNewQrCode(SceneVersionType.V4.code(),sceneEditInfoExt.getShareLogoImg(),newNum,plusExt.getWebSite());
-        //copyDataSource
-        cn.hutool.core.io.FileUtil.copyContent(new File(oldDataSource),new File(newDataSource),true);
+            //重新生成编辑页基础设置二维码
+            this.createNewQrCode(SceneVersionType.V4.code(),sceneEditInfoExt.getShareLogoImg(),newNum,plusExt.getWebSite());
+            //copyDataSource
+            cn.hutool.core.io.FileUtil.copyContent(new File(oldDataSource),new File(newDataSource),true);
 
-        this.copyOssAndNas(oldNum,newNum);
+            this.copyOssAndNas(oldNum,newNum);
 
-        //修改 oss status.json ,nas scene.json
-        String targetData = String.format(SceneResourcePath.DATA_VIEW_PATH,newNum);
-        this.updateOssJson(targetData,oldNum,newNum,"status.json");
-        this.updateOssJson(targetData,oldNum,newNum,"scene.json");
+            //修改 oss status.json ,nas scene.json
+            String targetData = String.format(SceneResourcePath.DATA_VIEW_PATH,newNum);
+            this.updateOssJson(targetData,oldNum,newNum,"status.json");
+            this.updateOssJson(targetData,oldNum,newNum,"scene.json");
 
 
-        if(scenePlus.getSceneSource() == 4){  //深时复制
-            String laserPath = laserService.copyDataSource(oldDataSource,plusExt.getDataSource());
-            laserService.copy(scenePlus.getCameraId(),scenePlus.getCreateTime(),newNum,2,laserPath,
-                    sceneEditInfo.getScenePassword(),scenePlus.getTitle(),scenePlus.getUserId(),"V4");
+            if(scenePlus.getSceneSource() == 4){  //深时复制
+                String laserPath = laserService.copyDataSource(oldDataSource,plusExt.getDataSource());
+                laserService.copy(scenePlus.getCameraId(),scenePlus.getCreateTime(),newNum,2,laserPath,
+                        sceneEditInfo.getScenePassword(),scenePlus.getTitle(),scenePlus.getUserId(),"V4");
+            }
+            scenePlus.setSceneStatus(-2);
+            scenePlusService.updateById(scenePlus);
+        }catch (Exception e){
+            log.info("复制场景失败:oldNum:{},newNum:{},error:{}",oldNum,newNum,e);
+            scenePlus.setSceneStatus(-1);
+            scenePlusService.updateById(scenePlus);
         }
-        scenePlus.setSceneStatus(-2);
-        scenePlusService.updateById(scenePlus);
+
     }
 
 
@@ -328,68 +335,74 @@ public class SceneCommonService {
 
     @Async
     public void v3Async(ScenePro scenePro,String oldNum,String newNum,Long sceneProId,String oldSceneName){
-
-        String oldDataSource = scenePro.getDataSource();
-        String newDataSource = this.getNewDataSource(oldDataSource);
-        log.info("sceneCopy--oldNum:{},oldDataSource:{},newNum:{},newDataSource:{}",
-                oldNum,oldDataSource,newNum,newDataSource);
-
-        scenePro.setDataSource(newDataSource);
-        sceneProService.updateById(scenePro);
-
-        SceneProEdit oldEditScene = sceneProEditService.getByProId(sceneProId);
-        oldEditScene.setId(null);
-        oldEditScene.setProId(scenePro.getId());
-        oldEditScene.setScreencapVoiceSrc(oldEditScene.getScreencapVoiceSrc() == null ? null : oldEditScene.getScreencapVoiceSrc().replace(oldNum, scenePro.getNum()));
-        oldEditScene.setScreencapVoiceSound(oldEditScene.getScreencapVoiceSound() == null ? null : oldEditScene.getScreencapVoiceSound().replace(oldNum, scenePro.getNum()));
-        oldEditScene.setScreencapVoiceSoundsync(oldEditScene.getScreencapVoiceSoundsync() == null ? null : oldEditScene.getScreencapVoiceSoundsync().replace(oldNum, scenePro.getNum()));
-        oldEditScene.setPlayData(oldEditScene.getPlayData() == null ? null : oldEditScene.getPlayData().replace(oldNum, scenePro.getNum()));
-        oldEditScene.setScreencapThumb(oldEditScene.getScreencapThumb() == null ? null : oldEditScene.getScreencapThumb().replace(oldNum, scenePro.getNum()));
-        oldEditScene.setFloorPlanPng(oldEditScene.getFloorPlanPng() == null ? null : oldEditScene.getFloorPlanPng().replace(oldNum, scenePro.getNum()));
-        sceneProEditService.save(oldEditScene);
-
-        if(scenePro.getSceneSource() == 4){  //深时复制
-            laserService.copy(scenePro.getCameraId(),scenePro.getCreateTime(),newNum,0,null,
-                    oldEditScene.getSceneKey(),scenePro.getSceneName(),scenePro.getUserId(),"V3");
-        }
-        /*
-         *cp oss nas
-         * data/data{SceneNum}
-         * images/images{SceneNum}
-         * video/video{SceneNum}
-         * voice/voice{SceneNum}
-         */
-        //重新生成编辑页基础设置二维码
-        this.createNewQrCode(SceneVersionType.V3.code(),oldEditScene.getShareLogo(),newNum,scenePro.getWebSite());
-        //copyDataSource
-        cn.hutool.core.io.FileUtil.copyContent(new File(oldDataSource),new File(newDataSource),true);
-
-        String sourceData = String.format(SceneResourcePath.dataPath, oldNum);
-        String targetData = String.format(SceneResourcePath.dataPath, scenePro.getNum());
-        this.copyOssAndNas(oldNum,scenePro.getNum(),sourceData,targetData);
-        //修改 oss status.json ,nas scene.json
-        this.updateOssJson(targetData,oldNum,newNum,"status.json");
-        this.updateOssJson(targetData,oldNum,newNum,"scene.json");
-
-        String sourceImages = String.format(SceneResourcePath.imagesPath, oldNum);
-        String targetImages = String.format(SceneResourcePath.imagesPath, scenePro.getNum());
-        this.copyOssAndNas(oldNum,scenePro.getNum(),sourceImages,targetImages);
-
-        String sourceVideo = String.format(SceneResourcePath.videoPath, oldNum);
-        String targetVideo = String.format(SceneResourcePath.videoPath, scenePro.getNum());
-        this.copyOssAndNas(oldNum,scenePro.getNum(),sourceVideo,targetVideo);
-
-        String sourceVoice = String.format(SceneResourcePath.voicePath, oldNum);
-        String targetVoice = String.format(SceneResourcePath.voicePath, scenePro.getNum());
-        this.copyOssAndNas(oldNum,scenePro.getNum(),sourceVoice,targetVoice);
-
-        if(scenePro.getSceneSource() == 4){  //深时复制
-            String laserPath = laserService.copyDataSource(oldDataSource,scenePro.getDataSource());
-            laserService.copy(scenePro.getCameraId(),scenePro.getCreateTime(),newNum,2,laserPath,
-                    oldEditScene.getSceneKey(),scenePro.getSceneName(),scenePro.getUserId(),"V3");
+        try {
+            String oldDataSource = scenePro.getDataSource();
+            String newDataSource = this.getNewDataSource(oldDataSource);
+            log.info("sceneCopy--oldNum:{},oldDataSource:{},newNum:{},newDataSource:{}",
+                    oldNum,oldDataSource,newNum,newDataSource);
+
+            scenePro.setDataSource(newDataSource);
+            sceneProService.updateById(scenePro);
+
+            SceneProEdit oldEditScene = sceneProEditService.getByProId(sceneProId);
+            oldEditScene.setId(null);
+            oldEditScene.setProId(scenePro.getId());
+            oldEditScene.setScreencapVoiceSrc(oldEditScene.getScreencapVoiceSrc() == null ? null : oldEditScene.getScreencapVoiceSrc().replace(oldNum, scenePro.getNum()));
+            oldEditScene.setScreencapVoiceSound(oldEditScene.getScreencapVoiceSound() == null ? null : oldEditScene.getScreencapVoiceSound().replace(oldNum, scenePro.getNum()));
+            oldEditScene.setScreencapVoiceSoundsync(oldEditScene.getScreencapVoiceSoundsync() == null ? null : oldEditScene.getScreencapVoiceSoundsync().replace(oldNum, scenePro.getNum()));
+            oldEditScene.setPlayData(oldEditScene.getPlayData() == null ? null : oldEditScene.getPlayData().replace(oldNum, scenePro.getNum()));
+            oldEditScene.setScreencapThumb(oldEditScene.getScreencapThumb() == null ? null : oldEditScene.getScreencapThumb().replace(oldNum, scenePro.getNum()));
+            oldEditScene.setFloorPlanPng(oldEditScene.getFloorPlanPng() == null ? null : oldEditScene.getFloorPlanPng().replace(oldNum, scenePro.getNum()));
+            sceneProEditService.save(oldEditScene);
+
+            if(scenePro.getSceneSource() == 4){  //深时复制
+                laserService.copy(scenePro.getCameraId(),scenePro.getCreateTime(),newNum,0,null,
+                        oldEditScene.getSceneKey(),scenePro.getSceneName(),scenePro.getUserId(),"V3");
+            }
+            /*
+             *cp oss nas
+             * data/data{SceneNum}
+             * images/images{SceneNum}
+             * video/video{SceneNum}
+             * voice/voice{SceneNum}
+             */
+            //重新生成编辑页基础设置二维码
+            this.createNewQrCode(SceneVersionType.V3.code(),oldEditScene.getShareLogo(),newNum,scenePro.getWebSite());
+            //copyDataSource
+            cn.hutool.core.io.FileUtil.copyContent(new File(oldDataSource),new File(newDataSource),true);
+
+            String sourceData = String.format(SceneResourcePath.dataPath, oldNum);
+            String targetData = String.format(SceneResourcePath.dataPath, scenePro.getNum());
+            this.copyOssAndNas(oldNum,scenePro.getNum(),sourceData,targetData);
+            //修改 oss status.json ,nas scene.json
+            this.updateOssJson(targetData,oldNum,newNum,"status.json");
+            this.updateOssJson(targetData,oldNum,newNum,"scene.json");
+
+            String sourceImages = String.format(SceneResourcePath.imagesPath, oldNum);
+            String targetImages = String.format(SceneResourcePath.imagesPath, scenePro.getNum());
+            this.copyOssAndNas(oldNum,scenePro.getNum(),sourceImages,targetImages);
+
+            String sourceVideo = String.format(SceneResourcePath.videoPath, oldNum);
+            String targetVideo = String.format(SceneResourcePath.videoPath, scenePro.getNum());
+            this.copyOssAndNas(oldNum,scenePro.getNum(),sourceVideo,targetVideo);
+
+            String sourceVoice = String.format(SceneResourcePath.voicePath, oldNum);
+            String targetVoice = String.format(SceneResourcePath.voicePath, scenePro.getNum());
+            this.copyOssAndNas(oldNum,scenePro.getNum(),sourceVoice,targetVoice);
+
+            if(scenePro.getSceneSource() == 4){  //深时复制
+                String laserPath = laserService.copyDataSource(oldDataSource,scenePro.getDataSource());
+                laserService.copy(scenePro.getCameraId(),scenePro.getCreateTime(),newNum,2,laserPath,
+                        oldEditScene.getSceneKey(),scenePro.getSceneName(),scenePro.getUserId(),"V3");
+            }
+            scenePro.setStatus(-2);
+            sceneProService.updateById(scenePro);
+        }catch (Exception e){
+            log.info("复制场景失败:oldNum:{},newNum:{},error:{}",oldNum,newNum,e);
+            scenePro.setStatus(-1);
+            sceneProService.updateById(scenePro);
         }
-        scenePro.setStatus(-2);
-        sceneProService.updateById(scenePro);
+
     }
 
     private void copyOssAndNas(String oldNum ,String newNum ,String sourcePath,String targetPath){