Selaa lähdekoodia

深时场景复制

lyhzzz 2 vuotta sitten
vanhempi
commit
7166c0bec9

+ 6 - 0
src/main/java/com/fdkankan/ucenter/common/constants/ShellCmd.java

@@ -11,5 +11,11 @@ public class ShellCmd {
 	public static final String FYUN_DOWN = "sudo bash /opt/ossutil/fyun-download.sh %s /%s %s %s %s";
 
 
+	//激光相机 extra迁移
+	public static final String CP_JG_EXTRA = "bash /opt/ossutil/laser-copy.sh ";
+
+	public static final String CP_JG_ALL = "bash /opt/ossutil/laser-cp-r.sh ";
+
+
 
 }

+ 13 - 0
src/main/java/com/fdkankan/ucenter/common/utils/ShellUtil.java

@@ -128,4 +128,17 @@ public class ShellUtil {
         execCmd(cmd);
     }
 
+    public static void cpfile(String filepathOld,String filepathNew) {
+        log.info("开始复制");
+        String command = ShellCmd.CP_JG_EXTRA+ " " + filepathOld + " " + filepathNew;
+        execCmd(command);
+        log.info("复制完毕:" + command);
+    }
+
+    public static void cplaserfile(String filepathOld,String filepathNew) {
+        log.info("开始复制");
+        String command = ShellCmd.CP_JG_ALL+ " " + filepathOld + " " + filepathNew;
+        execCmd(command);
+        log.info("复制完毕:" + command);
+    }
 }

+ 43 - 2
src/main/java/com/fdkankan/ucenter/httpClient/service/LaserService.java

@@ -1,8 +1,11 @@
 package com.fdkankan.ucenter.httpClient.service;
 
+import cn.hutool.core.io.FileUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.ucenter.common.CameraTypeEnum;
 import com.fdkankan.ucenter.common.Result;
+import com.fdkankan.ucenter.common.utils.ShellUtil;
 import com.fdkankan.ucenter.entity.Camera;
 import com.fdkankan.ucenter.entity.CameraDetail;
 import com.fdkankan.ucenter.entity.User;
@@ -11,6 +14,7 @@ import com.fdkankan.ucenter.service.ICameraService;
 import com.fdkankan.ucenter.service.IUserService;
 import com.fdkankan.ucenter.vo.response.SceneNumVo;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -19,6 +23,8 @@ import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -116,7 +122,36 @@ public class LaserService {
         return JSONObject.parseObject(JSONObject.toJSONString(result.getData()));
     }
 
-    public void copy(Long camaraId, String createTime, String newNum, Integer status, String sceneKey, String sceneName, Long userId){
+
+    public String copyDataSource( String oldDataSource,String dataSource) {
+        //计算成功  激光转台相机推送
+        log.info("激光转台相机 同步 请求 ");
+        try {
+            //创建目录
+            if(oldDataSource.lastIndexOf("/")!=-1){
+                oldDataSource = oldDataSource + "_laserData";
+            }else{
+                oldDataSource = oldDataSource.substring(0,oldDataSource.length()-1) + "_laserData";
+            }
+
+            if(dataSource.lastIndexOf("/")!=-1){
+                dataSource = dataSource + "_laserData";
+            }else{
+                dataSource = dataSource.substring(0,dataSource.length()-1) + "_laserData";
+            }
+
+            FileUtils.copyDirectiory(oldDataSource  ,dataSource);
+
+            return  dataSource + File.separator + "laserData";
+
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+    public void copy(Long camaraId, String createTime, String newNum, String  path, String sceneKey, String sceneName, Long userId){
         String phone = null;
         String snCode = null;
         if(userId != null){
@@ -133,15 +168,21 @@ public class LaserService {
         params.put("phone", phone);
         params.put("sceneCode", newNum);
         params.put("snCode",snCode);
-        params.put("status", status);
+        params.put("status", 0);
         params.put("password", sceneKey);
         params.put("title", sceneName);
         params.put("userId", userId);
         params.put("copy", true);
+        params.put("path",path);
         Result result = laserClient.saveOrEdit(newNum, params);
         if( result.getCode() != HttpStatus.OK.value()){
             log.error("激光场景状态同步失败!");
         }
+        params.put("status",2);
+        result = laserClient.saveOrEdit(newNum, params);
+        if( result.getCode() != HttpStatus.OK.value()){
+            log.error("激光场景状态同步失败!");
+        }
     }
 
 }

+ 2 - 1
src/main/java/com/fdkankan/ucenter/service/impl/ScenePlusServiceImpl.java

@@ -272,7 +272,8 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
                 this.updateById(scenePlus);
                 log.info("复制场景结束-{}", new Date());
                 if(scenePlus.getSceneSource() == 4){  //深时复制
-                    laserService.copy(scenePlus.getCameraId(),scenePlus.getCreateTime(),newNum,scenePlus.getSceneStatus(),
+                    String laserPath = laserService.copyDataSource(oldDataSource,plusExt.getDataSource());
+                    laserService.copy(scenePlus.getCameraId(),scenePlus.getCreateTime(),newNum,laserPath,
                             sceneEditInfo.getScenePassword(),scenePlus.getTitle(),scenePlus.getUserId());
                 }
             }catch (Exception e){

+ 2 - 1
src/main/java/com/fdkankan/ucenter/service/impl/SceneProServiceImpl.java

@@ -648,7 +648,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                 this.updateById(oldScene);
                 log.info("复制场景结束-{}", new Date());
                 if(oldScene.getSceneSource() == 4){  //深时复制
-                    laserService.copy(oldScene.getCameraId(),oldScene.getCreateTime(),newNum,oldScene.getStatus(),
+                    String laserPath = laserService.copyDataSource(preDataSource,oldScene.getDataSource());
+                    laserService.copy(oldScene.getCameraId(),oldScene.getCreateTime(),newNum,laserPath,
                             oldEditScene.getSceneKey(),oldScene.getSceneName(),oldScene.getUserId());
                 }
             } catch (Exception e) {