Explorar o código

激光v4场景生成obj,变更modelKind

dsx %!s(int64=2) %!d(string=hai) anos
pai
achega
3ad6b616e2

+ 25 - 0
src/main/java/com/fdkankan/contro/mq/service/impl/BuildObjServiceImpl.java

@@ -3,6 +3,7 @@ package com.fdkankan.contro.mq.service.impl;
 import cn.hutool.core.exceptions.ExceptionUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.common.constant.CommonOperStatus;
@@ -11,6 +12,7 @@ import com.fdkankan.common.constant.ModelKind;
 import com.fdkankan.common.constant.SceneSource;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.contro.entity.ScenePlus;
+import com.fdkankan.contro.entity.ScenePlusExt;
 import com.fdkankan.contro.entity.ScenePro;
 import com.fdkankan.contro.entity.SceneProEdit;
 import com.fdkankan.contro.mq.service.IBuildSceneService;
@@ -26,6 +28,8 @@ import com.fdkankan.model.utils.CreateObjUtil;
 import com.fdkankan.rabbitmq.bean.BuildSceneCallMessage;
 import com.fdkankan.rabbitmq.bean.BuildSceneResultMqMessage;
 import com.fdkankan.rabbitmq.util.RabbitMqProducer;
+import com.fdkankan.redis.constant.RedisKey;
+import com.fdkankan.redis.util.RedisUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -93,6 +97,11 @@ public class BuildObjServiceImpl implements IBuildSceneService {
     @Autowired
     private ICommonService commonService;
 
+    @Autowired
+    private IScenePlusExtService scenePlusExtService;
+    @Autowired
+    private RedisUtil redisUtil;
+
     @Override
     public void buildScenePre(BuildSceneCallMessage message) throws Exception{
         boolean success = false;
@@ -258,6 +267,22 @@ public class BuildObjServiceImpl implements IBuildSceneService {
                 LambdaUpdateWrapper<ScenePlus> plusUpdateWrapper = new LambdaUpdateWrapper<ScenePlus>()
                         .set(ScenePlus::getSceneStatus, -2).eq(ScenePlus::getNum, projectNum);
                 scenePlusService.update(plusUpdateWrapper);
+
+                if(this.modelKind.equals(ModelKind.THREE_D_TILE.code())
+                        && CollUtil.isNotEmpty(sdTilesSceneSourceList)
+                        && sdTilesSceneSourceList.contains(SceneSource.JG.code())){
+                    ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+                    scenePlusExt.setModelKind(ModelKind.THREE_D_TILE.code());
+
+                    String sceneJsonStr = fYunFileService.getFileContent(String.format(UploadFilePath.DATA_VIEW_PATH, projectNum) + "scene.json");
+                    if(StrUtil.isNotEmpty(sceneJsonStr)){
+                        JSONObject sceneJson = JSON.parseObject(sceneJsonStr);
+                        sceneJson.put("modelKind", ModelKind.THREE_D_TILE.code());
+                        fYunFileService.uploadFile(sceneJson.toJSONString().getBytes(), String.format(UploadFilePath.DATA_VIEW_PATH, projectNum) + "scene.json");
+                        redisUtil.del(String.format(RedisKey.SCENE_JSON, projectNum));
+                    }
+
+                }
             }
 
             // 如果未升级V4,则升级V4