dengsixing 7 miesięcy temu
rodzic
commit
6b17732226

+ 7 - 5
src/main/java/com/fdkankan/contro/mq/service/impl/BuildReverseE57SceneServiceImpl.java

@@ -83,8 +83,8 @@ public class BuildReverseE57SceneServiceImpl implements IBuildSceneService {
     public void buildScenePre(BuildSceneCallMessage message) throws Exception{
         String num = message.getSceneNum();
         ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
         try {
-            ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
             String dataSource = scenePlusExt.getDataSource();
             message.setPath(dataSource);
 
@@ -114,6 +114,7 @@ public class BuildReverseE57SceneServiceImpl implements IBuildSceneService {
             log.error("上传e57计算前置处理出错,num"+num, e);
             scenePlus.setSceneStatus(CommonSuccessStatus.FAIL.code());
             scenePlusService.updateById(scenePlus);
+            fdkkLaserService.sendE57ToLaser(scenePlus, scenePlusExt, null);
             buildSceneDTService.handBaseFail("上传e57计算资源准备异常!", message.getPath(), message.getSceneNum(), "计算控制服务器");
             throw e;
         }
@@ -140,6 +141,7 @@ public class BuildReverseE57SceneServiceImpl implements IBuildSceneService {
         String sceneCode = message.getBuildContext().get("sceneNum").toString();
         String path = message.getPath();
         ScenePlus scenePlus = scenePlusService.getScenePlusByNum(sceneCode);
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
         try {
             // 上传计算日志
             //如果是重复计算,没有走到计算逻辑,不需要上传日志文件
@@ -150,10 +152,9 @@ public class BuildReverseE57SceneServiceImpl implements IBuildSceneService {
 
             if (!message.getBuildSuccess()) {
                 log.error("建模失败,修改状态为失败状态");
-                scenePlusService.update(new LambdaUpdateWrapper<ScenePlus>()
-                        .set(ScenePlus::getSceneStatus, SceneStatus.FAILD.code())
-                        .eq(ScenePlus::getNum, sceneCode));
-
+                scenePlus.setSceneStatus(CommonSuccessStatus.FAIL.code());
+                scenePlusService.updateById(scenePlus);
+                fdkkLaserService.sendE57ToLaser(scenePlus, scenePlusExt, null);
                 return;
             }
 
@@ -219,6 +220,7 @@ public class BuildReverseE57SceneServiceImpl implements IBuildSceneService {
             log.error("场景计算结果处理出错,num"+sceneCode, e);
             scenePlus.setSceneStatus(CommonSuccessStatus.FAIL.code());
             scenePlusService.updateById(scenePlus);
+            fdkkLaserService.sendE57ToLaser(scenePlus, scenePlusExt, null);
             buildSceneDTService.handBaseFail("场景计算结果处理出错!", message.getPath(), sceneCode, "计算控制服务器");
             throw e;
         }

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

@@ -223,7 +223,7 @@ public class IFdkkLaserServiceImpl implements IFdkkLaserService {
         if(scenePlus.getSceneStatus() == SceneStatus.wait.code()){
             rabbitMqProducer.sendByWorkQueue("laser-e57-init-scene", params);
         }
-        if(scenePlus.getSceneStatus() == SceneStatus.NO_DISPLAY.code()){
+        if(scenePlus.getSceneStatus() == SceneStatus.NO_DISPLAY.code() || scenePlus.getSceneStatus() == SceneStatus.FAILD.code()){
             rabbitMqProducer.sendByWorkQueue("laser-e57-update-scene", params);
         }
     }