Quellcode durchsuchen

Merge branch 'feature-场景看见场景推送消息至文保系统-20240912' into release

# Conflicts:
#	src/main/java/com/fdkankan/contro/service/impl/SceneFileBuildServiceImpl.java
dengsixing vor 10 Monaten
Ursprung
Commit
177000a680

+ 1 - 1
pom.xml

@@ -216,4 +216,4 @@
   </build>
 
 
-</project>
+</project>

+ 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

@@ -134,6 +134,8 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
     private ISceneBuildProcessLogService sceneBuildProcessLogService;
     @Autowired
     private ISceneColdStorageService sceneColdStorageService;
+    @Autowired
+    private IWbService wbService;
 
 
     @Override
@@ -251,6 +253,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;
@@ -386,6 +390,8 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
                 commonService.sendEmail(sceneCode, "standar");
             }
 
+            wbService.sendMq(sceneCode, CommonSuccessStatus.SUCCESS.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);
+
+}

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

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

+ 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);
+        }
+
+    }
+}