Parcourir la source

常规看见场景推送mq到全景看看

dengsixing il y a 11 mois
Parent
commit
3748209c7a

+ 5 - 1
src/main/java/com/fdkankan/contro/mq/service/impl/BuildIntermitSceneServiceImpl.java

@@ -150,17 +150,21 @@ public class BuildIntermitSceneServiceImpl implements IBuildSceneService {
             fYunFileService.uploadFile(path + File.separator + "console.log", buildLogPath + "console.log");
             log.info("计算日志上传完成");
 
+            JSONObject fdageData = getFdageData(path + File.separator + "capture" +File.separator+"data.fdage");
+
             if (!message.getBuildSuccess()) {
                 log.error("建模失败,修改状态为失败状态");
                 scenePlusService.update(new LambdaUpdateWrapper<ScenePlus>()
                         .set(ScenePlus::getSceneStatus, SceneStatus.FAILD.code())
                         .eq(ScenePlus::getNum, sceneCode));
 
+                //推送到全景看看
+                intermitSceneService.sendMq(sceneCode, fdageData, CommonSuccessStatus.FAIL.code());
+
                 // 发送钉钉消息,计算失败
                 buildSceneDTService.handModelFail("计算失败", message.getPath(), sceneCode, message.getHostName());
                 return;
             }
-            JSONObject fdageData = getFdageData(path + File.separator + "capture" +File.separator+"data.fdage");
 
             ScenePlus scenePlus = scenePlusService.getScenePlusByNum(sceneCode);
 

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

@@ -140,6 +140,8 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
     private ISceneBuildProcessLogService sceneBuildProcessLogService;
     @Autowired
     private ISceneColdStorageService sceneColdStorageService;
+    @Autowired
+    private IWbService wbService;
 
 
     @Override
@@ -257,6 +259,8 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
                         .set(ScenePlus::getSceneStatus, SceneStatus.FAILD.code())
                         .eq(ScenePlus::getNum, sceneCode));
 
+                wbService.sendMq(sceneCode, CommonSuccessStatus.FAIL.code());
+
                 // 发送钉钉消息,计算失败
                 buildSceneDTService.handModelFail("计算失败", message.getPath(), sceneCode, message.getHostName());
                 return;
@@ -390,6 +394,8 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
                 commonService.sendEmail(sceneCode);
             }
 
+            wbService.sendMq(sceneCode, CommonSuccessStatus.FAIL.code());
+
             log.info("场景计算结果处理结束,场景码:{}", sceneCode);
 
         }catch (Exception e){

+ 7 - 0
src/main/java/com/fdkankan/contro/service/IWbService.java

@@ -0,0 +1,7 @@
+package com.fdkankan.contro.service;
+
+public interface IWbService {
+
+    void sendMq(String num, Integer status);
+
+}

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

@@ -199,6 +199,8 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
     private ISceneRebuildLogService sceneRebuildLogService;
     @Autowired
     private ISceneUploadCountService sceneUploadCountService;
+    @Autowired
+    private IWbService wbService;
 
     @Override
     public SceneFileBuild findByFileId(String fileId) {
@@ -465,6 +467,10 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             intermitSceneService.sendMq(scenePlusVO.getNum(), jsonObject, CommonSuccessStatus.WAITING.code());
             rabbitMqProducer.sendByWorkQueue(queueIntermitModelingPre, mqMessage);
         }else{
+            //如果是四普的看见相机场景,也需要推送全景vr
+            if(cameraType == 13 && cameraDetail.getCompanyId() == 26){
+                wbService.sendMq(sceneNum, CommonSuccessStatus.WAITING.code());
+            }
             rabbitMqProducer.sendByWorkQueue(queueModelingPre, mqMessage);
         }
 

+ 66 - 0
src/main/java/com/fdkankan/contro/service/impl/WbServiceImpl.java

@@ -0,0 +1,66 @@
+package com.fdkankan.contro.service.impl;
+
+import com.fdkankan.common.constant.SceneSource;
+import com.fdkankan.contro.entity.*;
+import com.fdkankan.contro.service.*;
+import com.fdkankan.rabbitmq.util.RabbitMqProducer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+@Slf4j
+@Service
+public class WbServiceImpl implements IWbService {
+
+    @Autowired
+    private RabbitMqProducer mqProducer;
+    @Autowired
+    private IScenePlusService scenePlusService;
+    @Autowired
+    private IScenePlusExtService scenePlusExtService;
+    @Autowired
+    private ICameraService cameraService;
+    @Autowired
+    private IUserService userService;
+    @Autowired
+    private ICameraDetailService cameraDetailService;
+
+    @Override
+    public void sendMq(String num, Integer status) {
+        try {
+            ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
+            ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+            Camera camera = cameraService.getById(scenePlus.getCameraId());
+            CameraDetail cameraDetail = cameraDetailService.getByCameraId(camera.getId());
+            if(Objects.isNull(cameraDetail.getCompanyId()) || cameraDetail.getCompanyId() != 26 || scenePlus.getSceneSource() != SceneSource.ZT.code().intValue()){
+                return;
+            }
+            String phoneNum = null;
+            if(Objects.nonNull(scenePlus.getUserId())){
+                SSOUser user = userService.getSSOUserByUserId(scenePlus.getUserId());
+                phoneNum = user.getUserName();
+            }
+            Map<String, Object> params = new HashMap<>();
+            params.put("sceneCode", num);
+            params.put("location", scenePlusExt.getLocation());
+            params.put("sceneSource", scenePlus.getSceneSource());
+            params.put("algorithmTime", scenePlusExt.getAlgorithmTime());
+            params.put("createTime", scenePlus.getCreateTime());
+            params.put("phoneNum", phoneNum);
+            params.put("userId", scenePlus.getUserId());
+            params.put("snCode", camera.getSnCode());
+            params.put("status", status);
+            params.put("sceneName", scenePlus.getTitle());
+            params.put("shootCount", scenePlusExt.getShootCount());
+            mqProducer.sendByWorkQueue("relics-init-queue", params);
+        }catch (Exception e){
+            log.error("发送看见场景到全景看看失败, num:{}", num, e);
+        }
+
+    }
+}