dengsixing 7 meses atrás
pai
commit
4a7c334d67

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

@@ -15,6 +15,7 @@ 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.DateUtil;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.contro.bean.SceneJsonBean;
 import com.fdkankan.contro.bean.SyncLaserResultBean;
@@ -185,6 +186,7 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
                 if(CollUtil.isNotEmpty(fYunFileService.listRemoteFiles(extras))){
                     fYunFileService.deleteFolder(extras);
                 }
+                FileUtil.del(message.getPath() + "/extras");
             }
 
 //            //用户相机重新全量上传,需要解冻结
@@ -246,6 +248,7 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
         }catch (Exception e){
             log.error("场景计算前置处理出错,num"+num, e);
 //            buildSceneDTService.handBaseFail("场景计算资源准备异常!", message.getPath(), message.getSceneNum(), "计算控制服务器");
+            this.sendFailToLaser(num);
             throw e;
         }
     }
@@ -371,6 +374,9 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
                 scenePlusService.update(new LambdaUpdateWrapper<ScenePlus>()
                         .set(ScenePlus::getSceneStatus, SceneStatus.FAILD.code())
                         .eq(ScenePlus::getNum, sceneCode));
+
+                this.sendFailToLaser(sceneCode);
+
                 redisUtil.set(String.format(RedisKey.SCENE_BUILD_FINISH_NUM, sceneCode), "-1");
 
                 try {
@@ -545,6 +551,7 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
         }catch (Exception e){
             log.error("场景计算结果处理出错,num"+sceneCode, e);
 //            buildSceneDTService.handBaseFail("场景计算结果处理出错!", message.getPath(), sceneCode, "计算控制服务器");
+            this.sendFailToLaser(sceneCode);
             throw e;
         } finally {
             Map<String, Object> sceneStatusParam = new HashMap<>();
@@ -1036,4 +1043,17 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
 
         return true;
     }
+
+    private void sendFailToLaser(String num){
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
+        if(SceneSource.JG.code() != scenePlus.getSceneSource().intValue() && SceneSource.SG.code() != scenePlus.getSceneSource().intValue()){
+            return;
+        }
+        Map<String, Object> params = new HashMap<>();
+        params.put("sceneCode", num);
+        params.put("status", 1);
+        params.put("createTime", DateUtil.date2String(scenePlus.getCreateTime(), null));
+        params.put("algorithmTime", DateUtil.date2String(Calendar.getInstance().getTime(), null));
+        fdkkLaserService.syncFailResult(params);
+    }
 }

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

@@ -7,7 +7,9 @@ import com.fdkankan.contro.entity.ScenePlus;
 import com.fdkankan.contro.entity.ScenePlusExt;
 import com.fdkankan.contro.entity.ScenePro;
 
+import java.lang.reflect.MalformedParameterizedTypeException;
 import java.util.Date;
+import java.util.Map;
 
 /**
  * <p>
@@ -19,6 +21,8 @@ import java.util.Date;
 public interface IFdkkLaserService {
     void syncBuildResult(SyncLaserResultBean laserResultBean);
 
+    void syncFailResult(Map<String, Object> params);
+
     void pushBuildStatusToLaserSystem(String projectNum, String laserObjFilePath, Integer buildObjStatus);
 
     void saveScene(ScenePlus scenePlus, JSONObject jsonObject, Camera cameraEntity, String userName, boolean b, Integer payStatus);
@@ -26,4 +30,5 @@ public interface IFdkkLaserService {
     void saveScene(ScenePro scenePro, String scenePassword, Camera cameraEntity, String phone, boolean rebuild, Integer payStatus);
 
     void cloudPointBuild(String sceneCode, String visionEditFilePath);
+
 }

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

@@ -122,6 +122,11 @@ public class IFdkkLaserServiceImpl implements IFdkkLaserService {
     }
 
     @Override
+    public void syncFailResult(Map<String, Object> params) {
+        rabbitMqProducer.sendByWorkQueue(updateScene, params);
+    }
+
+    @Override
     public void pushBuildStatusToLaserSystem(String projectNum, String laserObjFilePath, Integer buildObjStatus) {
         Map<String, Object> params = new HashMap<>();
         params.put("sceneCode", projectNum);