From 8d8c7da4e91028fc877f101dcd244bef3e18c197 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Sun, 12 Nov 2023 07:34:21 +0800
Subject: [PATCH] 标签报事+通知公告

---
 src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml |  136 +++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 131 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml b/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml
index f920577..93129d7 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml
@@ -31,19 +31,145 @@
         </collection>
     </resultMap>
 
-
-    <select id="selectHouseRentalPage" resultMap="houseRentalResultMap">
-        select * from jczz_house_rental where is_deleted = 0
+    <!--自定义列表查询-->
+    <select id="selectHouseRentalPage" resultType="org.springblade.modules.house.vo.HouseRentalTenantVO">
+        SELECT jhr.*,jda.address_name as houseName,b.tenantName,b.phone
+        FROM jczz_house_rental jhr
+        LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jhr.house_code
+        LEFT JOIN (
+            SELECT jht.housing_rental_id,jht.name as tenantName,jht.phone
+            FROM jczz_house_tenant jht RIGHT JOIN (
+                SELECT MAX(ID) as id,housing_rental_id
+                FROM jczz_house_tenant
+                WHERE is_deleted = 0
+                <if test="vo.tenantName != null and vo.tenantName != ''">
+                    AND name LIKE CONCAT('%',#{vo.tenantName},'%')
+                </if>
+                GROUP BY  housing_rental_id
+            ) a ON a.id = jht.id
+        ) b ON b.housing_rental_id = jhr.id
+        WHERE jhr.is_deleted = 0
+        <if test="vo.auditStatus != null and vo.auditStatus != ''">
+            <if test="vo.auditStatus ==1">
+                AND jhr.audit_status  = 1
+            </if>
+            <if test="vo.auditStatus ==2">
+                AND jhr.audit_status  = 0
+            </if>
+            <if test="vo.auditStatus ==10">
+                AND date_format(jhr.due_time,'%Y-%m-%d')&gt;= date_format(now(),'%Y-%m-%d')
+            </if>
+            <if test="vo.auditStatus ==20">
+                AND TIMESTAMPDIFF( day, now(), jhr.due_time )&lt;30
+            </if>
+            <if test="vo.auditStatus ==30">
+                AND date_format(jhr.due_time,'%Y-%m-%d')&lt; date_format(now(),'%Y-%m-%d')
+            </if>
+        </if>
+        <if test="vo.tenantName != null and vo.tenantName != ''">
+            AND b.tenantName LIKE CONCAT('%',#{vo.tenantName},'%')
+        </if>
+        <if test="vo.tenantName != null and vo.tenantName != ''">
+            AND b.tenantName LIKE CONCAT('%',#{vo.tenantName},'%')
+        </if>
+        <if test="vo.dldType != null">
+            <if test="vo.dldType ==1 ">
+                AND TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )>= 8
+            </if>
+            <if test="vo.dldType ==2 ">
+                AND  4 &lt;= TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )
+                AND TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )&lt;=8
+            </if>
+            <if test="vo.dldType ==3 ">
+                AND TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )&lt;4
+            </if>
+        </if>
+        <include refid="filterHouseGrid"/>
     </select>
 
     <!--查询房屋出租情况-->
     <select id="getHouseRentalListByCode" resultMap="houseRentalTenant">
         select
             jhr.*,
+            if(termination_time is null,if(date_format(jhr.due_time,'%Y-%m-%d') >= date_format(now(),'%Y-%m-%d'),0,1),2) as status,
             jht.id as tenantId,jht.*
         from jczz_house_rental jhr
-        left join jczz_house_tenant jht on jhr.id = jht.housing_rental_id
-        where 1 = 1 and house_code = #{code}
+        left join jczz_house_tenant jht on jhr.id = jht.housing_rental_id and jht.is_deleted = 0
+        where 1 = 1
+        and jhr.is_deleted = 0
+        and house_code = #{code}
+    </select>
+
+    <sql id="filterHouseGrid">
+        <if test="vo.roleName!=null and vo.roleName!=''">
+            <if test="vo.roleName=='网格员'">
+                <choose>
+                    <when test="list != null and list.size()>0">
+                        and jda.address_code in
+                        <foreach collection="list" item="houseCode" separator ="," open="("  close=")">
+                            #{houseCode}
+                        </foreach>
+                    </when>
+                    <otherwise>
+                        and jda.address_code in ('')
+                    </otherwise>
+                </choose>
+            </if>
+        </if>
+    </sql>
+
+    <select id="getStatistics" resultType="org.springblade.modules.house.vo.HouseRentalStatistics">
+            SELECT
+            'longTerm' as term,count(1) total,ifnull(sum(num),0) as personNum
+            FROM jczz_house_rental jhr
+            LEFT JOIN
+            (
+                select housing_rental_id,count(*) num from jczz_house_tenant
+                where is_deleted = 0
+                GROUP BY housing_rental_id
+            ) jht
+            ON jht.housing_rental_id = jhr.id
+            LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jhr.house_code
+            WHERE jhr.is_deleted = 0
+            AND TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )>= 8
+            <if test="vo.auditStatus != null and vo.auditStatus != '' or vo.auditStatus == 0 ">
+                AND jhr.audit_status  = #{vo.auditStatus}
+            </if>
+            <include refid="filterHouseGrid"/>
+
+            UNION ALL
+
+            SELECT 'middleTerm' AS term,count(1) total,ifnull(sum(num),0) as personNum
+            FROM jczz_house_rental jhr
+            LEFT JOIN
+            (
+            select housing_rental_id,count(*) num from jczz_house_tenant where is_deleted = 0 GROUP BY housing_rental_id
+            ) jht
+            ON jht.housing_rental_id = jhr.id
+            LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jhr.house_code
+            WHERE jhr.is_deleted = 0
+            AND  4 &lt;= TIMESTAMPDIFF( MONTH, rental_time, due_time ) AND TIMESTAMPDIFF( MONTH, rental_time, due_time )&lt;=8
+            <if test="vo.auditStatus != null and vo.auditStatus != '' or vo.auditStatus == 0 ">
+                AND jhr.audit_status  = #{vo.auditStatus}
+            </if>
+            <include refid="filterHouseGrid"/>
+
+            UNION ALL
+
+            SELECT 'shortTerm' AS term,count(1) total,ifnull(sum(num),0) as personNum
+            FROM jczz_house_rental jhr
+            LEFT JOIN
+            (
+            select housing_rental_id,count(*) num from jczz_house_tenant where is_deleted = 0 GROUP BY housing_rental_id
+            ) jht
+            ON jht.housing_rental_id = jhr.id
+            LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jhr.house_code
+            WHERE jhr.is_deleted = 0
+            AND TIMESTAMPDIFF( MONTH, rental_time, due_time )&lt;4
+            <if test="vo.auditStatus != null and vo.auditStatus != '' or vo.auditStatus == 0 ">
+                AND jhr.audit_status  = #{vo.auditStatus}
+            </if>
+            <include refid="filterHouseGrid"/>
     </select>
 
 

--
Gitblit v1.9.3