From 75e6eea8cd3fac9cc888e2ffc9cdb126fab8429d Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Wed, 14 Aug 2024 15:45:55 +0800
Subject: [PATCH] 任务下发、更新、取消,优化图斑逻辑

---
 src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java |   34 ++++++++++++++++++++++++++++++++--
 1 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java b/src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java
index 47a0442..ab4c9fd 100644
--- a/src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java
+++ b/src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java
@@ -14,10 +14,13 @@
 import com.dji.sample.media.model.MediaFileCountDTO;
 import com.dji.sample.wayline.model.dto.WaylineJobDTO;
 import com.dji.sample.wayline.model.dto.WaylineJobKey;
+import com.dji.sample.wayline.model.dto.WaylineTaskProgressExtBreakPoint;
 import com.dji.sample.wayline.model.dto.WaylineTaskProgressReceiver;
+import com.dji.sample.wayline.model.entity.WaylineJobBreakPointEntity;
 import com.dji.sample.wayline.model.enums.WaylineJobStatusEnum;
 import com.dji.sample.wayline.model.enums.WaylineTaskTypeEnum;
 import com.dji.sample.wayline.service.IFlightTaskService;
+import com.dji.sample.wayline.service.IWaylineJobBreakPointService;
 import com.dji.sample.wayline.service.IWaylineJobService;
 import com.dji.sample.wayline.service.IWaylineRedisService;
 import com.fasterxml.jackson.core.type.TypeReference;
@@ -63,6 +66,9 @@
     @Autowired
     private IWaylineRedisService waylineRedisService;
 
+    @Autowired
+    private IWaylineJobBreakPointService waylineJobBreakPointService;
+
     /**
      * Handle the progress messages of the flight tasks reported by the dock.
      * 处理机场上报的飞行任务进度信息
@@ -72,7 +78,7 @@
     @ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_FLIGHT_TASK_PROGRESS, outputChannel = ChannelName.OUTBOUND_EVENTS)
     public CommonTopicReceiver handleProgress(CommonTopicReceiver receiver, MessageHeaders headers) {
         log.info("上报航线任务进度: {}", receiver.toString());
-        EventsReceiver<WaylineTaskProgressReceiver> eventsReceiver = mapper.convertValue(receiver.getData(),
+                        EventsReceiver<WaylineTaskProgressReceiver> eventsReceiver = mapper.convertValue(receiver.getData(),
                 new TypeReference<EventsReceiver<WaylineTaskProgressReceiver>>(){});
         eventsReceiver.setBid(receiver.getBid());
         eventsReceiver.setSn(receiver.getGateway());
@@ -85,7 +91,31 @@
         log.info("任务进度: {}", output.getProgress().toString());
 
         if (null != output.getExt().getBreakPoint()) {
-            log.info("任务进度 ===> 断点信息:{}", output.getExt().getBreakPoint().toString());
+            WaylineTaskProgressExtBreakPoint breakPoint = output.getExt().getBreakPoint();
+            log.info("任务进度 ===> 断点信息:{}", breakPoint.toString());
+            // 保存断点信息
+            try {
+                Boolean isAddBp = waylineJobBreakPointService.addWaylineJobBreakPoint(WaylineJobBreakPointEntity.builder()
+                        .jobId(receiver.getBid())
+                        .bpIndex(breakPoint.getIndex())
+                        .state(breakPoint.getState())
+                        .progress(breakPoint.getProgress())
+                        .waylineId(breakPoint.getWaylineId())
+                        .breakReason(breakPoint.getBreakReason())
+                        .latitude(breakPoint.getLatitude())
+                        .longitude(breakPoint.getLongitude())
+                        .height(breakPoint.getHeight())
+                        .attitudeHead(breakPoint.getAttitudeHead())
+                        .build());
+                if (isAddBp) {
+                    log.info("任务进度 ===> 断点信息 ===> 保存成功:{}", breakPoint.toString());
+                } else {
+                    log.info("任务进度 ===> 断点信息 ===> 保存失败:{}", breakPoint.toString());
+                }
+            }catch (Exception e) {
+                log.info("任务进度 ===> 断点信息 ===> 保存失败:{},\n {}", breakPoint.toString(),e.getMessage());
+            }
+
         }
 
         if (eventsReceiver.getResult() != ResponseResult.CODE_SUCCESS) {

--
Gitblit v1.9.3