Переглянути джерело

解冻场景 app重新上传需要解冻

dsx 2 роки тому
батько
коміт
c76f632b00

+ 5 - 0
src/main/java/com/fdkankan/contro/mq/service/impl/BuildSceneServiceImpl.java

@@ -131,6 +131,8 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
     private ICommonService commonService;
     @Autowired
     private ISceneBuildProcessLogService sceneBuildProcessLogService;
+    @Autowired
+    private ISceneColdStorageService sceneColdStorageService;
 
     @Override
     public void buildScenePre(BuildSceneCallMessage message) throws Exception{
@@ -152,6 +154,9 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
                 }
             }
 
+            //用户相机重新全量上传,需要解冻结
+            sceneColdStorageService.unfreeze(num, "用户相机重新全量上传", message.getPath());
+
             //根据相机类型,组装资源路径
             //下载资源到本地
             this.downLoadSource(message, message.getPath());

+ 6 - 0
src/main/java/com/fdkankan/contro/mq/service/impl/BuildV3SceneServiceImpl.java

@@ -102,6 +102,9 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
     @Autowired
     private ISceneProEditService sceneProEditService;
 
+    @Autowired
+    private ISceneColdStorageService sceneColdStorageService;
+
     @Override
     public void buildScenePre(BuildSceneCallMessage message) {
         boolean success = false;
@@ -113,6 +116,9 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
                 FileUtils.deleteDirectory(message.getPath() + File.separator + "results");
             }
 
+            //用户相机重新全量上传,需要解冻结
+            sceneColdStorageService.unfreeze(num, "用户相机重新全量上传", message.getPath());
+
             //根据相机类型,组装资源路径
             //下载资源到本地
             this.downLoadSource(message, message.getPath());

+ 4 - 0
src/main/java/com/fdkankan/contro/service/ISceneColdStorageService.java

@@ -13,4 +13,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface ISceneColdStorageService extends IService<SceneColdStorage> {
 
+    void unfreeze(String num, String reason, String dataSource);
+
+    SceneColdStorage getByNum(String num);
+
 }

+ 43 - 0
src/main/java/com/fdkankan/contro/service/impl/SceneColdStorageServiceImpl.java

@@ -1,11 +1,21 @@
 package com.fdkankan.contro.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.fdkankan.common.constant.CommonStatus;
+import com.fdkankan.common.constant.CommonSuccessStatus;
 import com.fdkankan.contro.entity.SceneColdStorage;
+import com.fdkankan.contro.entity.SceneColdStorageLog;
 import com.fdkankan.contro.mapper.ISceneColdStorageMapper;
+import com.fdkankan.contro.service.ISceneColdStorageLogService;
 import com.fdkankan.contro.service.ISceneColdStorageService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.model.utils.SceneUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Objects;
+
 /**
  * <p>
  * 场景封存状态表 服务实现类
@@ -17,4 +27,37 @@ import org.springframework.stereotype.Service;
 @Service
 public class SceneColdStorageServiceImpl extends ServiceImpl<ISceneColdStorageMapper, SceneColdStorage> implements ISceneColdStorageService {
 
+    @Autowired
+    private ISceneColdStorageLogService sceneColdStorageLogService;
+
+    @Override
+    public void unfreeze(String num, String reason, String dataSource) {
+
+        //修改封存状态
+        SceneColdStorage sceneColdStorage = this.getByNum(num);
+        if(Objects.isNull(sceneColdStorage) || sceneColdStorage.getState() == 2){//如果是解冻状态就无需再记录解冻日志
+            return;
+        }
+        if(Objects.isNull(sceneColdStorage)){
+            sceneColdStorage = new SceneColdStorage();
+        }
+        sceneColdStorage.setState(2);
+        this.saveOrUpdate(sceneColdStorage);
+
+        //插入日志表
+        SceneColdStorageLog sceneColdStorageLog = new SceneColdStorageLog();
+        sceneColdStorageLog.setNum(num);
+        sceneColdStorageLog.setPath(SceneUtil.getHomePath(dataSource));
+        sceneColdStorageLog.setState(CommonSuccessStatus.SUCCESS.code());
+        sceneColdStorageLog.setReason(reason);
+        sceneColdStorageLog.setType(2);
+        sceneColdStorageLogService.save(sceneColdStorageLog);
+
+
+    }
+
+    @Override
+    public SceneColdStorage getByNum(String num) {
+        return this.getOne(new LambdaQueryWrapper<SceneColdStorage>().eq(SceneColdStorage::getNum, num));
+    }
 }

+ 5 - 0
src/main/java/com/fdkankan/contro/service/impl/SceneFileBuildServiceImpl.java

@@ -680,6 +680,11 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
                 throw new BusinessException(CameraConstant.FAILURE_6003);
             }
             if (!ObjectUtils.isEmpty(company.getSceneVersion()) && company.getSceneVersion().equals("V3")) {
+                //如果是app重新上传,需要解冻结
+                if(Objects.nonNull(scenePro)){
+                    sceneColdStorageService.unfreeze(scenePro.getNum(), "用户相机重新全量上传", scenePro.getDataSource());
+                }
+
                 callV3Service(preParams, api);
                 return Boolean.TRUE;
             }