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
and del_flag = '0'
and interviewee_name like concat('%', #{query.intervieweeName}, '%')
and interviewee_name like concat('%', #{query.intervieweeKeyword}, '%')
and interviewee_dept = #{query.intervieweeDept}
and find_in_set(#{query.areaId}, visit_area_ids)
and visit_area_names like concat('%', #{query.visitAreaKeyword}, '%')
and valid_end_time >= #{query.validStartTime}
and valid_start_time <= #{query.validEndTime}
and status = #{query.status}
and visitor_name like concat('%', #{query.visitorName}, '%')
and (
visitor_name like concat('%', #{query.visitorKeyword}, '%')
or id_card like concat('%', #{query.visitorKeyword}, '%')
)
and visit_reason like concat('%', #{query.visitReason}, '%')
and register_type = #{query.registerType}
order by register_time desc, record_id desc
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 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 t_visitor_record
set del_flag = '1',
update_by = #{updateBy},
update_time = sysdate()
where del_flag = '0'
and record_id in
#{recordId}
insert into t_visitor_record
middle_platform_id,register_no,visitor_name,id_card,register_type,interviewee_name,receiver_verify_method,visit_area_ids,plate_no,visit_reason,valid_start_time,valid_end_time,status,register_time,face_image_url,del_flag,receiver_name,
create_time
values
#{middlePlatformId},#{registerNo},#{visitorName},#{idCard},#{registerType},#{intervieweeName},#{receiverVerifyMethod},#{visitAreaIds},#{plateNo},#{visitReason},#{validStartTime},#{validEndTime},#{status},#{registerTime},#{faceImageUrl},#{delFlag},#{receiverName},
now()