linwe
2023-12-23 55d677758efadb6d42e6d4e595cecc2c50c20d5a
src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml
@@ -58,7 +58,7 @@
    <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,
        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
@@ -91,6 +91,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')
@@ -110,7 +111,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 )
@@ -156,54 +157,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"/>
@@ -223,11 +228,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>