<?xml version="1.0" encoding="UTF-8"?>
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="org.springblade.modules.house.mapper.HouseholdMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="householdResultMap" type="org.springblade.modules.house.entity.HouseholdEntity">
|
<result property="id" column="id" />
|
<result property="houseCode" column="house_code" />
|
<result property="name" column="name" />
|
<result property="phoneNumber" column="phone_number" />
|
<result property="associatedUserId" column="associated_user_id" />
|
<result property="roleType" column="role_type" />
|
<result property="relationship" column="relationship" />
|
<result property="isPrimaryContact" column="is_primary_contact" />
|
<result property="residentialStatus" column="residential_status" />
|
<result property="gender" column="gender" />
|
<result property="birthday" column="birthday" />
|
<result property="idCard" column="id_card" />
|
<result property="cardType" column="card_type" />
|
<result property="cardNo" column="card_no" />
|
<result property="ethnicity" column="ethnicity" />
|
<result property="education" column="education" />
|
<result property="residentType" column="resident_type" />
|
<result property="hukouRegistration" column="hukou_registration" />
|
<result property="residentAdcode" column="resident_adcode" />
|
<result property="nativePlaceAdcode" column="native_place_adcode" />
|
<result property="religiousBelief" column="religious_belief" />
|
<result property="healthStatus" column="health_status" />
|
<result property="diseaseName" column="disease_name" />
|
<result property="workStatus" column="work_status" />
|
<result property="employer" column="employer" />
|
<result property="occupation" column="occupation" />
|
<result property="cmpyRegAddr" column="cmpy_reg_addr" />
|
<result property="goOutAddr" column="go_out_addr" />
|
<result property="goOutWhere" column="go_out_where" />
|
<result property="goOutTime" column="go_out_time" />
|
<result property="goOutReason" column="go_out_reason" />
|
<result property="maritalStatus" column="marital_status" />
|
<result property="cardNumber" column="card_number" />
|
<result property="otherContact" column="other_contact" />
|
<result property="homeAdcode" column="home_adcode" />
|
<result property="currentAddress" column="current_address" />
|
<result property="disabilityCert" column="disability_cert" />
|
<result property="partyEmber" column="party_ember" />
|
<result property="housingRentalId" column="housing_rental_id" />
|
<result property="confirmFlag" column="confirm_flag" />
|
<result property="createUser" column="create_user" />
|
<result property="createTime" column="create_time" />
|
<result property="updateUser" column="update_user" />
|
<result property="updateTime" column="update_time" />
|
<result property="remark" column="remark" />
|
<result property="isDeleted" column="is_deleted" />
|
<result property="volunteerOrg" column="volunteer_org" />
|
</resultMap>
|
|
<sql id="selectHousehold">
|
select
|
id,
|
house_code,
|
name,
|
phone_number,
|
associated_user_id,
|
role_type,
|
relationship,
|
is_primary_contact,
|
residential_status,
|
gender,
|
birthday,
|
id_card,
|
card_type,
|
card_no,
|
ethnicity,
|
education,
|
resident_type,
|
hukou_registration,
|
resident_adcode,
|
native_place_adcode,
|
religious_belief,
|
health_status,
|
disease_name,
|
work_status,
|
employer,
|
occupation,
|
cmpy_reg_addr,
|
go_out_addr,
|
go_out_where,
|
go_out_time,
|
go_out_reason,
|
marital_status,
|
card_number,
|
other_contact,
|
home_adcode,
|
current_address,
|
disability_cert,
|
party_ember,
|
housing_rental_id,
|
confirm_flag,
|
create_user,
|
create_time,
|
update_user,
|
update_time,
|
remark,
|
is_deleted,
|
volunteer_org
|
from
|
jczz_household
|
</sql>
|
|
<resultMap id="householdAndLabelMap" type="org.springblade.modules.house.vo.HouseholdVO" autoMapping="true">
|
<id property="id" column="id"/>
|
<collection property="householdLabelList" javaType="java.util.List"
|
ofType="org.springblade.modules.house.vo.HouseholdLabelVO" autoMapping="true">
|
<id property="id" column="cid"/>
|
<id property="houseCode" column="houseCodes"/>
|
<result property="remark" column="cremark"/>
|
</collection>
|
</resultMap>
|
|
<resultMap id="householdPageAndLabelMap" type="org.springblade.modules.house.vo.HouseholdVO" autoMapping="true">
|
<id property="id" column="id"/>
|
<collection property="householdLabelList" javaType="java.util.List" select="selectHouseLabelPage" column="id"
|
ofType="org.springblade.modules.house.vo.HouseholdLabelVO" autoMapping="true">
|
</collection>
|
</resultMap>
|
|
<select id="selectHouseLabelPage" resultType="org.springblade.modules.house.vo.HouseholdLabelVO">
|
select id,
|
house_code,
|
label_id,
|
label_name,
|
color,
|
remark cremark,
|
user_id,
|
lable_type,
|
household_id
|
from jczz_user_house_label
|
where household_id = #{id}
|
and lable_type = 1
|
</select>
|
|
<!--自定义分页数据查询-->
|
<select id="selectHouseholdPage" resultMap="householdPageAndLabelMap">
|
SELECT
|
jh.id,
|
jh.house_code,
|
jh.NAME,
|
jh.phone_number,
|
jh.associated_user_id,
|
jh.role_type,
|
jh.relationship,
|
jh.is_primary_contact,
|
jh.residential_status,
|
jh.gender,
|
jh.birthday,
|
jh.id_card,
|
jh.card_type,
|
ifnull( jh.gender, CASE WHEN substring( jh.id_card, 17, 1 )% 2 = 1 THEN 1 ELSE 0 END ) AS gender,
|
jh.ethnicity,
|
jh.education,
|
jh.resident_type,
|
jh.hukou_registration,
|
jh.resident_adcode,
|
jh.native_place_adcode,
|
jh.religious_belief,
|
jh.health_status,
|
jh.disease_name,
|
jh.work_status,
|
jh.employer,
|
jh.occupation,
|
jh.cmpy_reg_addr,
|
jh.go_out_addr,
|
jh.go_out_where,
|
jh.go_out_time,
|
jh.go_out_reason,
|
jh.marital_status,
|
jh.card_number,
|
jh.other_contact,
|
IF
|
( jda.id IS NOT NULL, jda.address_name, jh.current_address ) AS current_address,
|
jh.disability_cert,
|
jh.party_ember,
|
jh.remark,
|
jh.confirm_flag,
|
jh.housing_rental_id,
|
IF
|
( jda.id IS NOT NULL, substring( jda.town_street_code, 1, 9 ), jh.home_adcode ) AS home_adcode,
|
jhs.district_name aoiName,
|
concat( jhs.building, " ", unit, " ", room ) AS address,
|
jda.town_street_name AS townStreetName,
|
jda.nei_name AS neiName,
|
jg.grid_name,
|
jhs.building,
|
jhs.district_code aoiCode,
|
jh.volunteer_org,
|
jhs.unit
|
FROM
|
jczz_household jh
|
LEFT JOIN jczz_house jhs ON jh.house_code = jhs.house_code and jhs.is_deleted = 0
|
LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
|
LEFT JOIN jczz_grid jg on jg.grid_code = jhs.grid_code and jg.is_deleted = 0
|
LEFT JOIN jczz_police_affairs_grid jpag on jhs.jw_grid_code= jpag.jw_grid_code and jpag.is_deleted = 0
|
<where>
|
<if test="household.labelIdList !=null and household.labelIdList.size() >0 ">
|
EXISTS (
|
SELECT
|
*
|
FROM
|
jczz_user_house_label juhl
|
LEFT JOIN jczz_label jl ON juhl.label_id = jl.id
|
where juhl.household_id = jh.id
|
and juhl.lable_type = 1
|
AND juhl.household_id IS NOT NULL
|
AND jl.id in
|
<foreach collection="household.labelIdList" item="code" open="(" close=")" separator=",">
|
#{code}
|
</foreach>
|
)
|
</if>
|
<if test="household.userId!=null">
|
AND jg.grid_code IN ( SELECT DISTINCT jgm.grid_code FROM jczz_gridman jgm WHERE jgm.user_id =
|
#{household.userId}
|
)
|
</if>
|
|
<if test="household.searchKey!=null and household.searchKey!=''">
|
and CONCAT(jh.name,jh.phone_number) like CONCAT ('%', #{household.searchKey},'%')
|
</if>
|
|
<if test="household.name!=null and household.name !=''">
|
and jh.name like concat('%',#{household.name},'%')
|
</if>
|
<if test="household.volunteerOrg != null and household.volunteerOrg != ''">
|
and jh.volunteer_org like concat('%',#{household.volunteerOrg},'%')
|
</if>
|
<if test="household.houseCode!=null and household.houseCode !=''">
|
and jh.house_code = #{household.houseCode}
|
</if>
|
|
<if test="household.communityCode!=null and household.communityCode !=''">
|
and jg.community_code = #{household.communityCode}
|
</if>
|
<!-- 等于18 就是租户 -->
|
<if test="household.relationship!=null and household.relationship == 18">
|
and jh.relationship = #{household.relationship}
|
|
<if test="household.minors!=null and household.minors ==2">
|
and TIMESTAMPDIFF(year, substring(jh.id_card, 7, 8), now()) < 18
|
</if>
|
</if>
|
<!-- 不等于18 就是非租户 -->
|
<if test="household.relationship!=null and household.relationship != 18">
|
and jh.relationship != #{household.relationship}
|
</if>
|
|
<if test="household.phoneNumber!=null and household.phoneNumber !=''">
|
and jh.phone_number like concat('%',#{household.phoneNumber},'%')
|
</if>
|
<if test="household.idCard!=null and household.idCard !=''">
|
and jh.id_card like concat('%',#{household.idCard},'%')
|
</if>
|
<if test="household.aoiName!=null and household.aoiName !=''">
|
and jhs.district_name like concat('%',#{household.aoiName},'%')
|
</if>
|
<if test="household.confirmFlag != null ">
|
and jh.confirm_flag = #{household.confirmFlag}
|
</if>
|
<if test="household.townStreetName!=null and household.townStreetName!=''">
|
and jda.town_street_name like concat('%',#{household.townStreetName},'%')
|
</if>
|
<if test="household.neiName!=null and household.neiName!=''">
|
and jda.nei_name like concat('%',#{household.neiName},'%')
|
</if>
|
<if test="household.housingRentalId != null ">
|
and jh.housing_rental_id = #{household.housingRentalId}
|
</if>
|
<if test="household.startTime != null and household.startTime != '' and household.endTime != null and household.endTime != '' ">
|
AND jh.create_time BETWEEN #{household.startTime} and #{household.endTime}
|
</if>
|
<if test="isAdministrator==2">
|
<choose>
|
<when test="household.roleName != null and household.roleName != ''">
|
<if test="household.roleName=='wgy'">
|
<choose>
|
<when test="gridCodeList !=null and gridCodeList.size()>0">
|
and jhs.grid_code in
|
<foreach collection="gridCodeList" item="code" open="(" close=")" separator=",">
|
#{code}
|
</foreach>
|
</when>
|
<otherwise>
|
and jhs.grid_code in ('')
|
</otherwise>
|
</choose>
|
</if>
|
<if test="household.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>
|
|
</otherwise>
|
</choose>
|
</otherwise>
|
</choose>
|
</if>
|
<if test="household.building!=null and household.building!=''">
|
and jhs.building like concat(#{household.building},'%')
|
</if>
|
<if test="household.unit!=null and household.unit!=''">
|
and jhs.unit like concat(#{household.unit},'%')
|
</if>
|
<if test="household.aoiCode!=null and household.aoiCode!=''">
|
and jhs.district_code = #{household.aoiCode}
|
</if>
|
and jh.is_deleted = 0
|
order by jh.create_time desc
|
</where>
|
|
|
</select>
|
|
<select id="getAllHouseHold" resultMap="householdPageAndLabelMap">
|
SELECT
|
jh.id,
|
jh.house_code,
|
jh.NAME,
|
jh.phone_number,
|
jh.associated_user_id,
|
jh.role_type,
|
jh.relationship,
|
jh.is_primary_contact,
|
jh.residential_status,
|
jh.birthday,
|
jh.id_card,
|
ifnull( jh.gender, CASE WHEN substring( jh.id_card, 17, 1 )% 2 = 1 THEN 1 ELSE 0 END ) AS gender,
|
jh.ethnicity,
|
jh.education,
|
jh.hukou_registration,
|
jh.work_status,
|
employer,
|
jh.marital_status,
|
jh.card_number,
|
jh.other_contact,
|
jh.current_address,
|
jh.disability_cert,
|
jh.party_ember,
|
jh.create_user,
|
jh.create_time,
|
jh.update_user,
|
jh.update_time,
|
jh.confirm_flag,
|
jh.remark,
|
jhs.district_name aoiName,
|
concat( jhs.building, " ", unit, " ", room ) AS address,
|
jda.town_street_name AS townStreetName,
|
jda.nei_name AS neiName,
|
jh.volunteer_org,
|
jg.grid_name
|
FROM
|
jczz_household jh
|
LEFT JOIN jczz_house jhs ON jh.house_code = jhs.house_code and jhs.is_deleted = 0
|
LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
|
LEFT JOIN jczz_grid jg on jg.grid_code = jhs.grid_code and jg.is_deleted = 0
|
where jh.is_deleted = 0
|
and jh.name != '' and jh.name is not null
|
<if test="household.userId!=null">
|
AND jg.grid_code IN ( SELECT DISTINCT jgm.grid_code FROM jczz_gridman jgm WHERE jgm.user_id =
|
#{household.userId}
|
)
|
</if>
|
<if test="household.name!=null and household.name !=''">
|
and jh.name like concat('%',#{household.name},'%')
|
</if>
|
<if test="household.houseCode!=null and household.houseCode !=''">
|
and jh.house_code = #{household.houseCode}
|
</if>
|
<if test="household.phoneNumber!=null and household.phoneNumber !=''">
|
and jh.phone_number like concat('%',#{household.phoneNumber},'%')
|
</if>
|
<if test="household.idCard!=null and household.idCard !=''">
|
and jh.id_card like concat('%',#{household.idCard},'%')
|
</if>
|
<if test="household.aoiName!=null and household.aoiName !=''">
|
and jhs.district_name like concat('%',#{household.aoiName},'%')
|
</if>
|
<if test="household.confirmFlag != null ">
|
and jh.confirm_flag = #{household.confirmFlag}
|
</if>
|
<if test="household.townStreetName!=null and household.townStreetName!=''">
|
and jda.town_street_name like concat('%',#{household.townStreetName},'%')
|
</if>
|
<if test="household.neiName!=null and household.neiName!=''">
|
and jda.nei_name like concat('%',#{household.neiName},'%')
|
</if>
|
<if test="household.housingRentalId != null ">
|
and jh.housing_rental_id = #{household.housingRentalId}
|
</if>
|
<if test="household.startTime != null and household.startTime != '' and household.endTime != null and household.endTime != '' ">
|
AND jh.create_time BETWEEN #{household.startTime} and #{household.endTime}
|
</if>
|
<if test="household.regionCode!=null and household.regionCode!=''">
|
and jg.community_code like concat('%',#{household.regionCode},'%')
|
</if>
|
<if test="household.id!=null and household.id!=''">
|
and jh.id = #{household.id}
|
</if>
|
order by jh.create_time desc
|
</select>
|
|
|
<!--查询房屋集合信息-->
|
<select id="selectHouseNodeList" resultType="org.springblade.common.node.TreeStringNode">
|
select jh.house_code as id,
|
jh.house_code as houseCode,
|
jda.address_name as name,
|
false as hasChildren,
|
jda.doorplate_type doorplateType,
|
jda.address_level addressLevel,
|
jda.nei_name neiName,
|
jda.aoi_code aoiCode,
|
jh.relationship relationship
|
from jczz_household jh
|
left join jczz_doorplate_address jda on jh.house_code = jda.address_code
|
where 1 = 1
|
and jh.is_deleted = 0
|
and jh.associated_user_id = #{userId}
|
</select>
|
|
<!--查询房屋集合信息-->
|
<select id="getHouseholdListByCode" resultMap="householdAndLabelMap">
|
select jh.*,
|
jhl.id as cid,
|
jhl.house_code houseCodes,
|
jhl.label_id,
|
jhl.label_name,
|
jhl.color,
|
jhl.user_id,
|
jhl.lable_type,
|
jhl.household_id,
|
jhl.remark as cremark
|
from jczz_household jh
|
left join jczz_user_house_label jhl on jh.id = jhl.household_id
|
where 1 = 1
|
and jh.is_deleted = 0
|
and jh.house_code = #{code}
|
order by -jh.relationship desc, jh.id desc
|
</select>
|
|
<!--查询房屋集合信息-按id-->
|
<select id="getHouseholdListById" resultMap="householdAndLabelMap">
|
select jh.id,
|
jh.house_code,
|
jh.name,
|
jh.phone_number,
|
jh.associated_user_id,
|
jh.role_type,
|
jh.relationship,
|
jh.is_primary_contact,
|
jh.residential_status,
|
jh.gender,
|
jh.birthday,
|
jh.id_card,
|
jh.card_type,
|
jh.card_no,
|
jh.ethnicity,
|
jh.education,
|
jh.resident_type,
|
jh.hukou_registration,
|
jh.resident_adcode,
|
jh.native_place_adcode,
|
jh.religious_belief,
|
jh.health_status,
|
jh.disease_name,
|
jh.work_status,
|
jh.employer,
|
jh.occupation,
|
jh.cmpy_reg_addr,
|
jh.go_out_addr,
|
jh.go_out_where,
|
jh.go_out_time,
|
jh.go_out_reason,
|
jh.marital_status,
|
jh.card_number,
|
jh.other_contact,
|
if(jda.id is not null, jda.address_name, jh.current_address) as current_address,
|
jh.disability_cert,
|
jh.party_ember,
|
jh.remark,
|
jh.confirm_flag,
|
jh.housing_rental_id,
|
jh.volunteer_org,
|
if(jda.id is not null, substring(jda.town_street_code, 1, 9), jh.home_adcode) as home_adcode,
|
br1.name as residentAdName,
|
br1.province_code as residentProvinceAdCode,
|
br1.province_name as residentProvinceAdName,
|
br1.city_code as residentCityAdCode,
|
br1.city_name as residentCityAdName,
|
br2.name as nativePlaceAdName,
|
br2.province_code as nativePlaceProvinceAdCode,
|
br2.province_name as nativePlaceProvinceAdName,
|
br2.city_code as nativePlaceCityAdCode,
|
br2.city_name as nativePlaceCityAdName,
|
jhs.source,
|
jhl.id as cid,
|
jhl.house_code houseCodes,
|
jhl.label_id,
|
jhl.label_name,
|
jhl.color,
|
jhl.user_id,
|
jhl.lable_type,
|
jhl.household_id,
|
jhl.remark as cremark
|
from jczz_household jh
|
left join jczz_user_house_label jhl on jh.id = jhl.household_id
|
left join jczz_doorplate_address jda on jda.address_code = jh.house_code
|
left join jczz_house jhs on jhs.house_code = jh.house_code
|
left join blade_region br1 on br1.code = jh.resident_adcode
|
left join blade_region br2 on br2.code = jh.native_place_adcode
|
where 1 = 1
|
and jh.is_deleted = 0
|
and jh.id = #{household.id}
|
</select>
|
|
<!--导出数据-->
|
<select id="export" resultType="org.springblade.modules.house.excel.HouseHoldExcel">
|
select
|
jh.house_code houseCode,
|
jh.name,jh.phone_number phoneNumber,jh.role_type roleType,jh.relationship relationship,
|
jh.is_primary_contact isPrimaryContact,jh.residential_status residentialStatus,jh.gender,
|
jh.birthday,jh.id_card idCard,jh.ethnicity,jh.education,
|
jh.hukou_registration hukouRegistration,jh.work_status workStatus,jh.employer,jh.marital_status maritalStatus,
|
jh.card_number cardNumber,jh.other_contact otherContact,jh.current_address currentAddress,jh.volunteer_org,
|
jh.disability_cert disabilityCert,jh.party_ember partyEmber,jh.remark,
|
jhs.district_name aoiName,
|
concat(jhs.building," ",unit," ",room) as address
|
from
|
jczz_household jh join jczz_house jhs on jh.house_code = jhs.house_code and jhs.is_deleted = 0
|
where jh.is_deleted = 0
|
<if test="household.name!=null and household.name !=''">
|
and jh.name like concat('%',#{household.name},'%')
|
</if>
|
<if test="household.phoneNumber!=null and household.phoneNumber !=''">
|
and jh.phone_number like concat('%',#{household.phoneNumber},'%')
|
</if>
|
<if test="household.idCard!=null and household.idCard !=''">
|
and jh.id_card like concat('%',#{household.idCard},'%')
|
</if>
|
<if test="household.aoiName!=null and household.aoiName !=''">
|
and jhs.district_name like concat('%',#{household.aoiName},'%')
|
</if>
|
</select>
|
|
|
<select id="statistics" resultType="java.lang.Integer">
|
SELECT
|
count(1)
|
FROM
|
jczz_household jh
|
LEFT JOIN jczz_house jhs ON jh.house_code = jhs.house_code and jhs.is_deleted = 0
|
LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
|
LEFT JOIN jczz_grid jg on jg.grid_code = jhs.grid_code and jg.is_deleted = 0
|
LEFT JOIN jczz_police_affairs_grid jpag on jhs.jw_grid_code= jpag.jw_grid_code and jpag.is_deleted = 0
|
<where>
|
<if test="household.neiCode != null and household.neiCode != ''">
|
and jda.nei_code = #{household.neiCode}
|
</if>
|
<if test="household.confirmFlag != null and household.confirmFlag != ''">
|
and jh.confirm_flag = #{household.confirmFlag}
|
</if>
|
<if test="isAdministrator==2">
|
<choose>
|
<when test="household.roleName != null and household.roleName != ''">
|
<if test="household.roleName=='wgy'">
|
<choose>
|
<when test="gridCodeList !=null and gridCodeList.size()>0">
|
and jhs.grid_code in
|
<foreach collection="gridCodeList" item="code" open="(" close=")" separator=",">
|
#{code}
|
</foreach>
|
</when>
|
<otherwise>
|
and jhs.grid_code in ('')
|
</otherwise>
|
</choose>
|
</if>
|
<if test="household.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>
|
|
</otherwise>
|
</choose>
|
</otherwise>
|
</choose>
|
</if>
|
and jh.is_deleted = 0
|
</where>
|
</select>
|
|
<!--查询物业-->
|
<select id="getProperty" resultType="org.springblade.modules.house.vo.HouseholdOtherVO">
|
SELECT jpcd.property_company_id AS CODE,
|
bu.name AS NAME,
|
jpcd.principal_phone AS phone
|
FROM jczz_doorplate_address jda
|
LEFT JOIN jczz_district jd ON jd.aoi_code = jda.aoi_code
|
LEFT JOIN jczz_property_company_district jpcd ON jpcd.district_id = jd.id
|
LEFT JOIN blade_user bu ON bu.id = jpcd.principal
|
WHERE 1 = 1
|
AND jda.address_code = #{household.houseCode} limit 1
|
</select>
|
|
<!--查询网格-->
|
<select id="getGrid" resultType="org.springblade.modules.house.vo.HouseholdOtherVO">
|
SELECT jg.id as code,
|
jgm.gridman_name as name,
|
jgm.mobile as phone
|
FROM jczz_grid_range jgr
|
LEFT JOIN jczz_grid jg ON jg.id = jgr.grid_id and jg.is_deleted = 0
|
LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id and jgm.is_deleted = 0
|
WHERE 1 = 1
|
AND jgr.house_code = #{household.houseCode} limit 1
|
</select>
|
|
<!--查询公安信息-->
|
<select id="getSecurity" resultType="org.springblade.modules.house.vo.HouseholdOtherVO">
|
SELECT address_code as code,
|
policeman as name,
|
policeman_phone as phone
|
FROM jczz_doorplate_address
|
WHERE address_code = #{household.houseCode}
|
</select>
|
|
|
<select id="getHouseHoldStatistics" resultType="java.util.Map">
|
SELECT
|
a.gender,
|
count( a.gender ) numbers
|
FROM
|
( SELECT
|
IF
|
(
|
id_card IS NULL or id_card = '',
|
'未知',
|
IF
|
(SUBSTRING( id_card, 17, 1 ) % 2 = 1, '男', '女' )) AS gender
|
FROM
|
jczz_household jh
|
LEFT JOIN jczz_doorplate_address jda ON jh.house_code = jda.address_code
|
WHERE
|
jda.nei_code = #{code}
|
AND jh.is_deleted = 0
|
and jda.doorplate_type = '户室牌'
|
<if test="userId != null and roleType == '1'">
|
AND jda.address_code IN (
|
SELECT DISTINCT
|
jgr.house_code
|
FROM
|
jczz_grid jg
|
LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
|
LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
|
WHERE
|
jgm.user_id = #{userId}
|
AND jg.is_deleted = 0
|
)
|
</if>
|
<if test="userId != null and roleType == '3'">
|
AND jda.address_code IN (SELECT
|
jda.address_code
|
FROM
|
jczz_doorplate_address jda
|
LEFT JOIN jczz_community jc ON jc.CODE = jda.nei_code
|
WHERE
|
jc.res_police_user_id like concat('%',#{userId},'%'))
|
)
|
</if>
|
) a
|
GROUP BY
|
a.gender
|
</select>
|
<select id="getHouseHoldStatisticsAge" resultType="java.util.Map">
|
|
select
|
case
|
when TIMESTAMPDIFF(YEAR,STR_TO_DATE(substr(id_card,7,8),'%Y%m%d'),sysdate()) <![CDATA[ >= ]]> 0 and
|
TIMESTAMPDIFF(YEAR,STR_TO_DATE(substr(id_card,7,8),'%Y%m%d'),sysdate()) <![CDATA[ <= ]]> 3 then '0~3岁'
|
when TIMESTAMPDIFF(YEAR,STR_TO_DATE(substr(id_card,7,8),'%Y%m%d'),sysdate()) <![CDATA[ >= ]]> 4 and
|
TIMESTAMPDIFF(YEAR,STR_TO_DATE(substr(id_card,7,8),'%Y%m%d'),sysdate()) <![CDATA[ <= ]]> 17 then '4~17岁'
|
when TIMESTAMPDIFF(YEAR,STR_TO_DATE(substr(id_card,7,8),'%Y%m%d'),sysdate()) <![CDATA[ >= ]]> 18 and
|
TIMESTAMPDIFF(YEAR,STR_TO_DATE(substr(id_card,7,8),'%Y%m%d'),sysdate()) <![CDATA[ <= ]]> 39 then '18~39岁'
|
when TIMESTAMPDIFF(YEAR,STR_TO_DATE(substr(id_card,7,8),'%Y%m%d'),sysdate()) <![CDATA[ >= ]]> 40 and
|
TIMESTAMPDIFF(YEAR,STR_TO_DATE(substr(id_card,7,8),'%Y%m%d'),sysdate()) <![CDATA[ <= ]]> 59 then '40~59岁'
|
when TIMESTAMPDIFF(YEAR,STR_TO_DATE(substr(id_card,7,8),'%Y%m%d'),sysdate()) <![CDATA[ >= ]]> 60 and
|
TIMESTAMPDIFF(YEAR,STR_TO_DATE(substr(id_card,7,8),'%Y%m%d'),sysdate()) <![CDATA[ <= ]]> 79 then '60~79岁'
|
when TIMESTAMPDIFF(YEAR,STR_TO_DATE(substr(id_card,7,8),'%Y%m%d'),sysdate()) <![CDATA[ > ]]> 80 then '80岁以上'
|
ELSE '无身份信息'
|
END AS age,
|
count(1) as number FROM
|
jczz_household jh
|
LEFT JOIN jczz_doorplate_address jda ON jh.house_code = jda.address_code
|
WHERE
|
jda.nei_code = #{code}
|
and jda.doorplate_type = '户室牌'
|
AND jh.is_deleted = 0
|
<if test="userId != null and roleType == '1'">
|
AND jda.address_code IN (
|
SELECT
|
distinct jgr.house_code
|
FROM
|
jczz_grid jg
|
LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
|
LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
|
WHERE
|
jgm.user_id = #{userId}
|
AND jg.is_deleted = 0
|
)
|
</if>
|
|
<if test="userId != null and roleType == '3'">
|
AND jda.address_code IN (SELECT
|
jda.address_code
|
FROM
|
jczz_doorplate_address jda
|
LEFT JOIN jczz_community jc ON jc.CODE = jda.nei_code
|
WHERE
|
jc.res_police_user_id like concat('%',#{userId},'%'))
|
)
|
</if>
|
GROUP BY age
|
</select>
|
|
<!--查询所有未入库的业主信息-->
|
<select id="getNotInsertUserHousehold" resultType="org.springblade.modules.house.entity.HouseholdEntity">
|
select jh.*
|
from jczz_household jh
|
where jh.is_deleted = 0
|
and jh.relationship = 1
|
and jh.associated_user_id is null
|
and jh.phone_number !=''
|
and length(jh.name)<=12
|
</select>
|
|
<!--关联标签-->
|
<resultMap id="householdPageAndLabelMaps" type="org.springblade.modules.house.vo.HouseholdVO" autoMapping="true">
|
<id property="id" column="id"/>
|
<collection property="householdLabelList" javaType="java.util.List"
|
ofType="org.springblade.modules.house.vo.HouseholdLabelVO" autoMapping="true">
|
<id property="id" column="cid"/>
|
<result property="houseCode" column="houseCodes"/>
|
</collection>
|
</resultMap>
|
|
<!--住户列表查询(关联标签)-->
|
<select id="selectHouseholdList" resultMap="householdPageAndLabelMaps">
|
SELECT
|
jh.id,
|
jh.house_code,
|
jh.NAME,
|
jh.phone_number,
|
jh.associated_user_id,
|
jh.role_type,
|
jh.relationship,
|
jh.is_primary_contact,
|
jh.residential_status,
|
jh.birthday,
|
jh.id_card,
|
ifnull( jh.gender, CASE WHEN substring( jh.id_card, 17, 1 )% 2 = 1 THEN 1 ELSE 0 END ) AS gender,
|
jh.ethnicity,
|
jh.education,
|
jh.hukou_registration,
|
jh.work_status,
|
employer,
|
jh.marital_status,
|
jh.card_number,
|
jh.other_contact,
|
jh.current_address,
|
jh.disability_cert,
|
jh.party_ember,
|
jh.create_user,
|
jh.create_time,
|
jh.update_user,
|
jh.update_time,
|
jh.confirm_flag,
|
jh.remark,
|
jhs.district_name aoiName,
|
concat( jhs.building, " ", unit, " ", room ) AS address,
|
jda.town_street_name AS townStreetName,
|
jda.nei_name AS neiName,
|
jg.grid_name,
|
juhl.id as cid,juhl.house_code as houseCodes,juhl.label_id,juhl.label_name,juhl.color
|
FROM
|
jczz_household jh
|
LEFT JOIN jczz_house jhs ON jh.house_code = jhs.house_code and jhs.is_deleted = 0
|
LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
|
LEFT JOIN jczz_grid jg on jg.grid_code = jhs.grid_code and jg.is_deleted = 0
|
LEFT JOIN jczz_user_house_label juhl on juhl.house_code = jda.address_code and lable_type=1
|
<where>
|
<if test="household.userId!=null">
|
AND jg.grid_code IN ( SELECT DISTINCT jgm.grid_code FROM jczz_gridman jgm WHERE jgm.user_id =
|
#{household.userId}
|
)
|
</if>
|
<if test="household.name!=null and household.name !=''">
|
and jh.name like concat('%',#{household.name},'%')
|
</if>
|
<if test="household.houseCode!=null and household.houseCode !=''">
|
and jh.house_code = #{household.houseCode}
|
</if>
|
<if test="household.phoneNumber!=null and household.phoneNumber !=''">
|
and jh.phone_number like concat('%',#{household.phoneNumber},'%')
|
</if>
|
<if test="household.idCard!=null and household.idCard !=''">
|
and jh.id_card like concat('%',#{household.idCard},'%')
|
</if>
|
<if test="household.aoiName!=null and household.aoiName !=''">
|
and jhs.district_name like concat('%',#{household.aoiName},'%')
|
</if>
|
<if test="household.confirmFlag != null ">
|
and jh.confirm_flag = #{household.confirmFlag}
|
</if>
|
<if test="household.townStreetName!=null and household.townStreetName!=''">
|
and jda.town_street_name like concat('%',#{household.townStreetName},'%')
|
</if>
|
<if test="household.neiName!=null and household.neiName!=''">
|
and jda.nei_name like concat('%',#{household.neiName},'%')
|
</if>
|
<if test="household.housingRentalId != null ">
|
and jh.housing_rental_id = #{household.housingRentalId}
|
</if>
|
<if test="household.startTime != null and household.startTime != '' and household.endTime != null and household.endTime != '' ">
|
AND jh.create_time BETWEEN #{household.startTime} and #{household.endTime}
|
</if>
|
<if test="household.regionCode!=null and household.regionCode!=''">
|
and jg.community_code like concat('%',#{household.regionCode},'%')
|
</if>
|
<if test="household.id!=null">
|
and jh.id = #{household.id}
|
</if>
|
<if test="household.labelId!=null">
|
and juhl.label_id = #{household.labelId}
|
</if>
|
<if test="household.searchKey!=null and household.searchKey!=''">
|
and CONCAT(jh.name,jh.phone_number) like CONCAT ('%', #{household.searchKey},'%')
|
</if>
|
and jh.is_deleted = 0
|
and jh.name != '' and jh.name is not null
|
order by jh.create_time desc,jh.id desc
|
<if test="household.limit!=null">
|
limit #{household.limit}
|
</if>
|
</where>
|
</select>
|
|
|
<select id="getKeynotePersonnelPage" resultMap="householdPageAndLabelMap">
|
|
SELECT
|
jh.id,
|
jh.house_code,
|
jh.NAME,
|
jh.phone_number,
|
jh.associated_user_id,
|
jh.role_type,
|
jh.relationship,
|
jh.is_primary_contact,
|
jh.residential_status,
|
jh.gender,
|
jh.birthday,
|
jh.id_card,
|
jh.card_type,
|
ifnull( jh.gender, CASE WHEN substring( jh.id_card, 17, 1 )% 2 = 1 THEN 1 ELSE 0 END ) AS gender,
|
jh.ethnicity,
|
jh.education,
|
jh.resident_type,
|
jh.hukou_registration,
|
jh.resident_adcode,
|
jh.native_place_adcode,
|
jh.religious_belief,
|
jh.health_status,
|
jh.disease_name,
|
jh.work_status,
|
jh.employer,
|
jh.occupation,
|
jh.cmpy_reg_addr,
|
jh.go_out_addr,
|
jh.go_out_where,
|
jh.go_out_time,
|
jh.go_out_reason,
|
jh.marital_status,
|
jh.card_number,
|
jh.other_contact,
|
IF
|
( jda.id IS NOT NULL, jda.address_name, jh.current_address ) AS current_address,
|
jh.disability_cert,
|
jh.party_ember,
|
jh.remark,
|
jh.confirm_flag,
|
jh.housing_rental_id,
|
jh.volunteer_org,
|
IF
|
( jda.id IS NOT NULL, substring( jda.town_street_code, 1, 9 ), jh.home_adcode ) AS home_adcode,
|
jhs.district_name aoiName,
|
concat( jhs.building, " ", unit, " ", room ) AS address,
|
jda.town_street_name AS townStreetName,
|
jda.nei_name AS neiName,
|
jg.grid_name,
|
jhs.building,
|
jhs.district_code aoiCode,
|
jhs.unit
|
FROM
|
jczz_household jh
|
LEFT JOIN jczz_house jhs ON jh.house_code = jhs.house_code and jhs.is_deleted = 0
|
LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
|
LEFT JOIN jczz_grid jg on jg.grid_code = jhs.grid_code and jg.is_deleted = 0
|
<where>
|
<if test="household.userId!=null">
|
AND jg.grid_code IN ( SELECT DISTINCT jgm.grid_code FROM jczz_gridman jgm WHERE jgm.user_id =
|
#{household.userId}
|
)
|
</if>
|
<if test="household.name!=null and household.name !=''">
|
and jh.name like concat('%',#{household.name},'%')
|
</if>
|
<if test="household.houseCode!=null and household.houseCode !=''">
|
and jh.house_code = #{household.houseCode}
|
</if>
|
<if test="household.phoneNumber!=null and household.phoneNumber !=''">
|
and jh.phone_number like concat('%',#{household.phoneNumber},'%')
|
</if>
|
<if test="household.idCard!=null and household.idCard !=''">
|
and jh.id_card like concat('%',#{household.idCard},'%')
|
</if>
|
<if test="household.aoiName!=null and household.aoiName !=''">
|
and jhs.district_name like concat('%',#{household.aoiName},'%')
|
</if>
|
<if test="household.confirmFlag != null ">
|
and jh.confirm_flag = #{household.confirmFlag}
|
</if>
|
<if test="household.townStreetName!=null and household.townStreetName!=''">
|
and jda.town_street_name like concat('%',#{household.townStreetName},'%')
|
</if>
|
<if test="household.neiName!=null and household.neiName!=''">
|
and jda.nei_name like concat('%',#{household.neiName},'%')
|
</if>
|
<if test="household.housingRentalId != null ">
|
and jh.housing_rental_id = #{household.housingRentalId}
|
</if>
|
<if test="household.startTime != null and household.startTime != '' and household.endTime != null and household.endTime != '' ">
|
AND jh.create_time BETWEEN #{household.startTime} and #{household.endTime}
|
</if>
|
<if test="household.regionCode!=null and household.regionCode!=''">
|
and jg.community_code like concat(#{household.regionCode},'%')
|
</if>
|
<if test="household.building!=null and household.building!=''">
|
and jhs.building like concat(#{household.building},'%')
|
</if>
|
<if test="household.unit!=null and household.unit!=''">
|
and jhs.unit like concat(#{household.unit},'%')
|
</if>
|
<if test="household.aoiCode!=null and household.aoiCode!=''">
|
and jhs.district_code = #{household.aoiCode}
|
</if>
|
and jh.id in (
|
SELECT DISTINCT
|
juhl.household_id
|
FROM
|
jczz_user_house_label juhl
|
LEFT JOIN jczz_label jl ON juhl.label_id = jl.id
|
WHERE
|
juhl.lable_type = 1
|
<if test="household.labelId != null ">
|
AND jl.id = #{household.labelId}
|
</if>
|
<if test="household.parentId != null ">
|
AND jl.parent_id = #{household.parentId}
|
</if>
|
AND juhl.label_id IS NOT NULL
|
)
|
and jh.is_deleted = 0
|
order by jh.create_time desc
|
</where>
|
</select>
|
|
<!--根据人员标签编号集合查询对应的住户(按颜色区分近多少天没有发过任务的住户)-->
|
<select id="getHouseholdListByParam" resultType="org.springblade.modules.house.vo.HouseholdVO">
|
select jh.* from jczz_household jh
|
left join jczz_user_house_label juhl on juhl.household_id = jh.id
|
where jh.is_deleted = 0
|
and juhl.lable_type = 1
|
and juhl.color = 'green'
|
and jh.id in (
|
select household_id from jczz_grid_work_log where is_deleted = 0 and source = 2 and TIMESTAMPDIFF( day, now(),
|
create_time )=30
|
)
|
<choose>
|
<when test="list!=null and list.size()>0">
|
and juhl.label_id in
|
<foreach collection="list" item="id" separator="," open="(" close=")">
|
#{id}
|
</foreach>
|
</when>
|
<otherwise>
|
and juhl.label_id in ('')
|
</otherwise>
|
</choose>
|
union all
|
(
|
select jh.* from jczz_household jh
|
left join jczz_user_house_label juhl on juhl.household_id = jh.id
|
where jh.is_deleted = 0
|
and juhl.lable_type = 1
|
and juhl.color = 'yellow'
|
and jh.id in (
|
select household_id from jczz_grid_work_log where is_deleted = 0 and source = 2 and TIMESTAMPDIFF( day, now(),
|
create_time )=14
|
)
|
<choose>
|
<when test="list!=null and list.size()>0">
|
and juhl.label_id in
|
<foreach collection="list" item="id" separator="," open="(" close=")">
|
#{id}
|
</foreach>
|
</when>
|
<otherwise>
|
and juhl.label_id in ('')
|
</otherwise>
|
</choose>
|
)
|
union all
|
(
|
select jh.* from jczz_household jh
|
left join jczz_user_house_label juhl on juhl.household_id = jh.id
|
where jh.is_deleted = 0
|
and juhl.lable_type = 1
|
and juhl.color = 'red'
|
and jh.id in (
|
select household_id from jczz_grid_work_log where is_deleted = 0 and source = 2 and TIMESTAMPDIFF( day, now(),
|
create_time )=7
|
)
|
<choose>
|
<when test="list!=null and list.size()>0">
|
and juhl.label_id in
|
<foreach collection="list" item="id" separator="," open="(" close=")">
|
#{id}
|
</foreach>
|
</when>
|
<otherwise>
|
and juhl.label_id in ('')
|
</otherwise>
|
</choose>
|
)
|
union all
|
(
|
select jh.* from jczz_household jh
|
left join jczz_user_house_label juhl on juhl.household_id = jh.id
|
where jh.is_deleted = 0 and juhl.lable_type = 1
|
and jh.id not in (
|
select household_id from jczz_grid_work_log where is_deleted = 0
|
and household_id is not null
|
and source = 2
|
group by household_id
|
)
|
<choose>
|
<when test="list!=null and list.size()>0">
|
and juhl.label_id in
|
<foreach collection="list" item="id" separator="," open="(" close=")">
|
#{id}
|
</foreach>
|
</when>
|
<otherwise>
|
and juhl.label_id in ('')
|
</otherwise>
|
</choose>
|
)
|
</select>
|
<select id="getlabelStatistics" resultType="org.springblade.common.node.TreeIntegerNode">
|
SELECT
|
jl.id AS id,
|
jl.parent_id AS parentId,
|
jl.label_name AS name,
|
jl.sort,
|
(SELECT
|
count(juhl.household_id ) counts
|
FROM
|
jczz_user_house_label juhl
|
LEFT JOIN jczz_household jh ON juhl.household_id = jh.id
|
LEFT JOIN jczz_house jhs ON jh.house_code = jhs.house_code AND jhs.is_deleted = 0
|
LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
|
LEFT JOIN jczz_grid jg ON jg.grid_code = jhs.grid_code AND jg.is_deleted = 0
|
<where>
|
<if test="household.userId!=null">
|
AND jg.grid_code IN ( SELECT DISTINCT jgm.grid_code FROM jczz_gridman jgm WHERE jgm.user_id =
|
#{household.userId}
|
)
|
</if>
|
<if test="household.name!=null and household.name !=''">
|
and jh.name like concat('%',#{household.name},'%')
|
</if>
|
<if test="household.houseCode!=null and household.houseCode !=''">
|
and jh.house_code = #{household.houseCode}
|
</if>
|
<if test="household.phoneNumber!=null and household.phoneNumber !=''">
|
and jh.phone_number like concat('%',#{household.phoneNumber},'%')
|
</if>
|
<if test="household.idCard!=null and household.idCard !=''">
|
and jh.id_card like concat('%',#{household.idCard},'%')
|
</if>
|
<if test="household.aoiName!=null and household.aoiName !=''">
|
and jhs.district_name like concat('%',#{household.aoiName},'%')
|
</if>
|
<if test="household.confirmFlag != null ">
|
and jh.confirm_flag = #{household.confirmFlag}
|
</if>
|
<if test="household.townStreetName!=null and household.townStreetName!=''">
|
and jda.town_street_name like concat('%',#{household.townStreetName},'%')
|
</if>
|
<if test="household.neiName!=null and household.neiName!=''">
|
and jda.nei_name like concat('%',#{household.neiName},'%')
|
</if>
|
<if test="household.housingRentalId != null ">
|
and jh.housing_rental_id = #{household.housingRentalId}
|
</if>
|
<if test="household.startTime != null and household.startTime != '' and household.endTime != null and household.endTime != '' ">
|
AND jh.create_time BETWEEN #{household.startTime} and #{household.endTime}
|
</if>
|
<if test="household.regionCode!=null and household.regionCode!=''">
|
and jg.community_code like concat(#{household.regionCode},'%')
|
</if>
|
<if test="household.building!=null and household.building!=''">
|
and jhs.building like concat(#{household.building},'%')
|
</if>
|
<if test="household.unit!=null and household.unit!=''">
|
and jhs.unit like concat(#{household.unit},'%')
|
</if>
|
<if test="household.aoiCode!=null and household.aoiCode!=''">
|
and jhs.district_code = #{household.aoiCode}
|
</if>
|
<if test="household.labelId != null ">
|
AND jl.id = #{household.labelId}
|
</if>
|
<if test="household.parentId != null ">
|
AND jl.parent_id = #{household.parentId}
|
</if>
|
AND juhl.label_id IS NOT NULL
|
and juhl.lable_type = 1
|
and jh.is_deleted = 0
|
AND juhl.label_id = jl.id
|
</where>
|
) count
|
FROM
|
jczz_label jl where is_deleted = 0
|
and jl.id != '1002'
|
and jl.id != '1001'
|
and jl.parent_id != '1001'
|
</select>
|
|
</mapper>
|