Explorar el Código

场景迁移日志,迁移中标识为计算中

lyhzzz hace 2 años
padre
commit
441953a401

+ 21 - 0
src/main/java/com/fdkankan/manage/controller/SceneMoveLogController.java

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

+ 67 - 0
src/main/java/com/fdkankan/manage/entity/SceneMoveLog.java

@@ -0,0 +1,67 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+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-03-02
+ */
+@Getter
+@Setter
+@TableName("t_scene_move_log")
+public class SceneMoveLog implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 相机迁移日志表
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 场景码
+     */
+    @TableField("num")
+    private String num;
+
+    /**
+     * 旧相机sn
+     */
+    @TableField("old_sn_code")
+    private String oldSnCode;
+
+    /**
+     * 新相机sn
+     */
+    @TableField("new_sn_code")
+    private String newSnCode;
+
+    @TableField("old_data_source")
+    private String oldDataSource;
+
+    @TableField("new_data_source")
+    private String newDataSource;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+    @TableField("data_source_bak")
+    private String dataSourceBak;
+
+
+}

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

@@ -18,8 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir");
 
         generate(path,"manage", getTables(new String[]{
-                "t_camera_increment_log",
-                "t_mq_backup",
+                "t_scene_move_log",
         }));
 
 //        generate(path,"goods", getTables(new String[]{

+ 18 - 0
src/main/java/com/fdkankan/manage/mapper/ISceneMoveLogMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.SceneMoveLog;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-02
+ */
+@Mapper
+public interface ISceneMoveLogMapper extends BaseMapper<SceneMoveLog> {
+
+}

+ 19 - 0
src/main/java/com/fdkankan/manage/service/ISceneMoveLogService.java

@@ -0,0 +1,19 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.entity.SceneMoveLog;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.manage.entity.ScenePlus;
+import com.fdkankan.manage.entity.ScenePro;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-02
+ */
+public interface ISceneMoveLogService extends IService<SceneMoveLog> {
+
+    void saveLog(ScenePro scenePro, ScenePlus scenePlus, String oldSnCode, String newSnCode, String dataSource, String newDataSource, String fdagebak);
+}

+ 35 - 0
src/main/java/com/fdkankan/manage/service/impl/SceneMoveLogServiceImpl.java

@@ -0,0 +1,35 @@
+package com.fdkankan.manage.service.impl;
+import java.util.Date;
+
+import com.fdkankan.manage.entity.SceneMoveLog;
+import com.fdkankan.manage.entity.ScenePlus;
+import com.fdkankan.manage.entity.ScenePro;
+import com.fdkankan.manage.mapper.ISceneMoveLogMapper;
+import com.fdkankan.manage.service.ISceneMoveLogService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-02
+ */
+@Service
+public class SceneMoveLogServiceImpl extends ServiceImpl<ISceneMoveLogMapper, SceneMoveLog> implements ISceneMoveLogService {
+
+    @Override
+    public void saveLog(ScenePro scenePro, ScenePlus scenePlus, String oldSnCode, String newSnCode, String dataSource, String newDataSource, String fdagebak) {
+        String num = scenePro == null ? scenePlus.getNum() : scenePro.getNum();
+        SceneMoveLog moveLog = new SceneMoveLog();
+        moveLog.setNum(num);
+        moveLog.setOldSnCode(oldSnCode);
+        moveLog.setNewSnCode(newSnCode);
+        moveLog.setOldDataSource(dataSource);
+        moveLog.setNewDataSource(newDataSource);
+        moveLog.setDataSourceBak(fdagebak);
+        this.save(moveLog);
+    }
+}

+ 32 - 10
src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java

@@ -81,6 +81,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     IFolderSceneService folderSceneService;
     @Autowired
     ISceneBuildProcessLogService sceneBuildProcessLogService;
+    @Autowired
+    ISceneMoveLogService sceneMoveLogService;
 
 
     @Override
@@ -273,10 +275,10 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         pluWr.in(ScenePlus::getId,lockedIds);
         List<ScenePlus> plusList = scenePlusService.list(pluWr);
         for (ScenePro scenePro : proList) {
-            this.updateOssStatus(String.format(OssPath.v3_statusPath,scenePro.getNum()),payStatus);
+            this.updateOssStatus(String.format(OssPath.v3_statusPath,scenePro.getNum()),payStatus,"payStatus");
         }
         for (ScenePlus scenePlus : plusList) {
-            this.updateOssStatus(String.format(OssPath.v4_statusPath,scenePlus.getNum()),payStatus);
+            this.updateOssStatus(String.format(OssPath.v4_statusPath,scenePlus.getNum()),payStatus,"payStatus");
         }
 
     }
@@ -284,7 +286,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     /**
      * 从oss中获取文件,并重写,上传替换
      */
-    private void updateOssStatus(String path,Integer payStatus) {
+    private void updateOssStatus(String path,Integer payStatus,String updateStatus) {
         String localPath = String.format(OssPath.localStatusPath, path);
         try {
             if(!fYunFileServiceInterface.fileExist(path)){
@@ -295,7 +297,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                 return;
             }
             JSONObject jsonObject = JSONObject.parseObject(data);
-            jsonObject.put("payStatus",payStatus);
+            jsonObject.put(updateStatus,payStatus);
             String json = JSONUtil.toJsonStr(jsonObject);
             FileUtils.writeFile(localPath,json);
             log.info("updateOssStatus--localPath:{},ossPath:{}",localPath,path);
@@ -430,8 +432,10 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             wrapper.eq(ScenePro::getId,scenePro.getId());
             wrapper.set(ScenePro::getCameraId,camera.getId());
             wrapper.set(ScenePro::getUserId,cameraDetail.getUserId());
+            wrapper.set(ScenePro::getStatus,0);
             this.update(wrapper);
             //场景迁移到另外的相机清除本身在的文件夹
+            this.updateOssStatus(String.format(OssPath.v3_statusPath,scenePro.getNum()),0,"status");
             folderSceneService.delBySceneId(scenePro.getId());
         }
         if(scenePlus!=null){
@@ -439,7 +443,9 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             wrapper.eq(ScenePlus::getId,scenePlus.getId());
             wrapper.set(ScenePlus::getCameraId,camera.getId());
             wrapper.set(ScenePlus::getUserId,cameraDetail.getUserId());
+            wrapper.set(ScenePlus::getSceneStatus,0);
             scenePlusService.update(wrapper);
+            this.updateOssStatus(String.format(OssPath.v4_statusPath,scenePlus.getNum()),0,"status");
             folderSceneService.delBySceneId(scenePlus.getId());
         }
         if(cameraDetail.getType() == 10){       //深时场景
@@ -475,25 +481,26 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             newSnCode = newSnCode.toLowerCase();
             String fdagePaht =  dataSource.replace("/mnt/data","home") +"/data.fdage";
             localPathFdage = String.format(OssPath.localFdagePath,fdagePaht);
-
             String fileContent = fYunFileServiceInterface.getFileContent(fdagePaht);
-
+            String fdagebak = fileContent;
             JSONObject jsonObject = updateFdageJson(JSONObject.parseObject(fileContent), newSnCode);
             FileUtils.writeFile(localPathFdage ,JSONObject.toJSONString(jsonObject));
 
             String oldFdagePaht =  dataSource.replace("/mnt/data","home") ;
             String[] split = oldFdagePaht.split("/");
             String newFdagePath = split[0] +"/"+ newSnCode +"/"+ split[2] +"/"+ newSnCode +"_" + split[3].split("_")[1];
+            String delPath = null;
             if(!oldFdagePaht.equals(newFdagePath)){
                 log.info("updateFdageCopy--复制oss资源--oldFdagePaht:{},newFdagePath:{}",oldFdagePaht,newFdagePath);
                 fYunFileServiceInterface.copyFileInBucket(oldFdagePaht,newFdagePath);
-                fYunFileServiceInterface.deleteFolder(oldFdagePaht);
+                delPath = oldFdagePaht;
             }
-            fYunFileServiceInterface.copyFileInBucket(newFdagePath+"/data.fdage",newFdagePath+"/"+oldSnCode.toLowerCase()+"-"+newSnCode+"_"+Dateutils.getDate(new Date())+".data.fdage");
-            fYunFileServiceInterface.uploadFile(localPathFdage,newFdagePath+"/data.fdage");
-            log.info("updateFdage--localPathFdage:{},newFdagePath:{}",localPathFdage,newFdagePath);
             String newDataSource = newFdagePath.replace("home","/mnt/data");
             this.updateDataSource(scenePro,scenePlus,newDataSource);
+            if(delPath != null){
+                fYunFileServiceInterface.deleteFolder(oldFdagePaht);
+            }
+            sceneMoveLogService.saveLog(scenePro,scenePlus,oldSnCode,newSnCode,dataSource,newDataSource,fdagebak);
         }catch (Exception e){
             log.error("updateFdage-error:oldSnCode:{},newSnCode:{},dataSource:{}",oldSnCode,newSnCode,dataSource);
             log.error("updateFdage-error:",e);
@@ -502,6 +509,21 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             if(localPathFdage != null){
                 FileUtil.del(localPathFdage);
             }
+            if(scenePro!=null){
+                LambdaUpdateWrapper<ScenePro> wrapper = new LambdaUpdateWrapper<>();
+                wrapper.eq(ScenePro::getId,scenePro.getId());
+                wrapper.set(ScenePro::getStatus,-2);
+                this.update(wrapper);
+                this.updateOssStatus(String.format(OssPath.v3_statusPath,scenePro.getNum()),-2,"status");
+
+            }
+            if(scenePlus!=null){
+                LambdaUpdateWrapper<ScenePlus> wrapper = new LambdaUpdateWrapper<>();
+                wrapper.eq(ScenePlus::getId,scenePlus.getId());
+                wrapper.set(ScenePlus::getSceneStatus,-2);
+                scenePlusService.update(wrapper);
+                this.updateOssStatus(String.format(OssPath.v4_statusPath,scenePlus.getNum()),-2,"status");
+            }
         }
     }
 

+ 5 - 0
src/main/resources/mapper/manage/SceneMoveLogMapper.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.mapper.ISceneMoveLogMapper">
+
+</mapper>