From 3f43e40ed1a1e9f66b3ad2862da9dbc4b710c712 Mon Sep 17 00:00:00 2001
From: nishiwei <13126973358@163.com>
Date: Fri, 23 Oct 2026 14:09:47 +0800
Subject: [PATCH] 智云3.0机场1适配内容提交

---
 ard-route/src/main/java/com/ard/route/util/ToolUtils.java |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)

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 a08e8c5..ef51939 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,9 +1,13 @@
 package com.ard.route.util;
 
+import com.ard.inspection.domain.ArdPointCloud;
 import com.ard.route.domain.djuav.UavRouteReq;
+import com.ard.route.enums.kml.DroneEnumValueEnums;
 import java.io.*;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import java.util.List;
+import java.util.Objects;
 
 /**
  * 工具类
@@ -103,6 +107,13 @@
         }
     }
 
+    public static List<ArdPointCloud> deserializeLs(byte[] data) throws IOException, ClassNotFoundException {
+        try (ByteArrayInputStream bais = new ByteArrayInputStream(data);
+             ObjectInputStream ois = new ObjectInputStream(bais)) {
+            return (List<ArdPointCloud>) ois.readObject();
+        }
+    }
+
     /**
      * 截取字符串
      * 参数: https://xxx.xxx.xxx.xxx:xxx/kmz/2025/11/08/文件名_20251108152249A001.kmz
@@ -127,6 +138,15 @@
     public static Integer subStringDroneType(String str) {
         String[] parts = str.split("-");
         return Integer.valueOf(parts[1]);
+    }
+
+    /**
+     * 截取机型子类型
+     * 参数: "0-67-1" 返回 1;格式不足三段时返回 0
+     */
+    public static Integer subStringSubDroneType(String str) {
+        String[] parts = str.split("-");
+        return parts.length > 2 ? Integer.valueOf(parts[2]) : 0;
     }
 
     /**
@@ -164,6 +184,12 @@
      * 获取无人机类型方法
      */
     public static String droneTypeData(UavRouteReq uavRouteReq) {
+        // 机场1:M30(67-0) / M30T(67-1) 需要保留 subType,避免航线记录的 aircraft 都变成 0-67-0。
+        // 其它机型保持原有返回值,机场2/3 不受影响。
+        if (Objects.equals(DroneEnumValueEnums.M30_M30T.getValue(), uavRouteReq.getDroneType())) {
+            return "0-" + uavRouteReq.getDroneType() + "-"
+                    + (uavRouteReq.getSubDroneType() == null ? 0 : uavRouteReq.getSubDroneType());
+        }
         return "0-" + uavRouteReq.getDroneType() + "-0";
     }
 

--
Gitblit v1.9.3