From 83c58f574b2b9006ac28d0eca1e64243cc81948f Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Sat, 13 Dec 2025 17:44:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 ard-route/src/main/java/com/ard/route/util/RouteFileUtils.java |   29 +++++++++++++++++++----------
 1 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/ard-route/src/main/java/com/ard/route/util/RouteFileUtils.java b/ard-route/src/main/java/com/ard/route/util/RouteFileUtils.java
index e18467c..955a11b 100644
--- a/ard-route/src/main/java/com/ard/route/util/RouteFileUtils.java
+++ b/ard-route/src/main/java/com/ard/route/util/RouteFileUtils.java
@@ -5,7 +5,6 @@
 import cn.hutool.core.util.ObjectUtil;
 import com.ard.route.domain.djuav.*;
 import com.ard.route.domain.djuav.kml.*;
-import com.ard.route.domain.kml.*;
 import com.ard.route.enums.kml.*;
 import com.ard.route.constant.FileTypeConstants;
 import com.thoughtworks.xstream.XStream;
@@ -37,12 +36,19 @@
      */
     public static KmlInfo parseKml(InputStream inputStream) {
         XStream xStream = new XStream();
-        xStream.allowTypes(new Class[]{KmlInfo.class, KmlAction.class, KmlWayLineCoordinateSysParam.class, KmlPoint.class});
+        xStream.allowTypes(new Class[]{
+                KmlInfo.class,
+                KmlAction.class,
+                KmlWayLineCoordinateSysParam.class,
+                KmlPoint.class,
+                KmlActionGroup.class
+        });
         xStream.alias("kml", KmlInfo.class);
         xStream.processAnnotations(KmlInfo.class);
         xStream.autodetectAnnotations(true);
         xStream.ignoreUnknownElements();
         xStream.addImplicitCollection(KmlActionGroup.class, "action");
+        xStream.addImplicitCollection(KmlPlacemark.class, "actionGroup");
         return (KmlInfo) xStream.fromXML(inputStream);
     }
 
@@ -149,7 +155,8 @@
         kmlDroneInfo.setDroneEnumValue(String.valueOf(droneType));
         if (Objects.equals(droneType, DroneEnumValueEnums.M30_M30T.getValue()) ||
                 Objects.equals(droneType, DroneEnumValueEnums.M3D_M3TD.getValue()) ||
-                Objects.equals(droneType, DroneEnumValueEnums.M3E_M3T_M3M.getValue())) {
+                Objects.equals(droneType, DroneEnumValueEnums.M3E_M3T_M3M.getValue())||
+                Objects.equals(droneType, DroneEnumValueEnums.MATRICE_4D.getValue())) {
             kmlDroneInfo.setDroneSubEnumValue(String.valueOf(subDroneType));
         }
         return kmlDroneInfo;
@@ -331,7 +338,9 @@
         if (CollectionUtil.isNotEmpty(routePointInfo.getActionGroupList())) {
             List<KmlActionGroup> kmlActionGroupList = new ArrayList<>();
             for (ActionGroupReq actionGroupReq : routePointInfo.getActionGroupList()) {
-                kmlActionGroupList.add(buildKmlActionGroup(actionGroupReq, kmlParams));
+                if (ObjectUtil.isNotEmpty(actionGroupReq.getActions())){
+                    kmlActionGroupList.add(buildKmlActionGroup(actionGroupReq, kmlParams));
+                }
             }
             kmlPlacemark.setActionGroup(kmlActionGroupList);
         }
@@ -494,13 +503,13 @@
 
     public static KmlActionGroup buildKmlActionGroup(ActionGroupReq actionGroupReq, KmlParams kmlParams) {
         KmlActionGroup kmlActionGroup = new KmlActionGroup();
-        kmlActionGroup.setActionGroupId(String.valueOf(actionGroupReq.getActionGroupId()));
-        kmlActionGroup.setActionGroupStartIndex(String.valueOf(actionGroupReq.getActionGroupStartIndex()));
-        kmlActionGroup.setActionGroupEndIndex(String.valueOf(actionGroupReq.getActionGroupEndIndex()));
-        kmlActionGroup.setActionGroupMode(ActionGroupModeEnums.SEQUENCE.getValue());
+            kmlActionGroup.setActionGroupId(String.valueOf(actionGroupReq.getActionGroupId()));
+            kmlActionGroup.setActionGroupStartIndex(String.valueOf(actionGroupReq.getActionGroupStartIndex()));
+            kmlActionGroup.setActionGroupEndIndex(String.valueOf(actionGroupReq.getActionGroupEndIndex()));
+            kmlActionGroup.setActionGroupMode(ActionGroupModeEnums.SEQUENCE.getValue());
 
-        kmlActionGroup.setActionTrigger(buildKmlActionTrigger(actionGroupReq.getActionTriggerType(), actionGroupReq.getActionTriggerParam()));
-        kmlActionGroup.setAction(getKmlActionList(actionGroupReq.getActions(), kmlParams));
+            kmlActionGroup.setActionTrigger(buildKmlActionTrigger(actionGroupReq.getActionTriggerType(), actionGroupReq.getActionTriggerParam()));
+            kmlActionGroup.setAction(getKmlActionList(actionGroupReq.getActions(), kmlParams));
         return kmlActionGroup;
     }
 

--
Gitblit v1.9.3