From f14c50cb0036d3ddd655ce4e34732ba396a836c4 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 30 五月 2023 12:42:03 +0800
Subject: [PATCH] optimize 统计

---
 java110-db/src/main/resources/mapper/report/ReportOweFeeServiceDaoImplMapper.xml |  124 ++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 121 insertions(+), 3 deletions(-)

diff --git a/java110-db/src/main/resources/mapper/report/ReportOweFeeServiceDaoImplMapper.xml b/java110-db/src/main/resources/mapper/report/ReportOweFeeServiceDaoImplMapper.xml
index 151e860..e5f2f40 100644
--- a/java110-db/src/main/resources/mapper/report/ReportOweFeeServiceDaoImplMapper.xml
+++ b/java110-db/src/main/resources/mapper/report/ReportOweFeeServiceDaoImplMapper.xml
@@ -91,7 +91,7 @@
         <if test="payerObjId !=null and payerObjId != ''">
             and t.payer_obj_id= #{payerObjId}
         </if>
-        order by t.payer_obj_name
+        order by t.payer_obj_id
         <if test="page != -1 and page != null ">
             limit #{page}, #{row}
         </if>
@@ -263,8 +263,22 @@
         t.owner_id,t.owner_id ownerId,t.owner_name,t.owner_name ownerName
         from report_owe_fee t
         LEFT JOIN pay_fee pf on t.fee_id = pf.fee_id
+        LEFT JOIN building_room br on pf.payer_obj_id = br.room_id and br.status_cd = '0'
+        LEFT JOIN building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
         where 1 =1
         and pf.status_cd = '0'
+        <if test="roomSubType !=null and roomSubType != ''">
+            and br.room_sub_type = #{roomSubType}
+        </if>
+        <if test="roomNum !=null and roomNum != ''">
+            and br.room_num = #{roomNum}
+        </if>
+        <if test="floorId !=null and floorId != ''">
+            and bu.floor_id = #{floorId}
+        </if>
+        <if test="unitId !=null and unitId != ''">
+            and bu.unit_id = #{unitId}
+        </if>
         <if test="configName !=null and configName != ''">
             and t.config_name= #{configName}
         </if>
@@ -335,10 +349,10 @@
         </if>
     </select>
 
-    <!-- 鏌ヨ娆犺垂缁熻淇℃伅 add by wuxw 2018-07-03 -->
+    <!-- 鏌ヨ娆犺垂缁熻淇℃伅 add by wuxw 2018-07-03 t.owner_tel,t.owner_tel ownerTel,-->
     <select id="queryReportAllOweFeesByRoom" parameterType="Map" resultType="Map">
         select t.config_name,t.config_name configName,t.deadline_time,t.deadline_time
-        deadlineTime,t.owner_tel,t.owner_tel ownerTel,t.update_time,t.update_time updateTime,t.owe_id,t.owe_id
+        deadlineTime,t.update_time,t.update_time updateTime,t.owe_id,t.owe_id
         oweId,t.fee_id,t.fee_id feeId,t.amount_owed,t.amount_owed amountOwed,t.payer_obj_name,t.payer_obj_name
         payerObjName,t.config_id,t.config_id configId,t.fee_name,t.fee_name
         feeName,t.end_time,t.end_time endTime,t.community_id,t.community_id
@@ -503,6 +517,87 @@
         </if>
     </select>
 
+    <select id="queryReportAllOweFeesByContract" parameterType="Map" resultType="Map">
+        select t.config_name,t.config_name configName,t.deadline_time,t.deadline_time
+        deadlineTime,t.owner_tel,t.owner_tel ownerTel,t.update_time,t.update_time updateTime,t.owe_id,t.owe_id
+        oweId,t.fee_id,t.fee_id feeId,t.amount_owed,t.amount_owed amountOwed,t.payer_obj_name,t.payer_obj_name
+        payerObjName,t.config_id,t.config_id configId,t.fee_name,t.fee_name
+        feeName,t.end_time,t.end_time endTime,t.community_id,t.community_id
+        communityId,t.payer_obj_type,t.payer_obj_type payerObjType,t.payer_obj_id,t.payer_obj_id payerObjId,
+        ct.obj_id ownerId,ct.party_b ownerName,ct.a_link ownerTel
+        from report_owe_fee t
+        left join contract ct on ct.contract_id = t.payer_obj_id and ct.status_cd = '0'
+        LEFT JOIN pay_fee pf on t.fee_id = pf.fee_id
+        where 1 =1
+        and pf.status_cd = '0'
+        <if test="configName !=null and configName != ''">
+            and t.config_name= #{configName}
+        </if>
+        <if test="deadlineTime !=null and deadlineTime != ''">
+            and t.deadline_time= #{deadlineTime}
+        </if>
+        <if test="ownerTel !=null and ownerTel != ''">
+            and t.owner_tel= #{ownerTel}
+        </if>
+        <if test="updateTime !=null and updateTime != ''">
+            and t.update_time= #{updateTime}
+        </if>
+        <if test="oweId !=null and oweId != ''">
+            and t.owe_id= #{oweId}
+        </if>
+        <if test="ownerId !=null and ownerId != ''">
+            and ct.obj_id= #{ownerId}
+        </if>
+        <if test="feeId !=null and feeId != ''">
+            and t.fee_id= #{feeId}
+        </if>
+        <if test="amountOwed !=null and amountOwed != ''">
+            and t.amount_owed= #{amountOwed}
+        </if>
+        <if test="payerObjName !=null and payerObjName != ''">
+            and t.payer_obj_name= #{payerObjName}
+        </if>
+        <if test="ownerName !=null and ownerName != ''">
+            and ct.party_b= #{ownerName}
+        </if>
+        <if test="configId !=null and configId != ''">
+            and t.config_id= #{configId}
+        </if>
+        <if test='hasOweFee !=null and hasOweFee == "Y"'>
+            and t.amount_owed &gt; 0
+        </if>
+        <if test="configIds !=null">
+            and t.config_id in
+            <foreach collection="configIds" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="feeName !=null and feeName != ''">
+            and t.fee_name= #{feeName}
+        </if>
+        <if test="endTime !=null and endTime != ''">
+            and t.end_time= #{endTime}
+        </if>
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
+        <if test="payerObjType !=null and payerObjType != ''">
+            and t.payer_obj_type= #{payerObjType}
+        </if>
+        <if test="payerObjId !=null and payerObjId != ''">
+            and t.payer_obj_id= #{payerObjId}
+        </if>
+        <if test="payerObjIds !=null">
+            and t.payer_obj_id in
+            <foreach collection="payerObjIds" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        order by t.create_time desc
+        <if test="page != -1 and page != null ">
+            limit #{page}, #{row}
+        </if>
+    </select>
 
     <select id="computeReportOweFeeTotalAmount" parameterType="Map" resultType="Map">
         select sum(t.amount_owed) total
@@ -681,4 +776,27 @@
         and community_id = #{communityId}
     </update>
 
+
+    <select id="queryOweFeesByOwnerIds" parameterType="Map" resultType="Map">
+        select  t.owner_id ownerId,SUM(t.amount_owed) oweFee
+        from report_owe_fee t
+        where t.community_id = #{communityId}
+        and t.owner_id in
+        <foreach collection="ownerIds" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+        group by t.owner_id
+    </select>
+    <select id="queryOweFeesByRoomIds" parameterType="Map" resultType="Map">
+        select  t.payer_obj_id roomId,SUM(t.amount_owed) oweFee
+        from report_owe_fee t
+        where t.community_id =  #{communityId}
+        and t.payer_obj_type = '3333'
+        and t.payer_obj_id in
+        <foreach collection="roomIds" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+        group by t.payer_obj_id
+    </select>
+
 </mapper>

--
Gitblit v1.8.0