浏览代码

计算流程失败 发送mq通知激光系统修改为计算失败状态

dengsixing 3 月之前
父节点
当前提交
8f8118c27c

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

@@ -2,9 +2,7 @@ package com.fdkankan.contro.mq.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.io.FileUtil;
-import cn.hutool.core.thread.ThreadUtil;
 import cn.hutool.core.util.StrUtil;
-import cn.hutool.core.util.ZipUtil;
 import cn.hutool.extra.qrcode.QrCodeUtil;
 import cn.hutool.extra.qrcode.QrConfig;
 import cn.hutool.http.ContentType;
@@ -12,7 +10,6 @@ import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.common.constant.*;
 import com.fdkankan.common.util.FileUtils;
@@ -39,7 +36,6 @@ import com.fdkankan.rabbitmq.util.RabbitMqProducer;
 import com.fdkankan.redis.util.RedisUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
-import org.apache.commons.lang3.StringUtils;
 import org.apache.http.HttpHeaders;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -49,10 +45,8 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.io.File;
 import java.io.IOException;
-import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.util.Map.Entry;
-import java.util.stream.Collectors;
 
 
 /**
@@ -221,6 +215,10 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
 
         }catch (Exception e){
             log.error("场景计算前置处理出错,num"+num, e);
+
+            //计算失败通知激光系统修改状态
+            fdkkLaserService.updateStatus(num, 1);
+
             buildSceneDTService.handBaseFail("场景计算资源准备异常!", message.getPath(), message.getSceneNum(), "计算控制服务器");
             throw e;
         }
@@ -262,6 +260,9 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
 
                 wbService.sendMq(sceneCode, CommonSuccessStatus.FAIL.code());
 
+                //计算失败通知激光系统修改状态
+                fdkkLaserService.updateStatus(sceneCode, 1);
+
                 // 发送钉钉消息,计算失败
                 buildSceneDTService.handModelFail("计算失败", message.getPath(), sceneCode, message.getHostName());
                 return;
@@ -410,6 +411,10 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
 
         }catch (Exception e){
             log.error("场景计算结果处理出错,num"+sceneCode, e);
+
+            //计算失败通知激光系统修改状态
+            fdkkLaserService.updateStatus(sceneCode, 1);
+
             buildSceneDTService.handBaseFail("场景计算结果处理出错!", message.getPath(), sceneCode, "计算控制服务器");
             throw e;
         } finally {

+ 2 - 2
src/main/java/com/fdkankan/contro/service/IFdkkLaserService.java

@@ -7,8 +7,6 @@ import com.fdkankan.contro.entity.ScenePlus;
 import com.fdkankan.contro.entity.ScenePlusExt;
 import com.fdkankan.contro.entity.ScenePro;
 
-import java.util.Date;
-
 /**
  * <p>
  * TODO
@@ -34,4 +32,6 @@ public interface IFdkkLaserService {
 
     void sendRebuildE57ToLaser(ScenePlus scenePlus, ScenePlusExt scenePlusExt);
 
+    void updateStatus(String num, Integer status);
+
 }

+ 20 - 0
src/main/java/com/fdkankan/contro/service/impl/IFdkkLaserServiceImpl.java

@@ -57,11 +57,17 @@ public class IFdkkLaserServiceImpl implements IFdkkLaserService {
 
     @Value("${4dkk.laserService.cloud-point-fyun-path}")
     private String cloudPointFyunPath;
+    @Value("${queue.application.laser.update-laser-scene-status:update-laser-scene-status}")
+    private String updateLaserSceneStatus;
     @Autowired
     private IUserService userService;
 
     @Resource
     private FYunFileServiceInterface fYunFileService;
+    @Autowired
+    private ICameraTypeService cameraTypeService;
+    @Autowired
+    private ICameraDetailService cameraDetailService;
 
     public void syncBuildResult(SyncLaserResultBean laserResultBean) {
         log.info("激光转台相机构建结果 同步 请求 ");
@@ -248,6 +254,20 @@ public class IFdkkLaserServiceImpl implements IFdkkLaserService {
         }
     }
 
+    @Override
+    public void updateStatus(String num, Integer status) {
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
+        CameraDetail cameraDetail = cameraDetailService.getByCameraId(scenePlus.getCameraId());
+        boolean laser = cameraTypeService.isLaser(cameraDetail.getType());
+        if(!laser){
+            return;
+        }
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("sceneCodes", Arrays.asList(num));
+        jsonObject.put("status", status);
+        rabbitMqProducer.sendByWorkQueue(updateLaserSceneStatus, jsonObject);
+    }
+
     public void sendRebuildE57ToLaser(ScenePlus scenePlus, ScenePlusExt scenePlusExt) {
         User user = userService.getById(scenePlus.getUserId());
         Map<String, Object> params = new HashMap<>();