浏览代码

复制场景

lyhzzz 2 年之前
父节点
当前提交
78e0cf3fd0
共有 22 个文件被更改,包括 446 次插入17 次删除
  1. 21 0
      src/main/java/com/fdkankan/manage_jp/controller/SceneCopyLogController.java
  2. 13 3
      src/main/java/com/fdkankan/manage_jp/controller/SceneProController.java
  3. 21 0
      src/main/java/com/fdkankan/manage_jp/controller/SurveillanceController.java
  4. 51 0
      src/main/java/com/fdkankan/manage_jp/entity/SceneCopyLog.java
  5. 2 1
      src/main/java/com/fdkankan/manage_jp/entity/ScenePlus.java
  6. 1 1
      src/main/java/com/fdkankan/manage_jp/entity/ScenePro.java
  7. 84 0
      src/main/java/com/fdkankan/manage_jp/entity/Surveillance.java
  8. 1 1
      src/main/java/com/fdkankan/manage_jp/generate/AutoGenerate.java
  9. 62 0
      src/main/java/com/fdkankan/manage_jp/httpClient/service/LaserService.java
  10. 18 0
      src/main/java/com/fdkankan/manage_jp/mapper/ISceneCopyLogMapper.java
  11. 18 0
      src/main/java/com/fdkankan/manage_jp/mapper/ISurveillanceMapper.java
  12. 17 0
      src/main/java/com/fdkankan/manage_jp/service/ISceneCopyLogService.java
  13. 1 1
      src/main/java/com/fdkankan/manage_jp/service/IScenePlusService.java
  14. 1 1
      src/main/java/com/fdkankan/manage_jp/service/ISceneProService.java
  15. 16 0
      src/main/java/com/fdkankan/manage_jp/service/ISurveillanceService.java
  16. 21 0
      src/main/java/com/fdkankan/manage_jp/service/impl/SceneCommonService.java
  17. 28 0
      src/main/java/com/fdkankan/manage_jp/service/impl/SceneCopyLogServiceImpl.java
  18. 27 7
      src/main/java/com/fdkankan/manage_jp/service/impl/ScenePlusServiceImpl.java
  19. 13 2
      src/main/java/com/fdkankan/manage_jp/service/impl/SceneProServiceImpl.java
  20. 20 0
      src/main/java/com/fdkankan/manage_jp/service/impl/SurveillanceServiceImpl.java
  21. 5 0
      src/main/resources/mapper/manage_jp/SceneCopyLogMapper.xml
  22. 5 0
      src/main/resources/mapper/manage_jp/SurveillanceMapper.xml

+ 21 - 0
src/main/java/com/fdkankan/manage_jp/controller/SceneCopyLogController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.manage_jp.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-23
+ */
+@RestController
+@RequestMapping("/manage_jp/sceneCopyLog")
+public class SceneCopyLogController {
+
+}
+

+ 13 - 3
src/main/java/com/fdkankan/manage_jp/controller/SceneProController.java

@@ -47,6 +47,8 @@ public class SceneProController extends BaseController{
     IDownService downService;
     @Autowired
     FdKKClient fdKKClient;
+    @Autowired
+    ISceneCopyLogService sceneCopyLogService;
 
     @PostMapping("/list")
     public Result list(@RequestBody SceneParam param){
@@ -89,21 +91,29 @@ public class SceneProController extends BaseController{
     @PostMapping("/copyScene")
     @ResponseBody
     public Result copyScene(@RequestBody JSONObject param){
+        String username = JwtUtil.getUsername(getToken());
+        User user = userService.getByUserName(username);
+
         String num = param.getString("num");
         if(StringUtils.isBlank(num)){
             throw new BusinessException(ResultCode.PARAM_ERROR);
         }
         ScenePro scenePro = sceneProService.getByNum(num);
+        String newNum = "";
         if(scenePro !=null){
-            sceneProService.copyScene(scenePro);
+            ScenePro newScenePro = sceneProService.copyScene(scenePro);
+            newNum = newScenePro.getNum();
         }
         ScenePlus scenePlus = scenePlusService.getByNum(num);
-        if(scenePro !=null){
-            scenePlusService.copyScene(scenePlus);
+        if(scenePlus !=null){
+            ScenePlus newScenePlus = scenePlusService.copyScene(scenePlus);
+            newNum = newScenePlus.getNum();
         }
         if(scenePro == null && scenePlus == null){
             throw new BusinessException(ResultCode.NOT_RECORD);
         }
+        sceneCopyLogService.saveByNum(num,newNum ,user.getId());
+
         return Result.success();
     }
 }

+ 21 - 0
src/main/java/com/fdkankan/manage_jp/controller/SurveillanceController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.manage_jp.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 监控推拉流信息 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-23
+ */
+@RestController
+@RequestMapping("/manage_jp/surveillance")
+public class SurveillanceController {
+
+}
+

+ 51 - 0
src/main/java/com/fdkankan/manage_jp/entity/SceneCopyLog.java

@@ -0,0 +1,51 @@
+package com.fdkankan.manage_jp.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-23
+ */
+@Getter
+@Setter
+@TableName("t_scene_copy_log")
+public class SceneCopyLog implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("old_num")
+    private String oldNum;
+
+    @TableField("new_num")
+    private String newNum;
+
+    @TableField("copy_user_id")
+    private Long copyUserId;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+
+}

+ 2 - 1
src/main/java/com/fdkankan/manage_jp/entity/ScenePlus.java

@@ -9,6 +9,7 @@ import java.io.Serializable;
 import java.util.Date;
 import lombok.Getter;
 import lombok.Setter;
+import org.apache.commons.lang3.StringUtils;
 
 /**
  * <p>
@@ -104,7 +105,7 @@ public class ScenePlus implements Serializable {
      * 创建时间
      */
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     /**
      * 更新时间

+ 1 - 1
src/main/java/com/fdkankan/manage_jp/entity/ScenePro.java

@@ -56,7 +56,7 @@ public class ScenePro implements Serializable {
      * 创建时间
      */
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     /**
      * 0表示未建好,1表示建好,-1表示出错,-2表示不要在官网上显示

+ 84 - 0
src/main/java/com/fdkankan/manage_jp/entity/Surveillance.java

@@ -0,0 +1,84 @@
+package com.fdkankan.manage_jp.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 监控推拉流信息
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-23
+ */
+@Getter
+@Setter
+@TableName("t_surveillance")
+public class Surveillance implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景码
+     */
+    @TableField("num")
+    private String num;
+
+    /**
+     * 监控名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 监控唯一标识
+     */
+    @TableField("sid")
+    private String sid;
+
+    /**
+     * ponoId
+     */
+    @TableField("pano_id")
+    private String panoId;
+
+    /**
+     * 摄像头设置信息
+     */
+    @TableField("data")
+    private String data;
+
+    /**
+     * 播放地址
+     */
+    @TableField("play_url")
+    private String playUrl;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+
+}

+ 1 - 1
src/main/java/com/fdkankan/manage_jp/generate/AutoGenerate.java

@@ -18,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir");
 
         generate(path,"manage_jp", getTables(new String[]{
-              "t_scene_edit_controls"
+              "t_scene_copy_log"
         }));
 
 //        generate(path,"goods", getTables(new String[]{

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

@@ -1,4 +1,5 @@
 package com.fdkankan.manage_jp.httpClient.service;
+import com.fdkankan.common.util.FileUtils;
 import com.google.common.collect.Lists;
 
 import com.alibaba.fastjson.JSONArray;
@@ -31,6 +32,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
 
+import java.io.File;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -250,4 +252,64 @@ public class LaserService {
             log.error("激光场景状态同步失败!",e);
         }
     }
+
+
+    public void copy(Long camaraId, String createTime, String newNum, Integer status,
+                     String  path, String sceneKey, String sceneName, Long userId,String version){
+        String phone = null;
+        String snCode = null;
+        if(userId != null){
+            User user = userService.getById(userId);
+            phone = user == null ? null :user.getUserName();
+        }
+        if(camaraId != null){
+            Camera camera = cameraService.getById(camaraId);
+            snCode = camera == null ? null :camera.getSnCode();
+        }
+        Map<String,Object> params = new HashMap<>();
+        params.put("childName",snCode);
+        params.put("createTime", createTime);
+        params.put("phone", phone);
+        params.put("sceneCode", newNum);
+        params.put("snCode",snCode);
+        params.put("status", status);
+        params.put("password", sceneKey);
+        params.put("title", sceneName);
+        params.put("userId", userId);
+        params.put("isCopy", true);
+        params.put("path",path);
+        params.put("version",version);
+        Result result = laserClient.saveOrEdit(newNum, params);
+        if( result.getCode() != HttpStatus.OK.value()){
+            log.error("激光场景状态同步失败!");
+        }
+    }
+
+
+    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;
+    }
 }

+ 18 - 0
src/main/java/com/fdkankan/manage_jp/mapper/ISceneCopyLogMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage_jp.mapper;
+
+import com.fdkankan.manage_jp.entity.SceneCopyLog;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-23
+ */
+@Mapper
+public interface ISceneCopyLogMapper extends BaseMapper<SceneCopyLog> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/manage_jp/mapper/ISurveillanceMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage_jp.mapper;
+
+import com.fdkankan.manage_jp.entity.Surveillance;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 监控推拉流信息 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-23
+ */
+@Mapper
+public interface ISurveillanceMapper extends BaseMapper<Surveillance> {
+
+}

+ 17 - 0
src/main/java/com/fdkankan/manage_jp/service/ISceneCopyLogService.java

@@ -0,0 +1,17 @@
+package com.fdkankan.manage_jp.service;
+
+import com.fdkankan.manage_jp.entity.SceneCopyLog;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-23
+ */
+public interface ISceneCopyLogService extends IService<SceneCopyLog> {
+
+    void saveByNum(String num, String newNum, Long userId);
+}

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

@@ -17,5 +17,5 @@ public interface IScenePlusService extends IService<ScenePlus> {
 
     void unbind(Long cameraId);
 
-    void copyScene(ScenePlus scenePlus);
+    ScenePlus copyScene(ScenePlus scenePlus);
 }

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

@@ -30,5 +30,5 @@ public interface ISceneProService extends IService<ScenePro> {
 
     void unbind(Long cameraId);
 
-    void copyScene(ScenePro scenePro);
+    ScenePro copyScene(ScenePro scenePro);
 }

+ 16 - 0
src/main/java/com/fdkankan/manage_jp/service/ISurveillanceService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.manage_jp.service;
+
+import com.fdkankan.manage_jp.entity.Surveillance;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 监控推拉流信息 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-23
+ */
+public interface ISurveillanceService extends IService<Surveillance> {
+
+}

+ 21 - 0
src/main/java/com/fdkankan/manage_jp/service/impl/SceneCommonService.java

@@ -2,6 +2,8 @@ package com.fdkankan.manage_jp.service.impl;
 
 import cn.hutool.core.io.FileUtil;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.image.MatrixToImageWriterUtil;
 import com.fdkankan.manage_jp.exception.BusinessException;
@@ -50,6 +52,7 @@ public class SceneCommonService {
                 throw new BusinessException(-1,"场景dataSource格式错误");
             }
             newDataSource = newDataSource.replace(snCodeTime.split("_")[1],time);
+            this.copyFdage(oldDataSource,newDataSource,time);
         }
         if(newDataSource == null){
             throw new BusinessException(-1,"场景dataSource格式错误");
@@ -126,4 +129,22 @@ public class SceneCommonService {
         }
 
     }
+
+    public void copyFdage(String oldDataSource,String newDataSource,String time){
+        String ossOldPath = oldDataSource.replace("/mnt/data","home");
+        String ossNewPath = newDataSource.replace("/mnt/data","home");
+        fYunFileServiceInterface.copyFileInBucket(ossOldPath,ossNewPath);
+
+        String fileName = "/data.fdage";
+
+        String fileContent = fYunFileServiceInterface.getFileContent(ossNewPath + fileName);
+        if(StringUtils.isNotBlank(fileContent)){
+            JSONObject jsonObject = JSONObject.parseObject(fileContent);
+            jsonObject.put("uuidtime",time);
+            FileUtils.writeFile(newDataSource +fileName, jsonObject.toJSONString());
+            fYunFileServiceInterface.uploadFile(newDataSource +fileName,ossNewPath +fileName);
+
+        }
+
+    }
 }

+ 28 - 0
src/main/java/com/fdkankan/manage_jp/service/impl/SceneCopyLogServiceImpl.java

@@ -0,0 +1,28 @@
+package com.fdkankan.manage_jp.service.impl;
+
+import com.fdkankan.manage_jp.entity.SceneCopyLog;
+import com.fdkankan.manage_jp.mapper.ISceneCopyLogMapper;
+import com.fdkankan.manage_jp.service.ISceneCopyLogService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-23
+ */
+@Service
+public class SceneCopyLogServiceImpl extends ServiceImpl<ISceneCopyLogMapper, SceneCopyLog> implements ISceneCopyLogService {
+
+    @Override
+    public void saveByNum(String num, String newNum, Long userId) {
+        SceneCopyLog sceneCopyLog = new SceneCopyLog();
+        sceneCopyLog.setOldNum(num);
+        sceneCopyLog.setNewNum(newNum);
+        sceneCopyLog.setCopyUserId(userId);
+        this.save(sceneCopyLog);
+    }
+}

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

@@ -4,25 +4,22 @@ import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.fdkankan.common.constant.SceneSource;
-import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.manage_jp.common.ResultCode;
 import com.fdkankan.manage_jp.entity.*;
 import com.fdkankan.manage_jp.exception.BusinessException;
+import com.fdkankan.manage_jp.httpClient.service.LaserService;
 import com.fdkankan.manage_jp.mapper.IScenePlusMapper;
 import com.fdkankan.manage_jp.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.manage_jp.util.SceneResourcePath;
-import com.fdkankan.manage_jp.util.SnowflakeIdGenerator;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.io.File;
-import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * <p>
@@ -50,6 +47,10 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
     FYunFileServiceInterface fYunFileServiceInterface;
     @Autowired
     SceneCommonService sceneCommonService;
+    @Autowired
+    ISurveillanceService surveillanceService;
+    @Autowired
+    LaserService laserService;
 
     @Override
     public ScenePlus getByNum(String sceneNum) {
@@ -71,7 +72,7 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
     }
 
     @Override
-    public void copyScene(ScenePlus scenePlus) {
+    public ScenePlus copyScene(ScenePlus scenePlus) {
         if(scenePlus.getSceneStatus() !=-2){
             throw new BusinessException(ResultCode.SCENE_ERROR);
         }
@@ -130,6 +131,19 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
         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");
+        }
 
         try {
             //重新生成编辑页基础设置二维码
@@ -145,13 +159,19 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
 
             sceneCommonService.updateNasSceneJson(targetData,oldNum,newNum,oldSceneName,scenePlus.getTitle(),"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");
+            }
+
         }catch (Exception e){
             log.error("复制场景失败-V4-sceneNum:{},error:{}",oldNum,e);
             scenePlus.setSceneStatus(-1);
             this.updateById(scenePlus);
             throw new BusinessException(-1,"复制失败");
         }
-
+        return scenePlus;
     }
 
     private  void copyOssAndNas(String oldNum,String newNum){

+ 13 - 2
src/main/java/com/fdkankan/manage_jp/service/impl/SceneProServiceImpl.java

@@ -197,7 +197,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public void copyScene(ScenePro scenePro) {
+    public ScenePro copyScene(ScenePro scenePro) {
         if(scenePro.getStatus() !=-2){
             throw new BusinessException(ResultCode.SCENE_ERROR);
         }
@@ -233,6 +233,11 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         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}
@@ -266,6 +271,12 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             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");
+            }
+
         }catch ( Exception e){
             log.error("复制场景失败-sceneNum:{},error:{}",oldNum,e);
             scenePro.setStatus(-1);
@@ -273,7 +284,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             throw new BusinessException(-1,"复制失败");
         }
 
-
+        return scenePro;
     }
 
     private void copyOssAndNas(String oldNum ,String newNum ,String sourcePath,String targetPath){

+ 20 - 0
src/main/java/com/fdkankan/manage_jp/service/impl/SurveillanceServiceImpl.java

@@ -0,0 +1,20 @@
+package com.fdkankan.manage_jp.service.impl;
+
+import com.fdkankan.manage_jp.entity.Surveillance;
+import com.fdkankan.manage_jp.mapper.ISurveillanceMapper;
+import com.fdkankan.manage_jp.service.ISurveillanceService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 监控推拉流信息 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-23
+ */
+@Service
+public class SurveillanceServiceImpl extends ServiceImpl<ISurveillanceMapper, Surveillance> implements ISurveillanceService {
+
+}

+ 5 - 0
src/main/resources/mapper/manage_jp/SceneCopyLogMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fdkankan.manage_jp.mapper.ISceneCopyLogMapper">
+
+</mapper>

+ 5 - 0
src/main/resources/mapper/manage_jp/SurveillanceMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fdkankan.manage_jp.mapper.ISurveillanceMapper">
+
+</mapper>