<?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.staff.mapper.PersonalAttendanceRecordsMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.ruoyi.staff.pojo.PersonalAttendanceRecords">
|
<id column="id" property="id" />
|
<result column="staff_on_job_id" property="staffOnJobId" />
|
<result column="date" property="date" />
|
<result column="work_start_at" property="workStartAt" />
|
<result column="work_end_at" property="workEndAt" />
|
<result column="work_hours" property="workHours" />
|
<result column="status" property="status" />
|
<result column="remark" property="remark" />
|
<result column="tenant_id" property="tenantId" />
|
<result column="create_time" property="createTime" />
|
<result column="update_time" property="updateTime" />
|
</resultMap>
|
|
<select id="listPage" resultType="com.ruoyi.staff.dto.PersonalAttendanceRecordsDto">
|
SELECT
|
personal_attendance_records.*,
|
soj.staff_name as staffName,
|
soj.staff_no as staffNo,
|
sd.dept_name as deptName
|
FROM personal_attendance_records
|
LEFT JOIN
|
staff_on_job soj ON soj.id = personal_attendance_records.staff_on_job_id
|
LEFT JOIN
|
sys_dept sd ON sd.dept_id = soj.sys_dept_id
|
where 1=1
|
<if test="params.staffOnJobId != null and params.staffOnJobId > 0">
|
AND personal_attendance_records.staff_on_job_id = #{params.staffOnJobId}
|
</if>
|
<if test="params.deptId != null and params.deptId > 0">
|
AND sd.dept_id = #{params.deptId}
|
</if>
|
<if test="params.date != null">
|
and personal_attendance_records.date >= #{params.date}
|
and personal_attendance_records.date < DATE_ADD(DATE(#{params.date}), INTERVAL 1 DAY)
|
</if>
|
</select>
|
|
<select id="selectStaffWithoutAttendanceRecord" resultType="com.ruoyi.staff.pojo.StaffOnJob">
|
SELECT soj.*
|
FROM staff_on_job soj
|
WHERE soj.status = 1
|
AND DATE(soj.create_time) < #{date}
|
AND NOT EXISTS (
|
SELECT 1
|
FROM personal_attendance_records par
|
WHERE par.staff_on_job_id = soj.id
|
AND par.date = #{date}
|
)
|
</select>
|
</mapper>
|