From b954d7a119eb635394bf4ff3619a9ab4b4978e48 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Thu, 02 Apr 2026 09:33:34 +0800
Subject: [PATCH] sql改造首页

---
 drone-service/drone-gd/src/main/java/org/sxkj/gd/xingtu/JianXingtuApiService.java |   78 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 77 insertions(+), 1 deletions(-)

diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/xingtu/JianXingtuApiService.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/xingtu/JianXingtuApiService.java
index 4001dff..7b77853 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/xingtu/JianXingtuApiService.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/xingtu/JianXingtuApiService.java
@@ -1,12 +1,18 @@
 package org.sxkj.gd.xingtu;
 
 import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.redis.cache.BladeRedis;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 import org.sxkj.common.jaxt.JianXingTuApiClient;
+import org.sxkj.gd.workorder.dto.GdXingtuFlyTaskSaveDTO;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -18,6 +24,7 @@
  * @Date 2026/1/26 15:22
  * @Version 1.0
  */
+@Slf4j
 @Service
 public class JianXingtuApiService {
 
@@ -33,7 +40,8 @@
 
 	/**
 	 * 获取星图登录token
-	 * @return  token
+	 *
+	 * @return token
 	 */
 	@SneakyThrows
 	public String getToken() {
@@ -74,7 +82,75 @@
 	}
 
 	/**
+	 * 设备列表-无人机
+	 *
+	 * @param name 名称
+	 * @return 接口响应
+	 */
+	public R getDevicePilotList(String name) {
+		String url = JianXingTuApiClient.getDevicePilotListUrl();
+		return postWithAuthHeader(url, buildListParams(name));
+	}
+
+	/**
+	 * 设备列表-机巢
+	 *
+	 * @param name 名称
+	 * @return 接口响应
+	 */
+	public R getDeviceAirportList(String name) {
+		String url = JianXingTuApiClient.getDeviceAirportListUrl();
+		return postWithAuthHeader(url, buildListParams(name));
+	}
+
+	/**
+	 * 新增飞行任务
+	 *
+	 * @param param 请求参数
+	 * @return 接口响应
+	 */
+	public R saveFlyTask(GdXingtuFlyTaskSaveDTO param) {
+		String url = JianXingTuApiClient.getFlyTaskSaveUrl();
+		return postWithAuthHeader(url, param);
+	}
+
+	private Map<String, Object> buildListParams(String name) {
+		Map<String, Object> params = new HashMap<>();
+		if (StringUtil.isNotBlank(name)) {
+			params.put("name", name);
+		}
+		return params;
+	}
+
+	private R postWithAuthHeader(String url, Object body) {
+		String token = getToken();
+		if (StringUtil.isBlank(token) || "获取token失败".equals(token)) {
+			return R.fail("获取token失败");
+		}
+		try {
+			HttpHeaders headers = new HttpHeaders();
+			headers.set("authorization", token);
+			log.info("请求外部接口: {} {}", url, body);
+			HttpEntity<Object> entity = new HttpEntity<>(body, headers);
+			ResponseEntity<R> response = restTemplate.exchange(url, HttpMethod.POST, entity, R.class);
+			log.info("响应外部接口: {}", response);
+			if (response.getStatusCode().is2xxSuccessful()) {
+				R responseBody = response.getBody();
+				if (responseBody != null) {
+					return responseBody;
+				}
+				return R.fail("接口返回为空");
+			}
+			return R.fail("请求外部接口失败");
+		} catch (Exception e) {
+			log.error("请求外部接口异常: ", e);
+			return R.fail("请求外部接口异常: " + e.getMessage());
+		}
+	}
+
+	/**
 	 * 解析JSON字符串为Map
+	 *
 	 * @param input JSON字符串
 	 * @return 解析后的Map
 	 */

--
Gitblit v1.9.3