From 344ce76577b2694b5526b67d5adb770a9e92f523 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Sat, 23 Mar 2024 11:56:42 +0800
Subject: [PATCH] 保存航线飞行断点信息
---
src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java | 32 ++++++++++
src/main/java/com/dji/sample/wayline/service/impl/WaylineJobBreakPointServiceImpl.java | 28 +++++++++
src/main/java/com/dji/sample/wayline/dao/IWaylineJobBreakPointMapper.java | 13 ++++
src/main/java/com/dji/sample/wayline/model/dto/WaylineTaskProgressExtBreakPoint.java | 21 +++++--
src/main/java/com/dji/sample/wayline/model/entity/WaylineJobBreakPointEntity.java | 64 +++++++++++++++++++++
src/main/java/com/dji/sample/wayline/service/IWaylineJobBreakPointService.java | 14 ++++
6 files changed, 165 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/dji/sample/wayline/dao/IWaylineJobBreakPointMapper.java b/src/main/java/com/dji/sample/wayline/dao/IWaylineJobBreakPointMapper.java
new file mode 100644
index 0000000..6840172
--- /dev/null
+++ b/src/main/java/com/dji/sample/wayline/dao/IWaylineJobBreakPointMapper.java
@@ -0,0 +1,13 @@
+package com.dji.sample.wayline.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dji.sample.wayline.model.entity.WaylineJobBreakPointEntity;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/23 11:09
+ */
+public interface IWaylineJobBreakPointMapper extends BaseMapper<WaylineJobBreakPointEntity> {
+}
diff --git a/src/main/java/com/dji/sample/wayline/model/dto/WaylineTaskProgressExtBreakPoint.java b/src/main/java/com/dji/sample/wayline/model/dto/WaylineTaskProgressExtBreakPoint.java
index 44e92f3..26444e0 100644
--- a/src/main/java/com/dji/sample/wayline/model/dto/WaylineTaskProgressExtBreakPoint.java
+++ b/src/main/java/com/dji/sample/wayline/model/dto/WaylineTaskProgressExtBreakPoint.java
@@ -1,5 +1,6 @@
package com.dji.sample.wayline.model.dto;
+import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
/**
@@ -11,14 +12,22 @@
@Data
public class WaylineTaskProgressExtBreakPoint {
- private Integer attitudeHead;
- private Integer breakReason;
- private Integer height;
private Integer index;
- private Integer latitude;
- private Integer longitude;
- private Integer progress;
+
private Integer state;
+
+ private Double progress;
+
private Integer waylineId;
+ private Integer breakReason;
+
+ private Integer latitude;
+
+ private Integer longitude;
+
+ private Integer height;
+
+ private Integer attitudeHead;
+
}
diff --git a/src/main/java/com/dji/sample/wayline/model/entity/WaylineJobBreakPointEntity.java b/src/main/java/com/dji/sample/wayline/model/entity/WaylineJobBreakPointEntity.java
new file mode 100644
index 0000000..9e3dec3
--- /dev/null
+++ b/src/main/java/com/dji/sample/wayline/model/entity/WaylineJobBreakPointEntity.java
@@ -0,0 +1,64 @@
+package com.dji.sample.wayline.model.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author sean
+ * @version 1.1
+ * @date 2022/6/1
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@TableName(value = "wayline_job_break_point",autoResultMap = true)
+public class WaylineJobBreakPointEntity implements Serializable {
+
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ @TableField("job_id")
+ private String jobId;
+
+ @TableField("index")
+ private Integer index;
+
+ @TableField("state")
+ private Integer state;
+
+ @TableField("progress")
+ private Double progress;
+
+ @TableField("wayline_id")
+ private Integer waylineId;
+
+ @TableField("break_reason")
+ private Integer breakReason;
+
+ @TableField("latitude")
+ private Integer latitude;
+
+ @TableField("longitude")
+ private Integer longitude;
+
+ @TableField("height")
+ private Integer height;
+
+ @TableField("attitudehead")
+ private Integer attitudeHead;
+
+ @TableField(value = "create_time", fill = FieldFill.INSERT)
+ private Long createTime;
+
+ @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
+ private Long updateTime;
+
+}
diff --git a/src/main/java/com/dji/sample/wayline/service/IWaylineJobBreakPointService.java b/src/main/java/com/dji/sample/wayline/service/IWaylineJobBreakPointService.java
new file mode 100644
index 0000000..b5bfc38
--- /dev/null
+++ b/src/main/java/com/dji/sample/wayline/service/IWaylineJobBreakPointService.java
@@ -0,0 +1,14 @@
+package com.dji.sample.wayline.service;
+
+import com.dji.sample.wayline.model.entity.WaylineJobBreakPointEntity;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/23 11:07
+ */
+public interface IWaylineJobBreakPointService {
+
+ public boolean addWaylineJobBreakPoint(WaylineJobBreakPointEntity entity);
+}
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..8d33865 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.
* 处理机场上报的飞行任务进度信息
@@ -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())
+ .index(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) {
diff --git a/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobBreakPointServiceImpl.java b/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobBreakPointServiceImpl.java
new file mode 100644
index 0000000..e456ed2
--- /dev/null
+++ b/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobBreakPointServiceImpl.java
@@ -0,0 +1,28 @@
+package com.dji.sample.wayline.service.impl;
+
+import com.dji.sample.wayline.dao.IWaylineJobBreakPointMapper;
+import com.dji.sample.wayline.model.entity.WaylineJobBreakPointEntity;
+import com.dji.sample.wayline.service.IWaylineJobBreakPointService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/23 11:21
+ */
+@Service
+@Transactional
+public class WaylineJobBreakPointServiceImpl implements IWaylineJobBreakPointService {
+
+ @Autowired
+ private IWaylineJobBreakPointMapper mapper;
+
+ @Override
+ public boolean addWaylineJobBreakPoint(WaylineJobBreakPointEntity entity) {
+ int insertId = mapper.insert(entity);
+ return insertId>0;
+ }
+}
--
Gitblit v1.9.3