From e95775fca40b69671c259594742a2bce72a6afe3 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Thu, 02 Apr 2026 16:28:43 +0800
Subject: [PATCH] opt: sql改造其他模块改造12

---
 drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdManageDeviceMapper.xml |   34 ++++++++++++++++++----------------
 1 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdManageDeviceMapper.xml b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdManageDeviceMapper.xml
index b2c1af4..fdb9d76 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdManageDeviceMapper.xml
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdManageDeviceMapper.xml
@@ -58,35 +58,37 @@
 
     <select id="selectGdManageDevice" resultType="org.sxkj.gd.workorder.vo.GdManageDeviceVO">
         select
-            md.id,
-            md.device_sn,
-            md.device_name,
-            md.nickname,
-            md.device_payload,
-            md.longitude,
-            md.latitude,
-            md.geom,
-            d2.height as height
+        md.id,
+        md.device_sn,
+        md.device_name,
+        md.nickname,
+        md.device_payload,
+        md.longitude,
+        md.latitude,
+        md.geom,
+        d2.height as height
         from
-            ja_gd_manage_device md
-        left join ja_gd_manage_device d2 on md.device_sn::VARCHAR = d2.device_sn::VARCHAR and d2.device_type = '0'
+        ja_gd_manage_device md
+        /* 修改点1:关联条件双向转型 text(规避之前的 bigint = varchar 错误) */
+        left join ja_gd_manage_device d2 on md.device_sn::text = d2.device_sn::text and d2.device_type = '0'
         <where>
             <if test="deviceIds != null and deviceIds.size() > 0">
-                and md.id in
+                and md.id::text in
                 <foreach item="item" collection="deviceIds" index="index" open="(" close=")" separator=",">
-                    #{item}
+                    #{item}::text
                 </foreach>
             </if>
             <if test="devicePayload != null and devicePayload != ''">
                 and md.device_payload like concat('%',#{devicePayload},'%')
             </if>
             <if test="geom != null and geom != ''">
-                and ST_Intersects(md.geom, ST_GeomFromText(#{geom}))
+                /* 修改点2:增加显式类型转换 ::text,并建议指定 SRID (如 4326) */
+                and ST_Intersects(md.geom, ST_GeomFromText(#{geom}::text, 4326))
             </if>
             <if test="deviceType != null and deviceType != '' ">
-                and md.device_type = #{deviceType}
+                and md.device_type::text = #{deviceType}::text
             </if>
-                and md.is_deleted = 0
+            and md.is_deleted = 0
         </where>
     </select>
 

--
Gitblit v1.9.3