From 5d5cd3ad979a0b85ab8c7034dcad1663fdcf71be Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Fri, 01 Dec 2023 14:18:53 +0800
Subject: [PATCH] 文章通过范围查询

---
 src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml |  127 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 123 insertions(+), 4 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 93129d7..a6e9c26 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml
@@ -31,11 +31,39 @@
         </collection>
     </resultMap>
 
+
+    <sql id="selectHouseRental">
+        select
+            id,
+            house_code,
+            tenant_relationship,
+            rental_time,
+            due_time,
+            termination_time,
+            house_status,
+            rental_use,
+            audit_status,
+            file_urls,
+            create_user,
+            create_time,
+            update_user,
+            update_time,
+            remark,
+            is_deleted
+        from
+            jczz_house_rental
+    </sql>
+
     <!--自定义列表查询-->
     <select id="selectHouseRentalPage" resultType="org.springblade.modules.house.vo.HouseRentalTenantVO">
-        SELECT jhr.*,jda.address_name as houseName,b.tenantName,b.phone
+        SELECT jhr.*,jda.address_name as houseName,b.tenantName,b.phone,
+        concat(jh.district_name," ",jh.building," ",unit," ",room) as address,
+        case when TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )>= 8 then 1
+             when TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )&lt;4 then 3
+             else 2 end as dldType
         FROM jczz_house_rental jhr
-        LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jhr.house_code
+        JOIN jczz_doorplate_address jda ON jda.address_code = jhr.house_code
+        JOIN jczz_house jh ON jh.house_code = jhr.house_code
         LEFT JOIN (
             SELECT jht.housing_rental_id,jht.name as tenantName,jht.phone
             FROM jczz_house_tenant jht RIGHT JOIN (
@@ -69,8 +97,14 @@
         <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 test="vo.tenantRelationship != null">
+            AND jhr.tenant_relationship = #{vo.tenantRelationship}
+        </if>
+        <if test="vo.houseStatus != null">
+            AND jhr.house_status = #{vo.houseStatus}
+        </if>
+        <if test="vo.rentalUse != null">
+            AND jhr.rental_use = #{vo.rentalUse}
         </if>
         <if test="vo.dldType != null">
             <if test="vo.dldType ==1 ">
@@ -172,5 +206,90 @@
             <include refid="filterHouseGrid"/>
     </select>
 
+    <!--导出租赁信息-->
+    <select id="export" resultType="org.springblade.modules.house.excel.HouseRentalExcel">
+        SELECT
+        jhr.tenant_relationship,jhr.rental_time,jhr.due_time,jhr.house_status,
+        jhr.rental_use,jhr.audit_status,jhr.remark,
+        jda.address_name as houseName,b.tenantName,b.phone,
+        concat(jh.district_name," ",jh.building," ",unit," ",room) as address,
+        case when TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )>= 8 then 1
+        when TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )&lt;4 then 3
+        else 2 end as dldType
+        FROM jczz_house_rental jhr
+        JOIN jczz_doorplate_address jda ON jda.address_code = jhr.house_code
+        JOIN jczz_house jh ON jh.house_code = jhr.house_code and jh.is_deleted = 0
+        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.tenantRelationship != null">
+            AND jhr.tenant_relationship = #{vo.tenantRelationship}
+        </if>
+        <if test="vo.houseStatus != null">
+            AND jhr.house_status = #{vo.houseStatus}
+        </if>
+        <if test="vo.rentalUse != null">
+            AND jhr.rental_use = #{vo.rentalUse}
+        </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="getStatisticsCount" resultType="java.lang.Integer">
+        SELECT
+            count(1)
+        FROM
+            jczz_grid_range jgr
+                LEFT JOIN jczz_grid jg ON jg.id = jgr.grid_id
+                LEFT JOIN jczz_house_rental jhr on jhr.house_code=jgr.house_code
+        WHERE
+            jg.is_deleted = 0
+          and jhr.audit_status = 0
+          AND jg.user_id = #{userId}
+
+    </select>
+
 
 </mapper>

--
Gitblit v1.9.3