Explorar o código

添加场景上传zip流程记录

tianboguang %!s(int64=2) %!d(string=hai) anos
pai
achega
4862eee32a

+ 27 - 0
src/main/java/com/fdkankan/contro/controller/SceneFileController.java

@@ -8,9 +8,11 @@ import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.common.util.SnowflakeIdGenerator;
 import com.fdkankan.contro.constant.RedisConstants;
 import com.fdkankan.contro.entity.SceneFileBuild;
+import com.fdkankan.contro.entity.ScenePre;
 import com.fdkankan.contro.entity.User;
 import com.fdkankan.contro.service.ISceneFileBuildService;
 import com.fdkankan.contro.service.IScenePlusService;
+import com.fdkankan.contro.service.IScenePreService;
 import com.fdkankan.contro.service.IUserService;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.model.constants.ConstantFilePath;
@@ -56,6 +58,9 @@ public class SceneFileController{
     @Autowired
     private IScenePlusService scenePlusService;
 
+    @Autowired
+    private IScenePreService scenePreService;
+
     @Value("${nas.dir.base:/mnt}")
     private String nasBasePath;
 
@@ -101,6 +106,8 @@ public class SceneFileController{
             throw new BusinessException(ErrorCode.PARAM_ERROR,"config.json 文件有误!");
         }
 
+        ScenePre scenePre = new ScenePre();
+
         // 检测是否有生成
         String fileId = getFileIdByFolderName(folderName);
         String subFolder = sncode.concat(File.separator).concat(fileId).concat(File.separator).concat(folderName);
@@ -108,6 +115,14 @@ public class SceneFileController{
         String dataSource = ConstantFilePath.BUILD_MODEL_PATH.concat(subFolder);
         log.info("dataSource 为:{}", dataSource);
 
+        scenePre.setFileId(fileId);
+        scenePre.setUsername(userName);
+        scenePre.setZipPath(filePath);
+        scenePre.setCreateTime(new Date());
+        scenePre.setUpdateTime(new Date());
+        scenePre.setStatus(0);
+        scenePreService.save(scenePre);
+
         // 异步解压资源文件上传
         String finalFilePath = filePath;
         CompletableFuture.runAsync(() -> {
@@ -122,14 +137,26 @@ public class SceneFileController{
                     ZipUtil.unzip(finalFilePath.concat(zipFileName), finalFilePath);
                 }
 
+                scenePre.setStatus(1);
+                scenePre.setUpdateTime(new Date());
+                scenePreService.updateById(scenePre);
                 log.info("异步开始上传文件");
                 // 上传oaas
                 fYunFileService.uploadFileByCommand(finalFilePath.concat(folderName), ConstantFilePath.OSS_PREFIX.concat(subFolder));
 
+                scenePre.setOssPath(ConstantFilePath.OSS_PREFIX.concat(subFolder));
+
+                scenePre.setStatus(2);
+                scenePre.setUpdateTime(new Date());
+                scenePreService.updateById(scenePre);
                 log.info("文件上传成功,开始通知计算");
                 // 通知计算
                 sceneFileBuildService.copyDataAndBuild(null, dataSource, "V4", user);
                 log.info("通知计算成功");
+
+                scenePre.setStatus(3);
+                scenePre.setUpdateTime(new Date());
+                scenePreService.updateById(scenePre);
             } catch (Exception e) {
                 e.printStackTrace();
                 log.error("上传失败", e);

+ 79 - 0
src/main/java/com/fdkankan/contro/entity/ScenePre.java

@@ -0,0 +1,79 @@
+package com.fdkankan.contro.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 场景主表
+ * </p>
+ *
+ * @author 
+ * @since 2022-03-16
+ */
+@Getter
+@Setter
+@TableName("t_scene_pre")
+public class ScenePre implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景压缩包路径
+     */
+    @TableField("zip_path")
+    private String zipPath;
+
+    /**
+     * 场景压缩包路径
+     */
+    @TableField("username")
+    private String username;
+
+    /**
+     * 场景文件标识符
+     */
+    @TableField("file_id")
+    private String fileId;
+
+    /**
+     * oss 路径
+     */
+    @TableField("oss_path")
+    private String ossPath;
+
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 0:解压中,1:上传中, 2数据准备中,3:处理完成
+     */
+    @TableField("status")
+    private int status;
+
+    /**
+     * A正常,I删除
+     */
+    @TableField("rec_status")
+    @TableLogic("A")
+    private String recStatus;
+
+
+}

+ 18 - 0
src/main/java/com/fdkankan/contro/mapper/IScenePreMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.contro.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.contro.entity.ScenePre;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 相机主表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2021-12-24
+ */
+@Mapper
+public interface IScenePreMapper extends BaseMapper<ScenePre> {
+
+}

+ 15 - 0
src/main/java/com/fdkankan/contro/service/IScenePreService.java

@@ -0,0 +1,15 @@
+package com.fdkankan.contro.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.contro.entity.ScenePre;
+
+/**
+ * <p>
+ * 相机主表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2021-12-24
+ */
+public interface IScenePreService extends IService<ScenePre> {
+}

+ 21 - 0
src/main/java/com/fdkankan/contro/service/impl/ScenePreServiceImpl.java

@@ -0,0 +1,21 @@
+package com.fdkankan.contro.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.contro.entity.ScenePre;
+import com.fdkankan.contro.mapper.IScenePreMapper;
+import com.fdkankan.contro.service.IScenePreService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 相机主表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2021-12-24
+ */
+@Service
+public class ScenePreServiceImpl extends ServiceImpl<IScenePreMapper, ScenePre> implements IScenePreService {
+
+
+}