From b097f7539a7429a85cdda7959c9ecb83a37a2918 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Thu, 11 Jun 2026 14:49:28 +0800
Subject: [PATCH] 架次关联航线
---
ard-work/src/main/java/com/ard/work/service/impl/ArdFlightTaskServiceImpl.java | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/ard-work/src/main/java/com/ard/work/service/impl/ArdFlightTaskServiceImpl.java b/ard-work/src/main/java/com/ard/work/service/impl/ArdFlightTaskServiceImpl.java
index 35a510a..32c149a 100644
--- a/ard-work/src/main/java/com/ard/work/service/impl/ArdFlightTaskServiceImpl.java
+++ b/ard-work/src/main/java/com/ard/work/service/impl/ArdFlightTaskServiceImpl.java
@@ -5,6 +5,10 @@
import com.ard.common.core.redis.RedisCache;
import com.ard.common.utils.DateUtils;
import com.ard.work.component.forest.TyClient;
+import com.ard.work.domain.cache.UavTelemetryDataCache;
+import com.ard.work.domain.cache.UavWaylineCache;
+import com.ard.work.domain.dto.telemetry.TelemetryData;
+import com.ard.work.domain.dto.wayline.WaylineInfo;
import com.ard.work.domain.dto.BoxHistoryDTO;
import com.ard.work.domain.entity.ArdFlightTask;
import com.ard.work.domain.receiver.BoxHistoryReceiver;
@@ -130,6 +134,18 @@
.maxSpeed(boxHistoryReceiver.getMaxSpeed())
.build();
+ // 从遥测缓存和航线缓存直接获取 flightMode 和 routeId
+ // UavWaylineCache 在飞行中持续有效,仅在飞行中 flightMode!=14 时被清除
+ String boxSn = flightTask.getBoxSn();
+ WaylineInfo waylineInfo = UavWaylineCache.get(boxSn);
+ if (waylineInfo != null && waylineInfo.getWaylineId() != null) {
+ flightTask.setRouteId(waylineInfo.getWaylineId());
+ }
+ TelemetryData telemetryData = UavTelemetryDataCache.get(boxSn);
+ if (telemetryData != null && telemetryData.getFlightMode() > 0) {
+ flightTask.setFlightMode(telemetryData.getFlightMode());
+ }
+
Long flyUserId = uavControlService.getCurrentController(flightTask.getBoxSn(), "fly");
if (flyUserId != null) {
SysUser flyUser = redisCache.getCacheMapValue(CacheConstants.SYS_USER, flyUserId.toString());
--
Gitblit v1.9.3