lj-zhgd-ht/bonus-modules/bonus-bracelet/src/main/resources/mapper/bracelet/PersonMgeMapper.xml

289 lines
11 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.bonus.bracelet.mapper.PersonMgeMapper">
<!--新增人员-->
<insert id="addPerson" useGeneratedKeys="true" keyProperty="id">
INSERT INTO tb_people
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="name != null and name != ''">name,</if>
<if test="sex != null">sex,</if>
<if test="idCard != null and idCard != ''">id_card,</if>
<if test="phone != null and phone!=''">phone,</if>
<if test="aqmCode != null and aqmCode!=''">aqm_code,</if>
<if test="mjCode != null and mjCode!=''">mj_code,</if>
create_time,
create_user,
update_time,
update_user,
del_flag,
id,
post,
is_push
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="name != null and name != ''">#{name},</if>
<if test="sex != null">#{sex},</if>
<if test="idCard != null and idCard != ''">#{idCard},</if>
<if test="phone != null and phone!=''">#{phone},</if>
<if test="aqmCode != null and aqmCode!=''">#{aqmCode},</if>
<if test="mjCode != null and mjCode!=''">#{mjCode},</if>
#{createTime},
#{createUser},
#{updateTime},
#{updateUser},
0,
null,
#{post},
#{isPush}
</trim>
</insert>
<!--修改人员-->
<update id="editPerson">
UPDATE tb_people SET name = #{name},sex = #{sex},id_card = #{idCard},phone = #{phone},aqm_code = #{aqmCode},mj_code = #{mjCode},update_time = #{updateTime},update_user = #{updateUser},post = #{post},is_push = #{isPush} WHERE id = #{id}
</update>
<!--删除人员-->
<update id="delPerson">
UPDATE tb_people SET del_flag = 1 WHERE id = #{id}
</update>
<!--人员身份证号是否存在-->
<select id="personIsExist" resultType="java.util.Map">
<if test="id == null">
SELECT id,id_card AS value,phone FROM tb_people WHERE del_flag = 0
</if>
<if test="id != null">
SELECT id,id_card AS value,phone FROM tb_people WHERE id != #{id} AND del_flag = 0
</if>
</select>
<!--人员详情-->
<select id="getPersonInfo" resultType="com.bonus.common.entity.bracelet.vo.PersonVo">
SELECT tp.id,
tp.name,
tp.sex,
tp.id_card AS idCard,
tp.phone,
tp.aqm_code AS aqmCode,
tp.mj_code AS mjCode,
sfs.file_path AS filePath,
sfs.id AS fileId,
tp.post,
tp.team_id AS teamId
FROM tb_people tp
LEFT JOIN sys_file_source sfs ON tp.id = sfs.source_id AND sfs.source_type = #{sourceType} AND sfs.del_flag = 0
WHERE tp.id = #{id} AND tp.del_flag = 0
</select>
<!--查询人员列表-->
<select id="getPersonLists" resultType="com.bonus.common.entity.bracelet.vo.PersonVo">
SELECT tp.id,
tp.name,
tp.sex,
tp.id_card AS idCard,
tp.phone,
tp.aqm_code AS aqmCode,
tp.mj_code AS mjCode,
sfs.file_path AS filePath,
sfs.id AS fileId,
sdd.dict_label AS post,
IFNULL(tp.is_push,0) AS isPush
FROM tb_people tp
LEFT JOIN sys_dict_data sdd ON tp.post = sdd.dict_value AND sdd.dict_type = 'post_type' AND sdd.status = '0'
LEFT JOIN sys_file_source sfs ON tp.id = sfs.source_id AND sfs.source_type = #{sourceType} AND sfs.del_flag = 0
LEFT JOIN tb_people_certificate tpc on tp.id = tpc.people_id
WHERE tp.del_flag = 0
<if test="name != null and name!=''">
AND INSTR(tp.name,#{name}) > 0
</if>
<if test="sex != null">
AND tp.sex = #{sex}
</if>
Group by tp.id,sfs.file_path,sfs.id,sdd.dict_label
ORDER BY tp.create_time DESC
</select>
<!--获取人员证书数量-->
<select id="getCertificateNum" resultType="java.lang.Integer">
SELECT
count(tpc.id) as certificateNum
FROM tb_people_certificate tpc
WHERE tpc.people_id = #{id}
</select>
<!--验证安全帽编号是否重复、马甲编号是否重复-->
<select id="codeIsExist" resultType="java.lang.Integer">
<if test="type == 1">
<if test="params.id == null">
SELECT COUNT(*) FROM tb_people WHERE aqm_code = #{params.aqmCode} AND del_flag = 0
</if>
<if test="params.id != null">
SELECT COUNT(*) FROM tb_people WHERE id != #{params.id} AND aqm_code = #{params.aqmCode} AND del_flag = 0
</if>
</if>
<if test="type == 2">
<if test="params.id == null">
SELECT COUNT(*) FROM tb_people WHERE mj_code = #{params.mjCode} AND del_flag = 0
</if>
<if test="params.id != null">
SELECT COUNT(*) FROM tb_people WHERE mj_code = #{params.mjCode} AND id != #{params.id} AND del_flag = 0
</if>
</if>
</select>
<!-- 根据人员id获取证书图片信息-->
<select id="selectCertificateFile" parameterType="int" resultType="com.bonus.common.entity.file.ResourceFileVo">
SELECT sfs.file_path AS filePath,
sfs.id AS fileId,
sfs.source_type as sourceImagType,
sfs.file_name as fileName,
sfs.file_type as fileType
FROM tb_people_certificate tpc
LEFT JOIN sys_file_source sfs ON tpc.id = sfs.source_id AND sfs.source_type in(2,3,4) AND sfs.del_flag = 0
WHERE tpc.people_id = #{memberId}
</select>
<!-- 根据人员id获取信息-->
<select id="selectCertificateById" parameterType="int" resultType="com.bonus.common.entity.bracelet.vo.PersonVo">
SELECT tp.id,
tp.name,
tp.sex,
tp.id_card AS idCard,
tp.phone,
tp.aqm_code AS aqmCode,
tp.mj_code AS mjCode
FROM tb_people tp
WHERE tp.id = #{memberId} AND tp.del_flag = 0
</select>
<!--获取高工证书id-->
<select id="getHighId" parameterType="String" resultType="java.lang.Integer">
select source_id as id
from sys_file_source
where file_path = #{filepath} and source_type = 2 and del_flag = 0
</select>
<!--删除高工信息-->
<delete id="delHigh">
delete from tb_people_certificate where
id = #{id}
</delete>
<!--获取电工证书id-->
<select id="getElectId" parameterType="String" resultType="java.lang.Integer">
select source_id as id
from sys_file_source
where file_path = #{filepath} and source_type = 3 and del_flag = 0
</select>
<!--删除电工信息-->
<delete id="delElect">
delete from tb_people_certificate where
id = #{id}
</delete>
<!--获取其他证书id-->
<select id="getElseId" parameterType="String" resultType="java.lang.Integer">
select source_id as id
from sys_file_source
where file_path = #{filepath} and source_type = 4 and del_flag = 0
</select>
<!--删除其他证书信息-->
<delete id="delElse">
delete from tb_people_certificate where
id = #{id}
</delete>
<update id="delHighFile" >
update sys_file_source
set del_flag = 1
where file_path = #{filePath} and source_id = #{id} and source_type = 2
</update>
<update id="delElectFile" >
update sys_file_source
set del_flag = 1
where file_path = #{filePath} and source_id = #{id} and source_type = 3
</update>
<update id="delElseFile" >
update sys_file_source
set del_flag = 1
where file_path = #{filePath} and source_id = #{id} and source_type = 4
</update>
<insert id="insertCertificate" parameterType="com.bonus.common.entity.bracelet.vo.CertificateVo" useGeneratedKeys="true" keyProperty="id">
insert into tb_people_certificate(
<if test="peopleId != null">people_id,</if>
<if test="certificateType != null">certificate_type</if>
)values(
<if test="peopleId != null">#{peopleId},</if>
<if test="certificateType != null">#{certificateType}</if>
)
</insert>
<!--删除该人员对应的证书-->
<delete id="delCertificate">
delete from tb_people_certificate where
people_id = #{id}
</delete>
<select id="getCertificate" resultType="com.bonus.common.entity.bracelet.vo.CertificateVo">
select id,certificate_type as certificateType
from tb_people_certificate
where people_id = #{id}
</select>
<!--查询导出人员数据-->
<select id="getExportPersonLists" resultType="com.bonus.common.entity.bracelet.vo.PersonVo">
SELECT tp.id,
tp.name,
tp.sex,
tp.id_card AS idCard,
tp.phone,
tp.aqm_code AS aqmCode,
tp.mj_code AS mjCode,
sdd.dict_label AS post,
tp.aqm_code AS aqmCode,
tp.mj_code AS mjCode
FROM tb_people tp
LEFT JOIN sys_dict_data sdd ON tp.post = sdd.dict_value AND sdd.dict_type = 'post_type' AND sdd.status = '0'
WHERE tp.del_flag = 0
<if test="name != null and name!=''">
AND INSTR(tp.name,#{name}) > 0
</if>
<if test="sex != null">
AND tp.sex = #{sex}
</if>
ORDER BY tp.update_time DESC
</select>
<!--获取人员岗位-->
<select id="getPostType" resultType="java.util.Map">
SELECT dict_label AS name, dict_value AS value FROM sys_dict_data sdd
WHERE sdd.dict_type = 'post_type' AND sdd.status = '0'
</select>
<!--判断人员是否绑定了手环设备以及其他设备-->
<select id="isLyDevices" resultType="java.lang.Integer">
SELECT COUNT(*) FROM tb_bracelet WHERE bid_id = #{id} AND peopel_type = 0 AND del_flag = 0
UNION ALL
SELECT COUNT(*) FROM tb_dev_ly WHERE ly_user = #{id}
</select>
<!--人员已分配班组,岗位限制修改 -->
<select id="canItBeModified" resultType="java.lang.Integer">
SELECT COUNT(*) FROM tb_people tp WHERE id = #{id} AND post != #{post} AND team_id IS NOT NULL
</select>
<!--获取所有已入库的安全帽编号-->
<select id="aqmCodeIsExist" resultType="java.util.Map">
SELECT aqm_code AS code FROM tb_people WHERE aqm_code IS NOT NULL AND del_flag = 0
</select>
<!--获取所有已入库的马甲编号-->
<select id="mjCodeIsExist" resultType="java.util.Map">
SELECT mj_code AS code FROM tb_people WHERE mj_code IS NOT NULL AND del_flag = 0
</select>
<!--删除资源文件-->
<update id="delCertificateResourceFile">
UPDATE sys_file_source SET del_flag = 1 WHERE source_id = #{id} and source_type = (#{certificateType})
</update>
<!--更新人脸库推送状态-->
<update id="updatePeoplePushStatus">
UPDATE tb_people SET is_push = 1 WHERE id = #{id}
</update>
</mapper>