AttendanceReminderMapper.xml 2.11 KB
<?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="attendanceReminderV1ServiceDaoImpl">

    <select id="queryStaffSchedules" parameterType="map" resultType="map">
        SELECT t.staff_id staffId, t.staff_name staffName, t.schedule_id scheduleId,
               sc.name scheduleName, sc.schedule_type scheduleType, sc.schedule_cycle scheduleCycle,
               sc.compute_time computeTime, sc.state
        FROM schedule_classes_staff t
        INNER JOIN schedule_classes sc ON t.schedule_id = sc.schedule_id AND sc.status_cd = '0'
        WHERE t.status_cd = '0'
        AND t.staff_id = #{staffId}
    </select>

    <select id="queryScheduleById" parameterType="map" resultType="map">
        SELECT schedule_id scheduleId, name, schedule_type scheduleType,
               schedule_cycle scheduleCycle, compute_time computeTime, state
        FROM schedule_classes
        WHERE schedule_id = #{scheduleId} AND status_cd = '0'
    </select>

    <select id="queryScheduleDay" parameterType="map" resultType="map">
        SELECT t.day_id dayId, t.day, t.workday, t.week_flag weekFlag, t.schedule_id scheduleId
        FROM schedule_classes_day t
        WHERE t.status_cd = '0'
        AND t.schedule_id = #{scheduleId}
        <if test="day != null and day != ''">AND t.day = #{day}</if>
        <if test="weekFlag != null and weekFlag != ''">AND t.week_flag = #{weekFlag}</if>
    </select>

    <select id="queryScheduleTimes" parameterType="map" resultType="map">
        SELECT t.time_id timeId, t.day_id dayId, t.start_time startTime, t.end_time endTime
        FROM schedule_classes_time t
        WHERE t.status_cd = '0'
        AND t.day_id = #{dayId}
        ORDER BY t.start_time
    </select>

    <select id="queryTodayPunch" parameterType="map" resultType="map">
        SELECT id, user_id userId, punch_type punchType, punch_time punchTime
        FROM attendance_record
        WHERE user_id = #{userId}
        AND punch_type = #{punchType}
        AND DATE(punch_time) = CURDATE()
        LIMIT 1
    </select>

</mapper>