Просмотр исходного кода

Merge branch 'release-重定位绑定关系记录' into test

# Conflicts:
#	src/main/java/com/fdkankan/contro/generate/AutoGenerate.java
dengsixing 1 месяц назад
Родитель
Сommit
91b5d482b3

+ 21 - 0
src/main/java/com/fdkankan/contro/controller/RelocationBindController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.contro.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 重定位场景绑定关系表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2025-11-12
+ */
+@RestController
+@RequestMapping("/contro/relocaltionBind")
+public class RelocationBindController {
+
+}
+

+ 57 - 0
src/main/java/com/fdkankan/contro/entity/RelocationBind.java

@@ -0,0 +1,57 @@
+package com.fdkankan.contro.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 2025-11-12
+ */
+@Getter
+@Setter
+@TableName("t_relocation_bind")
+public class RelocationBind implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 重定位场景码
+     */
+    @TableField("main_num")
+    private String mainNum;
+
+    @TableField("main_uuid")
+    private String mainUuid;
+
+    /**
+     * 全景图场景码
+     */
+    @TableField("pan_num")
+    private String panNum;
+
+    @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/contro/generate/AutoGenerate.java

@@ -17,7 +17,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir");
 
         generate(path,"contro", getTables(new String[]{
-                "t_app_camera_fail_log"
+                "t_relocaltion_bind"
         }));
 
 //        generate(path,"goods", getTables(new String[]{

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

@@ -0,0 +1,18 @@
+package com.fdkankan.contro.mapper;
+
+import com.fdkankan.contro.entity.RelocationBind;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 重定位场景绑定关系表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-11-12
+ */
+@Mapper
+public interface IRelocationBindMapper extends BaseMapper<RelocationBind> {
+
+}

+ 13 - 0
src/main/java/com/fdkankan/contro/schedule/ScheduleJob.java

@@ -1,6 +1,7 @@
 package com.fdkankan.contro.schedule;
 
 import com.fdkankan.contro.service.IRelocationBatchService;
+import com.fdkankan.contro.service.IRelocationBindService;
 import com.fdkankan.contro.service.IRelocationInitService;
 import com.fdkankan.contro.service.IScene3dNumService;
 import lombok.extern.log4j.Log4j2;
@@ -18,6 +19,8 @@ public class ScheduleJob {
     private IRelocationBatchService relocationBatchService;
     @Autowired
     private IRelocationInitService relocationInitService;
+    @Autowired
+    private IRelocationBindService relocationBindService;
 
 
     /**
@@ -47,4 +50,14 @@ public class ScheduleJob {
         relocationInitService.relocationInit();
         log.info("重定位初始化调度结束");
     }
+
+    /**
+     * 重定位绑定关系初始化
+     */
+    @Scheduled(fixedDelay = 5*60*1000, initialDelay = 1000)
+    public void relocationBind() {
+        log.info("重定位绑定关系开始");
+        relocationBindService.relocationBind();
+        log.info("重定位绑定关系结束");
+    }
 }

+ 19 - 0
src/main/java/com/fdkankan/contro/service/IRelocationBindService.java

@@ -0,0 +1,19 @@
+package com.fdkankan.contro.service;
+
+import com.fdkankan.contro.entity.RelocationBind;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 重定位场景绑定关系表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2025-11-12
+ */
+public interface IRelocationBindService extends IService<RelocationBind> {
+
+    RelocationBind getByPanNum(String panNum);
+
+    void relocationBind();
+}

+ 51 - 0
src/main/java/com/fdkankan/contro/service/impl/RelocationBindServiceImpl.java

@@ -0,0 +1,51 @@
+package com.fdkankan.contro.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import com.fdkankan.contro.entity.RelocationBind;
+import com.fdkankan.contro.entity.ScenePlus;
+import com.fdkankan.contro.mapper.IRelocationBindMapper;
+import com.fdkankan.contro.service.IRelocationBindService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.contro.service.IScenePlusService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 重定位场景绑定关系表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2025-11-12
+ */
+@Service
+public class RelocationBindServiceImpl extends ServiceImpl<IRelocationBindMapper, RelocationBind> implements IRelocationBindService {
+
+    @Autowired
+    private IScenePlusService scenePlusService;
+
+
+    @Override
+    public RelocationBind getByPanNum(String panNum) {
+        return lambdaQuery().eq(RelocationBind::getPanNum, panNum).one();
+    }
+
+    @Override
+    public void relocationBind() {
+        List<RelocationBind> list = lambdaQuery().isNull(RelocationBind::getMainNum).list();
+        if(CollUtil.isEmpty(list)){
+            return;
+        }
+        list.stream().forEach(v->{
+            ScenePlus scenePlus = scenePlusService.getByFileId(v.getMainUuid());
+            if(scenePlus != null){
+                v.setMainNum(scenePlus.getNum());
+                v.setUpdateTime(null);
+                this.updateById(v);
+            }
+        });
+
+    }
+}

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

@@ -206,6 +206,8 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
     private ISceneUploadCountService sceneUploadCountService;
     @Autowired
     private IWbService wbService;
+    @Autowired
+    private IRelocationBindService relocationBindService;
 
     @Override
     public SceneFileBuild findByFileId(String fileId) {
@@ -501,6 +503,8 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             mqMessage.getExt().put("deleteExtras", true);
             mqMessage.getExt().put("keepTitle", 0);
             if (jsonObject.getIntValue("location") == 7) {
+                //保存重定位绑定关系
+                this.saveRelocationBind(scenePlusVO.getNum(), jsonObject);
                 //发送到全景看看进行初始化
                 intermitSceneService.sendMq(scenePlusVO.getNum(), jsonObject, CommonSuccessStatus.WAITING.code());
                 rabbitMqProducer.sendByWorkQueue(queueIntermitModelingPre, mqMessage);
@@ -521,6 +525,25 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         return scenePlusVO;
     }
 
+    private void saveRelocationBind(String panNum, JSONObject fdageData){
+        String sxUuid = fdageData.getString("parentScene");
+        if(StrUtil.isEmpty(sxUuid)){
+            return;
+        }
+        ScenePlus scenePlus = scenePlusService.getByFileId(sxUuid);
+        RelocationBind relocationBind = relocationBindService.getByPanNum(panNum);
+        if(relocationBind == null){
+            relocationBind = new RelocationBind();
+            relocationBind.setPanNum(panNum);
+        }
+        relocationBind.setMainUuid(sxUuid);
+        relocationBind.setUpdateTime(null);
+        if(scenePlus != null){
+            relocationBind.setMainNum(scenePlus.getNum());
+        }
+        relocationBindService.saveOrUpdate(relocationBind);
+    }
+
     public ScenePlusVO buildV3Scene(ScenePro scenePro, String fileId, String prefix, JSONObject jsonObject, String buildType, long cameraType) throws Exception {
 
         sceneCopyLogService.checkCanBuild(scenePro.getNum());

+ 5 - 0
src/main/resources/mapper/contro/IRelocationBindMapper.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.contro.mapper.IRelocationBindMapper">
+
+</mapper>