gz_att/bonus-modules/bonus-system/src/main/resources/mapper/att/WechatPushMapper.xml

203 lines
7.9 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.system.att.dao.WechatPushDao">
<insert id="insertWebFace">
insert into sys_user_face(user_id,applied_face,applied_face_features,new_face,new_face_features,is_check,collection_time,examine_time)
values(#{userId},#{appliedFace},#{appliedFaceFeatures},#{newFace},#{newFaceFeatures},#{isCheck},#{collectionTime},#{examineTime})
</insert>
<insert id="insertWebLeave" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
insert into leave_apply(leave_form_id,submit_id,user_id,user_name,org_id,org_name,type,
leave_type,leave_reason,
leave_start_date,
<if test="leaveStartInterval != null">
leave_start_interval,
</if>
leave_end_date,
<if test="leaveEndInterval != null">
leave_end_interval,
</if>
leave_duration,examine_user_id,examine_opinion,examine_time,examine_status,host_user_id,
host_user_name,is_agree,location,source,create_user_id,create_time,update_user_id,update_time,remark)
values(#{leaveFormId},#{submitId},#{userId},#{userName},#{orgId},#{orgName},#{type},
#{leaveType},#{leaveReason},
#{leaveStartDate},
<if test="leaveStartInterval != null">
#{leaveStartInterval},
</if>
#{leaveEndDate},
<if test="leaveEndInterval != null">
#{leaveEndInterval},
</if>
#{leaveDuration},#{examineUserId},#{examineOpinion},#{examineTime},
#{examineStatus},#{hostUserId},#{hostUserName},#{isAgree},#{location},#{source},
#{createUserId},#{createTime},#{updateUserId},#{updateTime},#{remark})
</insert>
<insert id="insertWechatLeave">
insert IGNORE into leave_apply(id,leave_form_id,submit_id,user_id,user_name,org_id,org_name,type,
leave_type,leave_reason,
leave_start_date,
<if test="leaveStartInterval != null">
leave_start_interval,
</if>
leave_end_date,
<if test="leaveEndInterval != null">
leave_end_interval,
</if>
leave_duration,examine_user_id,examine_opinion,examine_time,examine_status,host_user_id,
host_user_name,is_agree,location,source,create_user_id,create_time,update_user_id,update_time,remark)
values(#{id}#{leaveFormId},#{submitId},#{userId},#{userName},#{orgId},#{orgName},#{type},
#{leaveType},#{leaveReason},
#{leaveStartDate},
<if test="leaveStartInterval != null">
#{leaveStartInterval},
</if>
#{leaveEndDate},
<if test="leaveEndInterval != null">
#{leaveEndInterval},
</if>
#{leaveDuration},#{examineUserId},#{examineOpinion},#{examineTime},
#{examineStatus},#{hostUserId},#{hostUserName},#{isAgree},#{location},#{source},
#{createUserId},#{createTime},#{updateUserId},#{updateTime},#{remark})
</insert>
<insert id="pushAttDataToQsy">
<foreach collection="list" item="item" separator=";">
replace INTO gz_cloud_test.fc_sup_attendance (
name,
id_number,
org_id,
pro_id,
attendance_type,
attendance_date,
attendance_time,
lon,
lat,
attendance_external,
attendance_remark,
is_wechat
) VALUES (
#{item.name},
#{item.idNumber},
#{item.orgId},
#{item.proId},
CASE
WHEN #{item.attType} = '1' THEN '上班'
WHEN #{item.attType} = '2' THEN '下班'
ELSE '默认'
END,
#{item.attCurrentDay},
#{item.attCurrentTime},
#{item.attLon},
#{item.attLat},
CASE
WHEN #{item.isOutsideAtt} = '1' THEN '外勤打卡'
WHEN #{item.isOutsideAtt} = '2' THEN '正常打卡'
ELSE '默认'
END,
#{item.remark},
'1'
)
</foreach>
</insert>
<update id="updateWebPassword">
update sys_user set password = #{password},update_time = #{updateTime} where user_id = #{userId}
</update>
<update id="updateWebOpenId">
update sys_user set open_id = #{openId} where user_id = #{userId}
</update>
<update id="updateWebFace">
update sys_user_face set new_face = #{newFace},new_face_features = #{newFaceFeatures},is_check = #{isCheck},
collection_time = #{collectionTime},examine_time = #{examineTime}
where user_id = #{userId}
</update>
<select id="getPersonList" resultType="com.bonus.system.api.domain.SysUser">
SELECT distinct
su.user_id,
su.user_name,
su.phone,
su.`password`,
IF(applied_face is null,1,su.is_face) as isFace,
pd.org_id,
IF(pd.org_id IS NOT NULL, 1, 0) isPd,
su.update_time,
su.open_id
FROM sys_user su
LEFT JOIN (
SELECT gp.user_id,gp.org_id
FROM att_group g
LEFT JOIN att_group_person_relation gp on g.id = gp.group_id
WHERE g.is_active = 1 and g.att_type = 2
) pd ON pd.user_id = su.user_id
LEFT JOIN sys_user_face sw ON sw.user_id = su.user_id
WHERE is_active = '1'
GROUP BY user_id
</select>
<select id="getWebFaceList" resultType="com.bonus.system.att.entity.AttFaceBean">
SELECT
*
FROM
sys_user_face
</select>
<select id="getOrgInfoByUserId" resultType="com.bonus.system.basic.domain.SysOrg">
SELECT
distinct
user_id,
org_id AS id,
org_name,
att_range,
so.lon,
so.lat
FROM att_group_person_relation ag
LEFT JOIN sys_organization so ON so.id = ag.org_id
LEFT JOIN att_group_setting agt on agt.group_id = ag.group_id and agt.is_active = '1'
AND so.is_active = '1'
WHERE ag.user_id = #{userId}
limit 1
</select>
<select id="getWebLeaveList" resultType="com.bonus.system.evection.entity.EvectionBean">
SELECT
*
from
leave_apply
where is_active = '1'
</select>
<select id="getOrgInfoByUserName" resultType="com.bonus.system.basic.domain.SysOrg">
SELECT
distinct
ag.user_id,
ag.org_id AS id,
so.org_name,
agt.att_range,
so.lon,
so.lat,
su.id_number
FROM
att_group_person_relation ag
LEFT JOIN sys_organization so ON so.id = ag.org_id AND so.is_active = '1'
LEFT JOIN att_group_setting agt on agt.group_id = ag.group_id and agt.is_active = '1'
LEFT JOIN sys_user su ON su.user_id = ag.user_id AND su.is_active = '1'
WHERE
su.user_name = #{userName}
limit 1
</select>
<select id="getProOrgToQsy" resultType="com.bonus.system.index.entity.MapBean">
SELECT
If(PROJECT_ID is null,0,PROJECT_ID) AS proId,
If(ORG_ID is null,0,ORG_ID) AS orgId
FROM
gz_cloud_test.bm_sup_attend_history
WHERE
ID_NUMBER = #{idNumber}
limit 1
</select>
</mapper>