| | |
| | | <?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" > |
| | | <?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> |
| | | |
| | | </mapper> |
| | | <!-- 查询指定日期没有考勤记录的在职员工(在指定时间之前入职的) --> |
| | | <select id="selectStaffWithoutAttendanceRecordBeforeTime" resultType="com.ruoyi.staff.pojo.StaffOnJob"> |
| | | SELECT soj.* |
| | | FROM staff_on_job soj |
| | | WHERE soj.staff_state = 1 |
| | | AND soj.create_time < #{entryDeadline} |
| | | AND EXISTS ( |
| | | SELECT 1 |
| | | FROM personal_attendance_location_config palc |
| | | WHERE palc.sys_dept_id = soj.sys_dept_id |
| | | ) |
| | | AND NOT EXISTS ( |
| | | SELECT 1 |
| | | FROM personal_attendance_records par |
| | | WHERE par.staff_on_job_id = soj.id |
| | | AND par.date = #{date} |
| | | ) |
| | | </select> |
| | | |
| | | <!-- 检查指定员工在指定日期是否已存在考勤记录 --> |
| | | <select id="existsAttendanceRecord" resultType="boolean"> |
| | | SELECT EXISTS ( |
| | | SELECT 1 |
| | | FROM personal_attendance_records |
| | | WHERE staff_on_job_id = #{staffOnJobId} |
| | | AND date = #{date} |
| | | ) |
| | | </select> |
| | | </mapper> |