From daa84749e7a9427dfedd3970ff4b1b2bc6ae07e9 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Tue, 07 Apr 2026 21:03:48 +0800
Subject: [PATCH] opt: 人大金仓数据库改造

---
 drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/mapper/GdDataObjectionMapper.xml |   69 +++++++++++++++++++++++++++++++++-
 1 files changed, 67 insertions(+), 2 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 9fddab8..b56d515 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
@@ -3,7 +3,7 @@
 <mapper namespace="org.sxkj.gd.orderdata.mapper.GdDataObjectionMapper">
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="gdDataObjectionResultMap" type="org.sxkj.gd.orderdata.entity.GdDataObjectionEntity">
+    <resultMap id="gdDataObjectionResultMap" type="org.sxkj.gd.orderdata.vo.GdDataObjectionVO">
         <result column="id" property="id"/>
         <result column="title" property="title"/>
         <result column="objection_type" property="objectionType"/>
@@ -17,6 +17,7 @@
         <result column="other_objection_detail" property="otherObjectionDetail"/>
         <result column="review_opinion" property="reviewOpinion"/>
         <result column="area_code" property="areaCode"/>
+        <result column="attach_names" property="attachNames"/>
         <result column="create_user" property="createUser"/>
         <result column="create_dept" property="createDept"/>
         <result column="create_time" property="createTime"/>
@@ -28,7 +29,53 @@
 
 
     <select id="selectGdDataObjectionPage" resultMap="gdDataObjectionResultMap">
-        select * from ja_gd_data_objection where is_deleted = 0
+        select
+        obj.id,
+        obj.title,
+        obj.objection_status,
+        obj.create_dept,
+        obj.apply_target_dept_id,
+        obj.create_time,
+        /* 必须显式查询排序字段,否则某些情况下分页插件生成的 COUNT 会报错 */
+        obj.update_time,
+        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
+        left join
+        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::text = obj.create_dept::text
+        <where>
+            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::text = #{param2.objectionStatus}::text
+            </if>
+            <if test="param2.deptList != null and param2.deptList.size > 0">
+                and (
+                obj.create_dept::text in
+                <foreach collection="param2.deptList" item="deptId" open="(" separator="," close=")">
+                    #{deptId}::text
+                </foreach>
+                or obj.apply_target_dept_id::text in
+                <foreach collection="param2.deptList" item="deptId" open="(" separator="," close=")">
+                    #{deptId}::text
+                </foreach>
+                )
+            </if>
+        </where>
+        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>
 
 
@@ -36,4 +83,22 @@
         SELECT * FROM ja_gd_data_objection ${ew.customSqlSegment}
     </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::VARCHAR = da.objection_id::VARCHAR
+        <where>
+                and da.is_deleted = 0
+            <if test="id != null ">
+                and obj.id = #{id}
+            </if>
+        </where>
+        group by obj.id
+    </select>
+
 </mapper>

--
Gitblit v1.9.3