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 | 30 ++++++++++++++++++++++++++++++
1 files changed, 30 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 a235837..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())
@@ -331,6 +334,7 @@
.filter(Objects::nonNull)
.map(load -> load.getName())
.filter(Objects::nonNull)
+ .distinct() // 添加去重逻辑
.collect(Collectors.joining(","))
);
@@ -361,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;
}
@@ -459,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