From 8261ceda58718fe8becb795d09e152a3b61a6f22 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Sat, 31 Jan 2026 16:39:10 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdManageDeviceServiceImpl.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 59 insertions(+), 0 deletions(-)
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdManageDeviceServiceImpl.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdManageDeviceServiceImpl.java
index c82c89a..063c1d8 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdManageDeviceServiceImpl.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdManageDeviceServiceImpl.java
@@ -113,6 +113,11 @@
return total;
}
+ /**
+ * 同步星图无人机设备并入库
+ *
+ * @return 新增或更新数量
+ */
private int syncPilotDevices() throws Exception {
R response = jianXingtuApiService.getDevicePilotList(null);
List<GdXingtuPilotListDTO> items = parseList(response, GdXingtuPilotListDTO.class);
@@ -132,6 +137,11 @@
return count;
}
+ /**
+ * 同步星图机巢设备并入库
+ *
+ * @return 新增或更新数量
+ */
private int syncAirportDevices() throws Exception {
R response = jianXingtuApiService.getDeviceAirportList(null);
List<GdXingtuAirportListDTO> items = parseList(response, GdXingtuAirportListDTO.class);
@@ -151,6 +161,12 @@
return count;
}
+ /**
+ * 按机场ID保存或更新设备信息
+ *
+ * @param entity 设备信息
+ * @return 是否保存成功
+ */
private boolean saveOrUpdateByAirportId(GdManageDeviceEntity entity) throws Exception {
if (StringUtil.isBlank(entity.getAirportId())) {
return false;
@@ -173,6 +189,12 @@
return saveOrUpdateDevice(entity);
}
+ /**
+ * 从星图无人机数据构建设备实体
+ *
+ * @param item 星图无人机数据
+ * @return 设备实体
+ */
private GdManageDeviceEntity buildFromPilot(GdXingtuPilotListDTO item) {
if (item == null) {
return null;
@@ -192,6 +214,12 @@
return entity;
}
+ /**
+ * 从星图机巢数据构建设备实体
+ *
+ * @param item 星图机巢数据
+ * @return 设备实体
+ */
private GdManageDeviceEntity buildFromAirport(GdXingtuAirportListDTO item) {
if (item == null) {
return null;
@@ -212,6 +240,12 @@
return entity;
}
+ /**
+ * 将设备在线状态转换为模式码
+ *
+ * @param status 状态文本
+ * @return 模式码
+ */
private Long parseModeCode(String status) {
if ("在线".equals(status)) {
return 0L;
@@ -222,6 +256,12 @@
return null;
}
+ /**
+ * 安全解析字符串为 Double
+ *
+ * @param value 字符串值
+ * @return Double 或 null
+ */
private Double parseDouble(String value) {
if (StringUtil.isBlank(value)) {
return null;
@@ -233,6 +273,12 @@
}
}
+ /**
+ * 提取区域编码中的末级编码
+ *
+ * @param regionCode 区域编码
+ * @return 末级区域编码
+ */
private String extractAreaCode(String regionCode) {
if (StringUtil.isBlank(regionCode)) {
return null;
@@ -249,6 +295,12 @@
return regionCode;
}
+ /**
+ * 解析保险信息并获取最新保险日期
+ *
+ * @param insuranceInfo 保险信息JSON
+ * @return 保险日期
+ */
private Date parseInsuranceDate(String insuranceInfo) {
if (StringUtil.isBlank(insuranceInfo)) {
return null;
@@ -282,6 +334,13 @@
}
}
+ /**
+ * 解析星图接口返回的列表数据
+ *
+ * @param response 接口响应
+ * @param clazz 目标类型
+ * @return 列表数据
+ */
private <T> List<T> parseList(R response, Class<T> clazz) {
if (response == null || !response.isSuccess() || response.getData() == null) {
return Collections.emptyList();
--
Gitblit v1.9.3