package org.linlinjava.jz.db.domain;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

public class HmEmployClockExample {
    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    protected String orderByClause;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    protected boolean distinct;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    protected List<Criteria> oredCriteria;

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    public HmEmployClockExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    public String getOrderByClause() {
        return orderByClause;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    public boolean isDistinct() {
        return distinct;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    public HmEmployClockExample orderBy(String orderByClause) {
        this.setOrderByClause(orderByClause);
        return this;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    public HmEmployClockExample orderBy(String ... orderByClauses) {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < orderByClauses.length; i++) {
            sb.append(orderByClauses[i]);
            if (i < orderByClauses.length - 1) {
                sb.append(" , ");
            }
        }
        this.setOrderByClause(sb.toString());
        return this;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria(this);
        return criteria;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    public static Criteria newAndCreateCriteria() {
        HmEmployClockExample example = new HmEmployClockExample();
        return example.createCriteria();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    public HmEmployClockExample when(boolean condition, IExampleWhen then) {
        if (condition) {
            then.example(this);
        }
        return this;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    public HmEmployClockExample when(boolean condition, IExampleWhen then, IExampleWhen otherwise) {
        if (condition) {
            then.example(this);
        } else {
            otherwise.example(this);
        }
        return this;
    }

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("id = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("id <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("id > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("id >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("id < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("id <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andWorkDataIsNull() {
            addCriterion("work_data is null");
            return (Criteria) this;
        }

        public Criteria andWorkDataIsNotNull() {
            addCriterion("work_data is not null");
            return (Criteria) this;
        }

        public Criteria andWorkDataEqualTo(LocalDateTime value) {
            addCriterion("work_data =", value, "workData");
            return (Criteria) this;
        }

        public Criteria andWorkDataEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("work_data = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andWorkDataNotEqualTo(LocalDateTime value) {
            addCriterion("work_data <>", value, "workData");
            return (Criteria) this;
        }

        public Criteria andWorkDataNotEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("work_data <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andWorkDataGreaterThan(LocalDateTime value) {
            addCriterion("work_data >", value, "workData");
            return (Criteria) this;
        }

        public Criteria andWorkDataGreaterThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("work_data > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andWorkDataGreaterThanOrEqualTo(LocalDateTime value) {
            addCriterion("work_data >=", value, "workData");
            return (Criteria) this;
        }

        public Criteria andWorkDataGreaterThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("work_data >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andWorkDataLessThan(LocalDateTime value) {
            addCriterion("work_data <", value, "workData");
            return (Criteria) this;
        }

        public Criteria andWorkDataLessThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("work_data < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andWorkDataLessThanOrEqualTo(LocalDateTime value) {
            addCriterion("work_data <=", value, "workData");
            return (Criteria) this;
        }

        public Criteria andWorkDataLessThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("work_data <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andWorkDataIn(List<LocalDateTime> values) {
            addCriterion("work_data in", values, "workData");
            return (Criteria) this;
        }

        public Criteria andWorkDataNotIn(List<LocalDateTime> values) {
            addCriterion("work_data not in", values, "workData");
            return (Criteria) this;
        }

        public Criteria andWorkDataBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("work_data between", value1, value2, "workData");
            return (Criteria) this;
        }

        public Criteria andWorkDataNotBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("work_data not between", value1, value2, "workData");
            return (Criteria) this;
        }

        public Criteria andIsRestdayIsNull() {
            addCriterion("is_restday is null");
            return (Criteria) this;
        }

        public Criteria andIsRestdayIsNotNull() {
            addCriterion("is_restday is not null");
            return (Criteria) this;
        }

        public Criteria andIsRestdayEqualTo(Integer value) {
            addCriterion("is_restday =", value, "isRestday");
            return (Criteria) this;
        }

        public Criteria andIsRestdayEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("is_restday = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andIsRestdayNotEqualTo(Integer value) {
            addCriterion("is_restday <>", value, "isRestday");
            return (Criteria) this;
        }

        public Criteria andIsRestdayNotEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("is_restday <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andIsRestdayGreaterThan(Integer value) {
            addCriterion("is_restday >", value, "isRestday");
            return (Criteria) this;
        }

        public Criteria andIsRestdayGreaterThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("is_restday > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andIsRestdayGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_restday >=", value, "isRestday");
            return (Criteria) this;
        }

        public Criteria andIsRestdayGreaterThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("is_restday >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andIsRestdayLessThan(Integer value) {
            addCriterion("is_restday <", value, "isRestday");
            return (Criteria) this;
        }

        public Criteria andIsRestdayLessThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("is_restday < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andIsRestdayLessThanOrEqualTo(Integer value) {
            addCriterion("is_restday <=", value, "isRestday");
            return (Criteria) this;
        }

        public Criteria andIsRestdayLessThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("is_restday <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andIsRestdayIn(List<Integer> values) {
            addCriterion("is_restday in", values, "isRestday");
            return (Criteria) this;
        }

        public Criteria andIsRestdayNotIn(List<Integer> values) {
            addCriterion("is_restday not in", values, "isRestday");
            return (Criteria) this;
        }

        public Criteria andIsRestdayBetween(Integer value1, Integer value2) {
            addCriterion("is_restday between", value1, value2, "isRestday");
            return (Criteria) this;
        }

        public Criteria andIsRestdayNotBetween(Integer value1, Integer value2) {
            addCriterion("is_restday not between", value1, value2, "isRestday");
            return (Criteria) this;
        }

        public Criteria andIsHolidayEqualTo(Integer value) {
            addCriterion("is_holiday =", value, "isHoliday");
            return (Criteria) this;
        }

        public Criteria andStartWorkTimeIsNull() {
            addCriterion("start_work_time is null");
            return (Criteria) this;
        }

        public Criteria andStartWorkTimeIsNotNull() {
            addCriterion("start_work_time is not null");
            return (Criteria) this;
        }

        public Criteria andStartWorkTimeEqualTo(LocalDateTime value) {
            addCriterion("start_work_time =", value, "startWorkTime");
            return (Criteria) this;
        }

        public Criteria andStartWorkTimeEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("start_work_time = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStartWorkTimeNotEqualTo(LocalDateTime value) {
            addCriterion("start_work_time <>", value, "startWorkTime");
            return (Criteria) this;
        }

        public Criteria andStartWorkTimeNotEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("start_work_time <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStartWorkTimeGreaterThan(LocalDateTime value) {
            addCriterion("start_work_time >", value, "startWorkTime");
            return (Criteria) this;
        }

        public Criteria andStartWorkTimeGreaterThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("start_work_time > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStartWorkTimeGreaterThanOrEqualTo(LocalDateTime value) {
            addCriterion("start_work_time >=", value, "startWorkTime");
            return (Criteria) this;
        }

        public Criteria andStartWorkTimeGreaterThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("start_work_time >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStartWorkTimeLessThan(LocalDateTime value) {
            addCriterion("start_work_time <", value, "startWorkTime");
            return (Criteria) this;
        }

        public Criteria andStartWorkTimeLessThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("start_work_time < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStartWorkTimeLessThanOrEqualTo(LocalDateTime value) {
            addCriterion("start_work_time <=", value, "startWorkTime");
            return (Criteria) this;
        }

        public Criteria andStartWorkTimeLessThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("start_work_time <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStartWorkTimeIn(List<LocalDateTime> values) {
            addCriterion("start_work_time in", values, "startWorkTime");
            return (Criteria) this;
        }

        public Criteria andStartWorkTimeNotIn(List<LocalDateTime> values) {
            addCriterion("start_work_time not in", values, "startWorkTime");
            return (Criteria) this;
        }

        public Criteria andStartWorkTimeBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("start_work_time between", value1, value2, "startWorkTime");
            return (Criteria) this;
        }

        public Criteria andStartWorkTimeNotBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("start_work_time not between", value1, value2, "startWorkTime");
            return (Criteria) this;
        }

        public Criteria andEndWorkTimeIsNull() {
            addCriterion("end_work_time is null");
            return (Criteria) this;
        }

        public Criteria andEndWorkTimeIsNotNull() {
            addCriterion("end_work_time is not null");
            return (Criteria) this;
        }

        public Criteria andEndWorkTimeEqualTo(LocalDateTime value) {
            addCriterion("end_work_time =", value, "endWorkTime");
            return (Criteria) this;
        }

        public Criteria andEndWorkTimeEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("end_work_time = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andEndWorkTimeNotEqualTo(LocalDateTime value) {
            addCriterion("end_work_time <>", value, "endWorkTime");
            return (Criteria) this;
        }

        public Criteria andEndWorkTimeNotEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("end_work_time <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andEndWorkTimeGreaterThan(LocalDateTime value) {
            addCriterion("end_work_time >", value, "endWorkTime");
            return (Criteria) this;
        }

        public Criteria andEndWorkTimeGreaterThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("end_work_time > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andEndWorkTimeGreaterThanOrEqualTo(LocalDateTime value) {
            addCriterion("end_work_time >=", value, "endWorkTime");
            return (Criteria) this;
        }

        public Criteria andEndWorkTimeGreaterThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("end_work_time >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andEndWorkTimeLessThan(LocalDateTime value) {
            addCriterion("end_work_time <", value, "endWorkTime");
            return (Criteria) this;
        }

        public Criteria andEndWorkTimeLessThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("end_work_time < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andEndWorkTimeLessThanOrEqualTo(LocalDateTime value) {
            addCriterion("end_work_time <=", value, "endWorkTime");
            return (Criteria) this;
        }

        public Criteria andEndWorkTimeLessThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("end_work_time <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andEndWorkTimeIn(List<LocalDateTime> values) {
            addCriterion("end_work_time in", values, "endWorkTime");
            return (Criteria) this;
        }

        public Criteria andEndWorkTimeNotIn(List<LocalDateTime> values) {
            addCriterion("end_work_time not in", values, "endWorkTime");
            return (Criteria) this;
        }

        public Criteria andEndWorkTimeBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("end_work_time between", value1, value2, "endWorkTime");
            return (Criteria) this;
        }

        public Criteria andEndWorkTimeNotBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("end_work_time not between", value1, value2, "endWorkTime");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("`status` is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("`status` is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(Integer value) {
            addCriterion("`status` =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("`status` = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(Integer value) {
            addCriterion("`status` <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("`status` <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(Integer value) {
            addCriterion("`status` >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("`status` > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("`status` >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("`status` >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(Integer value) {
            addCriterion("`status` <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("`status` < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(Integer value) {
            addCriterion("`status` <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("`status` <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<Integer> values) {
            addCriterion("`status` in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<Integer> values) {
            addCriterion("`status` not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(Integer value1, Integer value2) {
            addCriterion("`status` between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("`status` not between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andLeaveDateIsNull() {
            addCriterion("leave_date is null");
            return (Criteria) this;
        }

        public Criteria andLeaveDateIsNotNull() {
            addCriterion("leave_date is not null");
            return (Criteria) this;
        }

        public Criteria andLeaveDateEqualTo(LocalDateTime value) {
            addCriterion("leave_date =", value, "leaveDate");
            return (Criteria) this;
        }

        public Criteria andLeaveDateEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("leave_date = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andLeaveDateNotEqualTo(LocalDateTime value) {
            addCriterion("leave_date <>", value, "leaveDate");
            return (Criteria) this;
        }

        public Criteria andLeaveDateNotEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("leave_date <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andLeaveDateGreaterThan(LocalDateTime value) {
            addCriterion("leave_date >", value, "leaveDate");
            return (Criteria) this;
        }

        public Criteria andLeaveDateGreaterThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("leave_date > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andLeaveDateGreaterThanOrEqualTo(LocalDateTime value) {
            addCriterion("leave_date >=", value, "leaveDate");
            return (Criteria) this;
        }

        public Criteria andLeaveDateGreaterThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("leave_date >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andLeaveDateLessThan(LocalDateTime value) {
            addCriterion("leave_date <", value, "leaveDate");
            return (Criteria) this;
        }

        public Criteria andLeaveDateLessThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("leave_date < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andLeaveDateLessThanOrEqualTo(LocalDateTime value) {
            addCriterion("leave_date <=", value, "leaveDate");
            return (Criteria) this;
        }

        public Criteria andLeaveDateLessThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("leave_date <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andLeaveDateIn(List<LocalDateTime> values) {
            addCriterion("leave_date in", values, "leaveDate");
            return (Criteria) this;
        }

        public Criteria andLeaveDateNotIn(List<LocalDateTime> values) {
            addCriterion("leave_date not in", values, "leaveDate");
            return (Criteria) this;
        }

        public Criteria andLeaveDateBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("leave_date between", value1, value2, "leaveDate");
            return (Criteria) this;
        }

        public Criteria andLeaveDateNotBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("leave_date not between", value1, value2, "leaveDate");
            return (Criteria) this;
        }

        public Criteria andLeaveReasonIsNull() {
            addCriterion("leave_reason is null");
            return (Criteria) this;
        }

        public Criteria andLeaveReasonIsNotNull() {
            addCriterion("leave_reason is not null");
            return (Criteria) this;
        }

        public Criteria andLeaveReasonEqualTo(String value) {
            addCriterion("leave_reason =", value, "leaveReason");
            return (Criteria) this;
        }

        public Criteria andLeaveReasonEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("leave_reason = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andLeaveReasonNotEqualTo(String value) {
            addCriterion("leave_reason <>", value, "leaveReason");
            return (Criteria) this;
        }

        public Criteria andLeaveReasonNotEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("leave_reason <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andLeaveReasonGreaterThan(String value) {
            addCriterion("leave_reason >", value, "leaveReason");
            return (Criteria) this;
        }

        public Criteria andLeaveReasonGreaterThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("leave_reason > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andLeaveReasonGreaterThanOrEqualTo(String value) {
            addCriterion("leave_reason >=", value, "leaveReason");
            return (Criteria) this;
        }

        public Criteria andLeaveReasonGreaterThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("leave_reason >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andLeaveReasonLessThan(String value) {
            addCriterion("leave_reason <", value, "leaveReason");
            return (Criteria) this;
        }

        public Criteria andLeaveReasonLessThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("leave_reason < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andLeaveReasonLessThanOrEqualTo(String value) {
            addCriterion("leave_reason <=", value, "leaveReason");
            return (Criteria) this;
        }

        public Criteria andLeaveReasonLessThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("leave_reason <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andLeaveReasonLike(String value) {
            addCriterion("leave_reason like", value, "leaveReason");
            return (Criteria) this;
        }

        public Criteria andLeaveReasonNotLike(String value) {
            addCriterion("leave_reason not like", value, "leaveReason");
            return (Criteria) this;
        }

        public Criteria andLeaveReasonIn(List<String> values) {
            addCriterion("leave_reason in", values, "leaveReason");
            return (Criteria) this;
        }

        public Criteria andLeaveReasonNotIn(List<String> values) {
            addCriterion("leave_reason not in", values, "leaveReason");
            return (Criteria) this;
        }

        public Criteria andLeaveReasonBetween(String value1, String value2) {
            addCriterion("leave_reason between", value1, value2, "leaveReason");
            return (Criteria) this;
        }

        public Criteria andLeaveReasonNotBetween(String value1, String value2) {
            addCriterion("leave_reason not between", value1, value2, "leaveReason");
            return (Criteria) this;
        }

        public Criteria andApprovalStateIsNull() {
            addCriterion("approval_state is null");
            return (Criteria) this;
        }

        public Criteria andApprovalStateIsNotNull() {
            addCriterion("approval_state is not null");
            return (Criteria) this;
        }

        public Criteria andApprovalStateEqualTo(Integer value) {
            addCriterion("approval_state =", value, "approvalState");
            return (Criteria) this;
        }

        public Criteria andApprovalStateEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("approval_state = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andApprovalStateNotEqualTo(Integer value) {
            addCriterion("approval_state <>", value, "approvalState");
            return (Criteria) this;
        }

        public Criteria andApprovalStateNotEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("approval_state <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andApprovalStateGreaterThan(Integer value) {
            addCriterion("approval_state >", value, "approvalState");
            return (Criteria) this;
        }

        public Criteria andApprovalStateGreaterThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("approval_state > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andApprovalStateGreaterThanOrEqualTo(Integer value) {
            addCriterion("approval_state >=", value, "approvalState");
            return (Criteria) this;
        }

        public Criteria andApprovalStateGreaterThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("approval_state >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andApprovalStateLessThan(Integer value) {
            addCriterion("approval_state <", value, "approvalState");
            return (Criteria) this;
        }

        public Criteria andApprovalStateLessThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("approval_state < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andApprovalStateLessThanOrEqualTo(Integer value) {
            addCriterion("approval_state <=", value, "approvalState");
            return (Criteria) this;
        }

        public Criteria andApprovalStateLessThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("approval_state <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andApprovalStateIn(List<Integer> values) {
            addCriterion("approval_state in", values, "approvalState");
            return (Criteria) this;
        }

        public Criteria andApprovalStateNotIn(List<Integer> values) {
            addCriterion("approval_state not in", values, "approvalState");
            return (Criteria) this;
        }

        public Criteria andApprovalStateBetween(Integer value1, Integer value2) {
            addCriterion("approval_state between", value1, value2, "approvalState");
            return (Criteria) this;
        }

        public Criteria andApprovalStateNotBetween(Integer value1, Integer value2) {
            addCriterion("approval_state not between", value1, value2, "approvalState");
            return (Criteria) this;
        }

        public Criteria andApprovalReasonIsNull() {
            addCriterion("approval_reason is null");
            return (Criteria) this;
        }

        public Criteria andApprovalReasonIsNotNull() {
            addCriterion("approval_reason is not null");
            return (Criteria) this;
        }

        public Criteria andApprovalReasonEqualTo(String value) {
            addCriterion("approval_reason =", value, "approvalReason");
            return (Criteria) this;
        }

        public Criteria andApprovalReasonEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("approval_reason = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andApprovalReasonNotEqualTo(String value) {
            addCriterion("approval_reason <>", value, "approvalReason");
            return (Criteria) this;
        }

        public Criteria andApprovalReasonNotEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("approval_reason <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andApprovalReasonGreaterThan(String value) {
            addCriterion("approval_reason >", value, "approvalReason");
            return (Criteria) this;
        }

        public Criteria andApprovalReasonGreaterThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("approval_reason > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andApprovalReasonGreaterThanOrEqualTo(String value) {
            addCriterion("approval_reason >=", value, "approvalReason");
            return (Criteria) this;
        }

        public Criteria andApprovalReasonGreaterThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("approval_reason >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andApprovalReasonLessThan(String value) {
            addCriterion("approval_reason <", value, "approvalReason");
            return (Criteria) this;
        }

        public Criteria andApprovalReasonLessThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("approval_reason < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andApprovalReasonLessThanOrEqualTo(String value) {
            addCriterion("approval_reason <=", value, "approvalReason");
            return (Criteria) this;
        }

        public Criteria andApprovalReasonLessThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("approval_reason <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andApprovalReasonLike(String value) {
            addCriterion("approval_reason like", value, "approvalReason");
            return (Criteria) this;
        }

        public Criteria andApprovalReasonNotLike(String value) {
            addCriterion("approval_reason not like", value, "approvalReason");
            return (Criteria) this;
        }

        public Criteria andApprovalReasonIn(List<String> values) {
            addCriterion("approval_reason in", values, "approvalReason");
            return (Criteria) this;
        }

        public Criteria andApprovalReasonNotIn(List<String> values) {
            addCriterion("approval_reason not in", values, "approvalReason");
            return (Criteria) this;
        }

        public Criteria andApprovalReasonBetween(String value1, String value2) {
            addCriterion("approval_reason between", value1, value2, "approvalReason");
            return (Criteria) this;
        }

        public Criteria andApprovalReasonNotBetween(String value1, String value2) {
            addCriterion("approval_reason not between", value1, value2, "approvalReason");
            return (Criteria) this;
        }

        public Criteria andOrderNoIsNull() {
            addCriterion("order_no is null");
            return (Criteria) this;
        }

        public Criteria andOrderNoIsNotNull() {
            addCriterion("order_no is not null");
            return (Criteria) this;
        }

        public Criteria andOrderNoEqualTo(String value) {
            addCriterion("order_no =", value, "orderNo");
            return (Criteria) this;
        }

        public Criteria andOrderNoEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("order_no = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andOrderNoNotEqualTo(String value) {
            addCriterion("order_no <>", value, "orderNo");
            return (Criteria) this;
        }

        public Criteria andOrderNoNotEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("order_no <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andOrderNoGreaterThan(String value) {
            addCriterion("order_no >", value, "orderNo");
            return (Criteria) this;
        }

        public Criteria andOrderNoGreaterThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("order_no > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andOrderNoGreaterThanOrEqualTo(String value) {
            addCriterion("order_no >=", value, "orderNo");
            return (Criteria) this;
        }

        public Criteria andOrderNoGreaterThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("order_no >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andOrderNoLessThan(String value) {
            addCriterion("order_no <", value, "orderNo");
            return (Criteria) this;
        }

        public Criteria andOrderNoLessThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("order_no < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andOrderNoLessThanOrEqualTo(String value) {
            addCriterion("order_no <=", value, "orderNo");
            return (Criteria) this;
        }

        public Criteria andOrderNoLessThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("order_no <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andOrderNoLike(String value) {
            addCriterion("order_no like", value, "orderNo");
            return (Criteria) this;
        }

        public Criteria andOrderNoNotLike(String value) {
            addCriterion("order_no not like", value, "orderNo");
            return (Criteria) this;
        }

        public Criteria andOrderNoIn(List<String> values) {
            addCriterion("order_no in", values, "orderNo");
            return (Criteria) this;
        }

        public Criteria andOrderNoNotIn(List<String> values) {
            addCriterion("order_no not in", values, "orderNo");
            return (Criteria) this;
        }

        public Criteria andOrderNoBetween(String value1, String value2) {
            addCriterion("order_no between", value1, value2, "orderNo");
            return (Criteria) this;
        }

        public Criteria andOrderNoNotBetween(String value1, String value2) {
            addCriterion("order_no not between", value1, value2, "orderNo");
            return (Criteria) this;
        }

        public Criteria andEmployRelationIdIsNull() {
            addCriterion("employ_relation_id is null");
            return (Criteria) this;
        }

        public Criteria andEmployRelationIdIsNotNull() {
            addCriterion("employ_relation_id is not null");
            return (Criteria) this;
        }

        public Criteria andEmployRelationIdEqualTo(Long value) {
            addCriterion("employ_relation_id =", value, "employRelationId");
            return (Criteria) this;
        }

        public Criteria andEmployRelationIdEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("employ_relation_id = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andEmployRelationIdNotEqualTo(Long value) {
            addCriterion("employ_relation_id <>", value, "employRelationId");
            return (Criteria) this;
        }

        public Criteria andEmployRelationIdNotEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("employ_relation_id <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andEmployRelationIdGreaterThan(Long value) {
            addCriterion("employ_relation_id >", value, "employRelationId");
            return (Criteria) this;
        }

        public Criteria andEmployRelationIdGreaterThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("employ_relation_id > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andEmployRelationIdGreaterThanOrEqualTo(Long value) {
            addCriterion("employ_relation_id >=", value, "employRelationId");
            return (Criteria) this;
        }

        public Criteria andEmployRelationIdGreaterThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("employ_relation_id >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andEmployRelationIdLessThan(Long value) {
            addCriterion("employ_relation_id <", value, "employRelationId");
            return (Criteria) this;
        }

        public Criteria andEmployRelationIdLessThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("employ_relation_id < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andEmployRelationIdLessThanOrEqualTo(Long value) {
            addCriterion("employ_relation_id <=", value, "employRelationId");
            return (Criteria) this;
        }

        public Criteria andEmployRelationIdLessThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("employ_relation_id <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andEmployRelationIdIn(List<Long> values) {
            addCriterion("employ_relation_id in", values, "employRelationId");
            return (Criteria) this;
        }

        public Criteria andEmployRelationIdNotIn(List<Long> values) {
            addCriterion("employ_relation_id not in", values, "employRelationId");
            return (Criteria) this;
        }

        public Criteria andEmployRelationIdBetween(Long value1, Long value2) {
            addCriterion("employ_relation_id between", value1, value2, "employRelationId");
            return (Criteria) this;
        }

        public Criteria andEmployRelationIdNotBetween(Long value1, Long value2) {
            addCriterion("employ_relation_id not between", value1, value2, "employRelationId");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(LocalDateTime value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("create_time = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(LocalDateTime value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("create_time <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(LocalDateTime value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("create_time > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(LocalDateTime value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("create_time >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(LocalDateTime value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("create_time < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(LocalDateTime value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("create_time <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<LocalDateTime> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<LocalDateTime> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(LocalDateTime value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("update_time = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(LocalDateTime value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("update_time <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(LocalDateTime value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("update_time > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(LocalDateTime value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("update_time >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(LocalDateTime value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("update_time < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(LocalDateTime value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("update_time <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<LocalDateTime> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<LocalDateTime> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNull() {
            addCriterion("remark is null");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNotNull() {
            addCriterion("remark is not null");
            return (Criteria) this;
        }

        public Criteria andRemarkEqualTo(String value) {
            addCriterion("remark =", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("remark = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRemarkNotEqualTo(String value) {
            addCriterion("remark <>", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("remark <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThan(String value) {
            addCriterion("remark >", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("remark > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("remark >=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("remark >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRemarkLessThan(String value) {
            addCriterion("remark <", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThanColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("remark < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRemarkLessThanOrEqualTo(String value) {
            addCriterion("remark <=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThanOrEqualToColumn(HmEmployClock.Column column) {
            addCriterion(new StringBuilder("remark <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRemarkLike(String value) {
            addCriterion("remark like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotLike(String value) {
            addCriterion("remark not like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkIn(List<String> values) {
            addCriterion("remark in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotIn(List<String> values) {
            addCriterion("remark not in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkBetween(String value1, String value2) {
            addCriterion("remark between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotBetween(String value1, String value2) {
            addCriterion("remark not between", value1, value2, "remark");
            return (Criteria) this;
        }
    }

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table hm_employ_clock
     *
     * @mbg.generated do_not_delete_during_merge
     */
    public static class Criteria extends GeneratedCriteria {
        /**
         * This field was generated by MyBatis Generator.
         * This field corresponds to the database table hm_employ_clock
         *
         * @mbg.generated
         */
        private HmEmployClockExample example;

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table hm_employ_clock
         *
         * @mbg.generated
         */
        protected Criteria(HmEmployClockExample example) {
            super();
            this.example = example;
        }

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table hm_employ_clock
         *
         * @mbg.generated
         */
        public HmEmployClockExample example() {
            return this.example;
        }

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table hm_employ_clock
         *
         * @mbg.generated
         */
        @Deprecated
        public Criteria andIf(boolean ifAdd, ICriteriaAdd add) {
            if (ifAdd) {
                add.add(this);
            }
            return this;
        }

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table hm_employ_clock
         *
         * @mbg.generated
         */
        public Criteria when(boolean condition, ICriteriaWhen then) {
            if (condition) {
                then.criteria(this);
            }
            return this;
        }

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table hm_employ_clock
         *
         * @mbg.generated
         */
        public Criteria when(boolean condition, ICriteriaWhen then, ICriteriaWhen otherwise) {
            if (condition) {
                then.criteria(this);
            } else {
                otherwise.criteria(this);
            }
            return this;
        }

        @Deprecated
        public interface ICriteriaAdd {
            /**
             * This method was generated by MyBatis Generator.
             * This method corresponds to the database table hm_employ_clock
             *
             * @mbg.generated
             */
            Criteria add(Criteria add);
        }
    }

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table hm_employ_clock
     *
     * @mbg.generated
     */
    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }

    public interface ICriteriaWhen {
        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table hm_employ_clock
         *
         * @mbg.generated
         */
        void criteria(Criteria criteria);
    }

    public interface IExampleWhen {
        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table hm_employ_clock
         *
         * @mbg.generated
         */
        void example(org.linlinjava.jz.db.domain.HmEmployClockExample example);
    }
}