<?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.ruoyi.system.mapper.SysVisitorRecordMapper">
|
|
<resultMap type="SysVisitorRecordVO" id="SysVisitorRecordVOResult">
|
<id property="recordId" column="record_id" />
|
<result property="registerNo" column="register_no" />
|
<result property="visitorName" column="visitor_name" />
|
<result property="idCard" column="id_card" />
|
<result property="registerType" column="register_type" />
|
<result property="intervieweeName" column="interviewee_name" />
|
<result property="intervieweeDept" column="interviewee_dept" />
|
<result property="visitAreaNames" column="visit_area_names" />
|
<result property="plateNo" column="plate_no" />
|
<result property="visitReason" column="visit_reason" />
|
<result property="validStartTime" column="valid_start_time" />
|
<result property="validEndTime" column="valid_end_time" />
|
<result property="status" column="status" />
|
<result property="registerTime" column="register_time" />
|
</resultMap>
|
|
<resultMap type="SysVisitorRecordDetailVO" id="SysVisitorRecordDetailVOResult">
|
<id property="recordId" column="record_id" />
|
<result property="registerNo" column="register_no" />
|
<result property="visitorName" column="visitor_name" />
|
<result property="idCard" column="id_card" />
|
<result property="registerType" column="register_type" />
|
<result property="intervieweeName" column="interviewee_name" />
|
<result property="intervieweeDept" column="interviewee_dept" />
|
<result property="receiverName" column="receiver_name" />
|
<result property="receiverVerifyMethod" column="receiver_verify_method" />
|
<result property="visitAreaIds" column="visit_area_ids" />
|
<result property="visitAreaNames" column="visit_area_names" />
|
<result property="plateNo" column="plate_no" />
|
<result property="visitReason" column="visit_reason" />
|
<result property="validStartTime" column="valid_start_time" />
|
<result property="validEndTime" column="valid_end_time" />
|
<result property="status" column="status" />
|
<result property="registerTime" column="register_time" />
|
<result property="registerSource" column="register_source" />
|
<result property="faceImageUrl" column="face_image_url" />
|
<result property="signTime" column="sign_time" />
|
<result property="signReceiverName" column="sign_receiver_name" />
|
<result property="signVerifyMethod" column="sign_verify_method" />
|
<result property="signImageUrl" column="sign_image_url" />
|
<result property="remark" column="remark" />
|
</resultMap>
|
|
<resultMap type="SysVisitorPassRecordVO" id="SysVisitorPassRecordVOResult">
|
<id property="passId" column="pass_id" />
|
<result property="recordId" column="record_id" />
|
<result property="passType" column="pass_type" />
|
<result property="passTime" column="pass_time" />
|
<result property="doorDeviceName" column="door_device_name" />
|
<result property="doorDeviceCode" column="door_device_code" />
|
<result property="captureImageUrl" column="capture_image_url" />
|
</resultMap>
|
|
<sql id="selectVisitorRecordBase">
|
select record_id,
|
register_no,
|
visitor_name,
|
id_card,
|
register_type,
|
interviewee_name,
|
coalesce(
|
(
|
select d.dept_name
|
from t_employee e
|
inner join sys_dept d on d.dept_id = e.dept_id and d.del_flag = '0'
|
where e.employee_name = t_visitor_record.interviewee_name
|
and e.del_flag = '0'
|
order by e.employee_id
|
limit 1
|
),
|
nullif(interviewee_dept, '')
|
) as interviewee_dept,
|
receiver_name,
|
receiver_verify_method,
|
visit_area_ids,
|
coalesce(
|
(
|
select group_concat(a.area_name order by find_in_set(a.area_id, t_visitor_record.visit_area_ids) separator ',')
|
from t_visit_area a
|
where a.del_flag = '0'
|
and find_in_set(a.area_id, t_visitor_record.visit_area_ids)
|
),
|
nullif(visit_area_names, '')
|
) as visit_area_names,
|
plate_no,
|
visit_reason,
|
valid_start_time,
|
valid_end_time,
|
status,
|
register_time,
|
register_source,
|
face_image_url,
|
sign_time,
|
sign_receiver_name,
|
sign_verify_method,
|
sign_image_url,
|
remark
|
from t_visitor_record
|
</sql>
|
|
<sql id="selectVisitorRecordList">
|
<include refid="selectVisitorRecordBase" />
|
<where>
|
and del_flag = '0'
|
<if test="query.intervieweeName != null and query.intervieweeName != ''">
|
and interviewee_name like concat('%', #{query.intervieweeName}, '%')
|
</if>
|
<if test="query.intervieweeKeyword != null and query.intervieweeKeyword != ''">
|
and interviewee_name like concat('%', #{query.intervieweeKeyword}, '%')
|
</if>
|
<if test="query.intervieweeDept != null and query.intervieweeDept != ''">
|
and interviewee_dept = #{query.intervieweeDept}
|
</if>
|
<if test="query.areaId != null and query.areaId != ''">
|
and find_in_set(#{query.areaId}, visit_area_ids)
|
</if>
|
<if test="query.visitAreaKeyword != null and query.visitAreaKeyword != ''">
|
and visit_area_names like concat('%', #{query.visitAreaKeyword}, '%')
|
</if>
|
<if test="query.validStartTime != null">
|
and valid_end_time >= #{query.validStartTime}
|
</if>
|
<if test="query.validEndTime != null">
|
and valid_start_time <= #{query.validEndTime}
|
</if>
|
<if test="query.status != null and query.status != ''">
|
and status = #{query.status}
|
</if>
|
<if test="query.visitorName != null and query.visitorName != ''">
|
and visitor_name like concat('%', #{query.visitorName}, '%')
|
</if>
|
<if test="query.visitorKeyword != null and query.visitorKeyword != ''">
|
and (
|
visitor_name like concat('%', #{query.visitorKeyword}, '%')
|
or id_card like concat('%', #{query.visitorKeyword}, '%')
|
)
|
</if>
|
<if test="query.visitReason != null and query.visitReason != ''">
|
and visit_reason like concat('%', #{query.visitReason}, '%')
|
</if>
|
<if test="query.registerType != null and query.registerType != ''">
|
and register_type = #{query.registerType}
|
</if>
|
</where>
|
order by register_time desc, record_id desc
|
</sql>
|
|
<select id="pageList" resultMap="SysVisitorRecordVOResult">
|
<include refid="selectVisitorRecordList" />
|
</select>
|
|
<select id="list" resultMap="SysVisitorRecordVOResult">
|
<include refid="selectVisitorRecordList" />
|
</select>
|
|
<select id="selectDetailById" parameterType="Long" resultMap="SysVisitorRecordDetailVOResult">
|
<include refid="selectVisitorRecordBase" />
|
where record_id = #{recordId}
|
and del_flag = '0'
|
</select>
|
|
<select id="selectPassRecordsByRecordId" parameterType="Long" resultMap="SysVisitorPassRecordVOResult">
|
select pass_id,
|
record_id,
|
pass_type,
|
pass_time,
|
door_device_name,
|
door_device_code,
|
capture_image_url
|
from t_visitor_pass_record
|
where record_id = #{recordId}
|
and del_flag = '0'
|
order by pass_time desc, pass_id desc
|
</select>
|
|
<update id="updateExpiredToAutoSignedOut">
|
update t_visitor_record
|
set status = 'OVERDUE_AUTO_SIGNED_OUT',
|
sign_time = date_sub(date_add(date(valid_end_time), interval 1 day), interval 1 second),
|
sign_verify_method = 'AUTO',
|
update_by = 'system',
|
update_time = sysdate()
|
where del_flag = '0'
|
and status in ('VISITING', 'PENDING_CONFIRM')
|
and valid_end_time is not null
|
and date_add(date(valid_end_time), interval 1 day) <= #{now}
|
</update>
|
|
<update id="updateVisitingToOverdue">
|
update t_visitor_record
|
set status = 'PENDING_CONFIRM',
|
update_time = sysdate()
|
where del_flag = '0'
|
and status = 'VISITING'
|
and valid_end_time is not null
|
and valid_end_time < #{now}
|
and date_add(date(valid_end_time), interval 1 day) > #{now}
|
</update>
|
|
<update id="deleteByIds">
|
update t_visitor_record
|
set del_flag = '1',
|
update_by = #{updateBy},
|
update_time = sysdate()
|
where del_flag = '0'
|
and record_id in
|
<foreach collection="recordIds" item="recordId" open="(" separator="," close=")">
|
#{recordId}
|
</foreach>
|
</update>
|
|
<insert id="insert"
|
parameterType="com.ruoyi.system.domain.SysVisitorRecord"
|
useGeneratedKeys="true"
|
keyProperty="recordId">
|
insert into t_visitor_record
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<if test="middlePlatformId != null">middle_platform_id,</if>
|
<if test="registerNo != null">register_no,</if>
|
<if test="visitorName != null">visitor_name,</if>
|
<if test="idCard != null">id_card,</if>
|
<if test="registerType != null">register_type,</if>
|
<if test="intervieweeName != null">interviewee_name,</if>
|
<if test="receiverVerifyMethod != null">receiver_verify_method,</if>
|
<if test="visitAreaIds != null">visit_area_ids,</if>
|
<if test="plateNo != null">plate_no,</if>
|
<if test="visitReason != null">visit_reason,</if>
|
<if test="validStartTime != null">valid_start_time,</if>
|
<if test="validEndTime != null">valid_end_time,</if>
|
<if test="status != null">status,</if>
|
<if test="registerTime != null">register_time,</if>
|
<if test="faceImageUrl != null">face_image_url,</if>
|
<if test="delFlag != null">del_flag,</if>
|
<if test="receiverName != null">receiver_name,</if>
|
create_time
|
</trim>
|
values
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<if test="middlePlatformId != null">#{middlePlatformId},</if>
|
<if test="registerNo != null">#{registerNo},</if>
|
<if test="visitorName != null">#{visitorName},</if>
|
<if test="idCard != null">#{idCard},</if>
|
<if test="registerType != null">#{registerType},</if>
|
<if test="intervieweeName != null">#{intervieweeName},</if>
|
<if test="receiverVerifyMethod != null">#{receiverVerifyMethod},</if>
|
<if test="visitAreaIds != null">#{visitAreaIds},</if>
|
<if test="plateNo != null">#{plateNo},</if>
|
<if test="visitReason != null">#{visitReason},</if>
|
<if test="validStartTime != null">#{validStartTime},</if>
|
<if test="validEndTime != null">#{validEndTime},</if>
|
<if test="status != null">#{status},</if>
|
<if test="registerTime != null">#{registerTime},</if>
|
<if test="faceImageUrl != null">#{faceImageUrl},</if>
|
<if test="delFlag != null">#{delFlag},</if>
|
<if test="receiverName != null">#{receiverName},</if>
|
now()
|
</trim>
|
|
</insert>
|
</mapper>
|