From 2db1aa88e8ab53096a936163d686b90d8e056a99 Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Wed, 21 Aug 2024 23:18:33 +0800
Subject: [PATCH] 国土对接返回信息加密

---
 src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java |   44 +++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 41 insertions(+), 3 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 567a9b0..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.
      * 处理机场上报的飞行任务进度信息
@@ -71,17 +77,49 @@
      */
     @ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_FLIGHT_TASK_PROGRESS, outputChannel = ChannelName.OUTBOUND_EVENTS)
     public CommonTopicReceiver handleProgress(CommonTopicReceiver receiver, MessageHeaders headers) {
-        EventsReceiver<WaylineTaskProgressReceiver> eventsReceiver = mapper.convertValue(receiver.getData(),
+        log.info("上报航线任务进度: {}", receiver.toString());
+                        EventsReceiver<WaylineTaskProgressReceiver> eventsReceiver = mapper.convertValue(receiver.getData(),
                 new TypeReference<EventsReceiver<WaylineTaskProgressReceiver>>(){});
         eventsReceiver.setBid(receiver.getBid());
         eventsReceiver.setSn(receiver.getGateway());
 
+        //用户记录飞行任务id
+        RedisOpsUtils.set(RedisConst.FLIGHT_LOG + "job_id",receiver.getBid());
+
         WaylineTaskProgressReceiver output = eventsReceiver.getOutput();
 
-        log.info("Task progress: {}", output.getProgress().toString());
+        log.info("任务进度: {}", output.getProgress().toString());
+
+        if (null != output.getExt().getBreakPoint()) {
+            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) {
-            log.error("Task progress ===> Error code: " + eventsReceiver.getResult());
+            log.error("任务进度 ===> 错误编码: " + eventsReceiver.getResult());
         }
 
         EventsResultStatusEnum statusEnum = EventsResultStatusEnum.find(output.getStatus());

--
Gitblit v1.9.3