# SvaActualScheduleHoursQuery.java

    package cloud.wconnect.workperformance.pojo.query.sva.avhours;

    import lombok.Data;
    import org.hibernate.validator.constraints.Range;

    import jakarta.validation.constraints.NotNull;

    /**
     * Query类：Actual vs Scheduled Hours
     *
     * @author zc
     * @date 2023/3/22
     */
    @Data
    public class SvaActualScheduleHoursQuery {

        /**
         * 页码
         */
        @NotNull(message = "The page cannot be null.")
        private Integer page;

        /**
         * 每页数量
         */
        @NotNull(message = "The size cannot be null.")
        private Integer size;

        /**
         * 排序（1:正序,2:倒序)
         */
        @Range(min = 1, max = 2, message = "The sortType must limit in [1:asc, 2:desc].")
        private Integer sortType;

        public static final int SORT_TYPE_ASC = 1;
        public static final int SORT_TYPE_DESC = 2;

        /**
         * 排序字段（1:EmployeeName 2:PositionId 3:PayDate）
         */
        @Range(min = 1, max = 3, message = "The sortBy must limit in [1:employeeName, 2:positionId, 3:payDate].")
        private Integer sortBy;

        public static final int SORT_BY_EMP_NAME = 1;
        public static final int SORT_BY_POSITION_ID = 2;
        public static final int SORT_BY_PAY_DATE = 3;

        /**
         * 目标日期（yyyyMM）
         */
        @NotNull(message = "The targetDate cannot be null.")
        private Long targetDate;

        /**
         * 开始日期
         */
        private Long startDate;

        /**
         * 结束日期
         */
        private Long endDate;

        /**
         * 职员ID
         */
        private String positionId;

        /**
         * 职员名称
         */
        private String employeeName;

    }