From 04c90bec00f91e8c403d7acaa338f69e5029617a Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Tue, 02 Dec 2025 10:41:41 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
ard-route/src/main/java/com/ard/route/util/UavRouteReqUtils.java | 15 +++----
ard-route/src/main/java/com/ard/route/service/impl/UavRouteServiceImpl.java | 4 +-
ard-route/src/main/java/com/ard/route/util/ToolUtils.java | 23 +++++++++++
ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java | 26 +++++++++----
4 files changed, 49 insertions(+), 19 deletions(-)
diff --git a/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java b/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java
index aa70de9..b48775c 100644
--- a/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java
+++ b/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java
@@ -36,6 +36,7 @@
import javax.annotation.Resource;
import static com.ard.route.util.ToolUtils.*;
+import static com.ard.route.util.UavRouteReqUtils.fileConversionEntity;
/**
* 航线(kmz)Service业务层处理
@@ -116,6 +117,7 @@
ardRouteInfo.getUavRouteReq().setDroneType(subStringDroneType(ardRouteInfo.getAircraft()));
KmzResultVo kmzResult = routeService.buildKmz(ardRouteInfo.getUavRouteReq(), ardRouteInfo.getName());
ardRouteInfo.setPath(kmzResult.getPath());
+ ardRouteInfo.setReadOnly("0");
ardRouteInfoMapper.insertArdRouteInfo(dataProcessing(ardRouteInfo));
return kmzResult.getPath();
}
@@ -143,28 +145,32 @@
}
ardRouteInfo.setPath(kmzResult.getPath());
}
+ ardRouteInfo.setReadOnly("0");
return ardRouteInfoMapper.updateArdRouteInfo(dataProcessing(ardRouteInfo));
}
// 新增信息加工
private ArdRouteInfo dataProcessing(ArdRouteInfo ardRouteInfo) {
// 航线数据
- byte[] routeData;
+ byte[] routeData = null;
try {
- routeData = serialize(ardRouteInfo.getUavRouteReq());
+ if (ardRouteInfo.getUavRouteReq() != null){
+ routeData = serialize(ardRouteInfo.getUavRouteReq());
+ }
} catch (IOException e) {
throw new RuntimeException(e);
}
ardRouteInfo.setRouteData(routeData);
- ardRouteInfo.setReadOnly("0");
ardRouteInfo.setPointCount(getPointCount(ardRouteInfo));
return ardRouteInfo;
}
// 获取行点总数
private Integer getPointCount(ArdRouteInfo ardRouteInfo) {
- if (ardRouteInfo.getUavRouteReq().getRoutePointList() != null) {
- return ardRouteInfo.getUavRouteReq().getRoutePointList().size();
+ if (ardRouteInfo.getUavRouteReq() != null){
+ if (ardRouteInfo.getUavRouteReq().getRoutePointList() != null) {
+ return ardRouteInfo.getUavRouteReq().getRoutePointList().size();
+ }
}
return 0;
}
@@ -223,9 +229,13 @@
information.setPath1(urlDock);
information.setGroupId("0"); // 默认分组
information.setReadOnly("1"); // 默认只读
- // 生成kmz文件实体类加工
-
// 增加航线实体类信息
+ UavRouteReq uavRouteReq = fileConversionEntity(file);
+ if (uavRouteReq != null){
+ information.setUavRouteReq(uavRouteReq);
+ information.setType(templateTypeData(uavRouteReq));
+ information.setAircraft(droneTypeData(uavRouteReq));
+ }
insertRouteInfomation(information);
return MinioUploadResult.builder()
.url(url)
@@ -503,7 +513,7 @@
ardRouteInfo.setId(IdUtils.simpleUUID());
ardRouteInfo.setCreateTime(DateUtils.getNowDate());
ardRouteInfo.setUpdateTime(DateUtils.getNowDate());
- ardRouteInfoMapper.insertArdRouteInfo(ardRouteInfo);
+ ardRouteInfoMapper.insertArdRouteInfo(dataProcessing(ardRouteInfo));
}
/**
diff --git a/ard-route/src/main/java/com/ard/route/service/impl/UavRouteServiceImpl.java b/ard-route/src/main/java/com/ard/route/service/impl/UavRouteServiceImpl.java
index 352d034..10f613c 100644
--- a/ard-route/src/main/java/com/ard/route/service/impl/UavRouteServiceImpl.java
+++ b/ard-route/src/main/java/com/ard/route/service/impl/UavRouteServiceImpl.java
@@ -37,7 +37,7 @@
import static com.ard.route.util.RouteFileUtils.*;
import static com.ard.route.util.ToolUtils.*;
-import static com.ard.route.util.UavRouteReqUtils.kmzInfoVOToUavRouteReq;
+import static com.ard.route.util.UavRouteReqUtils.kmzInfoVoToUavRouteReq;
/**
* Author:xia
@@ -236,7 +236,7 @@
*/
@Override
public UavRouteReq kmzInfoVoToUavRouteReq(KmzInfoVo kmzInfoVo) {
- return kmzInfoVOToUavRouteReq(kmzInfoVo);
+ return kmzInfoVoToUavRouteReq(kmzInfoVo);
}
}
diff --git a/ard-route/src/main/java/com/ard/route/util/ToolUtils.java b/ard-route/src/main/java/com/ard/route/util/ToolUtils.java
index 74d2202..51b2401 100644
--- a/ard-route/src/main/java/com/ard/route/util/ToolUtils.java
+++ b/ard-route/src/main/java/com/ard/route/util/ToolUtils.java
@@ -1,5 +1,7 @@
package com.ard.route.util;
+import com.ard.route.domain.djuav.UavRouteReq;
+
import java.io.*;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@@ -125,6 +127,10 @@
return Integer.valueOf(parts[1]);
}
+ /**
+ * 截取字符串
+ * 获取经纬度
+ */
public static Double getDoublePoint(String str,String type) {
String[] parts = str.split(",");
if ("lon".equals(type)) {
@@ -136,4 +142,21 @@
return null;
}
+ /**
+ * 获取航线类型方法
+ */
+ public static String templateTypeData(UavRouteReq uavRouteReq) {
+ if ("waypoint".equals(uavRouteReq.getTemplateType())){
+ return "0";
+ }
+ return "1";
+ }
+
+ /**
+ * 获取无人机类型方法
+ */
+ public static String droneTypeData(UavRouteReq uavRouteReq) {
+ return "0-" + uavRouteReq.getDroneType() + "-0";
+ }
+
}
diff --git a/ard-route/src/main/java/com/ard/route/util/UavRouteReqUtils.java b/ard-route/src/main/java/com/ard/route/util/UavRouteReqUtils.java
index 8e90bb6..3a13661 100644
--- a/ard-route/src/main/java/com/ard/route/util/UavRouteReqUtils.java
+++ b/ard-route/src/main/java/com/ard/route/util/UavRouteReqUtils.java
@@ -22,11 +22,8 @@
public class UavRouteReqUtils {
- @Resource
- private OssServiceContext ossService;
-
// 将文件转换成 UavRouteReq 实体
- public static KmzInfoVo fileConversionEntity(MultipartFile file){
+ public static UavRouteReq fileConversionEntity(MultipartFile file){
KmzInfoVo kmzInfoVO = new KmzInfoVo();
try (InputStream inputStream = file.getInputStream();
ArchiveInputStream archiveInputStream = new ZipArchiveInputStream(inputStream)){
@@ -39,14 +36,14 @@
kmzInfoVO.setWpmlInfo(RouteFileUtils.parseKml(archiveInputStream));
}
}
- return kmzInfoVO;
+ return kmzInfoVoToUavRouteReq(kmzInfoVO);
}catch (Exception e) {
e.printStackTrace();
}
return null;
}
- public static UavRouteReq kmzInfoVOToUavRouteReq(KmzInfoVo vo) {
+ public static UavRouteReq kmzInfoVoToUavRouteReq(KmzInfoVo vo) {
UavRouteReq uavRouteReq = new UavRouteReq();
if (vo.getKmlInfo().getDocument().getFolder().getTemplateType() != null){
uavRouteReq.setTemplateType(vo.getKmlInfo().getDocument().getFolder().getTemplateType());
@@ -119,13 +116,13 @@
pointActionReq.setGimbalYawRotateAngle(Double.valueOf(kmlAction.getActionActuatorFuncParam().getGimbalYawRotateAngle()));
}
}
- if ("zoom".equals(kmlAction.getActionActuatorFunc())) {
+ if ("zoom".equals(kmlAction.getActionActuatorFunc())) { // 变焦
pointActionReq.setZoom(Double.valueOf(kmlAction.getActionActuatorFuncParam().getFocalLength()));
}
- if ("hover".equals(kmlAction.getActionActuatorFunc())) {
+ if ("hover".equals(kmlAction.getActionActuatorFunc())) { // 悬停
pointActionReq.setHoverTime(Integer.valueOf(kmlAction.getActionActuatorFuncParam().getHoverTime()));
}
- if ("rotateYaw".equals(kmlAction.getActionActuatorFunc())) {
+ if ("rotateYaw".equals(kmlAction.getActionActuatorFunc())) { // 飞行器偏航
pointActionReq.setAircraftHeading(Double.valueOf(kmlAction.getActionActuatorFuncParam().getAircraftHeading()));
}
return pointActionReq;
--
Gitblit v1.9.3