package com.tax.file.model;

import java.util.ArrayList;
import java.util.List;

public class FinInvoiceDetailExample {
    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database table fin_invoice_detail
     *
     * @mbggenerated Wed Sep 04 14:22:50 CST 2019
     */
    protected String orderByClause;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database table fin_invoice_detail
     *
     * @mbggenerated Wed Sep 04 14:22:50 CST 2019
     */
    protected boolean distinct;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database table fin_invoice_detail
     *
     * @mbggenerated Wed Sep 04 14:22:50 CST 2019
     */
    protected List<Criteria> oredCriteria;

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fin_invoice_detail
     *
     * @mbggenerated Wed Sep 04 14:22:50 CST 2019
     */
    public FinInvoiceDetailExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fin_invoice_detail
     *
     * @mbggenerated Wed Sep 04 14:22:50 CST 2019
     */
    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fin_invoice_detail
     *
     * @mbggenerated Wed Sep 04 14:22:50 CST 2019
     */
    public String getOrderByClause() {
        return orderByClause;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fin_invoice_detail
     *
     * @mbggenerated Wed Sep 04 14:22:50 CST 2019
     */
    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fin_invoice_detail
     *
     * @mbggenerated Wed Sep 04 14:22:50 CST 2019
     */
    public boolean isDistinct() {
        return distinct;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fin_invoice_detail
     *
     * @mbggenerated Wed Sep 04 14:22:50 CST 2019
     */
    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fin_invoice_detail
     *
     * @mbggenerated Wed Sep 04 14:22:50 CST 2019
     */
    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fin_invoice_detail
     *
     * @mbggenerated Wed Sep 04 14:22:50 CST 2019
     */
    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 fin_invoice_detail
     *
     * @mbggenerated Wed Sep 04 14:22:50 CST 2019
     */
    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 fin_invoice_detail
     *
     * @mbggenerated Wed Sep 04 14:22:50 CST 2019
     */
    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fin_invoice_detail
     *
     * @mbggenerated Wed Sep 04 14:22:50 CST 2019
     */
    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table fin_invoice_detail
     *
     * @mbggenerated Wed Sep 04 14:22:50 CST 2019
     */
    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 andInvKindIsNull() {
            addCriterion("inv_kind is null");
            return (Criteria) this;
        }

        public Criteria andInvKindIsNotNull() {
            addCriterion("inv_kind is not null");
            return (Criteria) this;
        }

        public Criteria andInvKindEqualTo(String value) {
            addCriterion("inv_kind =", value, "invKind");
            return (Criteria) this;
        }

        public Criteria andInvKindNotEqualTo(String value) {
            addCriterion("inv_kind <>", value, "invKind");
            return (Criteria) this;
        }

        public Criteria andInvKindGreaterThan(String value) {
            addCriterion("inv_kind >", value, "invKind");
            return (Criteria) this;
        }

        public Criteria andInvKindGreaterThanOrEqualTo(String value) {
            addCriterion("inv_kind >=", value, "invKind");
            return (Criteria) this;
        }

        public Criteria andInvKindLessThan(String value) {
            addCriterion("inv_kind <", value, "invKind");
            return (Criteria) this;
        }

        public Criteria andInvKindLessThanOrEqualTo(String value) {
            addCriterion("inv_kind <=", value, "invKind");
            return (Criteria) this;
        }

        public Criteria andInvKindLike(String value) {
            addCriterion("inv_kind like", value, "invKind");
            return (Criteria) this;
        }

        public Criteria andInvKindNotLike(String value) {
            addCriterion("inv_kind not like", value, "invKind");
            return (Criteria) this;
        }

        public Criteria andInvKindIn(List<String> values) {
            addCriterion("inv_kind in", values, "invKind");
            return (Criteria) this;
        }

        public Criteria andInvKindNotIn(List<String> values) {
            addCriterion("inv_kind not in", values, "invKind");
            return (Criteria) this;
        }

        public Criteria andInvKindBetween(String value1, String value2) {
            addCriterion("inv_kind between", value1, value2, "invKind");
            return (Criteria) this;
        }

        public Criteria andInvKindNotBetween(String value1, String value2) {
            addCriterion("inv_kind not between", value1, value2, "invKind");
            return (Criteria) this;
        }

        public Criteria andInvNumIsNull() {
            addCriterion("inv_num is null");
            return (Criteria) this;
        }

        public Criteria andInvNumIsNotNull() {
            addCriterion("inv_num is not null");
            return (Criteria) this;
        }

        public Criteria andInvNumEqualTo(String value) {
            addCriterion("inv_num =", value, "invNum");
            return (Criteria) this;
        }

        public Criteria andInvNumNotEqualTo(String value) {
            addCriterion("inv_num <>", value, "invNum");
            return (Criteria) this;
        }

        public Criteria andInvNumGreaterThan(String value) {
            addCriterion("inv_num >", value, "invNum");
            return (Criteria) this;
        }

        public Criteria andInvNumGreaterThanOrEqualTo(String value) {
            addCriterion("inv_num >=", value, "invNum");
            return (Criteria) this;
        }

        public Criteria andInvNumLessThan(String value) {
            addCriterion("inv_num <", value, "invNum");
            return (Criteria) this;
        }

        public Criteria andInvNumLessThanOrEqualTo(String value) {
            addCriterion("inv_num <=", value, "invNum");
            return (Criteria) this;
        }

        public Criteria andInvNumLike(String value) {
            addCriterion("inv_num like", value, "invNum");
            return (Criteria) this;
        }

        public Criteria andInvNumNotLike(String value) {
            addCriterion("inv_num not like", value, "invNum");
            return (Criteria) this;
        }

        public Criteria andInvNumIn(List<String> values) {
            addCriterion("inv_num in", values, "invNum");
            return (Criteria) this;
        }

        public Criteria andInvNumNotIn(List<String> values) {
            addCriterion("inv_num not in", values, "invNum");
            return (Criteria) this;
        }

        public Criteria andInvNumBetween(String value1, String value2) {
            addCriterion("inv_num between", value1, value2, "invNum");
            return (Criteria) this;
        }

        public Criteria andInvNumNotBetween(String value1, String value2) {
            addCriterion("inv_num not between", value1, value2, "invNum");
            return (Criteria) this;
        }

        public Criteria andGnameIsNull() {
            addCriterion("gname is null");
            return (Criteria) this;
        }

        public Criteria andGnameIsNotNull() {
            addCriterion("gname is not null");
            return (Criteria) this;
        }

        public Criteria andGnameEqualTo(String value) {
            addCriterion("gname =", value, "gname");
            return (Criteria) this;
        }

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

        public Criteria andGnameGreaterThan(String value) {
            addCriterion("gname >", value, "gname");
            return (Criteria) this;
        }

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

        public Criteria andGnameLessThan(String value) {
            addCriterion("gname <", value, "gname");
            return (Criteria) this;
        }

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

        public Criteria andGnameLike(String value) {
            addCriterion("gname like", value, "gname");
            return (Criteria) this;
        }

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

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

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

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

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

        public Criteria andGtypeIsNull() {
            addCriterion("gtype is null");
            return (Criteria) this;
        }

        public Criteria andGtypeIsNotNull() {
            addCriterion("gtype is not null");
            return (Criteria) this;
        }

        public Criteria andGtypeEqualTo(String value) {
            addCriterion("gtype =", value, "gtype");
            return (Criteria) this;
        }

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

        public Criteria andGtypeGreaterThan(String value) {
            addCriterion("gtype >", value, "gtype");
            return (Criteria) this;
        }

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

        public Criteria andGtypeLessThan(String value) {
            addCriterion("gtype <", value, "gtype");
            return (Criteria) this;
        }

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

        public Criteria andGtypeLike(String value) {
            addCriterion("gtype like", value, "gtype");
            return (Criteria) this;
        }

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

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

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

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

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

        public Criteria andGpieceIsNull() {
            addCriterion("gpiece is null");
            return (Criteria) this;
        }

        public Criteria andGpieceIsNotNull() {
            addCriterion("gpiece is not null");
            return (Criteria) this;
        }

        public Criteria andGpieceEqualTo(String value) {
            addCriterion("gpiece =", value, "gpiece");
            return (Criteria) this;
        }

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

        public Criteria andGpieceGreaterThan(String value) {
            addCriterion("gpiece >", value, "gpiece");
            return (Criteria) this;
        }

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

        public Criteria andGpieceLessThan(String value) {
            addCriterion("gpiece <", value, "gpiece");
            return (Criteria) this;
        }

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

        public Criteria andGpieceLike(String value) {
            addCriterion("gpiece like", value, "gpiece");
            return (Criteria) this;
        }

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

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

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

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

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

        public Criteria andGnumIsNull() {
            addCriterion("gnum is null");
            return (Criteria) this;
        }

        public Criteria andGnumIsNotNull() {
            addCriterion("gnum is not null");
            return (Criteria) this;
        }

        public Criteria andGnumEqualTo(String value) {
            addCriterion("gnum =", value, "gnum");
            return (Criteria) this;
        }

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

        public Criteria andGnumGreaterThan(String value) {
            addCriterion("gnum >", value, "gnum");
            return (Criteria) this;
        }

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

        public Criteria andGnumLessThan(String value) {
            addCriterion("gnum <", value, "gnum");
            return (Criteria) this;
        }

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

        public Criteria andGnumLike(String value) {
            addCriterion("gnum like", value, "gnum");
            return (Criteria) this;
        }

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

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

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

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

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

        public Criteria andPriceIsNull() {
            addCriterion("price is null");
            return (Criteria) this;
        }

        public Criteria andPriceIsNotNull() {
            addCriterion("price is not null");
            return (Criteria) this;
        }

        public Criteria andPriceEqualTo(String value) {
            addCriterion("price =", value, "price");
            return (Criteria) this;
        }

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

        public Criteria andPriceGreaterThan(String value) {
            addCriterion("price >", value, "price");
            return (Criteria) this;
        }

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

        public Criteria andPriceLessThan(String value) {
            addCriterion("price <", value, "price");
            return (Criteria) this;
        }

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

        public Criteria andPriceLike(String value) {
            addCriterion("price like", value, "price");
            return (Criteria) this;
        }

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

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

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

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

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

        public Criteria andInvCostIsNull() {
            addCriterion("inv_cost is null");
            return (Criteria) this;
        }

        public Criteria andInvCostIsNotNull() {
            addCriterion("inv_cost is not null");
            return (Criteria) this;
        }

        public Criteria andInvCostEqualTo(Double value) {
            addCriterion("inv_cost =", value, "invCost");
            return (Criteria) this;
        }

        public Criteria andInvCostNotEqualTo(Double value) {
            addCriterion("inv_cost <>", value, "invCost");
            return (Criteria) this;
        }

        public Criteria andInvCostGreaterThan(Double value) {
            addCriterion("inv_cost >", value, "invCost");
            return (Criteria) this;
        }

        public Criteria andInvCostGreaterThanOrEqualTo(Double value) {
            addCriterion("inv_cost >=", value, "invCost");
            return (Criteria) this;
        }

        public Criteria andInvCostLessThan(Double value) {
            addCriterion("inv_cost <", value, "invCost");
            return (Criteria) this;
        }

        public Criteria andInvCostLessThanOrEqualTo(Double value) {
            addCriterion("inv_cost <=", value, "invCost");
            return (Criteria) this;
        }

        public Criteria andInvCostIn(List<Double> values) {
            addCriterion("inv_cost in", values, "invCost");
            return (Criteria) this;
        }

        public Criteria andInvCostNotIn(List<Double> values) {
            addCriterion("inv_cost not in", values, "invCost");
            return (Criteria) this;
        }

        public Criteria andInvCostBetween(Double value1, Double value2) {
            addCriterion("inv_cost between", value1, value2, "invCost");
            return (Criteria) this;
        }

        public Criteria andInvCostNotBetween(Double value1, Double value2) {
            addCriterion("inv_cost not between", value1, value2, "invCost");
            return (Criteria) this;
        }

        public Criteria andInvVatIsNull() {
            addCriterion("inv_vat is null");
            return (Criteria) this;
        }

        public Criteria andInvVatIsNotNull() {
            addCriterion("inv_vat is not null");
            return (Criteria) this;
        }

        public Criteria andInvVatEqualTo(Double value) {
            addCriterion("inv_vat =", value, "invVat");
            return (Criteria) this;
        }

        public Criteria andInvVatNotEqualTo(Double value) {
            addCriterion("inv_vat <>", value, "invVat");
            return (Criteria) this;
        }

        public Criteria andInvVatGreaterThan(Double value) {
            addCriterion("inv_vat >", value, "invVat");
            return (Criteria) this;
        }

        public Criteria andInvVatGreaterThanOrEqualTo(Double value) {
            addCriterion("inv_vat >=", value, "invVat");
            return (Criteria) this;
        }

        public Criteria andInvVatLessThan(Double value) {
            addCriterion("inv_vat <", value, "invVat");
            return (Criteria) this;
        }

        public Criteria andInvVatLessThanOrEqualTo(Double value) {
            addCriterion("inv_vat <=", value, "invVat");
            return (Criteria) this;
        }

        public Criteria andInvVatIn(List<Double> values) {
            addCriterion("inv_vat in", values, "invVat");
            return (Criteria) this;
        }

        public Criteria andInvVatNotIn(List<Double> values) {
            addCriterion("inv_vat not in", values, "invVat");
            return (Criteria) this;
        }

        public Criteria andInvVatBetween(Double value1, Double value2) {
            addCriterion("inv_vat between", value1, value2, "invVat");
            return (Criteria) this;
        }

        public Criteria andInvVatNotBetween(Double value1, Double value2) {
            addCriterion("inv_vat not between", value1, value2, "invVat");
            return (Criteria) this;
        }

        public Criteria andInvRateIsNull() {
            addCriterion("inv_rate is null");
            return (Criteria) this;
        }

        public Criteria andInvRateIsNotNull() {
            addCriterion("inv_rate is not null");
            return (Criteria) this;
        }

        public Criteria andInvRateEqualTo(Double value) {
            addCriterion("inv_rate =", value, "invRate");
            return (Criteria) this;
        }

        public Criteria andInvRateNotEqualTo(Double value) {
            addCriterion("inv_rate <>", value, "invRate");
            return (Criteria) this;
        }

        public Criteria andInvRateGreaterThan(Double value) {
            addCriterion("inv_rate >", value, "invRate");
            return (Criteria) this;
        }

        public Criteria andInvRateGreaterThanOrEqualTo(Double value) {
            addCriterion("inv_rate >=", value, "invRate");
            return (Criteria) this;
        }

        public Criteria andInvRateLessThan(Double value) {
            addCriterion("inv_rate <", value, "invRate");
            return (Criteria) this;
        }

        public Criteria andInvRateLessThanOrEqualTo(Double value) {
            addCriterion("inv_rate <=", value, "invRate");
            return (Criteria) this;
        }

        public Criteria andInvRateIn(List<Double> values) {
            addCriterion("inv_rate in", values, "invRate");
            return (Criteria) this;
        }

        public Criteria andInvRateNotIn(List<Double> values) {
            addCriterion("inv_rate not in", values, "invRate");
            return (Criteria) this;
        }

        public Criteria andInvRateBetween(Double value1, Double value2) {
            addCriterion("inv_rate between", value1, value2, "invRate");
            return (Criteria) this;
        }

        public Criteria andInvRateNotBetween(Double value1, Double value2) {
            addCriterion("inv_rate not between", value1, value2, "invRate");
            return (Criteria) this;
        }

        public Criteria andTaxClassCodeIsNull() {
            addCriterion("tax_class_code is null");
            return (Criteria) this;
        }

        public Criteria andTaxClassCodeIsNotNull() {
            addCriterion("tax_class_code is not null");
            return (Criteria) this;
        }

        public Criteria andTaxClassCodeEqualTo(String value) {
            addCriterion("tax_class_code =", value, "taxClassCode");
            return (Criteria) this;
        }

        public Criteria andTaxClassCodeNotEqualTo(String value) {
            addCriterion("tax_class_code <>", value, "taxClassCode");
            return (Criteria) this;
        }

        public Criteria andTaxClassCodeGreaterThan(String value) {
            addCriterion("tax_class_code >", value, "taxClassCode");
            return (Criteria) this;
        }

        public Criteria andTaxClassCodeGreaterThanOrEqualTo(String value) {
            addCriterion("tax_class_code >=", value, "taxClassCode");
            return (Criteria) this;
        }

        public Criteria andTaxClassCodeLessThan(String value) {
            addCriterion("tax_class_code <", value, "taxClassCode");
            return (Criteria) this;
        }

        public Criteria andTaxClassCodeLessThanOrEqualTo(String value) {
            addCriterion("tax_class_code <=", value, "taxClassCode");
            return (Criteria) this;
        }

        public Criteria andTaxClassCodeLike(String value) {
            addCriterion("tax_class_code like", value, "taxClassCode");
            return (Criteria) this;
        }

        public Criteria andTaxClassCodeNotLike(String value) {
            addCriterion("tax_class_code not like", value, "taxClassCode");
            return (Criteria) this;
        }

        public Criteria andTaxClassCodeIn(List<String> values) {
            addCriterion("tax_class_code in", values, "taxClassCode");
            return (Criteria) this;
        }

        public Criteria andTaxClassCodeNotIn(List<String> values) {
            addCriterion("tax_class_code not in", values, "taxClassCode");
            return (Criteria) this;
        }

        public Criteria andTaxClassCodeBetween(String value1, String value2) {
            addCriterion("tax_class_code between", value1, value2, "taxClassCode");
            return (Criteria) this;
        }

        public Criteria andTaxClassCodeNotBetween(String value1, String value2) {
            addCriterion("tax_class_code not between", value1, value2, "taxClassCode");
            return (Criteria) this;
        }

        public Criteria andLineNoIsNull() {
            addCriterion("line_no is null");
            return (Criteria) this;
        }

        public Criteria andLineNoIsNotNull() {
            addCriterion("line_no is not null");
            return (Criteria) this;
        }

        public Criteria andLineNoEqualTo(Integer value) {
            addCriterion("line_no =", value, "lineNo");
            return (Criteria) this;
        }

        public Criteria andLineNoNotEqualTo(Integer value) {
            addCriterion("line_no <>", value, "lineNo");
            return (Criteria) this;
        }

        public Criteria andLineNoGreaterThan(Integer value) {
            addCriterion("line_no >", value, "lineNo");
            return (Criteria) this;
        }

        public Criteria andLineNoGreaterThanOrEqualTo(Integer value) {
            addCriterion("line_no >=", value, "lineNo");
            return (Criteria) this;
        }

        public Criteria andLineNoLessThan(Integer value) {
            addCriterion("line_no <", value, "lineNo");
            return (Criteria) this;
        }

        public Criteria andLineNoLessThanOrEqualTo(Integer value) {
            addCriterion("line_no <=", value, "lineNo");
            return (Criteria) this;
        }

        public Criteria andLineNoIn(List<Integer> values) {
            addCriterion("line_no in", values, "lineNo");
            return (Criteria) this;
        }

        public Criteria andLineNoNotIn(List<Integer> values) {
            addCriterion("line_no not in", values, "lineNo");
            return (Criteria) this;
        }

        public Criteria andLineNoBetween(Integer value1, Integer value2) {
            addCriterion("line_no between", value1, value2, "lineNo");
            return (Criteria) this;
        }

        public Criteria andLineNoNotBetween(Integer value1, Integer value2) {
            addCriterion("line_no not between", value1, value2, "lineNo");
            return (Criteria) this;
        }

        public Criteria andKindnumIsNull() {
            addCriterion("kindnum is null");
            return (Criteria) this;
        }

        public Criteria andKindnumIsNotNull() {
            addCriterion("kindnum is not null");
            return (Criteria) this;
        }

        public Criteria andKindnumEqualTo(String value) {
            addCriterion("kindnum =", value, "kindnum");
            return (Criteria) this;
        }

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

        public Criteria andKindnumGreaterThan(String value) {
            addCriterion("kindnum >", value, "kindnum");
            return (Criteria) this;
        }

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

        public Criteria andKindnumLessThan(String value) {
            addCriterion("kindnum <", value, "kindnum");
            return (Criteria) this;
        }

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

        public Criteria andKindnumLike(String value) {
            addCriterion("kindnum like", value, "kindnum");
            return (Criteria) this;
        }

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

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

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

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

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

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table fin_invoice_detail
     *
     * @mbggenerated do_not_delete_during_merge Wed Sep 04 14:22:50 CST 2019
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table fin_invoice_detail
     *
     * @mbggenerated Wed Sep 04 14:22:50 CST 2019
     */
    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);
        }
    }
}