lyhzzz 3 天之前
父节点
当前提交
44d2b207ad

+ 6 - 0
src/main/java/com/fdkankan/fusion/common/enums/BuildType.java

@@ -0,0 +1,6 @@
+package com.fdkankan.fusion.common.enums;
+
+public class BuildType {
+    public static final String BUILD_FUSION_OFFLINE = "buildFusionOffline";
+
+}

+ 3 - 0
src/main/java/com/fdkankan/fusion/httpClient/client/LaserClient.java

@@ -71,4 +71,7 @@ public interface LaserClient {
      */
     @Post(value = "/laser/loc/downOfflineScene")
     FdkkResponse downOfflineSceneNew(@JSONBody SSDownSceneParamLocal param) ;
+
+    @Post("/laser/loc/addNotifications/{type}")
+    FdkkResponse addNotifications(@Var("type") Integer type);
 }

+ 4 - 0
src/main/java/com/fdkankan/fusion/service/ISceneFileBuildService.java

@@ -3,6 +3,7 @@ package com.fdkankan.fusion.service;
 import com.fdkankan.fusion.entity.SceneFileBuild;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 
@@ -19,4 +20,7 @@ public interface ISceneFileBuildService extends IService<SceneFileBuild> {
 
     String getBuildTimeByScene(String num,Integer isObj);
     HashMap<String,SceneFileBuild> getBuildTimeByScene(List<String> numList);
+
+    void updateTimeAndStatus(String sceneCode, int status, Date startTime, Date endTime, String buildType);
+
 }

+ 16 - 0
src/main/java/com/fdkankan/fusion/service/impl/CaseFusionServiceImpl.java

@@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.fusion.common.PageInfo;
+import com.fdkankan.fusion.common.enums.BuildType;
 import com.fdkankan.fusion.common.util.CameraUtil;
 import com.fdkankan.fusion.entity.*;
 import com.fdkankan.fusion.entity.jsonEntity.Transform;
+import com.fdkankan.fusion.httpClient.client.LaserClient;
 import com.fdkankan.fusion.mapper.ICaseFusionMapper;
 import com.fdkankan.fusion.request.CaseOverviewParam;
 import com.fdkankan.fusion.response.FusionNumVo;
@@ -47,6 +49,10 @@ public class CaseFusionServiceImpl extends ServiceImpl<ICaseFusionMapper, CaseFu
     IScenePlusExtService scenePlusExtService;
     @Autowired
     ISceneService sceneService;
+    @Autowired
+    LaserClient laserClient;
+    @Autowired
+    ISceneFileBuildService sceneFileBuildService;
 
 
     @Override
@@ -139,5 +145,15 @@ public class CaseFusionServiceImpl extends ServiceImpl<ICaseFusionMapper, CaseFu
             wrapper.set(CaseFusion::getOfflineStartTime,new Date());
         }
         this.update(wrapper);
+        if(status == 1){ //开始
+            sceneFileBuildService.updateTimeAndStatus(fusionId.toString(),2, new Date(), null, BuildType.BUILD_FUSION_OFFLINE);
+        }
+        if(status == 2){ //成功
+            laserClient.addNotifications(2);
+            sceneFileBuildService.updateTimeAndStatus(fusionId.toString(),4,null,  new Date(),  BuildType.BUILD_FUSION_OFFLINE);
+        }else if(status != 1){ //失败
+            laserClient.addNotifications(3);
+        }
+
     }
 }

+ 25 - 0
src/main/java/com/fdkankan/fusion/service/impl/SceneFileBuildServiceImpl.java

@@ -1,12 +1,17 @@
 package com.fdkankan.fusion.service.impl;
 
+import cn.hutool.core.util.ObjUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fdkankan.fusion.entity.SceneFileBuild;
 import com.fdkankan.fusion.mapper.ISceneFileBuildMapper;
 import com.fdkankan.fusion.service.ISceneFileBuildService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 
@@ -19,6 +24,7 @@ import java.util.List;
  * @since 2025-03-05
  */
 @Service
+@Slf4j
 public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper, SceneFileBuild> implements ISceneFileBuildService {
 
 
@@ -64,4 +70,23 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
 
         return map;
     }
+
+    @Override
+    public void updateTimeAndStatus(String sceneCode, int status, Date startTime, Date endTime, String buildType) {
+        LambdaUpdateWrapper<SceneFileBuild> wrapper = Wrappers.lambdaUpdate();
+        wrapper.eq(SceneFileBuild::getSceneNum, sceneCode);
+        wrapper.eq(SceneFileBuild::getBuildType, buildType);
+        wrapper.set(SceneFileBuild::getBuildStatus, status);
+        if (startTime != null) {
+            wrapper.set(SceneFileBuild::getStartBuildTime, startTime);
+        }
+        if (endTime != null) {
+            wrapper.set(SceneFileBuild::getEndBuildTime, endTime);
+        }
+        wrapper.isNull(SceneFileBuild::getDeleteFlag);
+        if (ObjUtil.isNotEmpty(sceneCode)){
+            boolean rows = update(wrapper); // 检查返回的影响行数
+            log.info("更新记录数: {}, sceneCode: {}, buildType: {}", rows, sceneCode, buildType);
+        }
+    }
 }