package ${packageName}.model;

<#list importList as import>
import ${import};
</#list>
import java.util.List;
/**
* ${functionName}查询对象
*
* @author ${author}
* @date ${datetime}
*/
public class ${ClassName}Query extends ${ClassName}Entity {
<#list columns as column>
<#if column.javaType == "Long"||column.javaType == "Integer"||column.javaType == "BigDecimal">
    /** 开始 ${column.columnComment} */
    private ${column.javaType} ${column.javaField}Start;

    /** 结束 ${column.columnComment} */
    private ${column.javaType} ${column.javaField}End;

    /** 增加 ${column.columnComment} */
    private ${column.javaType} ${column.javaField}Increment;

    /** ${column.columnComment}列表 */
    private List <${column.javaType}> ${column.javaField}List;

</#if>
<#if column.javaType == "String">
    /** ${column.columnComment} */
    private List<${column.javaType}> ${column.javaField}List;

</#if>
<#if column.javaType == "Date">
    /** 开始 ${column.columnComment} */
    private String ${column.javaField}Start;

    /** 结束 ${column.columnComment} */
    private String ${column.javaField}End;

</#if>
</#list>
    /** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
    private List<${ClassName}Query> orConditionList;

    /** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
    private List<${ClassName}Query> andConditionList;

    public ${ClassName}Query(){}

    <#list columns as column>
    <#if column.javaType == "Long"||column.javaType == "Integer"||column.javaType == "BigDecimal">
    /**
    * 获取 开始 ${column.columnComment}
    * @return ${column.javaField}Start
    */
    public ${column.javaType} get${column.javaField?cap_first}Start(){
        return this.${column.javaField}Start;
    }

    /**
    * 设置 开始 ${column.columnComment}
    * @param ${column.javaField}Start
    */
    public void set${column.javaField?cap_first}Start(${column.javaType} ${column.javaField}Start){
        this.${column.javaField}Start = ${column.javaField}Start;
    }

    /**
    * 获取 结束 ${column.columnComment}
    * @return $${column.javaField}End
    */
    public ${column.javaType} get${column.javaField?cap_first}End(){
        return this.${column.javaField}End;
    }

    /**
    * 设置 结束 ${column.columnComment}
    * @param ${column.javaField}End
    */
    public void set${column.javaField?cap_first}End(${column.javaType} ${column.javaField}End){
        this.${column.javaField}End = ${column.javaField}End;
    }

    /**
    * 获取 增加 ${column.columnComment}
    * @return ${column.javaField}Increment
    */
    public ${column.javaType} get${column.javaField?cap_first}Increment(){
        return this.${column.javaField}Increment;
    }

    /**
    * 设置 增加 ${column.columnComment}
    * @param ${column.javaField}Increment
    */
    public void set${column.javaField?cap_first}Increment(${column.javaType} ${column.javaField}Increment){
        this.${column.javaField}Increment = ${column.javaField}Increment;
    }

    /**
    * 获取 ${column.columnComment}
    * @return ${column.javaField}List
    */
    public List<${column.javaType}> get${column.javaField?cap_first}List(){
        return this.${column.javaField}List;
    }

    /**
    * 设置 ${column.columnComment}
    * @param ${column.javaField}List
    */
    public void set${column.javaField?cap_first}List(List<${column.javaType}> ${column.javaField}List){
        this.${column.javaField}List = ${column.javaField}List;
    }

    </#if>
    <#if column.javaType == "String">
    /**
    * 获取 ${column.columnComment}
    * @return ${column.javaField}List
    */
    public List<${column.javaType}> get${column.javaField?cap_first}List(){
        return this.${column.javaField}List;
    }

    /**
    * 设置 ${column.columnComment}
    * @param ${column.javaField}List
    */
    public void set${column.javaField?cap_first}List(List<${column.javaType}> ${column.javaField}List){
        this.${column.javaField}List = ${column.javaField}List;
    }
    </#if>
    <#if column.javaType == "Date">
    /**
    * 获取 开始 ${column.columnComment}
    * @return ${column.javaField}Start
    */
    public String get${column.javaField?cap_first}Start(){
        return this.${column.javaField}Start;
    }

    /**
    * 设置 开始 ${column.columnComment}
    * @param ${column.javaField}Start
    */
    public void set${column.javaField?cap_first}Start(String ${column.javaField}Start){
        this.${column.javaField}Start = ${column.javaField}Start;
    }

    /**
    * 获取 结束 ${column.columnComment}
    * @return ${column.javaField}End
    */
    public String get${column.javaField?cap_first}End(){
        return this.${column.javaField}End;
    }

    /**
    * 设置 结束 ${column.columnComment}
    * @param ${column.javaField}End
    */
    public void set${column.javaField?cap_first}End(String ${column.javaField}End){
        this.${column.javaField}End = ${column.javaField}End;
    }

    </#if>
    </#list>
    <#list columns as column>
    <#if column.javaType == "Long"||column.javaType == "Integer"||column.javaType == "BigDecimal">
    /**
    * 设置  ${column.columnComment}
    * @param ${column.javaField}
    */
    public ${ClassName}Query ${column.javaField}(${column.javaType} ${column.javaField}){
	    set${column.javaField?cap_first}(${column.javaField});
		return this;
    }
	
	 /**
    * 设置 开始 ${column.columnComment}
    * @param ${column.javaField}Start
    */
    public ${ClassName}Query ${column.javaField}Start(${column.javaType} ${column.javaField}Start){
		this.${column.javaField}Start = ${column.javaField}Start;
		return this;
    }

    /**
    * 设置 结束 ${column.columnComment}
    * @param ${column.javaField}End
    */
    public ${ClassName}Query ${column.javaField}End(${column.javaType} ${column.javaField}End){
		this.${column.javaField}End = ${column.javaField}End;
		return this;
    }

    /**
    * 设置 增加 ${column.columnComment}
    * @param ${column.javaField}Increment
    */
    public ${ClassName}Query ${column.javaField}Increment(${column.javaType} ${column.javaField}Increment){
		this.${column.javaField}Increment = ${column.javaField}Increment;
		return this;
    }

    /**
    * 设置 ${column.columnComment}
    * @param ${column.javaField}List
    */
    public ${ClassName}Query ${column.javaField}List(List<${column.javaType}> ${column.javaField}List){
        this.${column.javaField}List = ${column.javaField}List;
		return this;
        }
    </#if>

    <#if column.javaType  == "String">
	/**
    * 设置 ${column.columnComment}
    * @param ${column.javaField}
    */
    public ${ClassName}Query ${column.javaField}(${column.javaType} ${column.javaField}){
        set${column.javaField?cap_first}(${column.javaField});
		return this;
    }

    /**
    * 设置 ${column.columnComment}
    * @param ${column.javaField}List
    */
    public ${ClassName}Query ${column.javaField}List(List<${column.javaType}> ${column.javaField}List){
        this.${column.javaField}List = ${column.javaField}List;
		return this;
    }

    </#if>
    <#if column.javaType == "java.util.Date">
    /**
    * 设置 开始 ${column.columnComment}
    * @param ${column.javaField}Start
    */
    public ${ClassName}Query ${column.javaField}Start(String ${column.javaField}Start){
		this.${column.javaField}Start = ${column.javaField}Start;
		return this;
    }

    /**
    * 设置 结束 ${column.columnComment}
    * @param ${column.javaField}End
    */
    public ${ClassName}Query ${column.javaField}End(String ${column.javaField}End){
		this.${column.javaField}End = ${column.javaField}End;
		return this;
    }

    </#if>
    </#list>
    /**
    * 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
    * @return orConditionList
    */
    public List<${ClassName}Query> getOrConditionList(){
    return this.orConditionList;
    }

    /**
    * 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
    * @param orConditionList
    */
    public void setOrConditionList(List<${ClassName}Query> orConditionList){
        this.orConditionList = orConditionList;
    }

    /**
    * 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
    * @return andConditionList
    */
    public List<${ClassName}Query> getAndConditionList(){
        return this.andConditionList;
    }

    /**
    * 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
    * @param andConditionList
    */
    public void setAndConditionList(List<${ClassName}Query> andConditionList){
        this.andConditionList = andConditionList;
    }

}