From 08ddfad4530a014094c06fe68b8c2d9a0753403a Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Wed, 05 Aug 2026 14:09:29 +0800
Subject: [PATCH] fix(gd): 修复线索事件查询中的SQL语法错误

---
 drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdManageDeviceServiceImpl.java |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 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 85f5056..d974e9e 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
@@ -93,6 +93,7 @@
 		// 获取设备位置 生成缓冲区
 		if (gdManageDeviceEntity.getLongitude() != null && gdManageDeviceEntity.getLatitude() != null) {
 			String bufferAroundPointAsString = GeomUtils.getBufferAroundPointAsString(gdManageDeviceEntity.getLongitude(), gdManageDeviceEntity.getLatitude(), 5 * 1000);
+			log.info("saveOrUpdateDevice {}", bufferAroundPointAsString);
 			gdManageDeviceEntity.setGeom(bufferAroundPointAsString);
 			String location = GdGeoAddressUtil.getFormattedAddress(gdManageDeviceEntity.getLongitude(), gdManageDeviceEntity.getLatitude());
 			gdManageDeviceEntity.setLocation(location);
@@ -324,6 +325,8 @@
 		entity.setInsureExpiredTime(parseInsuranceDate(item.getInsuranceInfo()));
 		entity.setAreaCode(extractAreaCode(item.getRegionCode()));
 		entity.setIsWithDock(item.getIsWithDock());
+		entity.setCreateDept(parseDeptId(item.getDeptId()));
+		entity.setMaintenanceState(item.getMaintenanceState());
 		entity.setDevicePayload(
 			Optional.ofNullable(item.getLoadList())
 				.orElse(Collections.emptyList())
@@ -362,6 +365,8 @@
 		entity.setInsureExpiredTime(parseInsuranceDate(item.getInsuranceInfo()));
 		entity.setAreaCode(extractAreaCode(item.getRegionCode()));
 		entity.setHeight(item.getHeight());
+		entity.setCreateDept(parseDeptId(item.getDeptId()));
+		entity.setMaintenanceState(item.getMaintenanceState());
 		return entity;
 	}
 
@@ -460,6 +465,30 @@
 	}
 
 	/**
+	 * 解析部门ID字符串,处理逗号分隔的情况
+	 * 星图接口可能返回逗号分隔的多个部门ID,这里只取第一个
+	 *
+	 * @param deptIdStr 部门ID字符串,可能包含逗号分隔的多个ID
+	 * @return 第一个部门ID,解析失败返回null
+	 */
+	private Long parseDeptId(String deptIdStr) {
+		// 1. 参数校验
+		if (StringUtil.isBlank(deptIdStr)) {
+			return null;
+		}
+		try {
+			// 2. 处理逗号分隔的情况,只取第一个ID
+			String firstDeptId = deptIdStr.split(",")[0].trim();
+			// 3. 转换为Long类型
+			return Long.valueOf(firstDeptId);
+		} catch (NumberFormatException e) {
+			// 4. 记录日志并返回null
+			log.warn("解析部门ID失败,deptIdStr: {}", deptIdStr, e);
+			return null;
+		}
+	}
+
+	/**
 	 * 解析星图接口返回的列表数据
 	 *
 	 * @param response 接口响应

--
Gitblit v1.9.3