btxtgxq-system-population/target/classes/mybatis/mapper/censusmsg/censusmsg-mapper.xml
2021-03-22 14:45:21 +08:00

278 lines
9.4 KiB
XML

<?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="com.cm.population.dao.censusmsg.ICensusMsgDao">
<resultMap id="censusMsgDTO" type="com.cm.population.pojo.dtos.censusmsg.CensusMsgDTO">
<id column="census_msg_id" property="censusMsgId"/>
<result column="base_id" property="baseId"/>
<result column="id_card_number" property="idCardNumber"/>
<result column="name_of_householder" property="nameOfHouseholder"/>
<result column="contact" property="contact"/>
<result column="census_number" property="censusNumber"/>
<result column="id_card_of_householder" property="idCardOfHouseholder"/>
<result column="id_card_of_householder" property="idCardOfHouseholder"/>
<result column="people_same_census" property="peopleSameCensus"/>
<result column="relationship_with_householder" property="relationshipWithHouseholder"/>
<result column="full_name" property="fullName"/>
<result column="gender" property="gender"/>
<result column="telephone" property="telephone"/>
<result column="native_place" property="nativePlace"/>
<result column="current_residence" property="currentResidence"/>
</resultMap>
<!-- 新增户籍信息 -->
<insert id="saveCensusMsg" parameterType="map" useGeneratedKeys="true" keyProperty="id">
INSERT IGNORE INTO gen_census_msg(
census_msg_id,
base_id,
name_of_householder,
contact,
census_number,
id_card_of_householder,
relationship_with_householder,
people_same_census,
creator,
gmt_create,
modifier,
gmt_modified,
is_delete
) SELECT
#{censusMsgId},
#{baseId},
#{nameOfHouseholder},
#{contact},
#{censusNumber},
#{idCardOfHouseholder},
#{relationshipWithHouseholder},
#{peopleSameCensus},
#{creator},
#{gmtCreate},
#{modifier},
#{gmtModified},
#{isDelete}
FROM
DUAL
WHERE
NOT EXISTS (
SELECT
*
FROM
gen_census_msg
WHERE
base_id = #{baseId}
AND is_delete = 0
)
</insert>
<!-- 批量新增户籍信息 -->
<insert id="saveCensusMsgList" parameterType="java.util.List">
INSERT IGNORE INTO gen_census_msg(
census_msg_id,
base_id,
name_of_householder,
contact,
census_number,
id_card_of_householder,
relationship_with_householder,
people_same_census,
creator,
gmt_create,
modifier,
gmt_modified,
is_delete
)
<foreach collection="list" index="index" item="item" separator="union all">
SELECT
#{item.censusMsgId},
#{item.baseId},
#{item.nameOfHouseholder},
#{item.contact},
#{item.censusNumber},
#{item.idCardOfHouseholder},
#{item.relationshipWithHouseholder},
#{item.peopleSameCensus},
#{item.creator},
#{item.gmtCreate},
#{item.modifier},
#{item.gmtModified},
#{item.isDelete}
FROM
DUAL
WHERE
NOT EXISTS (
SELECT
*
FROM
gen_census_msg
WHERE
base_id = #{item.baseId}
AND is_delete = 0
)
</foreach>
</insert>
<!-- 删除户籍信息 -->
<update id="removeCensusMsg" parameterType="map">
UPDATE
gen_census_msg
SET
is_delete = 1,
modifier = #{modifier},
gmt_modified = #{gmtModified}
WHERE
census_msg_id IN
<foreach collection="censusMsgIds" index="index" open="(" separator="," close=")">
#{censusMsgIds[${index}]}
</foreach>
</update>
<!-- 删除户籍信息(物理) -->
<update id="deleteCensusMsg" parameterType="map">
DELETE FROM
gen_census_msg
WHERE
census_msg_id IN
<foreach collection="censusMsgIds" index="index" open="(" separator="," close=")">
#{censusMsgIds[${index}]}
</foreach>
</update>
<!-- 修改户籍信息 -->
<update id="updateCensusMsg" parameterType="map">
UPDATE
gen_census_msg
SET
<if test="baseId != null and baseId != ''">
base_id = #{baseId},
</if>
<if test="nameOfHouseholder != null and nameOfHouseholder != ''">
name_of_householder = #{nameOfHouseholder},
</if>
<if test="contact != null and contact != ''">
contact = #{contact},
</if>
<if test="censusNumber != null and censusNumber != ''">
census_number = #{censusNumber},
</if>
<if test="idCardOfHouseholder != null and idCardOfHouseholder != ''">
id_card_of_householder = #{idCardOfHouseholder},
</if>
<if test="relationshipWithHouseholder != null and relationshipWithHouseholder != ''">
relationship_with_householder = #{relationshipWithHouseholder},
</if>
<if test="peopleSameCensus != null and peopleSameCensus != ''">
people_same_census = #{peopleSameCensus},
</if>
modifier = #{modifier},
gmt_modified = #{gmtModified}
WHERE
census_msg_id = #{censusMsgId}
</update>
<!-- 户籍信息详情 -->
<select id="getCensusMsg" parameterType="map" resultMap="censusMsgDTO">
SELECT
t1.name_of_householder,
t1.contact,
t1.census_number,
t1.id_card_of_householder,
t1.relationship_with_householder,
t1.people_same_census,
t1.census_msg_id,
t1.base_id,
t2.id_card_number
FROM
gen_census_msg t1
LEFT JOIN gen_base_population_info t2 ON t1.base_id = t2.base_population_info_id AND t2.is_delete = 0
WHERE
t1.is_delete = 0
<if test="censusMsgId != null and censusMsgId != ''">
AND
t1.census_msg_id = #{censusMsgId}
</if>
</select>
<!-- 户籍信息列表 -->
<select id="listCensusMsg" parameterType="map" resultMap="censusMsgDTO">
SELECT
t1.name_of_householder,
t1.contact,
t1.census_number,
t1.id_card_of_householder,
t1.relationship_with_householder,
t1.people_same_census,
t1.census_msg_id,
t1.base_id,
t2.id_card_number,
t2.full_name,
t2.gender,
t2.telephone,
t2.native_place,
t2.current_residence
FROM
gen_census_msg t1
LEFT JOIN gen_base_population_info t2 ON t1.base_id = t2.base_population_info_id AND t2.is_delete = 0
WHERE
t1.is_delete = 0
<if test="keywords != null and keywords != ''">
AND (
t1.name_of_householder LIKE CONCAT('%', #{keywords}, '%')
OR
t2.id_card_number LIKE CONCAT('%', #{keywords}, '%')
OR
<!-- 全名 -->
t2.full_name LIKE CONCAT('%', #{keywords}, '%')
OR
<!-- 曾用名 -->
t2.name_used_before LIKE CONCAT('%', #{keywords}, '%')
)
</if>
<if test="startTime != null and startTime != ''">
AND
LEFT(t1.gmt_create, 10) <![CDATA[ >= ]]> #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND
LEFT(t1.gmt_create, 10) <![CDATA[ <= ]]> #{endTime}
</if>
<if test="censusMsgIds != null and censusMsgIds.size > 0">
AND
t1.census_msg_id IN
<foreach collection="censusMsgIds" index="index" open="(" separator="," close=")">
#{censusMsgIds[${index}]}
</foreach>
</if>
</select>
<!-- 户籍信息统计 -->
<select id="countCensusMsg" parameterType="map" resultType="Integer">
SELECT
COUNT(*)
FROM
gen_census_msg t1
WHERE
t1.is_delete = 0
</select>
<!-- 通过身份证号码查询户籍信息是否存在 -->
<select id="hasMsg" parameterType="map" resultMap="censusMsgDTO">
SELECT
t1.name_of_householder,
t1.contact,
t1.census_number,
t1.id_card_of_householder,
t1.relationship_with_householder,
t1.people_same_census,
t1.census_msg_id,
t1.base_id,
t2.id_card_number
FROM
gen_census_msg t1
LEFT JOIN gen_base_population_info t2 ON t1.base_id = t2.base_population_info_id AND t2.is_delete = 0
WHERE
t1.is_delete = 0
AND t2.id_card_number = #{idCardNumber}
LIMIT 0, 1
</select>
</mapper>