From 8b7258c9427882bb1798f1502eaa35184c6e374e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Fri, 09 Aug 2024 14:29:18 +0800
Subject: [PATCH] 短信指定楼栋发送
---
src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml | 430 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 421 insertions(+), 9 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..b11983c 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml
@@ -25,25 +25,437 @@
<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>
- <select id="selectHouseRentalPage" resultMap="houseRentalResultMap">
- select * from jczz_house_rental where is_deleted = 0
+ <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>
+
+ <sql id="filterData">
+ <if test="isAdministrator==2">
+ <choose>
+ <when test="vo.roleName != null and vo.roleName != ''">
+ <if test="vo.roleName=='wgy'">
+ <choose>
+ <when test="gridCodeList !=null and gridCodeList.size()>0">
+ and jh.grid_code in
+ <foreach collection="gridCodeList" item="code" open="(" close=")" separator=",">
+ #{code}
+ </foreach>
+ </when>
+ <otherwise>
+ and jh.grid_code in ('')
+ </otherwise>
+ </choose>
+ </if>
+ <if test="vo.roleName=='mj'">
+ <choose>
+ <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+ and jpag.community_code in
+ <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+ #{code}
+ </foreach>
+ </when>
+ <otherwise>
+ and jpag.community_code in ('')
+ </otherwise>
+ </choose>
+ </if>
+ </when>
+ <otherwise>
+ <choose>
+ <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+ and
+ (
+ jg.grid_code in
+ <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+ #{code}
+ </foreach>
+ or
+ jpag.community_code in
+ <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+ #{code}
+ </foreach>
+ )
+ </when>
+ <otherwise>
+ and
+ (
+ jg.grid_code in ('') or jpag.community_code in ('')
+ )
+ </otherwise>
+ </choose>
+ </otherwise>
+ </choose>
+ </if>
+ </sql>
+
+ <!--自定义列表查询-->
+ <select id="selectHouseRentalPage" resultType="org.springblade.modules.house.vo.HouseRentalTenantVO">
+ SELECT
+ jhr.*,
+ jh.address as houseName,
+ br.town_name as townStreetName,
+ br.name as neiName,
+ <if test="vo.tenantInfoFlag != null and vo.tenantInfoFlag != 0">
+ b.tenantName,
+ b.phone,
+ </if>
+ 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 )<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
+ FROM jczz_house_rental jhr
+ JOIN jczz_house jh ON jh.house_code = jhr.house_code and jh.is_deleted = 0
+ LEFT JOIN jczz_grid jg on jg.grid_code = jh.grid_code and jg.is_deleted = 0
+ left join blade_region br on br.code = jg.community_code
+ LEFT JOIN jczz_police_affairs_grid jpag on jh.jw_grid_code= jpag.jw_grid_code and jpag.is_deleted = 0
+ <if test="vo.tenantInfoFlag != null and vo.tenantInfoFlag != 0">
+ LEFT 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_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 and a.housing_rental_id is not null
+ ) b ON b.housing_rental_id = jhr.id
+ </if>
+ WHERE jhr.is_deleted = 0
+ <if test="vo.townStreetName!=null and vo.townStreetName!=''">
+ and br.town_name like concat('%',#{vo.townStreetName},'%')
+ </if>
+ <if test="vo.neiName!=null and vo.neiName!=''">
+ and br.name like concat('%',#{vo.neiName},'%')
+ </if>
+ <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 ==0">
+ AND jhr.audit_status = 0
+ </if>
+ <if test="vo.auditStatus ==10">
+ AND date_format(jhr.due_time,'%Y-%m-%d')>= date_format(now(),'%Y-%m-%d')
+ </if>
+ <if test="vo.auditStatus ==20">
+ AND TIMESTAMPDIFF( day, now(), jhr.due_time )<30
+ AND TIMESTAMPDIFF( day, now(), jhr.due_time )>= 0
+ </if>
+ <if test="vo.auditStatus ==30">
+ AND date_format(jhr.due_time,'%Y-%m-%d')< 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 <= TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )
+ AND TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )<=8
+ </if>
+ <if test="vo.dldType ==3 ">
+ AND TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )<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.communityCode != null and vo.communityCode != ''">
+ AND jpag.community_code = #{vo.communityCode}
+ </if>
+
+ <include refid="filterData"/>
+
+ order by jhr.update_time desc
</select>
<!--查询房屋出租情况-->
<select id="getHouseRentalListByCode" resultMap="houseRentalTenant">
- select
- jhr.*,
- jht.id as tenantId,jht.*
+ 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_household jht on jhr.id = jht.housing_rental_id and jht.is_deleted = 0
+ where 1 = 1
+ and jhr.is_deleted = 0
+ and jhr.house_code = #{code}
+ order by jhr.id desc
+ </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_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
+ JOIN jczz_house jh ON jh.house_code = jhr.house_code and jh.is_deleted = 0
+ LEFT JOIN jczz_grid jg on jg.grid_code = jh.grid_code and jg.is_deleted = 0
+ LEFT JOIN jczz_police_affairs_grid jpag on jh.jw_grid_code= jpag.jw_grid_code and jpag.is_deleted = 0
+ 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="filterData"/>
+
+ 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_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
+ JOIN jczz_house jh ON jh.house_code = jhr.house_code and jh.is_deleted = 0
+ LEFT JOIN jczz_grid jg on jg.grid_code = jh.grid_code and jg.is_deleted = 0
+ LEFT JOIN jczz_police_affairs_grid jpag on jh.jw_grid_code= jpag.jw_grid_code and jpag.is_deleted = 0
+ WHERE jhr.is_deleted = 0
+ AND 4 <= TIMESTAMPDIFF( MONTH, rental_time, due_time ) AND TIMESTAMPDIFF( MONTH, rental_time, due_time )<=8
+ <if test="vo.auditStatus != null and vo.auditStatus != '' or vo.auditStatus == 0 ">
+ AND jhr.audit_status = #{vo.auditStatus}
+ </if>
+ <include refid="filterData"/>
+
+ 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_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
+ JOIN jczz_house jh ON jh.house_code = jhr.house_code and jh.is_deleted = 0
+ LEFT JOIN jczz_grid jg on jg.grid_code = jh.grid_code and jg.is_deleted = 0
+ LEFT JOIN jczz_police_affairs_grid jpag on jh.jw_grid_code= jpag.jw_grid_code and jpag.is_deleted = 0
+ WHERE jhr.is_deleted = 0
+ AND TIMESTAMPDIFF( MONTH, rental_time, due_time )<4
+ <if test="vo.auditStatus != null and vo.auditStatus != '' or vo.auditStatus == 0 ">
+ AND jhr.audit_status = #{vo.auditStatus}
+ </if>
+ <include refid="filterData"/>
+ </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 )<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.phoneNumber phone
+ FROM jczz_household jht RIGHT JOIN (
+ SELECT MAX(ID) as id,housing_rental_id
+ 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>
+ 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')>= date_format(now(),'%Y-%m-%d')
+ </if>
+ <if test="vo.auditStatus ==20">
+ AND TIMESTAMPDIFF( day, now(), jhr.due_time )<30
+ </if>
+ <if test="vo.auditStatus ==30">
+ AND date_format(jhr.due_time,'%Y-%m-%d')< 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 <= TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )
+ AND TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )<=8
+ </if>
+ <if test="vo.dldType ==3 ">
+ AND TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )<4
+ </if>
+ </if>
+ <include refid="filterHouseGrid"/>
+ </select>
+
+
+ <select id="getStatisticsCount" resultType="java.lang.Integer">
+ SELECT
+ count(1)
+ FROM jczz_house_rental jhr
+ JOIN jczz_house jh ON jh.house_code = jhr.house_code and jh.is_deleted = 0
+ LEFT JOIN jczz_grid jg on jg.grid_code = jh.grid_code and jg.is_deleted = 0
+ LEFT JOIN jczz_police_affairs_grid jpag on jh.jw_grid_code= jpag.jw_grid_code and jpag.is_deleted = 0
+ LEFT 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_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 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">
+ <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')>= date_format(now(),'%Y-%m-%d')
+ </if>
+ <if test="vo.auditStatus ==20">
+ AND TIMESTAMPDIFF( day, now(), jhr.due_time )<30
+ AND TIMESTAMPDIFF( day, now(), jhr.due_time )>= 0
+ </if>
+ <if test="vo.auditStatus ==30">
+ AND date_format(jhr.due_time,'%Y-%m-%d')< 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 <= TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )
+ AND TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )<=8
+ </if>
+ <if test="vo.dldType ==3 ">
+ AND TIMESTAMPDIFF( MONTH, jhr.rental_time, jhr.due_time )<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.communityCode != null and vo.communityCode != ''">
+ AND jpag.community_code = #{vo.communityCode}
+ </if>
+
+ <include refid="filterData"/>
+
</select>
--
Gitblit v1.9.3