2024-10-13 00:15:53 +08:00
<?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.yanzhu.manage.mapper.AttendanceUbiDataMapper" >
<resultMap type= "AttendanceUbiData" id= "AttendanceUbiDataResult" >
<result property= "id" column= "id" />
<result property= "comId" column= "comId" />
2024-10-13 11:26:52 +08:00
<result property= "comName" column= "comName" />
<result property= "projectName" column= "projectName" />
2024-10-13 00:15:53 +08:00
<result property= "projectId" column= "projectId" />
2024-10-15 23:22:33 +08:00
<result property= "subDeptId" column= "sub_dept_id" />
<result property= "subDeptName" column= "sub_dept_name" />
2024-10-13 00:15:53 +08:00
<result property= "userId" column= "userId" />
2024-10-13 11:26:52 +08:00
<result property= "admitGuid" column= "admitGuid" />
2024-10-13 00:15:53 +08:00
<result property= "userName" column= "userName" />
<result property= "subDeptGroup" column= "sub_dept_group" />
<result property= "subDeptGroupName" column= "sub_dept_group_name" />
<result property= "craftType" column= "craft_type" />
<result property= "craftPost" column= "craft_post" />
<result property= "inTime" column= "inTime" />
<result property= "inData" column= "inData" />
<result property= "outTime" column= "outTime" />
<result property= "outData" column= "outData" />
<result property= "deviceNo" column= "deviceNo" />
<result property= "isDel" column= "is_del" />
<result property= "state" column= "state" />
<result property= "remark" column= "remark" />
<result property= "createBy" column= "create_by" />
<result property= "createTime" column= "create_time" />
<result property= "updateBy" column= "update_by" />
<result property= "eventGuid" column= "eventGuid" />
<result property= "inPhoto" column= "inPhoto" />
<result property= "outPhoto" column= "outPhoto" />
</resultMap>
<sql id= "selectAttendanceUbiDataVo" >
2024-10-13 11:26:52 +08:00
select id, comId, projectId, userId, userName, sub_dept_group, sub_dept_group_name, craft_type, craft_post,admitGuid,
2024-10-15 23:22:33 +08:00
eventGuid,inPhoto,outPhoto,comName,projectName,sub_dept_id,sub_dept_name,
2024-10-13 11:26:52 +08:00
inTime, outTime, deviceNo, is_del, state, remark, create_by, create_time, update_by, update_time from attendance_ubi_data
2024-10-13 00:15:53 +08:00
</sql>
2024-12-29 11:46:50 +08:00
2024-10-13 11:26:52 +08:00
<sql id= "selectAttendanceUbiDataAllVo" >
select id, comId, projectId, userId, userName, sub_dept_group, sub_dept_group_name, craft_type, craft_post,admitGuid,
2024-10-15 23:22:33 +08:00
eventGuid,inPhoto,outPhoto,inData,outData,comName,projectName,sub_dept_id,sub_dept_name,
2024-10-13 11:26:52 +08:00
inTime, outTime, deviceNo, is_del, state, remark, create_by, create_time, update_by, update_time from attendance_ubi_data
2024-12-29 11:46:50 +08:00
</sql>
<select id= "selectAttendanceUbiDataList" parameterType= "AttendanceUbiData" resultMap= "AttendanceUbiDataResult" >
2024-10-13 00:15:53 +08:00
<include refid= "selectAttendanceUbiDataVo" />
<where >
<if test= "comId != null " > and comId = #{comId}</if>
<if test= "projectId != null " > and projectId = #{projectId}</if>
2024-10-15 23:22:33 +08:00
<if test= "subDeptId != null " > and sub_dept_id = #{subDeptId}</if>
2024-10-13 00:15:53 +08:00
<if test= "userId != null " > and userId = #{userId}</if>
<if test= "userName != null and userName != ''" > and userName like concat('%', #{userName}, '%')</if>
<if test= "subDeptGroup != null " > and sub_dept_group = #{subDeptGroup}</if>
<if test= "subDeptGroupName != null and subDeptGroupName != ''" > and sub_dept_group_name like concat('%', #{subDeptGroupName}, '%')</if>
<if test= "craftType != null and craftType != ''" > and craft_type = #{craftType}</if>
<if test= "craftPost != null and craftPost != ''" > and craft_post = #{craftPost}</if>
2024-10-15 23:22:33 +08:00
<if test= "inTime != null " > and date(inTime) = date(#{inTime})</if>
2024-10-13 00:15:53 +08:00
<if test= "inData != null and inData != ''" > and inData = #{inData}</if>
2024-10-15 23:22:33 +08:00
<if test= "outTime != null " > and date(outTime) = date(#{outTime})</if>
2024-10-13 00:15:53 +08:00
<if test= "outData != null and outData != ''" > and outData = #{outData}</if>
<if test= "deviceNo != null and deviceNo != ''" > and deviceNo = #{deviceNo}</if>
<if test= "isDel != null " > and is_del = #{isDel}</if>
<if test= "state != null " > and state = #{state}</if>
2024-12-29 11:46:50 +08:00
<if test= "params.beginTime != null and params.beginTime != '' and params.endTime != null and params.endTime != ''" > and date(create_time) between #{params.beginTime} and #{params.endTime}</if>
2024-10-13 00:15:53 +08:00
</where>
2024-12-29 11:46:50 +08:00
order by id desc
2024-10-13 00:15:53 +08:00
</select>
2024-10-13 11:26:52 +08:00
<select id= "queryAttendaceInfo" parameterType= "AttendanceUbiData" resultMap= "AttendanceUbiDataResult" >
<include refid= "selectAttendanceUbiDataVo" />
<where >
<if test= "comId != null " > and comId = #{comId}</if>
<if test= "projectId != null " > and projectId = #{projectId}</if>
2024-10-15 23:22:33 +08:00
<if test= "subDeptId != null " > and sub_dept_id = #{subDeptId}</if>
2024-10-13 11:26:52 +08:00
<if test= "userId != null " > and userId = #{userId}</if>
<if test= "admitGuid != null and admitGuid != ''" > and admitGuid = #{admitGuid}</if>
<if test= "userName != null and userName != ''" > and userName like concat('%', #{userName}, '%')</if>
2025-09-04 17:46:13 +08:00
<if test= "inTime != null " >
and (date(inTime) = date(#{inTime}) or date(outTime) = date(#{inTime}))
</if>
2024-10-13 11:26:52 +08:00
<if test= "outTime != null " > and date(outTime) = date(#{outTime})</if>
<if test= "deviceNo != null and deviceNo != ''" > and deviceNo = #{deviceNo}</if>
</where>
</select>
2024-10-18 22:16:54 +08:00
<select id= "queryStatistics" parameterType= "AttendanceUbiData" resultMap= "AttendanceUbiDataResult" >
select * from (
select ad.`userId`
from attendance_ubi_data ad
where
date(ad.`inTime`)>=date(#{inTime}) and date(ad.`inTime`) < date(#{outTime})
<if test= "projectId != null " > and ad.projectId = #{projectId}</if>
<if test= "subDeptId != null " > and ad.sub_dept_id = #{subDeptId}</if>
group by ad.`userId`
order by ad.userId) xx
</select>
<select id= "queryStatisticsByUserIds" parameterType= "AttendanceUbiData" resultMap= "AttendanceUbiDataResult" >
<include refid= "selectAttendanceUbiDataVo" />
where date(inTime)>=date(#{inTime}) and date(inTime) < date(#{outTime})
<if test= "userIds!=null" >
and userId in
<foreach item= "id" collection= "userIds" open= "(" separator= "," close= ")" >
#{id}
</foreach>
</if>
</select>
2024-10-13 00:15:53 +08:00
<select id= "selectAttendanceUbiDataById" parameterType= "Long" resultMap= "AttendanceUbiDataResult" >
<include refid= "selectAttendanceUbiDataVo" />
where id = #{id}
</select>
<insert id= "insertAttendanceUbiData" parameterType= "AttendanceUbiData" useGeneratedKeys= "true" keyProperty= "id" >
insert into attendance_ubi_data
<trim prefix= "(" suffix= ")" suffixOverrides= "," >
<if test= "comId != null" > comId,</if>
<if test= "projectId != null" > projectId,</if>
<if test= "userId != null" > userId,</if>
<if test= "userName != null" > userName,</if>
<if test= "subDeptGroup != null" > sub_dept_group,</if>
<if test= "subDeptGroupName != null" > sub_dept_group_name,</if>
<if test= "craftType != null" > craft_type,</if>
<if test= "craftPost != null" > craft_post,</if>
<if test= "inTime != null" > inTime,</if>
<if test= "inData != null" > inData,</if>
<if test= "outTime != null" > outTime,</if>
<if test= "outData != null" > outData,</if>
<if test= "deviceNo != null" > deviceNo,</if>
<if test= "isDel != null" > is_del,</if>
2024-10-15 23:22:33 +08:00
<if test= "subDeptId != null" > sub_dept_id,</if>
<if test= "subDeptName != null" > sub_dept_name,</if>
2024-10-13 11:26:52 +08:00
<if test= "comName != null" > comName,</if>
<if test= "projectName != null" > projectName,</if>
<if test= "admitGuid != null" > admitGuid,</if>
2024-10-13 00:15:53 +08:00
<if test= "eventGuid != null" > eventGuid,</if>
<if test= "inPhoto != null" > inPhoto,</if>
<if test= "outPhoto != null" > outPhoto,</if>
<if test= "state != null" > state,</if>
<if test= "remark != null" > remark,</if>
<if test= "createBy != null" > create_by,</if>
<if test= "createTime != null" > create_time,</if>
<if test= "updateBy != null" > update_by,</if>
<if test= "updateTime != null" > update_time,</if>
</trim>
<trim prefix= "values (" suffix= ")" suffixOverrides= "," >
<if test= "comId != null" > #{comId},</if>
<if test= "projectId != null" > #{projectId},</if>
<if test= "userId != null" > #{userId},</if>
<if test= "userName != null" > #{userName},</if>
<if test= "subDeptGroup != null" > #{subDeptGroup},</if>
<if test= "subDeptGroupName != null" > #{subDeptGroupName},</if>
<if test= "craftType != null" > #{craftType},</if>
<if test= "craftPost != null" > #{craftPost},</if>
<if test= "inTime != null" > #{inTime},</if>
<if test= "inData != null" > #{inData},</if>
<if test= "outTime != null" > #{outTime},</if>
<if test= "outData != null" > #{outData},</if>
<if test= "deviceNo != null" > #{deviceNo},</if>
<if test= "isDel != null" > #{isDel},</if>
2024-10-15 23:22:33 +08:00
<if test= "subDeptId != null" > #{subDeptId},</if>
<if test= "subDeptName != null" > #{subDeptName},</if>
2024-10-13 11:26:52 +08:00
<if test= "comName != null" > #{comName},</if>
<if test= "projectName != null" > #{projectName},</if>
<if test= "admitGuid != null" > #{admitGuid},</if>
2024-10-13 00:15:53 +08:00
<if test= "eventGuid != null" > #{eventGuid},</if>
<if test= "inPhoto != null" > #{inPhoto},</if>
<if test= "outPhoto != null" > #{outPhoto},</if>
<if test= "state != null" > #{state},</if>
<if test= "remark != null" > #{remark},</if>
<if test= "createBy != null" > #{createBy},</if>
<if test= "createTime != null" > #{createTime},</if>
<if test= "updateBy != null" > #{updateBy},</if>
<if test= "updateTime != null" > #{updateTime},</if>
</trim>
</insert>
<update id= "updateAttendanceUbiData" parameterType= "AttendanceUbiData" >
update attendance_ubi_data
<trim prefix= "SET" suffixOverrides= "," >
<if test= "comId != null" > comId = #{comId},</if>
<if test= "projectId != null" > projectId = #{projectId},</if>
<if test= "userId != null" > userId = #{userId},</if>
<if test= "userName != null" > userName = #{userName},</if>
<if test= "subDeptGroup != null" > sub_dept_group = #{subDeptGroup},</if>
<if test= "subDeptGroupName != null" > sub_dept_group_name = #{subDeptGroupName},</if>
<if test= "craftType != null" > craft_type = #{craftType},</if>
<if test= "craftPost != null" > craft_post = #{craftPost},</if>
<if test= "inTime != null" > inTime = #{inTime},</if>
<if test= "inData != null" > inData = #{inData},</if>
<if test= "outTime != null" > outTime = #{outTime},</if>
<if test= "outData != null" > outData = #{outData},</if>
<if test= "deviceNo != null" > deviceNo = #{deviceNo},</if>
<if test= "isDel != null" > is_del = #{isDel},</if>
2024-10-15 23:22:33 +08:00
<if test= "subDeptId != null" > sub_dept_id = #{subDeptId},</if>
<if test= "subDeptName != null" > sub_dept_name = #{subDeptName},</if>
2024-10-13 11:26:52 +08:00
<if test= "comName != null" > comName = #{comName},</if>
<if test= "projectName != null" > projectName = #{projectName},</if>
<if test= "admitGuid != null" > admitGuid = #{admitGuid},</if>
<if test= "eventGuid != null" > eventGuid = #{eventGuid},</if>
<if test= "inPhoto != null" > inPhoto = #{inPhoto},</if>
<if test= "outPhoto != null" > outPhoto = #{outPhoto},</if>
2024-10-13 00:15:53 +08:00
<if test= "state != null" > state = #{state},</if>
<if test= "remark != null" > remark = #{remark},</if>
<if test= "createBy != null" > create_by = #{createBy},</if>
<if test= "createTime != null" > create_time = #{createTime},</if>
<if test= "updateBy != null" > update_by = #{updateBy},</if>
<if test= "updateTime != null" > update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>
<delete id= "deleteAttendanceUbiDataById" parameterType= "Long" >
delete from attendance_ubi_data where id = #{id}
</delete>
<delete id= "deleteAttendanceUbiDataByIds" parameterType= "String" >
delete from attendance_ubi_data where id in
<foreach item= "id" collection= "array" open= "(" separator= "," close= ")" >
#{id}
</foreach>
</delete>
2024-12-29 11:46:50 +08:00
<select id= "statsAttendanceDays" parameterType= "AttendanceUbiData" resultType= "Map" >
select u.craft_type as craftType, count(1) as total from attendance_ubi_data d
left join pro_project_info_subdepts_users u on u.user_id = d.userId
2025-06-27 00:32:10 +08:00
<where >
<if test= "projectId != null " > and d.projectId = #{projectId}</if>
<if test= "subDeptId != null " > and d.sub_dept_id = #{subDeptId}</if>
<if test= "subDeptGroup != null " > and d.sub_dept_group = #{subDeptGroup}</if>
2025-06-27 01:11:34 +08:00
and date(d.create_time) = CURDATE()
2025-06-27 00:32:10 +08:00
</where>
2024-12-29 11:46:50 +08:00
group by u.craft_type
</select>
<select id= "statsAttendanceView" parameterType= "AttendanceUbiData" resultType= "Map" >
select DATE_FORMAT(days.attendanceTime, '%m-%d') as attendanceTime,days.total from(
2025-06-27 00:32:10 +08:00
select date(d.create_time) as attendanceTime, count(1) as total from attendance_ubi_data d
<where >
<if test= "projectId != null " > and d.projectId = #{projectId}</if>
<if test= "subDeptId != null " > and d.sub_dept_id = #{subDeptId}</if>
<if test= "subDeptGroup != null " > and d.sub_dept_group = #{subDeptGroup}</if>
2025-06-27 01:11:34 +08:00
and date(d.create_time) > = CURDATE() - INTERVAL 7 DAY
2025-06-27 00:32:10 +08:00
</where>
group by attendanceTime
order by attendanceTime
2024-12-29 11:46:50 +08:00
)days
</select>
2025-05-19 00:12:03 +08:00
<select id= "groupAttendanceLastWeek" resultMap= "AttendanceUbiDataResult" >
SELECT dt comName, count(1) comId
from (SELECT DISTINCT userid, date (ifnull(inTime, outTime)) dt from attendance_ubi_data
where is_del!=1
and projectid=#{prjId}
AND (date (inTime) > = date (#{dateStart})
or date (outTime) > = date (#{dateStart}))
AND (date (inTime) < = date (#{dateEnd})
or date (outTime) < = date (#{dateEnd}))
) tmp
GROUP BY dt
</select>
<select id= "getRealAttendance" resultMap= "AttendanceUbiDataResult" >
<include refid= "selectAttendanceUbiDataVo" />
where
is_del!=1
and projectid=#{prjId}
and date(inTime)=date(now()) or date(outTime)=date(now())
order by ifnull(inTime,outTime) DESC
LIMIT 4
</select>
2024-10-13 00:15:53 +08:00
</mapper>