package cn.superdesk.uniorder.dao.entity.invoice.customer.invoiced;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class InvoiceInvoicedBackCollectionOperationLogExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public InvoiceInvoicedBackCollectionOperationLogExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    /**
    invoice_invoiced_back_collection_operation_log
     *
     * Fri Jul 30 10:11:33 CST 2021
     */
    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

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

        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 andIdNotEqualTo(Long value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

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

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

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

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("id <=", value, "id");
            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 andBatchIdIsNull() {
            addCriterion("batch_id is null");
            return (Criteria) this;
        }

        public Criteria andBatchIdIsNotNull() {
            addCriterion("batch_id is not null");
            return (Criteria) this;
        }

        public Criteria andBatchIdEqualTo(String value) {
            addCriterion("batch_id =", value, "batchId");
            return (Criteria) this;
        }

        public Criteria andBatchIdNotEqualTo(String value) {
            addCriterion("batch_id <>", value, "batchId");
            return (Criteria) this;
        }

        public Criteria andBatchIdGreaterThan(String value) {
            addCriterion("batch_id >", value, "batchId");
            return (Criteria) this;
        }

        public Criteria andBatchIdGreaterThanOrEqualTo(String value) {
            addCriterion("batch_id >=", value, "batchId");
            return (Criteria) this;
        }

        public Criteria andBatchIdLessThan(String value) {
            addCriterion("batch_id <", value, "batchId");
            return (Criteria) this;
        }

        public Criteria andBatchIdLessThanOrEqualTo(String value) {
            addCriterion("batch_id <=", value, "batchId");
            return (Criteria) this;
        }

        public Criteria andBatchIdLike(String value) {
            addCriterion("batch_id like", value, "batchId");
            return (Criteria) this;
        }

        public Criteria andBatchIdNotLike(String value) {
            addCriterion("batch_id not like", value, "batchId");
            return (Criteria) this;
        }

        public Criteria andBatchIdIn(List<String> values) {
            addCriterion("batch_id in", values, "batchId");
            return (Criteria) this;
        }

        public Criteria andBatchIdNotIn(List<String> values) {
            addCriterion("batch_id not in", values, "batchId");
            return (Criteria) this;
        }

        public Criteria andBatchIdBetween(String value1, String value2) {
            addCriterion("batch_id between", value1, value2, "batchId");
            return (Criteria) this;
        }

        public Criteria andBatchIdNotBetween(String value1, String value2) {
            addCriterion("batch_id not between", value1, value2, "batchId");
            return (Criteria) this;
        }

        public Criteria andInvoiceInvoicedIdIsNull() {
            addCriterion("invoice_invoiced_id is null");
            return (Criteria) this;
        }

        public Criteria andInvoiceInvoicedIdIsNotNull() {
            addCriterion("invoice_invoiced_id is not null");
            return (Criteria) this;
        }

        public Criteria andInvoiceInvoicedIdEqualTo(Long value) {
            addCriterion("invoice_invoiced_id =", value, "invoiceInvoicedId");
            return (Criteria) this;
        }

        public Criteria andInvoiceInvoicedIdNotEqualTo(Long value) {
            addCriterion("invoice_invoiced_id <>", value, "invoiceInvoicedId");
            return (Criteria) this;
        }

        public Criteria andInvoiceInvoicedIdGreaterThan(Long value) {
            addCriterion("invoice_invoiced_id >", value, "invoiceInvoicedId");
            return (Criteria) this;
        }

        public Criteria andInvoiceInvoicedIdGreaterThanOrEqualTo(Long value) {
            addCriterion("invoice_invoiced_id >=", value, "invoiceInvoicedId");
            return (Criteria) this;
        }

        public Criteria andInvoiceInvoicedIdLessThan(Long value) {
            addCriterion("invoice_invoiced_id <", value, "invoiceInvoicedId");
            return (Criteria) this;
        }

        public Criteria andInvoiceInvoicedIdLessThanOrEqualTo(Long value) {
            addCriterion("invoice_invoiced_id <=", value, "invoiceInvoicedId");
            return (Criteria) this;
        }

        public Criteria andInvoiceInvoicedIdIn(List<Long> values) {
            addCriterion("invoice_invoiced_id in", values, "invoiceInvoicedId");
            return (Criteria) this;
        }

        public Criteria andInvoiceInvoicedIdNotIn(List<Long> values) {
            addCriterion("invoice_invoiced_id not in", values, "invoiceInvoicedId");
            return (Criteria) this;
        }

        public Criteria andInvoiceInvoicedIdBetween(Long value1, Long value2) {
            addCriterion("invoice_invoiced_id between", value1, value2, "invoiceInvoicedId");
            return (Criteria) this;
        }

        public Criteria andInvoiceInvoicedIdNotBetween(Long value1, Long value2) {
            addCriterion("invoice_invoiced_id not between", value1, value2, "invoiceInvoicedId");
            return (Criteria) this;
        }

        public Criteria andInvoiceNumberIsNull() {
            addCriterion("invoice_number is null");
            return (Criteria) this;
        }

        public Criteria andInvoiceNumberIsNotNull() {
            addCriterion("invoice_number is not null");
            return (Criteria) this;
        }

        public Criteria andInvoiceNumberEqualTo(String value) {
            addCriterion("invoice_number =", value, "invoiceNumber");
            return (Criteria) this;
        }

        public Criteria andInvoiceNumberNotEqualTo(String value) {
            addCriterion("invoice_number <>", value, "invoiceNumber");
            return (Criteria) this;
        }

        public Criteria andInvoiceNumberGreaterThan(String value) {
            addCriterion("invoice_number >", value, "invoiceNumber");
            return (Criteria) this;
        }

        public Criteria andInvoiceNumberGreaterThanOrEqualTo(String value) {
            addCriterion("invoice_number >=", value, "invoiceNumber");
            return (Criteria) this;
        }

        public Criteria andInvoiceNumberLessThan(String value) {
            addCriterion("invoice_number <", value, "invoiceNumber");
            return (Criteria) this;
        }

        public Criteria andInvoiceNumberLessThanOrEqualTo(String value) {
            addCriterion("invoice_number <=", value, "invoiceNumber");
            return (Criteria) this;
        }

        public Criteria andInvoiceNumberLike(String value) {
            addCriterion("invoice_number like", value, "invoiceNumber");
            return (Criteria) this;
        }

        public Criteria andInvoiceNumberNotLike(String value) {
            addCriterion("invoice_number not like", value, "invoiceNumber");
            return (Criteria) this;
        }

        public Criteria andInvoiceNumberIn(List<String> values) {
            addCriterion("invoice_number in", values, "invoiceNumber");
            return (Criteria) this;
        }

        public Criteria andInvoiceNumberNotIn(List<String> values) {
            addCriterion("invoice_number not in", values, "invoiceNumber");
            return (Criteria) this;
        }

        public Criteria andInvoiceNumberBetween(String value1, String value2) {
            addCriterion("invoice_number between", value1, value2, "invoiceNumber");
            return (Criteria) this;
        }

        public Criteria andInvoiceNumberNotBetween(String value1, String value2) {
            addCriterion("invoice_number not between", value1, value2, "invoiceNumber");
            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(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

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

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

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

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

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

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

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

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

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

        public Criteria andCreateUserIdIsNull() {
            addCriterion("create_user_id is null");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdIsNotNull() {
            addCriterion("create_user_id is not null");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdEqualTo(Long value) {
            addCriterion("create_user_id =", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdNotEqualTo(Long value) {
            addCriterion("create_user_id <>", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdGreaterThan(Long value) {
            addCriterion("create_user_id >", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdGreaterThanOrEqualTo(Long value) {
            addCriterion("create_user_id >=", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdLessThan(Long value) {
            addCriterion("create_user_id <", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdLessThanOrEqualTo(Long value) {
            addCriterion("create_user_id <=", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdIn(List<Long> values) {
            addCriterion("create_user_id in", values, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdNotIn(List<Long> values) {
            addCriterion("create_user_id not in", values, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdBetween(Long value1, Long value2) {
            addCriterion("create_user_id between", value1, value2, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdNotBetween(Long value1, Long value2) {
            addCriterion("create_user_id not between", value1, value2, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameIsNull() {
            addCriterion("create_user_name is null");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameIsNotNull() {
            addCriterion("create_user_name is not null");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameEqualTo(String value) {
            addCriterion("create_user_name =", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameNotEqualTo(String value) {
            addCriterion("create_user_name <>", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameGreaterThan(String value) {
            addCriterion("create_user_name >", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameGreaterThanOrEqualTo(String value) {
            addCriterion("create_user_name >=", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameLessThan(String value) {
            addCriterion("create_user_name <", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameLessThanOrEqualTo(String value) {
            addCriterion("create_user_name <=", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameLike(String value) {
            addCriterion("create_user_name like", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameNotLike(String value) {
            addCriterion("create_user_name not like", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameIn(List<String> values) {
            addCriterion("create_user_name in", values, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameNotIn(List<String> values) {
            addCriterion("create_user_name not in", values, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameBetween(String value1, String value2) {
            addCriterion("create_user_name between", value1, value2, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameNotBetween(String value1, String value2) {
            addCriterion("create_user_name not between", value1, value2, "createUserName");
            return (Criteria) this;
        }

        public Criteria andTotalAmountIsNull() {
            addCriterion("total_amount is null");
            return (Criteria) this;
        }

        public Criteria andTotalAmountIsNotNull() {
            addCriterion("total_amount is not null");
            return (Criteria) this;
        }

        public Criteria andTotalAmountEqualTo(BigDecimal value) {
            addCriterion("total_amount =", value, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTotalAmountNotEqualTo(BigDecimal value) {
            addCriterion("total_amount <>", value, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTotalAmountGreaterThan(BigDecimal value) {
            addCriterion("total_amount >", value, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTotalAmountGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("total_amount >=", value, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTotalAmountLessThan(BigDecimal value) {
            addCriterion("total_amount <", value, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTotalAmountLessThanOrEqualTo(BigDecimal value) {
            addCriterion("total_amount <=", value, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTotalAmountIn(List<BigDecimal> values) {
            addCriterion("total_amount in", values, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTotalAmountNotIn(List<BigDecimal> values) {
            addCriterion("total_amount not in", values, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTotalAmountBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("total_amount between", value1, value2, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTotalAmountNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("total_amount not between", value1, value2, "totalAmount");
            return (Criteria) this;
        }

        public Criteria andTaxRateIsNull() {
            addCriterion("tax_rate is null");
            return (Criteria) this;
        }

        public Criteria andTaxRateIsNotNull() {
            addCriterion("tax_rate is not null");
            return (Criteria) this;
        }

        public Criteria andTaxRateEqualTo(BigDecimal value) {
            addCriterion("tax_rate =", value, "taxRate");
            return (Criteria) this;
        }

        public Criteria andTaxRateNotEqualTo(BigDecimal value) {
            addCriterion("tax_rate <>", value, "taxRate");
            return (Criteria) this;
        }

        public Criteria andTaxRateGreaterThan(BigDecimal value) {
            addCriterion("tax_rate >", value, "taxRate");
            return (Criteria) this;
        }

        public Criteria andTaxRateGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("tax_rate >=", value, "taxRate");
            return (Criteria) this;
        }

        public Criteria andTaxRateLessThan(BigDecimal value) {
            addCriterion("tax_rate <", value, "taxRate");
            return (Criteria) this;
        }

        public Criteria andTaxRateLessThanOrEqualTo(BigDecimal value) {
            addCriterion("tax_rate <=", value, "taxRate");
            return (Criteria) this;
        }

        public Criteria andTaxRateIn(List<BigDecimal> values) {
            addCriterion("tax_rate in", values, "taxRate");
            return (Criteria) this;
        }

        public Criteria andTaxRateNotIn(List<BigDecimal> values) {
            addCriterion("tax_rate not in", values, "taxRate");
            return (Criteria) this;
        }

        public Criteria andTaxRateBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("tax_rate between", value1, value2, "taxRate");
            return (Criteria) this;
        }

        public Criteria andTaxRateNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("tax_rate not between", value1, value2, "taxRate");
            return (Criteria) this;
        }

        public Criteria andTotalTaxIsNull() {
            addCriterion("total_tax is null");
            return (Criteria) this;
        }

        public Criteria andTotalTaxIsNotNull() {
            addCriterion("total_tax is not null");
            return (Criteria) this;
        }

        public Criteria andTotalTaxEqualTo(BigDecimal value) {
            addCriterion("total_tax =", value, "totalTax");
            return (Criteria) this;
        }

        public Criteria andTotalTaxNotEqualTo(BigDecimal value) {
            addCriterion("total_tax <>", value, "totalTax");
            return (Criteria) this;
        }

        public Criteria andTotalTaxGreaterThan(BigDecimal value) {
            addCriterion("total_tax >", value, "totalTax");
            return (Criteria) this;
        }

        public Criteria andTotalTaxGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("total_tax >=", value, "totalTax");
            return (Criteria) this;
        }

        public Criteria andTotalTaxLessThan(BigDecimal value) {
            addCriterion("total_tax <", value, "totalTax");
            return (Criteria) this;
        }

        public Criteria andTotalTaxLessThanOrEqualTo(BigDecimal value) {
            addCriterion("total_tax <=", value, "totalTax");
            return (Criteria) this;
        }

        public Criteria andTotalTaxIn(List<BigDecimal> values) {
            addCriterion("total_tax in", values, "totalTax");
            return (Criteria) this;
        }

        public Criteria andTotalTaxNotIn(List<BigDecimal> values) {
            addCriterion("total_tax not in", values, "totalTax");
            return (Criteria) this;
        }

        public Criteria andTotalTaxBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("total_tax between", value1, value2, "totalTax");
            return (Criteria) this;
        }

        public Criteria andTotalTaxNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("total_tax not between", value1, value2, "totalTax");
            return (Criteria) this;
        }

        public Criteria andTotalAmountIncludingTaxIsNull() {
            addCriterion("total_amount_including_tax is null");
            return (Criteria) this;
        }

        public Criteria andTotalAmountIncludingTaxIsNotNull() {
            addCriterion("total_amount_including_tax is not null");
            return (Criteria) this;
        }

        public Criteria andTotalAmountIncludingTaxEqualTo(BigDecimal value) {
            addCriterion("total_amount_including_tax =", value, "totalAmountIncludingTax");
            return (Criteria) this;
        }

        public Criteria andTotalAmountIncludingTaxNotEqualTo(BigDecimal value) {
            addCriterion("total_amount_including_tax <>", value, "totalAmountIncludingTax");
            return (Criteria) this;
        }

        public Criteria andTotalAmountIncludingTaxGreaterThan(BigDecimal value) {
            addCriterion("total_amount_including_tax >", value, "totalAmountIncludingTax");
            return (Criteria) this;
        }

        public Criteria andTotalAmountIncludingTaxGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("total_amount_including_tax >=", value, "totalAmountIncludingTax");
            return (Criteria) this;
        }

        public Criteria andTotalAmountIncludingTaxLessThan(BigDecimal value) {
            addCriterion("total_amount_including_tax <", value, "totalAmountIncludingTax");
            return (Criteria) this;
        }

        public Criteria andTotalAmountIncludingTaxLessThanOrEqualTo(BigDecimal value) {
            addCriterion("total_amount_including_tax <=", value, "totalAmountIncludingTax");
            return (Criteria) this;
        }

        public Criteria andTotalAmountIncludingTaxIn(List<BigDecimal> values) {
            addCriterion("total_amount_including_tax in", values, "totalAmountIncludingTax");
            return (Criteria) this;
        }

        public Criteria andTotalAmountIncludingTaxNotIn(List<BigDecimal> values) {
            addCriterion("total_amount_including_tax not in", values, "totalAmountIncludingTax");
            return (Criteria) this;
        }

        public Criteria andTotalAmountIncludingTaxBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("total_amount_including_tax between", value1, value2, "totalAmountIncludingTax");
            return (Criteria) this;
        }

        public Criteria andTotalAmountIncludingTaxNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("total_amount_including_tax not between", value1, value2, "totalAmountIncludingTax");
            return (Criteria) this;
        }

        public Criteria andReceivableAmountIsNull() {
            addCriterion("receivable_amount is null");
            return (Criteria) this;
        }

        public Criteria andReceivableAmountIsNotNull() {
            addCriterion("receivable_amount is not null");
            return (Criteria) this;
        }

        public Criteria andReceivableAmountEqualTo(BigDecimal value) {
            addCriterion("receivable_amount =", value, "receivableAmount");
            return (Criteria) this;
        }

        public Criteria andReceivableAmountNotEqualTo(BigDecimal value) {
            addCriterion("receivable_amount <>", value, "receivableAmount");
            return (Criteria) this;
        }

        public Criteria andReceivableAmountGreaterThan(BigDecimal value) {
            addCriterion("receivable_amount >", value, "receivableAmount");
            return (Criteria) this;
        }

        public Criteria andReceivableAmountGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("receivable_amount >=", value, "receivableAmount");
            return (Criteria) this;
        }

        public Criteria andReceivableAmountLessThan(BigDecimal value) {
            addCriterion("receivable_amount <", value, "receivableAmount");
            return (Criteria) this;
        }

        public Criteria andReceivableAmountLessThanOrEqualTo(BigDecimal value) {
            addCriterion("receivable_amount <=", value, "receivableAmount");
            return (Criteria) this;
        }

        public Criteria andReceivableAmountIn(List<BigDecimal> values) {
            addCriterion("receivable_amount in", values, "receivableAmount");
            return (Criteria) this;
        }

        public Criteria andReceivableAmountNotIn(List<BigDecimal> values) {
            addCriterion("receivable_amount not in", values, "receivableAmount");
            return (Criteria) this;
        }

        public Criteria andReceivableAmountBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("receivable_amount between", value1, value2, "receivableAmount");
            return (Criteria) this;
        }

        public Criteria andReceivableAmountNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("receivable_amount not between", value1, value2, "receivableAmount");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountAlreadyIsNull() {
            addCriterion("back_collection_amount_already is null");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountAlreadyIsNotNull() {
            addCriterion("back_collection_amount_already is not null");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountAlreadyEqualTo(BigDecimal value) {
            addCriterion("back_collection_amount_already =", value, "backCollectionAmountAlready");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountAlreadyNotEqualTo(BigDecimal value) {
            addCriterion("back_collection_amount_already <>", value, "backCollectionAmountAlready");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountAlreadyGreaterThan(BigDecimal value) {
            addCriterion("back_collection_amount_already >", value, "backCollectionAmountAlready");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountAlreadyGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("back_collection_amount_already >=", value, "backCollectionAmountAlready");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountAlreadyLessThan(BigDecimal value) {
            addCriterion("back_collection_amount_already <", value, "backCollectionAmountAlready");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountAlreadyLessThanOrEqualTo(BigDecimal value) {
            addCriterion("back_collection_amount_already <=", value, "backCollectionAmountAlready");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountAlreadyIn(List<BigDecimal> values) {
            addCriterion("back_collection_amount_already in", values, "backCollectionAmountAlready");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountAlreadyNotIn(List<BigDecimal> values) {
            addCriterion("back_collection_amount_already not in", values, "backCollectionAmountAlready");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountAlreadyBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("back_collection_amount_already between", value1, value2, "backCollectionAmountAlready");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountAlreadyNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("back_collection_amount_already not between", value1, value2, "backCollectionAmountAlready");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountWaitForIsNull() {
            addCriterion("back_collection_amount_wait_for is null");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountWaitForIsNotNull() {
            addCriterion("back_collection_amount_wait_for is not null");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountWaitForEqualTo(BigDecimal value) {
            addCriterion("back_collection_amount_wait_for =", value, "backCollectionAmountWaitFor");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountWaitForNotEqualTo(BigDecimal value) {
            addCriterion("back_collection_amount_wait_for <>", value, "backCollectionAmountWaitFor");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountWaitForGreaterThan(BigDecimal value) {
            addCriterion("back_collection_amount_wait_for >", value, "backCollectionAmountWaitFor");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountWaitForGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("back_collection_amount_wait_for >=", value, "backCollectionAmountWaitFor");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountWaitForLessThan(BigDecimal value) {
            addCriterion("back_collection_amount_wait_for <", value, "backCollectionAmountWaitFor");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountWaitForLessThanOrEqualTo(BigDecimal value) {
            addCriterion("back_collection_amount_wait_for <=", value, "backCollectionAmountWaitFor");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountWaitForIn(List<BigDecimal> values) {
            addCriterion("back_collection_amount_wait_for in", values, "backCollectionAmountWaitFor");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountWaitForNotIn(List<BigDecimal> values) {
            addCriterion("back_collection_amount_wait_for not in", values, "backCollectionAmountWaitFor");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountWaitForBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("back_collection_amount_wait_for between", value1, value2, "backCollectionAmountWaitFor");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountWaitForNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("back_collection_amount_wait_for not between", value1, value2, "backCollectionAmountWaitFor");
            return (Criteria) this;
        }

        public Criteria andBackCollectionTimeIsNull() {
            addCriterion("back_collection_time is null");
            return (Criteria) this;
        }

        public Criteria andBackCollectionTimeIsNotNull() {
            addCriterion("back_collection_time is not null");
            return (Criteria) this;
        }

        public Criteria andBackCollectionTimeEqualTo(Date value) {
            addCriterion("back_collection_time =", value, "backCollectionTime");
            return (Criteria) this;
        }

        public Criteria andBackCollectionTimeNotEqualTo(Date value) {
            addCriterion("back_collection_time <>", value, "backCollectionTime");
            return (Criteria) this;
        }

        public Criteria andBackCollectionTimeGreaterThan(Date value) {
            addCriterion("back_collection_time >", value, "backCollectionTime");
            return (Criteria) this;
        }

        public Criteria andBackCollectionTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("back_collection_time >=", value, "backCollectionTime");
            return (Criteria) this;
        }

        public Criteria andBackCollectionTimeLessThan(Date value) {
            addCriterion("back_collection_time <", value, "backCollectionTime");
            return (Criteria) this;
        }

        public Criteria andBackCollectionTimeLessThanOrEqualTo(Date value) {
            addCriterion("back_collection_time <=", value, "backCollectionTime");
            return (Criteria) this;
        }

        public Criteria andBackCollectionTimeIn(List<Date> values) {
            addCriterion("back_collection_time in", values, "backCollectionTime");
            return (Criteria) this;
        }

        public Criteria andBackCollectionTimeNotIn(List<Date> values) {
            addCriterion("back_collection_time not in", values, "backCollectionTime");
            return (Criteria) this;
        }

        public Criteria andBackCollectionTimeBetween(Date value1, Date value2) {
            addCriterion("back_collection_time between", value1, value2, "backCollectionTime");
            return (Criteria) this;
        }

        public Criteria andBackCollectionTimeNotBetween(Date value1, Date value2) {
            addCriterion("back_collection_time not between", value1, value2, "backCollectionTime");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountIsNull() {
            addCriterion("back_collection_amount is null");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountIsNotNull() {
            addCriterion("back_collection_amount is not null");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountEqualTo(BigDecimal value) {
            addCriterion("back_collection_amount =", value, "backCollectionAmount");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountNotEqualTo(BigDecimal value) {
            addCriterion("back_collection_amount <>", value, "backCollectionAmount");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountGreaterThan(BigDecimal value) {
            addCriterion("back_collection_amount >", value, "backCollectionAmount");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("back_collection_amount >=", value, "backCollectionAmount");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountLessThan(BigDecimal value) {
            addCriterion("back_collection_amount <", value, "backCollectionAmount");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountLessThanOrEqualTo(BigDecimal value) {
            addCriterion("back_collection_amount <=", value, "backCollectionAmount");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountIn(List<BigDecimal> values) {
            addCriterion("back_collection_amount in", values, "backCollectionAmount");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountNotIn(List<BigDecimal> values) {
            addCriterion("back_collection_amount not in", values, "backCollectionAmount");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("back_collection_amount between", value1, value2, "backCollectionAmount");
            return (Criteria) this;
        }

        public Criteria andBackCollectionAmountNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("back_collection_amount not between", value1, value2, "backCollectionAmount");
            return (Criteria) this;
        }
    }

    /**
    invoice_invoiced_back_collection_operation_log
     *
     * do_not_delete_during_merge Fri Jul 30 10:11:33 CST 2021
     */
    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    /**
    invoice_invoiced_back_collection_operation_log
     *
     * Fri Jul 30 10:11:33 CST 2021
     */
    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);
        }
    }
}
