From e778750214d72d7aa9ce42d9e0b55dcc60fc41ca Mon Sep 17 00:00:00 2001
From: Xiajijian <1176061145@qq.com>
Date: Tue, 25 Nov 2025 13:39:34 +0800
Subject: [PATCH] 1.增加行点总数字段。
---
ard-route/src/main/java/com/ard/route/domain/route/ArdRouteInfo.java | 3 +
ard-route/src/main/java/com/ard/route/service/impl/UavRouteServiceImpl.java | 63 ++++++++++---------------------
ard-route/src/main/java/com/ard/route/util/ToolUtils.java | 4 --
ard-route/src/main/resources/mapper/ArdRouteInfoMapper.xml | 9 +++-
ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java | 9 ++++
5 files changed, 39 insertions(+), 49 deletions(-)
diff --git a/ard-route/src/main/java/com/ard/route/domain/route/ArdRouteInfo.java b/ard-route/src/main/java/com/ard/route/domain/route/ArdRouteInfo.java
index d12c4d4..509e3f5 100644
--- a/ard-route/src/main/java/com/ard/route/domain/route/ArdRouteInfo.java
+++ b/ard-route/src/main/java/com/ard/route/domain/route/ArdRouteInfo.java
@@ -64,4 +64,7 @@
/** 航线数据 */
private byte[] routeData;
+ /** 行点总数 */
+ private Integer pointCount;
+
}
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 15fa9a9..57f6522 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
@@ -122,6 +122,7 @@
KmzResultVo kmzResult = routeService.buildKmz(ardRouteInfo.getUavRouteReq(), ardRouteInfo.getName());
ardRouteInfo.setPath(kmzResult.getPath());
ardRouteInfo.setReadOnly("0");
+ ardRouteInfo.setPointCount(getPointCount(ardRouteInfo));
ardRouteInfoMapper.insertArdRouteInfo(ardRouteInfo);
return kmzResult.getPath();
}
@@ -150,9 +151,17 @@
}
ardRouteInfo.setPath(kmzResult.getPath());
}
+ ardRouteInfo.setPointCount(getPointCount(ardRouteInfo));
return ardRouteInfoMapper.updateArdRouteInfo(ardRouteInfo);
}
+ private Integer getPointCount(ArdRouteInfo ardRouteInfo) {
+ if (ardRouteInfo.getUavRouteReq().getRoutePointList() != null) {
+ return ardRouteInfo.getUavRouteReq().getRoutePointList().size();
+ }
+ return 0;
+ }
+
/**
* 批量删除航线(kmz)
*
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 cd006dd..1a8b76e 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
@@ -178,54 +178,31 @@
String kml = XML_HEADER + xStream.toXML(kmlInfo);
String wpml = XML_HEADER + xStream.toXML(wpmlInfo);
-
KmzResultVo result = new KmzResultVo();
+ try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ZipOutputStream zipOutputStream = new ZipOutputStream(baos)) {
+ zipOutputStream.setLevel(0);
- // 判断本地生成kmz文件
- if (isLocal) {
- try (FileOutputStream fileOutputStream = new FileOutputStream(localFilePath + fileName + ".kmz");
- ZipOutputStream zipOutputStream = new ZipOutputStream(fileOutputStream)) {
- zipOutputStream.setLevel(0); // 0 表示不压缩,存储方式
+ // 创建 wpmz 目录中的 template.kml 文件条目
+ buildZipFile("wpmz/template.kml", zipOutputStream, kml);
+ // 创建 wpmz 目录中的 waylines.wpml 文件条目
+ buildZipFile("wpmz/waylines.wpml", zipOutputStream, wpml);
- // 创建KMZ文件内容
- buildZipFile("wpmz/template.kml", zipOutputStream, kml);
- buildZipFile("wpmz/waylines.wpml", zipOutputStream, wpml);
+ zipOutputStream.finish();
+ zipOutputStream.flush();
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- result.setPath(localFilePath + fileName + ".kmz");
+ // 创建MultipartFile对象
+ MultipartFile multipartFile = new MockMultipartFile(
+ fileName + ".kmz",
+ fileName + ".kmz",
+ "application/vnd.google-earth.kmz",
+ new ByteArrayInputStream(baos.toByteArray())
+ );
+ String kmzFilePath = ossService.upload(kmzPath,multipartFile);
+ result.setPath(kmzFilePath);
return result;
- }else {
- try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ZipOutputStream zipOutputStream = new ZipOutputStream(baos)) {
- zipOutputStream.setLevel(0);
-
- // 创建 wpmz 目录中的 template.kml 文件条目
- buildZipFile("wpmz/template.kml", zipOutputStream, kml);
-
- // 创建 wpmz 目录中的 waylines.wpml 文件条目
- buildZipFile("wpmz/waylines.wpml", zipOutputStream, wpml);
-
- zipOutputStream.finish();
- zipOutputStream.flush();
-
- // 获取文件大小
- Double fileSize = (double) baos.size(); // 字节数
-
- // 创建MultipartFile对象
- MultipartFile multipartFile = new MockMultipartFile(
- fileName + ".kmz",
- fileName + ".kmz",
- "application/vnd.google-earth.kmz",
- new ByteArrayInputStream(baos.toByteArray())
- );
- String kmzFilePath = ossService.upload(kmzPath,multipartFile);
- result.setPath(kmzFilePath);
- return result;
- } catch (Exception e) {
- throw new RuntimeException("KMZ文件生成或上传失败", e);
- }
+ } catch (Exception e) {
+ throw new RuntimeException("KMZ文件生成或上传失败", e);
}
}
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 2d34f6c..d392f34 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
@@ -9,10 +9,6 @@
*/
public class ToolUtils {
- public static Boolean isLocal = false;
-
- public static String localFilePath = "KmzFile/kmz/";
-
public static String kmzPath = "kmz";
/**
diff --git a/ard-route/src/main/resources/mapper/ArdRouteInfoMapper.xml b/ard-route/src/main/resources/mapper/ArdRouteInfoMapper.xml
index 5c23ab9..f1c5619 100644
--- a/ard-route/src/main/resources/mapper/ArdRouteInfoMapper.xml
+++ b/ard-route/src/main/resources/mapper/ArdRouteInfoMapper.xml
@@ -18,6 +18,7 @@
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
+ <result property="pointCount" column="point_count" />
</resultMap>
<sql id="selectArdRouteInfoVo">
@@ -33,7 +34,8 @@
create_by,
create_time,
update_by,
- update_time
+ update_time,
+ point_count
from ard_route_info
</sql>
@@ -74,6 +76,7 @@
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
+ <if test="pointCount != null">point_count,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
@@ -89,6 +92,7 @@
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
+ <if test="pointCount != null">#{pointCount},</if>
</trim>
</insert>
@@ -107,6 +111,7 @@
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
+ <if test="pointCount != null">point_count = #{pointCount},</if>
</trim>
where id = #{id}
</update>
@@ -135,7 +140,7 @@
</delete>
<select id="selectArdRouteInfoByGroupId" parameterType="String" resultMap="ArdRouteInfoResult">
- select id,name,path,group_id,type,aircraft,payload,read_only,create_by,create_time,update_by,update_time from ard_route_info
+ select id,name,path,group_id,type,aircraft,payload,read_only,create_by,create_time,update_by,update_time,point_count from ard_route_info
<where>
<if test="groupId != null "> and group_id = #{groupId}</if>
</where>
--
Gitblit v1.9.3