package com.bailuntec.domain.example;

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

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

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

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

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database table dc_auto_sales_forecast_config
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    protected Integer offset;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database table dc_auto_sales_forecast_config
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    protected Integer rows;

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

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

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

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

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

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

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

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_auto_sales_forecast_config
     *
     * @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 dc_auto_sales_forecast_config
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    public DcAutoSalesForecastConfigExample orderBy(String orderByClause) {
        this.setOrderByClause(orderByClause);
        return this;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_auto_sales_forecast_config
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    public DcAutoSalesForecastConfigExample 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 dc_auto_sales_forecast_config
     *
     * @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 dc_auto_sales_forecast_config
     *
     * @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 dc_auto_sales_forecast_config
     *
     * @mbg.generated
     */
    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
        rows = null;
        offset = null;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_auto_sales_forecast_config
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    public static Criteria newAndCreateCriteria() {
        DcAutoSalesForecastConfigExample example = new DcAutoSalesForecastConfigExample();
        return example.createCriteria();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_auto_sales_forecast_config
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    public DcAutoSalesForecastConfigExample 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 dc_auto_sales_forecast_config
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    public DcAutoSalesForecastConfigExample when(boolean condition, IExampleWhen then, IExampleWhen otherwise) {
        if (condition) {
            then.example(this);
        } else {
            otherwise.example(this);
        }
        return this;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_auto_sales_forecast_config
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    public void setOffset(Integer offset) {
        this.offset = offset;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_auto_sales_forecast_config
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    public Integer getOffset() {
        return this.offset;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_auto_sales_forecast_config
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    public void setRows(Integer rows) {
        this.rows = rows;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_auto_sales_forecast_config
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    public Integer getRows() {
        return this.rows;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_auto_sales_forecast_config
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    public DcAutoSalesForecastConfigExample limit(Integer rows) {
        this.rows = rows;
        return this;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_auto_sales_forecast_config
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    public DcAutoSalesForecastConfigExample limit(Integer offset, Integer rows) {
        this.offset = offset;
        this.rows = rows;
        return this;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_auto_sales_forecast_config
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    public DcAutoSalesForecastConfigExample page(Integer page, Integer pageSize) {
        this.offset = page * pageSize;
        this.rows = pageSize;
        return this;
    }

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table dc_auto_sales_forecast_config
     *
     * @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(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

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

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

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

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

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

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

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

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

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

        public Criteria andTitleIsNull() {
            addCriterion("title is null");
            return (Criteria) this;
        }

        public Criteria andTitleIsNotNull() {
            addCriterion("title is not null");
            return (Criteria) this;
        }

        public Criteria andTitleEqualTo(String value) {
            addCriterion("title =", value, "title");
            return (Criteria) this;
        }

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

        public Criteria andTitleGreaterThan(String value) {
            addCriterion("title >", value, "title");
            return (Criteria) this;
        }

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

        public Criteria andTitleLessThan(String value) {
            addCriterion("title <", value, "title");
            return (Criteria) this;
        }

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

        public Criteria andTitleLike(String value) {
            addCriterion("title like", value, "title");
            return (Criteria) this;
        }

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

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

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

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

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

        public Criteria andWarehouseTypeIsNull() {
            addCriterion("warehouse_type is null");
            return (Criteria) this;
        }

        public Criteria andWarehouseTypeIsNotNull() {
            addCriterion("warehouse_type is not null");
            return (Criteria) this;
        }

        public Criteria andWarehouseTypeEqualTo(String value) {
            addCriterion("warehouse_type =", value, "warehouseType");
            return (Criteria) this;
        }

        public Criteria andWarehouseTypeNotEqualTo(String value) {
            addCriterion("warehouse_type <>", value, "warehouseType");
            return (Criteria) this;
        }

        public Criteria andWarehouseTypeGreaterThan(String value) {
            addCriterion("warehouse_type >", value, "warehouseType");
            return (Criteria) this;
        }

        public Criteria andWarehouseTypeGreaterThanOrEqualTo(String value) {
            addCriterion("warehouse_type >=", value, "warehouseType");
            return (Criteria) this;
        }

        public Criteria andWarehouseTypeLessThan(String value) {
            addCriterion("warehouse_type <", value, "warehouseType");
            return (Criteria) this;
        }

        public Criteria andWarehouseTypeLessThanOrEqualTo(String value) {
            addCriterion("warehouse_type <=", value, "warehouseType");
            return (Criteria) this;
        }

        public Criteria andWarehouseTypeLike(String value) {
            addCriterion("warehouse_type like", value, "warehouseType");
            return (Criteria) this;
        }

        public Criteria andWarehouseTypeNotLike(String value) {
            addCriterion("warehouse_type not like", value, "warehouseType");
            return (Criteria) this;
        }

        public Criteria andWarehouseTypeIn(List<String> values) {
            addCriterion("warehouse_type in", values, "warehouseType");
            return (Criteria) this;
        }

        public Criteria andWarehouseTypeNotIn(List<String> values) {
            addCriterion("warehouse_type not in", values, "warehouseType");
            return (Criteria) this;
        }

        public Criteria andWarehouseTypeBetween(String value1, String value2) {
            addCriterion("warehouse_type between", value1, value2, "warehouseType");
            return (Criteria) this;
        }

        public Criteria andWarehouseTypeNotBetween(String value1, String value2) {
            addCriterion("warehouse_type not between", value1, value2, "warehouseType");
            return (Criteria) this;
        }

        public Criteria andWarehouseAreaIdIsNull() {
            addCriterion("warehouse_area_id is null");
            return (Criteria) this;
        }

        public Criteria andWarehouseAreaIdIsNotNull() {
            addCriterion("warehouse_area_id is not null");
            return (Criteria) this;
        }

        public Criteria andWarehouseAreaIdEqualTo(String value) {
            addCriterion("warehouse_area_id =", value, "warehouseAreaId");
            return (Criteria) this;
        }

        public Criteria andWarehouseAreaIdNotEqualTo(String value) {
            addCriterion("warehouse_area_id <>", value, "warehouseAreaId");
            return (Criteria) this;
        }

        public Criteria andWarehouseAreaIdGreaterThan(String value) {
            addCriterion("warehouse_area_id >", value, "warehouseAreaId");
            return (Criteria) this;
        }

        public Criteria andWarehouseAreaIdGreaterThanOrEqualTo(String value) {
            addCriterion("warehouse_area_id >=", value, "warehouseAreaId");
            return (Criteria) this;
        }

        public Criteria andWarehouseAreaIdLessThan(String value) {
            addCriterion("warehouse_area_id <", value, "warehouseAreaId");
            return (Criteria) this;
        }

        public Criteria andWarehouseAreaIdLessThanOrEqualTo(String value) {
            addCriterion("warehouse_area_id <=", value, "warehouseAreaId");
            return (Criteria) this;
        }

        public Criteria andWarehouseAreaIdLike(String value) {
            addCriterion("warehouse_area_id like", value, "warehouseAreaId");
            return (Criteria) this;
        }

        public Criteria andWarehouseAreaIdNotLike(String value) {
            addCriterion("warehouse_area_id not like", value, "warehouseAreaId");
            return (Criteria) this;
        }

        public Criteria andWarehouseAreaIdIn(List<String> values) {
            addCriterion("warehouse_area_id in", values, "warehouseAreaId");
            return (Criteria) this;
        }

        public Criteria andWarehouseAreaIdNotIn(List<String> values) {
            addCriterion("warehouse_area_id not in", values, "warehouseAreaId");
            return (Criteria) this;
        }

        public Criteria andWarehouseAreaIdBetween(String value1, String value2) {
            addCriterion("warehouse_area_id between", value1, value2, "warehouseAreaId");
            return (Criteria) this;
        }

        public Criteria andWarehouseAreaIdNotBetween(String value1, String value2) {
            addCriterion("warehouse_area_id not between", value1, value2, "warehouseAreaId");
            return (Criteria) this;
        }

        public Criteria andWarehouseCodeIsNull() {
            addCriterion("warehouse_code is null");
            return (Criteria) this;
        }

        public Criteria andWarehouseCodeIsNotNull() {
            addCriterion("warehouse_code is not null");
            return (Criteria) this;
        }

        public Criteria andWarehouseCodeEqualTo(String value) {
            addCriterion("warehouse_code =", value, "warehouseCode");
            return (Criteria) this;
        }

        public Criteria andWarehouseCodeNotEqualTo(String value) {
            addCriterion("warehouse_code <>", value, "warehouseCode");
            return (Criteria) this;
        }

        public Criteria andWarehouseCodeGreaterThan(String value) {
            addCriterion("warehouse_code >", value, "warehouseCode");
            return (Criteria) this;
        }

        public Criteria andWarehouseCodeGreaterThanOrEqualTo(String value) {
            addCriterion("warehouse_code >=", value, "warehouseCode");
            return (Criteria) this;
        }

        public Criteria andWarehouseCodeLessThan(String value) {
            addCriterion("warehouse_code <", value, "warehouseCode");
            return (Criteria) this;
        }

        public Criteria andWarehouseCodeLessThanOrEqualTo(String value) {
            addCriterion("warehouse_code <=", value, "warehouseCode");
            return (Criteria) this;
        }

        public Criteria andWarehouseCodeLike(String value) {
            addCriterion("warehouse_code like", value, "warehouseCode");
            return (Criteria) this;
        }

        public Criteria andWarehouseCodeNotLike(String value) {
            addCriterion("warehouse_code not like", value, "warehouseCode");
            return (Criteria) this;
        }

        public Criteria andWarehouseCodeIn(List<String> values) {
            addCriterion("warehouse_code in", values, "warehouseCode");
            return (Criteria) this;
        }

        public Criteria andWarehouseCodeNotIn(List<String> values) {
            addCriterion("warehouse_code not in", values, "warehouseCode");
            return (Criteria) this;
        }

        public Criteria andWarehouseCodeBetween(String value1, String value2) {
            addCriterion("warehouse_code between", value1, value2, "warehouseCode");
            return (Criteria) this;
        }

        public Criteria andWarehouseCodeNotBetween(String value1, String value2) {
            addCriterion("warehouse_code not between", value1, value2, "warehouseCode");
            return (Criteria) this;
        }

        public Criteria andCategoryIsNull() {
            addCriterion("category is null");
            return (Criteria) this;
        }

        public Criteria andCategoryIsNotNull() {
            addCriterion("category is not null");
            return (Criteria) this;
        }

        public Criteria andCategoryEqualTo(String value) {
            addCriterion("category =", value, "category");
            return (Criteria) this;
        }

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

        public Criteria andCategoryGreaterThan(String value) {
            addCriterion("category >", value, "category");
            return (Criteria) this;
        }

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

        public Criteria andCategoryLessThan(String value) {
            addCriterion("category <", value, "category");
            return (Criteria) this;
        }

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

        public Criteria andCategoryLike(String value) {
            addCriterion("category like", value, "category");
            return (Criteria) this;
        }

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

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

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

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

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

        public Criteria andLevelIsNull() {
            addCriterion("level is null");
            return (Criteria) this;
        }

        public Criteria andLevelIsNotNull() {
            addCriterion("level is not null");
            return (Criteria) this;
        }

        public Criteria andLevelEqualTo(Integer value) {
            addCriterion("level =", value, "level");
            return (Criteria) this;
        }

        public Criteria andLevelNotEqualTo(Integer value) {
            addCriterion("level <>", value, "level");
            return (Criteria) this;
        }

        public Criteria andLevelGreaterThan(Integer value) {
            addCriterion("level >", value, "level");
            return (Criteria) this;
        }

        public Criteria andLevelGreaterThanOrEqualTo(Integer value) {
            addCriterion("level >=", value, "level");
            return (Criteria) this;
        }

        public Criteria andLevelLessThan(Integer value) {
            addCriterion("level <", value, "level");
            return (Criteria) this;
        }

        public Criteria andLevelLessThanOrEqualTo(Integer value) {
            addCriterion("level <=", value, "level");
            return (Criteria) this;
        }

        public Criteria andLevelIn(List<Integer> values) {
            addCriterion("level in", values, "level");
            return (Criteria) this;
        }

        public Criteria andLevelNotIn(List<Integer> values) {
            addCriterion("level not in", values, "level");
            return (Criteria) this;
        }

        public Criteria andLevelBetween(Integer value1, Integer value2) {
            addCriterion("level between", value1, value2, "level");
            return (Criteria) this;
        }

        public Criteria andLevelNotBetween(Integer value1, Integer value2) {
            addCriterion("level not between", value1, value2, "level");
            return (Criteria) this;
        }

        public Criteria andIsDeleteIsNull() {
            addCriterion("is_delete is null");
            return (Criteria) this;
        }

        public Criteria andIsDeleteIsNotNull() {
            addCriterion("is_delete is not null");
            return (Criteria) this;
        }

        public Criteria andIsDeleteEqualTo(Integer value) {
            addCriterion("is_delete =", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteNotEqualTo(Integer value) {
            addCriterion("is_delete <>", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteGreaterThan(Integer value) {
            addCriterion("is_delete >", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_delete >=", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteLessThan(Integer value) {
            addCriterion("is_delete <", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteLessThanOrEqualTo(Integer value) {
            addCriterion("is_delete <=", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteIn(List<Integer> values) {
            addCriterion("is_delete in", values, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteNotIn(List<Integer> values) {
            addCriterion("is_delete not in", values, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteBetween(Integer value1, Integer value2) {
            addCriterion("is_delete between", value1, value2, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteNotBetween(Integer value1, Integer value2) {
            addCriterion("is_delete not between", value1, value2, "isDelete");
            return (Criteria) this;
        }

        public Criteria andCreateDateIsNull() {
            addCriterion("create_date is null");
            return (Criteria) this;
        }

        public Criteria andCreateDateIsNotNull() {
            addCriterion("create_date is not null");
            return (Criteria) this;
        }

        public Criteria andCreateDateEqualTo(LocalDateTime value) {
            addCriterion("create_date =", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotEqualTo(LocalDateTime value) {
            addCriterion("create_date <>", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateGreaterThan(LocalDateTime value) {
            addCriterion("create_date >", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateGreaterThanOrEqualTo(LocalDateTime value) {
            addCriterion("create_date >=", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateLessThan(LocalDateTime value) {
            addCriterion("create_date <", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateLessThanOrEqualTo(LocalDateTime value) {
            addCriterion("create_date <=", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateIn(List<LocalDateTime> values) {
            addCriterion("create_date in", values, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotIn(List<LocalDateTime> values) {
            addCriterion("create_date not in", values, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("create_date between", value1, value2, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("create_date not between", value1, value2, "createDate");
            return (Criteria) this;
        }

        public Criteria andScreenTypeIsNull() {
            addCriterion("screen_type is null");
            return (Criteria) this;
        }

        public Criteria andScreenTypeIsNotNull() {
            addCriterion("screen_type is not null");
            return (Criteria) this;
        }

        public Criteria andScreenTypeEqualTo(Integer value) {
            addCriterion("screen_type =", value, "screenType");
            return (Criteria) this;
        }

        public Criteria andScreenTypeNotEqualTo(Integer value) {
            addCriterion("screen_type <>", value, "screenType");
            return (Criteria) this;
        }

        public Criteria andScreenTypeGreaterThan(Integer value) {
            addCriterion("screen_type >", value, "screenType");
            return (Criteria) this;
        }

        public Criteria andScreenTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("screen_type >=", value, "screenType");
            return (Criteria) this;
        }

        public Criteria andScreenTypeLessThan(Integer value) {
            addCriterion("screen_type <", value, "screenType");
            return (Criteria) this;
        }

        public Criteria andScreenTypeLessThanOrEqualTo(Integer value) {
            addCriterion("screen_type <=", value, "screenType");
            return (Criteria) this;
        }

        public Criteria andScreenTypeIn(List<Integer> values) {
            addCriterion("screen_type in", values, "screenType");
            return (Criteria) this;
        }

        public Criteria andScreenTypeNotIn(List<Integer> values) {
            addCriterion("screen_type not in", values, "screenType");
            return (Criteria) this;
        }

        public Criteria andScreenTypeBetween(Integer value1, Integer value2) {
            addCriterion("screen_type between", value1, value2, "screenType");
            return (Criteria) this;
        }

        public Criteria andScreenTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("screen_type not between", value1, value2, "screenType");
            return (Criteria) this;
        }

        public Criteria andDeleteTimeIsNull() {
            addCriterion("delete_time is null");
            return (Criteria) this;
        }

        public Criteria andDeleteTimeIsNotNull() {
            addCriterion("delete_time is not null");
            return (Criteria) this;
        }

        public Criteria andDeleteTimeEqualTo(LocalDateTime value) {
            addCriterion("delete_time =", value, "deleteTime");
            return (Criteria) this;
        }

        public Criteria andDeleteTimeNotEqualTo(LocalDateTime value) {
            addCriterion("delete_time <>", value, "deleteTime");
            return (Criteria) this;
        }

        public Criteria andDeleteTimeGreaterThan(LocalDateTime value) {
            addCriterion("delete_time >", value, "deleteTime");
            return (Criteria) this;
        }

        public Criteria andDeleteTimeGreaterThanOrEqualTo(LocalDateTime value) {
            addCriterion("delete_time >=", value, "deleteTime");
            return (Criteria) this;
        }

        public Criteria andDeleteTimeLessThan(LocalDateTime value) {
            addCriterion("delete_time <", value, "deleteTime");
            return (Criteria) this;
        }

        public Criteria andDeleteTimeLessThanOrEqualTo(LocalDateTime value) {
            addCriterion("delete_time <=", value, "deleteTime");
            return (Criteria) this;
        }

        public Criteria andDeleteTimeIn(List<LocalDateTime> values) {
            addCriterion("delete_time in", values, "deleteTime");
            return (Criteria) this;
        }

        public Criteria andDeleteTimeNotIn(List<LocalDateTime> values) {
            addCriterion("delete_time not in", values, "deleteTime");
            return (Criteria) this;
        }

        public Criteria andDeleteTimeBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("delete_time between", value1, value2, "deleteTime");
            return (Criteria) this;
        }

        public Criteria andDeleteTimeNotBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("delete_time not between", value1, value2, "deleteTime");
            return (Criteria) this;
        }

        public Criteria andDataSourcePlatformIsNull() {
            addCriterion("data_source_platform is null");
            return (Criteria) this;
        }

        public Criteria andDataSourcePlatformIsNotNull() {
            addCriterion("data_source_platform is not null");
            return (Criteria) this;
        }

        public Criteria andDataSourcePlatformEqualTo(String value) {
            addCriterion("data_source_platform =", value, "dataSourcePlatform");
            return (Criteria) this;
        }

        public Criteria andDataSourcePlatformNotEqualTo(String value) {
            addCriterion("data_source_platform <>", value, "dataSourcePlatform");
            return (Criteria) this;
        }

        public Criteria andDataSourcePlatformGreaterThan(String value) {
            addCriterion("data_source_platform >", value, "dataSourcePlatform");
            return (Criteria) this;
        }

        public Criteria andDataSourcePlatformGreaterThanOrEqualTo(String value) {
            addCriterion("data_source_platform >=", value, "dataSourcePlatform");
            return (Criteria) this;
        }

        public Criteria andDataSourcePlatformLessThan(String value) {
            addCriterion("data_source_platform <", value, "dataSourcePlatform");
            return (Criteria) this;
        }

        public Criteria andDataSourcePlatformLessThanOrEqualTo(String value) {
            addCriterion("data_source_platform <=", value, "dataSourcePlatform");
            return (Criteria) this;
        }

        public Criteria andDataSourcePlatformLike(String value) {
            addCriterion("data_source_platform like", value, "dataSourcePlatform");
            return (Criteria) this;
        }

        public Criteria andDataSourcePlatformNotLike(String value) {
            addCriterion("data_source_platform not like", value, "dataSourcePlatform");
            return (Criteria) this;
        }

        public Criteria andDataSourcePlatformIn(List<String> values) {
            addCriterion("data_source_platform in", values, "dataSourcePlatform");
            return (Criteria) this;
        }

        public Criteria andDataSourcePlatformNotIn(List<String> values) {
            addCriterion("data_source_platform not in", values, "dataSourcePlatform");
            return (Criteria) this;
        }

        public Criteria andDataSourcePlatformBetween(String value1, String value2) {
            addCriterion("data_source_platform between", value1, value2, "dataSourcePlatform");
            return (Criteria) this;
        }

        public Criteria andDataSourcePlatformNotBetween(String value1, String value2) {
            addCriterion("data_source_platform not between", value1, value2, "dataSourcePlatform");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMinIsNull() {
            addCriterion("first_order_days_min is null");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMinIsNotNull() {
            addCriterion("first_order_days_min is not null");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMinEqualTo(Integer value) {
            addCriterion("first_order_days_min =", value, "firstOrderDaysMin");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMinNotEqualTo(Integer value) {
            addCriterion("first_order_days_min <>", value, "firstOrderDaysMin");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMinGreaterThan(Integer value) {
            addCriterion("first_order_days_min >", value, "firstOrderDaysMin");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMinGreaterThanOrEqualTo(Integer value) {
            addCriterion("first_order_days_min >=", value, "firstOrderDaysMin");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMinLessThan(Integer value) {
            addCriterion("first_order_days_min <", value, "firstOrderDaysMin");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMinLessThanOrEqualTo(Integer value) {
            addCriterion("first_order_days_min <=", value, "firstOrderDaysMin");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMinIn(List<Integer> values) {
            addCriterion("first_order_days_min in", values, "firstOrderDaysMin");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMinNotIn(List<Integer> values) {
            addCriterion("first_order_days_min not in", values, "firstOrderDaysMin");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMinBetween(Integer value1, Integer value2) {
            addCriterion("first_order_days_min between", value1, value2, "firstOrderDaysMin");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMinNotBetween(Integer value1, Integer value2) {
            addCriterion("first_order_days_min not between", value1, value2, "firstOrderDaysMin");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMaxIsNull() {
            addCriterion("first_order_days_max is null");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMaxIsNotNull() {
            addCriterion("first_order_days_max is not null");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMaxEqualTo(Integer value) {
            addCriterion("first_order_days_max =", value, "firstOrderDaysMax");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMaxNotEqualTo(Integer value) {
            addCriterion("first_order_days_max <>", value, "firstOrderDaysMax");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMaxGreaterThan(Integer value) {
            addCriterion("first_order_days_max >", value, "firstOrderDaysMax");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMaxGreaterThanOrEqualTo(Integer value) {
            addCriterion("first_order_days_max >=", value, "firstOrderDaysMax");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMaxLessThan(Integer value) {
            addCriterion("first_order_days_max <", value, "firstOrderDaysMax");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMaxLessThanOrEqualTo(Integer value) {
            addCriterion("first_order_days_max <=", value, "firstOrderDaysMax");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMaxIn(List<Integer> values) {
            addCriterion("first_order_days_max in", values, "firstOrderDaysMax");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMaxNotIn(List<Integer> values) {
            addCriterion("first_order_days_max not in", values, "firstOrderDaysMax");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMaxBetween(Integer value1, Integer value2) {
            addCriterion("first_order_days_max between", value1, value2, "firstOrderDaysMax");
            return (Criteria) this;
        }

        public Criteria andFirstOrderDaysMaxNotBetween(Integer value1, Integer value2) {
            addCriterion("first_order_days_max not between", value1, value2, "firstOrderDaysMax");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMinIsNull() {
            addCriterion("orders_avg_min is null");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMinIsNotNull() {
            addCriterion("orders_avg_min is not null");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMinEqualTo(BigDecimal value) {
            addCriterion("orders_avg_min =", value, "ordersAvgMin");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMinNotEqualTo(BigDecimal value) {
            addCriterion("orders_avg_min <>", value, "ordersAvgMin");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMinGreaterThan(BigDecimal value) {
            addCriterion("orders_avg_min >", value, "ordersAvgMin");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMinGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("orders_avg_min >=", value, "ordersAvgMin");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMinLessThan(BigDecimal value) {
            addCriterion("orders_avg_min <", value, "ordersAvgMin");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMinLessThanOrEqualTo(BigDecimal value) {
            addCriterion("orders_avg_min <=", value, "ordersAvgMin");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMinIn(List<BigDecimal> values) {
            addCriterion("orders_avg_min in", values, "ordersAvgMin");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMinNotIn(List<BigDecimal> values) {
            addCriterion("orders_avg_min not in", values, "ordersAvgMin");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMinBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("orders_avg_min between", value1, value2, "ordersAvgMin");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMinNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("orders_avg_min not between", value1, value2, "ordersAvgMin");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMaxIsNull() {
            addCriterion("orders_avg_max is null");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMaxIsNotNull() {
            addCriterion("orders_avg_max is not null");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMaxEqualTo(BigDecimal value) {
            addCriterion("orders_avg_max =", value, "ordersAvgMax");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMaxNotEqualTo(BigDecimal value) {
            addCriterion("orders_avg_max <>", value, "ordersAvgMax");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMaxGreaterThan(BigDecimal value) {
            addCriterion("orders_avg_max >", value, "ordersAvgMax");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMaxGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("orders_avg_max >=", value, "ordersAvgMax");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMaxLessThan(BigDecimal value) {
            addCriterion("orders_avg_max <", value, "ordersAvgMax");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMaxLessThanOrEqualTo(BigDecimal value) {
            addCriterion("orders_avg_max <=", value, "ordersAvgMax");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMaxIn(List<BigDecimal> values) {
            addCriterion("orders_avg_max in", values, "ordersAvgMax");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMaxNotIn(List<BigDecimal> values) {
            addCriterion("orders_avg_max not in", values, "ordersAvgMax");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMaxBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("orders_avg_max between", value1, value2, "ordersAvgMax");
            return (Criteria) this;
        }

        public Criteria andOrdersAvgMaxNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("orders_avg_max not between", value1, value2, "ordersAvgMax");
            return (Criteria) this;
        }
    }

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table dc_auto_sales_forecast_config
     *
     * @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 dc_auto_sales_forecast_config
         *
         * @mbg.generated
         * @project https://github.com/itfsw/mybatis-generator-plugin
         */
        private DcAutoSalesForecastConfigExample example;

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table dc_auto_sales_forecast_config
         *
         * @mbg.generated
         * @project https://github.com/itfsw/mybatis-generator-plugin
         */
        protected Criteria(DcAutoSalesForecastConfigExample example) {
            super();
            this.example = example;
        }

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table dc_auto_sales_forecast_config
         *
         * @mbg.generated
         * @project https://github.com/itfsw/mybatis-generator-plugin
         */
        public DcAutoSalesForecastConfigExample example() {
            return this.example;
        }

        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table dc_auto_sales_forecast_config
         *
         * @mbg.generated
         * @project https://github.com/itfsw/mybatis-generator-plugin
         */
        @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 dc_auto_sales_forecast_config
         *
         * @mbg.generated
         * @project https://github.com/itfsw/mybatis-generator-plugin
         */
        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 dc_auto_sales_forecast_config
         *
         * @mbg.generated
         * @project https://github.com/itfsw/mybatis-generator-plugin
         */
        public Criteria when(boolean condition, ICriteriaWhen then, ICriteriaWhen otherwise) {
            if (condition) {
                then.criteria(this);
            } else {
                otherwise.criteria(this);
            }
            return this;
        }

        /**
         * This interface was generated by MyBatis Generator.
         * This interface corresponds to the database table dc_auto_sales_forecast_config
         *
         * @mbg.generated
         * @project https://github.com/itfsw/mybatis-generator-plugin
         */
        @Deprecated
        public interface ICriteriaAdd {
            /**
             * This method was generated by MyBatis Generator.
             * This method corresponds to the database table dc_auto_sales_forecast_config
             *
             * @mbg.generated
             * @project https://github.com/itfsw/mybatis-generator-plugin
             */
            Criteria add(Criteria add);
        }
    }

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table dc_auto_sales_forecast_config
     *
     * @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);
        }
    }

    /**
     * This interface was generated by MyBatis Generator.
     * This interface corresponds to the database table dc_auto_sales_forecast_config
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    public interface ICriteriaWhen {
        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table dc_auto_sales_forecast_config
         *
         * @mbg.generated
         * @project https://github.com/itfsw/mybatis-generator-plugin
         */
        void criteria(Criteria criteria);
    }

    /**
     * This interface was generated by MyBatis Generator.
     * This interface corresponds to the database table dc_auto_sales_forecast_config
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    public interface IExampleWhen {
        /**
         * This method was generated by MyBatis Generator.
         * This method corresponds to the database table dc_auto_sales_forecast_config
         *
         * @mbg.generated
         * @project https://github.com/itfsw/mybatis-generator-plugin
         */
        void example(com.bailuntec.domain.example.DcAutoSalesForecastConfigExample example);
    }
}