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/orderdata/mapper/GdDataObjectionMapper.xml |   84 +++++++++++++++++++++++++++--------------
 1 files changed, 55 insertions(+), 29 deletions(-)

diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/mapper/GdDataObjectionMapper.xml b/drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/mapper/GdDataObjectionMapper.xml
index d2e2f34..7bb6480 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/mapper/GdDataObjectionMapper.xml
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/mapper/GdDataObjectionMapper.xml
@@ -30,39 +30,64 @@
 
     <select id="selectGdDataObjectionPage" resultMap="gdDataObjectionResultMap">
         select
-            obj.*,
-        string_agg(da.attach_name SEPARATOR ',') as attach_names,
-            bd.dept_name as create_dept_name
+        obj.id,
+        obj.title,
+        obj.objection_type,
+        obj.objection_status,
+        obj.catalog_resource_name,
+        obj.submitter,
+        obj.submitter_contact,
+        obj.handle_unit,
+        obj.objection_desc,
+        obj.objection_basis,
+        obj.other_objection_detail,
+        obj.review_opinion,
+        obj.area_code,
+        obj.apply_target_dept_id,
+        obj.create_user,
+        obj.create_dept,
+        obj.create_time,
+        obj.update_user,
+        obj.update_time,
+        obj.status,
+        obj.is_deleted,
+        string_agg(da.attach_name::text, ',') as attach_names,
+        bd.dept_name as create_dept_name
         from
-            ja_gd_data_objection obj
+        ja_gd_data_objection obj
         left join
-                ja_gd_data_objection_attachment da
-                on obj.id = da.objection_id::VARCHAR and da.is_deleted = 0
+        ja_gd_data_objection_attachment da
+        on obj.id::text = da.objection_id::text
+        and da.is_deleted = 0
         left join
-                blade_dept bd on bd.id = obj.create_dept::VARCHAR
+        blade_dept bd on bd.id::text = obj.create_dept::text
         <where>
-                obj.is_deleted = 0
-                and da.is_deleted = 0
+            obj.is_deleted = 0
             <if test="param2.title != null and param2.title != ''">
                 and obj.title::text like concat('%',#{param2.title},'%')
             </if>
             <if test="param2.objectionStatus != null and param2.objectionStatus != ''">
-                and obj.objection_status = #{param2.objectionStatus}
+                and obj.objection_status::text = #{param2.objectionStatus}::text
             </if>
             <if test="param2.deptList != null and param2.deptList.size > 0">
                 and (
-                obj.create_dept in
+                obj.create_dept::text in
                 <foreach collection="param2.deptList" item="deptId" open="(" separator="," close=")">
-                    #{deptId}
+                    #{deptId}::text
+                </foreach>
+                or obj.apply_target_dept_id::text in
+                <foreach collection="param2.deptList" item="deptId" open="(" separator="," close=")">
+                    #{deptId}::text
                 </foreach>
                 )
-                or obj.apply_target_dept_id in
-                <foreach collection="param2.deptList" item="deptId" open="(" separator="," close=")">
-                    #{deptId}
-                </foreach>
             </if>
         </where>
-        group by obj.id,bd.dept_name
+        group by
+        obj.id, obj.title, obj.objection_status, obj.create_dept,
+        obj.apply_target_dept_id, obj.create_time,
+        /* 只要 SELECT 里出现的非聚合字段,GROUP BY 必须加上 */
+        obj.update_time,
+        obj.is_deleted, bd.dept_name
     </select>
 
 
@@ -71,21 +96,22 @@
     </select>
 
     <select id="getDetail" resultType="org.sxkj.gd.orderdata.vo.GdDataObjectionVO">
-        select
-            obj.*,
-        string_agg(da.attach_name SEPARATOR ',') as attach_names ,
-        string_agg(da.attach_id SEPARATOR ',') as attach_ids
-        from
-            ja_gd_data_objection obj
-        left join
-                ja_gd_data_objection_attachment da on obj.id = da.objection_id::VARCHAR
+        SELECT
+        obj.*,
+        string_agg(da.attach_name::text, ',') AS attach_names,
+        string_agg(da.attach_id::text, ',') AS attach_ids
+        FROM
+        ja_gd_data_objection obj
+        LEFT JOIN
+        ja_gd_data_objection_attachment da ON obj.id::text = da.objection_id::text
         <where>
-                and da.is_deleted = 0
-            <if test="id != null ">
-                and obj.id = #{id}
+            da.is_deleted = 0
+            <if test="id != null">
+                AND obj.id::text = #{id}::text
             </if>
         </where>
-        group by obj.id
+        GROUP BY
+        obj.id
     </select>
 
 </mapper>

--
Gitblit v1.9.3