From ad2ec97fe0c60eee4bb7c8cdacff7c876f280ea7 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Mon, 08 Jan 2024 11:30:18 +0800
Subject: [PATCH] 公安安全监管

---
 src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml |  166 ++++++++++++++++++++++++++++++++----------------------
 1 files changed, 98 insertions(+), 68 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 a52d157..604cc44 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml
@@ -25,8 +25,8 @@
     <resultMap id="houseRentalTenant" type="org.springblade.modules.house.vo.HouseRentalVO"
                autoMapping="true">
         <id property="id" column="id"/>
-        <collection property="houseTenantVOList" javaType="java.util.List"
-                    ofType="org.springblade.modules.house.vo.HouseTenantVO" autoMapping="true">
+        <collection property="householdVOList" javaType="java.util.List"
+                    ofType="org.springblade.modules.house.vo.HouseholdVO" autoMapping="true">
             <id property="id" column="tenantId"/>
         </collection>
     </resultMap>
@@ -58,23 +58,27 @@
     <select id="selectHouseRentalPage" resultType="org.springblade.modules.house.vo.HouseRentalTenantVO">
         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
+        case when TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )&gt;= 8 then 1
              when TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )&lt;4 then 3
-             else 2 end as dldType
+             else 2 end as dldType,
+        if(jhr.termination_time is null,if(date_format(jhr.due_time,'%Y-%m-%d') >= date_format(now(),'%Y-%m-%d'),0,1),2) as status
         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
+        LEFT JOIN jczz_grid_range jgr on jgr.house_code=jda.address_code
+        LEFT JOIN jczz_grid jg on jg.id = jgr.grid_id and jg.is_deleted = 0
         LEFT JOIN (
-            SELECT jht.housing_rental_id,jht.name as tenantName,jht.phone
-            FROM jczz_house_tenant jht RIGHT JOIN (
+            SELECT jht.housing_rental_id,jht.name as tenantName,jht.phone_number as phone
+            FROM jczz_household jht RIGHT JOIN (
                 SELECT MAX(ID) as id,housing_rental_id
-                FROM jczz_house_tenant
+                FROM jczz_household
                 WHERE is_deleted = 0
                 <if test="vo.tenantName != null and vo.tenantName != ''">
                     AND name LIKE CONCAT('%',#{vo.tenantName},'%')
                 </if>
+                and housing_rental_id is not null
                 GROUP BY  housing_rental_id
-            ) a ON a.id = jht.id
+            ) a ON a.id = jht.id and a.housing_rental_id is not null
         ) b ON b.housing_rental_id = jhr.id
         WHERE jhr.is_deleted = 0
         <if test="vo.auditStatus != null and vo.auditStatus != ''">
@@ -89,6 +93,7 @@
             </if>
             <if test="vo.auditStatus ==20">
                 AND TIMESTAMPDIFF( day, now(), jhr.due_time )&lt;30
+                AND TIMESTAMPDIFF( day, now(), jhr.due_time )&gt;= 0
             </if>
             <if test="vo.auditStatus ==30">
                 AND date_format(jhr.due_time,'%Y-%m-%d')&lt; date_format(now(),'%Y-%m-%d')
@@ -108,7 +113,7 @@
         </if>
         <if test="vo.dldType != null">
             <if test="vo.dldType ==1 ">
-                AND TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )>= 8
+                AND TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )&gt;= 8
             </if>
             <if test="vo.dldType ==2 ">
                 AND  4 &lt;= TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )
@@ -118,6 +123,12 @@
                 AND TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )&lt;4
             </if>
         </if>
+        <if test="vo.startTime != null and vo.startTime != '' and vo.endTime != null and vo.endTime != '' ">
+            AND jhr.create_time BETWEEN #{vo.startTime} and #{vo.endTime}
+        </if>
+        <if test="vo.regionCode!=null and vo.regionCode!=''">
+            and jg.community_code like concat('%',#{vo.regionCode},'%')
+        </if>
         <include refid="filterHouseGrid"/>
     </select>
 
@@ -126,12 +137,13 @@
         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.*
+            jht.id as tenantId,
+            jht.*
         from jczz_house_rental jhr
-        left join jczz_house_tenant jht on jhr.id = jht.housing_rental_id and jht.is_deleted = 0
+        left join jczz_household 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}
+        and jhr.house_code = #{code}
     </select>
 
     <sql id="filterHouseGrid">
@@ -153,54 +165,58 @@
     </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"/>
+        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_household
+        where is_deleted = 0 and housing_rental_id is not null
+        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
+        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"/>
+        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_household
+        where is_deleted = 0 and housing_rental_id is not null
+        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
+        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 ">
+        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_household
+        where is_deleted = 0 and housing_rental_id is not null
+        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"/>
@@ -220,11 +236,11 @@
         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 jht.housing_rental_id,jht.name as tenantName,jht.phoneNumber phone
+        FROM jczz_household jht RIGHT JOIN (
         SELECT MAX(ID) as id,housing_rental_id
-        FROM jczz_house_tenant
-        WHERE is_deleted = 0
+        FROM jczz_household
+        WHERE is_deleted = 0 and house_rental_id is not null
         <if test="vo.tenantName != null and vo.tenantName != ''">
             AND name LIKE CONCAT('%',#{vo.tenantName},'%')
         </if>
@@ -279,16 +295,30 @@
 
     <select id="getStatisticsCount" resultType="java.lang.Integer">
         SELECT
-            count(1)
+        count( 1 )
         FROM
-            jczz_grid_range jgr
+        jczz_house_rental jhr
+        LEFT JOIN jczz_doorplate_address jda ON jhr.house_code = jda.address_code
+        <where>
+            <if test="neiCode != null and neiCode != ''">
+                and jda.nei_code = #{neiCode}
+            </if>
+            <if test="userId != null">
+                AND jhr.house_code IN (
+                SELECT
+                jgr.house_code
+                FROM
+                jczz_grid_range jgr
                 LEFT JOIN jczz_grid jg ON jg.id = jgr.grid_id
-                LEFT JOIN jczz_gridman jgm on jg.id = jgm.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 jgm.user_id = #{userId}
+                LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
+                WHERE
+                jg.is_deleted = 0
+                AND jgm.user_id = #{userId} )
+            </if>
+            and jhr.is_deleted = 0
+            and jhr.audit_status = 0
+        </where>
+
     </select>
 
 

--
Gitblit v1.9.3