From 3cbe09c3d14734798ba8662aeac633289afa2cf6 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Thu, 02 Apr 2026 15:19:36 +0800
Subject: [PATCH] opt: sql改造其他模块改造10
---
drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/mapper/GdDataObjectionMapper.xml | 47 ++++++++++++++++++++++++++++++-----------------
1 files changed, 30 insertions(+), 17 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..732aed1 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,52 @@
<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 的其他必要字段,或者确保 id 是主键 */
+ obj.title,
+ obj.objection_status,
+ obj.create_dept,
+ obj.apply_target_dept_id,
+ obj.create_time,
+ obj.is_deleted,
+ /* 修改点1:修正 string_agg 语法,去掉 SEPARATOR */
+ 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
+ /* 修改点2:双向转型对齐 */
+ 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
+ /* 修改点3:da.is_deleted 已移至 ON 条件,此处删除以保证 LEFT JOIN 有效 */
<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
+ /* 修改点4:GROUP BY 必须包含 SELECT 中所有非聚合字段 */
+ group by
+ obj.id, obj.title, obj.objection_status, obj.create_dept,
+ obj.apply_target_dept_id, obj.create_time, obj.is_deleted, bd.dept_name
</select>
--
Gitblit v1.9.3