Bläddra i källkod

激光场景设置showMap为0

tianboguang 2 år sedan
förälder
incheckning
632c7f2f5a

+ 19 - 2
src/main/java/com/fdkankan/contro/mq/service/impl/BuildObjServiceImpl.java

@@ -1,8 +1,10 @@
 package com.fdkankan.contro.mq.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.contro.bean.SceneJsonBean;
 import com.fdkankan.contro.entity.*;
 import com.fdkankan.contro.mq.service.IBuildSceneService;
 import com.fdkankan.contro.service.*;
@@ -15,6 +17,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;
@@ -71,6 +75,9 @@ public class BuildObjServiceImpl implements IBuildSceneService {
     @Autowired
     private ISceneProEditService sceneProEditService;
 
+    @Autowired
+    private RedisUtil redisUtil;
+
     @Override
     public void buildScenePre(BuildSceneCallMessage message) {
         boolean success = false;
@@ -211,8 +218,18 @@ public class BuildObjServiceImpl implements IBuildSceneService {
                     .set(ScenePlus::getSceneStatus, -2).eq(ScenePlus::getNum, projectNum);
             scenePlusService.update(plusUpdateWrapper);
             SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
-            sceneEditControlsService.update(new LambdaUpdateWrapper<SceneEditControls>().set(SceneEditControls::getShowMap,0)
-                    .eq(SceneEditControls::getEditInfoId,sceneEditInfo.getId()));
+            SceneEditControls sceneEditControls = sceneEditControlsService.getBySceneEditId(sceneEditInfo.getId());
+            sceneEditControls.setShowMap(0);
+            sceneEditControlsService.updateById(sceneEditControls);
+
+            // 更新scene.json
+            String dataViewPath = String.format(UploadFilePath.DATA_VIEW_PATH, projectNum);
+            SceneJsonBean jsonObject =JSONObject.parseObject(fYunFileService.getFileContent(dataViewPath + "scene.json"), SceneJsonBean.class);
+            jsonObject.getControls().setShowMap(0);
+            String jsonString = JSON.toJSONString(jsonObject);
+            fYunFileService.uploadFile(jsonString.getBytes(), dataViewPath + "scene.json");
+            //更新缓存
+            redisUtil.set(String.format(RedisKey.SCENE_JSON, projectNum), jsonString);
         }
 
         // 如果未升级V4,则升级V4

+ 12 - 9
src/main/java/com/fdkankan/contro/mq/service/impl/BuildSceneServiceImpl.java

@@ -256,15 +256,6 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
             CameraDetail cameraDetail = cameraDetailService.getByCameraId(scenePlus.getCameraId());
             Company company = !ObjectUtils.isEmpty(cameraDetail.getCompanyId()) ? companyService.getById(cameraDetail.getCompanyId()) : null;
 
-            this.writeSceneJson(sceneCode, videosJson,sceneEditInfo, sceneEditInfoExt, sceneEditControls, scenePlus,scenePlusExt,company);
-
-            createQrCode(sceneCode, scenePlusExt, ObjectUtils.isEmpty(company) ? null : company.getQrLogo());
-
-            //计算成功,通知APP
-            Integer pushChannel = fdageData.getInteger("pushChannel");
-            String pushToken = fdageData.getString("pushToken");
-            this.pushMsgToApp(pushChannel,pushToken, cameraType, scenePlus.getTitle(), scenePlusExt.getWebSite());
-
             if (cameraType == 14) {
                 // 如果是激光场景,上传全景文件到V3路径,激光系统上线后,可不用上传
                 String imagePath = String.format(UploadFilePath.IMG_VIEW_PATH, sceneCode);
@@ -276,8 +267,20 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
                 fdkkLaserService.syncBuildResult(scenePlus.getNum(), scenePlusExt.getDataSource(),scenePlus.getCreateTime());
                 sceneEditControlsService.update(new LambdaUpdateWrapper<SceneEditControls>().set(SceneEditControls::getShowMap,0)
                         .eq(SceneEditControls::getEditInfoId,sceneEditInfo.getId()));
+                sceneEditControls.setShowMap(0);
             }
 
+            this.writeSceneJson(sceneCode, videosJson,sceneEditInfo, sceneEditInfoExt, sceneEditControls, scenePlus,scenePlusExt,company);
+
+            createQrCode(sceneCode, scenePlusExt, ObjectUtils.isEmpty(company) ? null : company.getQrLogo());
+
+            //计算成功,通知APP
+            Integer pushChannel = fdageData.getInteger("pushChannel");
+            String pushToken = fdageData.getString("pushToken");
+            this.pushMsgToApp(pushChannel,pushToken, cameraType, scenePlus.getTitle(), scenePlusExt.getWebSite());
+
+
+
             CreateObjUtil.deleteFile(path.replace(ConstantFilePath.BUILD_MODEL_PATH, "/") + "/capture");
 
             log.info("场景计算结果处理结束,场景码:{}", sceneCode);