123 lines
7.1 KiB
XML
123 lines
7.1 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.evo.attendance.mapper.RzAttendanceMapper">
|
|
|
|
<resultMap type="RzAttendance" id="RzAttendanceResult">
|
|
<result property="id" column="id" />
|
|
<result property="staffId" column="staff_id" />
|
|
<result property="name" column="name" />
|
|
<result property="deptId" column="dept_id" />
|
|
<result property="attendanceDate" column="attendance_date" />
|
|
<result property="rules" column="rules" />
|
|
<result property="workStartTime" column="work_start_time" />
|
|
<result property="workEndTime" column="work_end_time" />
|
|
<result property="workSum" column="work_sum" />
|
|
<result property="workHours" column="work_hours" />
|
|
<result property="nightNumber" column="night_number" />
|
|
<result property="middleShiftNumber" column="middle_shift_number" />
|
|
<result property="remarks" column="remarks" />
|
|
<result property="delFlag" column="del_flag" />
|
|
<result property="createBy" column="create_by" />
|
|
<result property="createTime" column="create_time" />
|
|
<result property="updateBy" column="update_by" />
|
|
<result property="updateTime" column="update_time" />
|
|
<result property="ycsFlag" column="ycs_flag" />
|
|
<result property="ycxFlag" column="ycx_flag" />
|
|
</resultMap>
|
|
|
|
<sql id="selectRzAttendanceVo">
|
|
select id, staff_id, name, dept_id, attendance_date, rules, work_start_time,ycs_flag,ycx_flag, work_end_time, work_sum,work_hours,night_number,middle_shift_number,remarks, del_flag, create_by, create_time, update_by, update_time from rz_attendance
|
|
</sql>
|
|
|
|
<select id="selectRzAttendanceList" parameterType="RzAttendance" resultMap="RzAttendanceResult">
|
|
select * from rz_attendance d
|
|
<where>
|
|
d.del_flag = '0'
|
|
<if test="staffId != null "> and d.staff_id = #{staffId}</if>
|
|
<if test="deptId != null "> and d.dept_id = #{deptId}</if>
|
|
<if test="ycsFlag != null "> and (d.ycs_flag = #{ycsFlag} or d.ycx_flag = #{ycxFlag})</if>
|
|
<if test="workSum == '1'.toString()"> and d.work_sum > 0</if>
|
|
<if test="name != null and name != ''"> and d.name like concat('%', #{name}, '%')</if>
|
|
<if test="attendanceDate != null "> and DATE_FORMAT( d.attendance_date, '%Y%m%d' ) = DATE_FORMAT(#{attendanceDate} , '%Y%m%d' )</if>
|
|
${params.dataScope}
|
|
</where>
|
|
</select>
|
|
|
|
<select id="selectRzAttendanceById" parameterType="Long" resultMap="RzAttendanceResult">
|
|
<include refid="selectRzAttendanceVo"/>
|
|
where id = #{id}
|
|
</select>
|
|
|
|
<update id="updateRzAttendance" parameterType="RzAttendance">
|
|
update rz_attendance
|
|
<trim prefix="SET" suffixOverrides=",">
|
|
<if test="staffId != null">staff_id = #{staffId},</if>
|
|
<if test="name != null">name = #{name},</if>
|
|
<if test="deptId != null">dept_id = #{deptId},</if>
|
|
<if test="attendanceDate != null">attendance_date = #{attendanceDate},</if>
|
|
<if test="rules != null">rules = #{rules},</if>
|
|
<if test="workStartTime != null">work_start_time = #{workStartTime},</if>
|
|
<if test="workEndTime != null">work_end_time = #{workEndTime},</if>
|
|
<if test="workSum != null">work_sum = #{workSum},</if>
|
|
<if test="nightNumber != null">night_number = #{nightNumber},</if>
|
|
<if test="middleShiftNumber != null">middle_shift_number = #{middleShiftNumber},</if>
|
|
<if test="remarks != null">remarks = #{remarks},</if>
|
|
<if test="delFlag != null">del_flag = #{delFlag},</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>
|
|
<if test="ycsFlag != null">ycs_flag = #{ycsFlag},</if>
|
|
<if test="ycxFlag != null">ycx_flag = #{ycxFlag},</if>
|
|
</trim>
|
|
where id = #{id}
|
|
</update>
|
|
<!-- 根据打卡时间和员工ID查询当天的打卡记录 -->
|
|
<select id="queryNowDayAttendanceByStatisticalIdAndDate" resultMap="RzAttendanceResult">
|
|
<include refid="selectRzAttendanceVo"/>
|
|
where del_flag = '0' and DATE_FORMAT( attendance_date, '%Y%m%d' ) = DATE_FORMAT(#{date} , '%Y%m%d' ) and staff_id = #{staffId}
|
|
</select>
|
|
<!-- 查询当天打卡的考勤的记录 -->
|
|
<select id="attendenceCount" resultMap="RzAttendanceResult">
|
|
<include refid="selectRzAttendanceVo"/>
|
|
where del_flag = '0' and DATE_FORMAT( attendance_date, '%Y%m%d' ) = DATE_FORMAT(NOW() , '%Y%m%d' ) and work_start_time is not null
|
|
</select>
|
|
<!-- 根据员工ID查询最后一次考勤记录 -->
|
|
<select id="selectLastRzAttendanceByStaffId" parameterType="Long" resultMap="RzAttendanceResult">
|
|
<include refid="selectRzAttendanceVo"/>
|
|
where work_start_time is not null and staff_id = #{staffId} and del_flag = '0' order by attendance_date desc limit 1
|
|
</select>
|
|
<!-- 根据月份查询员工的打卡考勤 -->
|
|
<select id="queryMonthAttendanceByStaffId" resultMap="RzAttendanceResult">
|
|
<include refid="selectRzAttendanceVo"/>
|
|
where del_flag = '0' and DATE_FORMAT( attendance_date, '%Y%m' ) = DATE_FORMAT(#{date} , '%Y%m' ) and staff_id = #{staffId}
|
|
</select>
|
|
<!-- 根据页面条件查询考勤记录信息 -->
|
|
<select id="listAttendanceByParams" parameterType="RzAttendance" resultMap="RzAttendanceResult">
|
|
select * from rz_attendance
|
|
<where>
|
|
del_flag = '0'
|
|
<if test="staffId != null "> and staff_id = #{staffId}</if>
|
|
<if test="attendanceDate != null "> and DATE_FORMAT(attendance_date, '%Y%m' ) = DATE_FORMAT(#{attendanceDate} , '%Y%m' )</if>
|
|
<if test="nightNumber != 0">and night_number > 0</if>
|
|
<if test="middleShiftNumber != 0">and middle_shift_number > 0</if>
|
|
</where>
|
|
</select>
|
|
<!-- 批量插入考勤记录 -->
|
|
<insert id="insertBatchRzAttendance" parameterType="java.util.List">
|
|
insert into rz_attendance(staff_id, name, dept_id, attendance_date,del_flag, create_by, create_time,ycs_flag,ycx_flag)
|
|
VALUES
|
|
<foreach collection="list" item="item" index="index" separator=",">
|
|
(#{item.staffId}, #{item.name}, #{item.deptId}, #{item.attendanceDate}, #{item.delFlag}, #{item.createBy}, #{item.createTime}, #{item.ycsFlag}, #{item.ycxFlag})
|
|
</foreach>
|
|
</insert>
|
|
<!-- 查询当天在职员工的打卡考勤 -->
|
|
<select id="currentDateAllAttendance" resultMap="RzAttendanceResult">
|
|
<include refid="selectRzAttendanceVo"/>
|
|
where del_flag = '0' and DATE_FORMAT( attendance_date, '%Y%m%d' ) = DATE_FORMAT(NOW() , '%Y%m%d' )
|
|
and staff_id in (select user_id from sys_staff where status != '-1')
|
|
</select>
|
|
</mapper>
|