package com.mortals.xhx.module.product.model;

import java.util.List;
import com.mortals.xhx.module.product.model.ProductEntity;
/**
* 产品查询对象
*
* @author zxfei
* @date 2021-11-22
*/
public class ProductQuery extends ProductEntity {
    /** 开始 主键ID，主键，自增长 */
    private Long idStart;

    /** 结束 主键ID，主键，自增长 */
    private Long idEnd;

    /** 增加 主键ID，主键，自增长 */
    private Long idIncrement;

    /** 主键ID，主键，自增长列表 */
    private List <Long> idList;

    /** 开始 用户ID */
    private Long customerIdStart;

    /** 结束 用户ID */
    private Long customerIdEnd;

    /** 增加 用户ID */
    private Long customerIdIncrement;

    /** 用户ID列表 */
    private List <Long> customerIdList;

    /** 产品名称，为产品命名。产品名称在账号内具有唯一性。例如，可以填写为产品型号。支持中文、英文字母、日文、数字、下划线（_）、短划线（-）、at（@）和英文圆括号，长度限制4~30个字符。 */
    private List<String> productNameList;

    /** 开始 所属品类，相当于产品模板。1，标准品类：2，其它品类 */
    private Integer productTypeStart;

    /** 结束 所属品类，相当于产品模板。1，标准品类：2，其它品类 */
    private Integer productTypeEnd;

    /** 增加 所属品类，相当于产品模板。1，标准品类：2，其它品类 */
    private Integer productTypeIncrement;

    /** 所属品类，相当于产品模板。1，标准品类：2，其它品类列表 */
    private List <Integer> productTypeList;

    /** 开始 数据格式，设备上下行的数据格式。1，标准数据格式：是平台为开发者提供的设备与云端的数据交换协议，采用JSON格式 */
    private Integer dataTypeStart;

    /** 结束 数据格式，设备上下行的数据格式。1，标准数据格式：是平台为开发者提供的设备与云端的数据交换协议，采用JSON格式 */
    private Integer dataTypeEnd;

    /** 增加 数据格式，设备上下行的数据格式。1，标准数据格式：是平台为开发者提供的设备与云端的数据交换协议，采用JSON格式 */
    private Integer dataTypeIncrement;

    /** 数据格式，设备上下行的数据格式。1，标准数据格式：是平台为开发者提供的设备与云端的数据交换协议，采用JSON格式列表 */
    private List <Integer> dataTypeList;

    /** 开始 认证方式，设备接入平台的安全认证方式。产品创建成功后，认证方式不可变更。1，设备密钥：使用物联网平台为设备生成的DeviceSecret进行设备认证签名计算。使用DeviceSecret签名计算 */
    private Integer authTypeStart;

    /** 结束 认证方式，设备接入平台的安全认证方式。产品创建成功后，认证方式不可变更。1，设备密钥：使用物联网平台为设备生成的DeviceSecret进行设备认证签名计算。使用DeviceSecret签名计算 */
    private Integer authTypeEnd;

    /** 增加 认证方式，设备接入平台的安全认证方式。产品创建成功后，认证方式不可变更。1，设备密钥：使用物联网平台为设备生成的DeviceSecret进行设备认证签名计算。使用DeviceSecret签名计算 */
    private Integer authTypeIncrement;

    /** 认证方式，设备接入平台的安全认证方式。产品创建成功后，认证方式不可变更。1，设备密钥：使用物联网平台为设备生成的DeviceSecret进行设备认证签名计算。使用DeviceSecret签名计算列表 */
    private List <Integer> authTypeList;

    /** 产品备注 */
    private List<String> productRemarkList;

    /** 平台为产品颁发的全局唯一标识符 */
    private List<String> productKeyList;

    /** 开始 产品状态，（1.开发中，2.发布） */
    private Integer productStatusStart;

    /** 结束 产品状态，（1.开发中，2.发布） */
    private Integer productStatusEnd;

    /** 增加 产品状态，（1.开发中，2.发布） */
    private Integer productStatusIncrement;

    /** 产品状态，（1.开发中，2.发布）列表 */
    private List <Integer> productStatusList;

    /** 开始 创建用户 */
    private Long createUserIdStart;

    /** 结束 创建用户 */
    private Long createUserIdEnd;

    /** 增加 创建用户 */
    private Long createUserIdIncrement;

    /** 创建用户列表 */
    private List <Long> createUserIdList;

    /** 开始 创建时间 */
    private String createTimeStart;

    /** 结束 创建时间 */
    private String createTimeEnd;

    /** 开始 更新时间 */
    private String updateTimeStart;

    /** 结束 更新时间 */
    private String updateTimeEnd;

    /** OR条件集合，列表项之间是OR，项内容之间是AND，如：(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
    private List<ProductQuery> orConditionList;

    /** AND条件集合，列表项之间是AND，项内容之间是OR，如：(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
    private List<ProductQuery> andConditionList;

    public ProductQuery(){}

    /**
    * 获取 开始 主键ID，主键，自增长
    * @return idStart
    */
    public Long getIdStart(){
        return this.idStart;
    }

    /**
    * 设置 开始 主键ID，主键，自增长
    * @param idStart
    */
    public void setIdStart(Long idStart){
        this.idStart = idStart;
    }

    /**
    * 获取 结束 主键ID，主键，自增长
    * @return $idEnd
    */
    public Long getIdEnd(){
        return this.idEnd;
    }

    /**
    * 设置 结束 主键ID，主键，自增长
    * @param idEnd
    */
    public void setIdEnd(Long idEnd){
        this.idEnd = idEnd;
    }

    /**
    * 获取 增加 主键ID，主键，自增长
    * @return idIncrement
    */
    public Long getIdIncrement(){
        return this.idIncrement;
    }

    /**
    * 设置 增加 主键ID，主键，自增长
    * @param idIncrement
    */
    public void setIdIncrement(Long idIncrement){
        this.idIncrement = idIncrement;
    }

    /**
    * 获取 主键ID，主键，自增长
    * @return idList
    */
    public List<Long> getIdList(){
        return this.idList;
    }

    /**
    * 设置 主键ID，主键，自增长
    * @param idList
    */
    public void setIdList(List<Long> idList){
        this.idList = idList;
    }

    /**
    * 获取 开始 用户ID
    * @return customerIdStart
    */
    public Long getCustomerIdStart(){
        return this.customerIdStart;
    }

    /**
    * 设置 开始 用户ID
    * @param customerIdStart
    */
    public void setCustomerIdStart(Long customerIdStart){
        this.customerIdStart = customerIdStart;
    }

    /**
    * 获取 结束 用户ID
    * @return $customerIdEnd
    */
    public Long getCustomerIdEnd(){
        return this.customerIdEnd;
    }

    /**
    * 设置 结束 用户ID
    * @param customerIdEnd
    */
    public void setCustomerIdEnd(Long customerIdEnd){
        this.customerIdEnd = customerIdEnd;
    }

    /**
    * 获取 增加 用户ID
    * @return customerIdIncrement
    */
    public Long getCustomerIdIncrement(){
        return this.customerIdIncrement;
    }

    /**
    * 设置 增加 用户ID
    * @param customerIdIncrement
    */
    public void setCustomerIdIncrement(Long customerIdIncrement){
        this.customerIdIncrement = customerIdIncrement;
    }

    /**
    * 获取 用户ID
    * @return customerIdList
    */
    public List<Long> getCustomerIdList(){
        return this.customerIdList;
    }

    /**
    * 设置 用户ID
    * @param customerIdList
    */
    public void setCustomerIdList(List<Long> customerIdList){
        this.customerIdList = customerIdList;
    }

    /**
    * 获取 产品名称，为产品命名。产品名称在账号内具有唯一性。例如，可以填写为产品型号。支持中文、英文字母、日文、数字、下划线（_）、短划线（-）、at（@）和英文圆括号，长度限制4~30个字符。
    * @return productNameList
    */
    public List<String> getProductNameList(){
        return this.productNameList;
    }

    /**
    * 设置 产品名称，为产品命名。产品名称在账号内具有唯一性。例如，可以填写为产品型号。支持中文、英文字母、日文、数字、下划线（_）、短划线（-）、at（@）和英文圆括号，长度限制4~30个字符。
    * @param productNameList
    */
    public void setProductNameList(List<String> productNameList){
        this.productNameList = productNameList;
    }
    /**
    * 获取 开始 所属品类，相当于产品模板。1，标准品类：2，其它品类
    * @return productTypeStart
    */
    public Integer getProductTypeStart(){
        return this.productTypeStart;
    }

    /**
    * 设置 开始 所属品类，相当于产品模板。1，标准品类：2，其它品类
    * @param productTypeStart
    */
    public void setProductTypeStart(Integer productTypeStart){
        this.productTypeStart = productTypeStart;
    }

    /**
    * 获取 结束 所属品类，相当于产品模板。1，标准品类：2，其它品类
    * @return $productTypeEnd
    */
    public Integer getProductTypeEnd(){
        return this.productTypeEnd;
    }

    /**
    * 设置 结束 所属品类，相当于产品模板。1，标准品类：2，其它品类
    * @param productTypeEnd
    */
    public void setProductTypeEnd(Integer productTypeEnd){
        this.productTypeEnd = productTypeEnd;
    }

    /**
    * 获取 增加 所属品类，相当于产品模板。1，标准品类：2，其它品类
    * @return productTypeIncrement
    */
    public Integer getProductTypeIncrement(){
        return this.productTypeIncrement;
    }

    /**
    * 设置 增加 所属品类，相当于产品模板。1，标准品类：2，其它品类
    * @param productTypeIncrement
    */
    public void setProductTypeIncrement(Integer productTypeIncrement){
        this.productTypeIncrement = productTypeIncrement;
    }

    /**
    * 获取 所属品类，相当于产品模板。1，标准品类：2，其它品类
    * @return productTypeList
    */
    public List<Integer> getProductTypeList(){
        return this.productTypeList;
    }

    /**
    * 设置 所属品类，相当于产品模板。1，标准品类：2，其它品类
    * @param productTypeList
    */
    public void setProductTypeList(List<Integer> productTypeList){
        this.productTypeList = productTypeList;
    }

    /**
    * 获取 开始 数据格式，设备上下行的数据格式。1，标准数据格式：是平台为开发者提供的设备与云端的数据交换协议，采用JSON格式
    * @return dataTypeStart
    */
    public Integer getDataTypeStart(){
        return this.dataTypeStart;
    }

    /**
    * 设置 开始 数据格式，设备上下行的数据格式。1，标准数据格式：是平台为开发者提供的设备与云端的数据交换协议，采用JSON格式
    * @param dataTypeStart
    */
    public void setDataTypeStart(Integer dataTypeStart){
        this.dataTypeStart = dataTypeStart;
    }

    /**
    * 获取 结束 数据格式，设备上下行的数据格式。1，标准数据格式：是平台为开发者提供的设备与云端的数据交换协议，采用JSON格式
    * @return $dataTypeEnd
    */
    public Integer getDataTypeEnd(){
        return this.dataTypeEnd;
    }

    /**
    * 设置 结束 数据格式，设备上下行的数据格式。1，标准数据格式：是平台为开发者提供的设备与云端的数据交换协议，采用JSON格式
    * @param dataTypeEnd
    */
    public void setDataTypeEnd(Integer dataTypeEnd){
        this.dataTypeEnd = dataTypeEnd;
    }

    /**
    * 获取 增加 数据格式，设备上下行的数据格式。1，标准数据格式：是平台为开发者提供的设备与云端的数据交换协议，采用JSON格式
    * @return dataTypeIncrement
    */
    public Integer getDataTypeIncrement(){
        return this.dataTypeIncrement;
    }

    /**
    * 设置 增加 数据格式，设备上下行的数据格式。1，标准数据格式：是平台为开发者提供的设备与云端的数据交换协议，采用JSON格式
    * @param dataTypeIncrement
    */
    public void setDataTypeIncrement(Integer dataTypeIncrement){
        this.dataTypeIncrement = dataTypeIncrement;
    }

    /**
    * 获取 数据格式，设备上下行的数据格式。1，标准数据格式：是平台为开发者提供的设备与云端的数据交换协议，采用JSON格式
    * @return dataTypeList
    */
    public List<Integer> getDataTypeList(){
        return this.dataTypeList;
    }

    /**
    * 设置 数据格式，设备上下行的数据格式。1，标准数据格式：是平台为开发者提供的设备与云端的数据交换协议，采用JSON格式
    * @param dataTypeList
    */
    public void setDataTypeList(List<Integer> dataTypeList){
        this.dataTypeList = dataTypeList;
    }

    /**
    * 获取 开始 认证方式，设备接入平台的安全认证方式。产品创建成功后，认证方式不可变更。1，设备密钥：使用物联网平台为设备生成的DeviceSecret进行设备认证签名计算。使用DeviceSecret签名计算
    * @return authTypeStart
    */
    public Integer getAuthTypeStart(){
        return this.authTypeStart;
    }

    /**
    * 设置 开始 认证方式，设备接入平台的安全认证方式。产品创建成功后，认证方式不可变更。1，设备密钥：使用物联网平台为设备生成的DeviceSecret进行设备认证签名计算。使用DeviceSecret签名计算
    * @param authTypeStart
    */
    public void setAuthTypeStart(Integer authTypeStart){
        this.authTypeStart = authTypeStart;
    }

    /**
    * 获取 结束 认证方式，设备接入平台的安全认证方式。产品创建成功后，认证方式不可变更。1，设备密钥：使用物联网平台为设备生成的DeviceSecret进行设备认证签名计算。使用DeviceSecret签名计算
    * @return $authTypeEnd
    */
    public Integer getAuthTypeEnd(){
        return this.authTypeEnd;
    }

    /**
    * 设置 结束 认证方式，设备接入平台的安全认证方式。产品创建成功后，认证方式不可变更。1，设备密钥：使用物联网平台为设备生成的DeviceSecret进行设备认证签名计算。使用DeviceSecret签名计算
    * @param authTypeEnd
    */
    public void setAuthTypeEnd(Integer authTypeEnd){
        this.authTypeEnd = authTypeEnd;
    }

    /**
    * 获取 增加 认证方式，设备接入平台的安全认证方式。产品创建成功后，认证方式不可变更。1，设备密钥：使用物联网平台为设备生成的DeviceSecret进行设备认证签名计算。使用DeviceSecret签名计算
    * @return authTypeIncrement
    */
    public Integer getAuthTypeIncrement(){
        return this.authTypeIncrement;
    }

    /**
    * 设置 增加 认证方式，设备接入平台的安全认证方式。产品创建成功后，认证方式不可变更。1，设备密钥：使用物联网平台为设备生成的DeviceSecret进行设备认证签名计算。使用DeviceSecret签名计算
    * @param authTypeIncrement
    */
    public void setAuthTypeIncrement(Integer authTypeIncrement){
        this.authTypeIncrement = authTypeIncrement;
    }

    /**
    * 获取 认证方式，设备接入平台的安全认证方式。产品创建成功后，认证方式不可变更。1，设备密钥：使用物联网平台为设备生成的DeviceSecret进行设备认证签名计算。使用DeviceSecret签名计算
    * @return authTypeList
    */
    public List<Integer> getAuthTypeList(){
        return this.authTypeList;
    }

    /**
    * 设置 认证方式，设备接入平台的安全认证方式。产品创建成功后，认证方式不可变更。1，设备密钥：使用物联网平台为设备生成的DeviceSecret进行设备认证签名计算。使用DeviceSecret签名计算
    * @param authTypeList
    */
    public void setAuthTypeList(List<Integer> authTypeList){
        this.authTypeList = authTypeList;
    }

    /**
    * 获取 产品备注
    * @return productRemarkList
    */
    public List<String> getProductRemarkList(){
        return this.productRemarkList;
    }

    /**
    * 设置 产品备注
    * @param productRemarkList
    */
    public void setProductRemarkList(List<String> productRemarkList){
        this.productRemarkList = productRemarkList;
    }
    /**
    * 获取 平台为产品颁发的全局唯一标识符
    * @return productKeyList
    */
    public List<String> getProductKeyList(){
        return this.productKeyList;
    }

    /**
    * 设置 平台为产品颁发的全局唯一标识符
    * @param productKeyList
    */
    public void setProductKeyList(List<String> productKeyList){
        this.productKeyList = productKeyList;
    }
    /**
    * 获取 开始 产品状态，（1.开发中，2.发布）
    * @return productStatusStart
    */
    public Integer getProductStatusStart(){
        return this.productStatusStart;
    }

    /**
    * 设置 开始 产品状态，（1.开发中，2.发布）
    * @param productStatusStart
    */
    public void setProductStatusStart(Integer productStatusStart){
        this.productStatusStart = productStatusStart;
    }

    /**
    * 获取 结束 产品状态，（1.开发中，2.发布）
    * @return $productStatusEnd
    */
    public Integer getProductStatusEnd(){
        return this.productStatusEnd;
    }

    /**
    * 设置 结束 产品状态，（1.开发中，2.发布）
    * @param productStatusEnd
    */
    public void setProductStatusEnd(Integer productStatusEnd){
        this.productStatusEnd = productStatusEnd;
    }

    /**
    * 获取 增加 产品状态，（1.开发中，2.发布）
    * @return productStatusIncrement
    */
    public Integer getProductStatusIncrement(){
        return this.productStatusIncrement;
    }

    /**
    * 设置 增加 产品状态，（1.开发中，2.发布）
    * @param productStatusIncrement
    */
    public void setProductStatusIncrement(Integer productStatusIncrement){
        this.productStatusIncrement = productStatusIncrement;
    }

    /**
    * 获取 产品状态，（1.开发中，2.发布）
    * @return productStatusList
    */
    public List<Integer> getProductStatusList(){
        return this.productStatusList;
    }

    /**
    * 设置 产品状态，（1.开发中，2.发布）
    * @param productStatusList
    */
    public void setProductStatusList(List<Integer> productStatusList){
        this.productStatusList = productStatusList;
    }

    /**
    * 获取 开始 创建用户
    * @return createUserIdStart
    */
    public Long getCreateUserIdStart(){
        return this.createUserIdStart;
    }

    /**
    * 设置 开始 创建用户
    * @param createUserIdStart
    */
    public void setCreateUserIdStart(Long createUserIdStart){
        this.createUserIdStart = createUserIdStart;
    }

    /**
    * 获取 结束 创建用户
    * @return $createUserIdEnd
    */
    public Long getCreateUserIdEnd(){
        return this.createUserIdEnd;
    }

    /**
    * 设置 结束 创建用户
    * @param createUserIdEnd
    */
    public void setCreateUserIdEnd(Long createUserIdEnd){
        this.createUserIdEnd = createUserIdEnd;
    }

    /**
    * 获取 增加 创建用户
    * @return createUserIdIncrement
    */
    public Long getCreateUserIdIncrement(){
        return this.createUserIdIncrement;
    }

    /**
    * 设置 增加 创建用户
    * @param createUserIdIncrement
    */
    public void setCreateUserIdIncrement(Long createUserIdIncrement){
        this.createUserIdIncrement = createUserIdIncrement;
    }

    /**
    * 获取 创建用户
    * @return createUserIdList
    */
    public List<Long> getCreateUserIdList(){
        return this.createUserIdList;
    }

    /**
    * 设置 创建用户
    * @param createUserIdList
    */
    public void setCreateUserIdList(List<Long> createUserIdList){
        this.createUserIdList = createUserIdList;
    }

    /**
    * 获取 开始 创建时间
    * @return createTimeStart
    */
    public String getCreateTimeStart(){
        return this.createTimeStart;
    }

    /**
    * 设置 开始 创建时间
    * @param createTimeStart
    */
    public void setCreateTimeStart(String createTimeStart){
        this.createTimeStart = createTimeStart;
    }

    /**
    * 获取 结束 创建时间
    * @return createTimeEnd
    */
    public String getCreateTimeEnd(){
        return this.createTimeEnd;
    }

    /**
    * 设置 结束 创建时间
    * @param createTimeEnd
    */
    public void setCreateTimeEnd(String createTimeEnd){
        this.createTimeEnd = createTimeEnd;
    }

    /**
    * 获取 开始 更新时间
    * @return updateTimeStart
    */
    public String getUpdateTimeStart(){
        return this.updateTimeStart;
    }

    /**
    * 设置 开始 更新时间
    * @param updateTimeStart
    */
    public void setUpdateTimeStart(String updateTimeStart){
        this.updateTimeStart = updateTimeStart;
    }

    /**
    * 获取 结束 更新时间
    * @return updateTimeEnd
    */
    public String getUpdateTimeEnd(){
        return this.updateTimeEnd;
    }

    /**
    * 设置 结束 更新时间
    * @param updateTimeEnd
    */
    public void setUpdateTimeEnd(String updateTimeEnd){
        this.updateTimeEnd = updateTimeEnd;
    }

    /**
    * 设置  主键ID，主键，自增长
    * @param id
    */
    public ProductQuery id(Long id){
	    setId(id);
		return this;
    }
	
	 /**
    * 设置 开始 主键ID，主键，自增长
    * @param idStart
    */
    public ProductQuery idStart(Long idStart){
		this.idStart = idStart;
		return this;
    }

    /**
    * 设置 结束 主键ID，主键，自增长
    * @param idEnd
    */
    public ProductQuery idEnd(Long idEnd){
		this.idEnd = idEnd;
		return this;
    }

    /**
    * 设置 增加 主键ID，主键，自增长
    * @param idIncrement
    */
    public ProductQuery idIncrement(Long idIncrement){
		this.idIncrement = idIncrement;
		return this;
    }

    /**
    * 设置 主键ID，主键，自增长
    * @param idList
    */
    public ProductQuery idList(List<Long> idList){
        this.idList = idList;
		return this;
        }

    /**
    * 设置  用户ID
    * @param customerId
    */
    public ProductQuery customerId(Long customerId){
	    setCustomerId(customerId);
		return this;
    }
	
	 /**
    * 设置 开始 用户ID
    * @param customerIdStart
    */
    public ProductQuery customerIdStart(Long customerIdStart){
		this.customerIdStart = customerIdStart;
		return this;
    }

    /**
    * 设置 结束 用户ID
    * @param customerIdEnd
    */
    public ProductQuery customerIdEnd(Long customerIdEnd){
		this.customerIdEnd = customerIdEnd;
		return this;
    }

    /**
    * 设置 增加 用户ID
    * @param customerIdIncrement
    */
    public ProductQuery customerIdIncrement(Long customerIdIncrement){
		this.customerIdIncrement = customerIdIncrement;
		return this;
    }

    /**
    * 设置 用户ID
    * @param customerIdList
    */
    public ProductQuery customerIdList(List<Long> customerIdList){
        this.customerIdList = customerIdList;
		return this;
        }


	/**
    * 设置 产品名称，为产品命名。产品名称在账号内具有唯一性。例如，可以填写为产品型号。支持中文、英文字母、日文、数字、下划线（_）、短划线（-）、at（@）和英文圆括号，长度限制4~30个字符。
    * @param productName
    */
    public ProductQuery productName(String productName){
        setProductName(productName);
		return this;
    }

    /**
    * 设置 产品名称，为产品命名。产品名称在账号内具有唯一性。例如，可以填写为产品型号。支持中文、英文字母、日文、数字、下划线（_）、短划线（-）、at（@）和英文圆括号，长度限制4~30个字符。
    * @param productNameList
    */
    public ProductQuery productNameList(List<String> productNameList){
        this.productNameList = productNameList;
		return this;
    }

    /**
    * 设置  所属品类，相当于产品模板。1，标准品类：2，其它品类
    * @param productType
    */
    public ProductQuery productType(Integer productType){
	    setProductType(productType);
		return this;
    }
	
	 /**
    * 设置 开始 所属品类，相当于产品模板。1，标准品类：2，其它品类
    * @param productTypeStart
    */
    public ProductQuery productTypeStart(Integer productTypeStart){
		this.productTypeStart = productTypeStart;
		return this;
    }

    /**
    * 设置 结束 所属品类，相当于产品模板。1，标准品类：2，其它品类
    * @param productTypeEnd
    */
    public ProductQuery productTypeEnd(Integer productTypeEnd){
		this.productTypeEnd = productTypeEnd;
		return this;
    }

    /**
    * 设置 增加 所属品类，相当于产品模板。1，标准品类：2，其它品类
    * @param productTypeIncrement
    */
    public ProductQuery productTypeIncrement(Integer productTypeIncrement){
		this.productTypeIncrement = productTypeIncrement;
		return this;
    }

    /**
    * 设置 所属品类，相当于产品模板。1，标准品类：2，其它品类
    * @param productTypeList
    */
    public ProductQuery productTypeList(List<Integer> productTypeList){
        this.productTypeList = productTypeList;
		return this;
        }

    /**
    * 设置  数据格式，设备上下行的数据格式。1，标准数据格式：是平台为开发者提供的设备与云端的数据交换协议，采用JSON格式
    * @param dataType
    */
    public ProductQuery dataType(Integer dataType){
	    setDataType(dataType);
		return this;
    }
	
	 /**
    * 设置 开始 数据格式，设备上下行的数据格式。1，标准数据格式：是平台为开发者提供的设备与云端的数据交换协议，采用JSON格式
    * @param dataTypeStart
    */
    public ProductQuery dataTypeStart(Integer dataTypeStart){
		this.dataTypeStart = dataTypeStart;
		return this;
    }

    /**
    * 设置 结束 数据格式，设备上下行的数据格式。1，标准数据格式：是平台为开发者提供的设备与云端的数据交换协议，采用JSON格式
    * @param dataTypeEnd
    */
    public ProductQuery dataTypeEnd(Integer dataTypeEnd){
		this.dataTypeEnd = dataTypeEnd;
		return this;
    }

    /**
    * 设置 增加 数据格式，设备上下行的数据格式。1，标准数据格式：是平台为开发者提供的设备与云端的数据交换协议，采用JSON格式
    * @param dataTypeIncrement
    */
    public ProductQuery dataTypeIncrement(Integer dataTypeIncrement){
		this.dataTypeIncrement = dataTypeIncrement;
		return this;
    }

    /**
    * 设置 数据格式，设备上下行的数据格式。1，标准数据格式：是平台为开发者提供的设备与云端的数据交换协议，采用JSON格式
    * @param dataTypeList
    */
    public ProductQuery dataTypeList(List<Integer> dataTypeList){
        this.dataTypeList = dataTypeList;
		return this;
        }

    /**
    * 设置  认证方式，设备接入平台的安全认证方式。产品创建成功后，认证方式不可变更。1，设备密钥：使用物联网平台为设备生成的DeviceSecret进行设备认证签名计算。使用DeviceSecret签名计算
    * @param authType
    */
    public ProductQuery authType(Integer authType){
	    setAuthType(authType);
		return this;
    }
	
	 /**
    * 设置 开始 认证方式，设备接入平台的安全认证方式。产品创建成功后，认证方式不可变更。1，设备密钥：使用物联网平台为设备生成的DeviceSecret进行设备认证签名计算。使用DeviceSecret签名计算
    * @param authTypeStart
    */
    public ProductQuery authTypeStart(Integer authTypeStart){
		this.authTypeStart = authTypeStart;
		return this;
    }

    /**
    * 设置 结束 认证方式，设备接入平台的安全认证方式。产品创建成功后，认证方式不可变更。1，设备密钥：使用物联网平台为设备生成的DeviceSecret进行设备认证签名计算。使用DeviceSecret签名计算
    * @param authTypeEnd
    */
    public ProductQuery authTypeEnd(Integer authTypeEnd){
		this.authTypeEnd = authTypeEnd;
		return this;
    }

    /**
    * 设置 增加 认证方式，设备接入平台的安全认证方式。产品创建成功后，认证方式不可变更。1，设备密钥：使用物联网平台为设备生成的DeviceSecret进行设备认证签名计算。使用DeviceSecret签名计算
    * @param authTypeIncrement
    */
    public ProductQuery authTypeIncrement(Integer authTypeIncrement){
		this.authTypeIncrement = authTypeIncrement;
		return this;
    }

    /**
    * 设置 认证方式，设备接入平台的安全认证方式。产品创建成功后，认证方式不可变更。1，设备密钥：使用物联网平台为设备生成的DeviceSecret进行设备认证签名计算。使用DeviceSecret签名计算
    * @param authTypeList
    */
    public ProductQuery authTypeList(List<Integer> authTypeList){
        this.authTypeList = authTypeList;
		return this;
        }


	/**
    * 设置 产品备注
    * @param productRemark
    */
    public ProductQuery productRemark(String productRemark){
        setProductRemark(productRemark);
		return this;
    }

    /**
    * 设置 产品备注
    * @param productRemarkList
    */
    public ProductQuery productRemarkList(List<String> productRemarkList){
        this.productRemarkList = productRemarkList;
		return this;
    }


	/**
    * 设置 平台为产品颁发的全局唯一标识符
    * @param productKey
    */
    public ProductQuery productKey(String productKey){
        setProductKey(productKey);
		return this;
    }

    /**
    * 设置 平台为产品颁发的全局唯一标识符
    * @param productKeyList
    */
    public ProductQuery productKeyList(List<String> productKeyList){
        this.productKeyList = productKeyList;
		return this;
    }

    /**
    * 设置  产品状态，（1.开发中，2.发布）
    * @param productStatus
    */
    public ProductQuery productStatus(Integer productStatus){
	    setProductStatus(productStatus);
		return this;
    }
	
	 /**
    * 设置 开始 产品状态，（1.开发中，2.发布）
    * @param productStatusStart
    */
    public ProductQuery productStatusStart(Integer productStatusStart){
		this.productStatusStart = productStatusStart;
		return this;
    }

    /**
    * 设置 结束 产品状态，（1.开发中，2.发布）
    * @param productStatusEnd
    */
    public ProductQuery productStatusEnd(Integer productStatusEnd){
		this.productStatusEnd = productStatusEnd;
		return this;
    }

    /**
    * 设置 增加 产品状态，（1.开发中，2.发布）
    * @param productStatusIncrement
    */
    public ProductQuery productStatusIncrement(Integer productStatusIncrement){
		this.productStatusIncrement = productStatusIncrement;
		return this;
    }

    /**
    * 设置 产品状态，（1.开发中，2.发布）
    * @param productStatusList
    */
    public ProductQuery productStatusList(List<Integer> productStatusList){
        this.productStatusList = productStatusList;
		return this;
        }

    /**
    * 设置  创建用户
    * @param createUserId
    */
    public ProductQuery createUserId(Long createUserId){
	    setCreateUserId(createUserId);
		return this;
    }
	
	 /**
    * 设置 开始 创建用户
    * @param createUserIdStart
    */
    public ProductQuery createUserIdStart(Long createUserIdStart){
		this.createUserIdStart = createUserIdStart;
		return this;
    }

    /**
    * 设置 结束 创建用户
    * @param createUserIdEnd
    */
    public ProductQuery createUserIdEnd(Long createUserIdEnd){
		this.createUserIdEnd = createUserIdEnd;
		return this;
    }

    /**
    * 设置 增加 创建用户
    * @param createUserIdIncrement
    */
    public ProductQuery createUserIdIncrement(Long createUserIdIncrement){
		this.createUserIdIncrement = createUserIdIncrement;
		return this;
    }

    /**
    * 设置 创建用户
    * @param createUserIdList
    */
    public ProductQuery createUserIdList(List<Long> createUserIdList){
        this.createUserIdList = createUserIdList;
		return this;
        }



    /**
    * 获取 OR条件集合，列表项之间是OR，项内容之间是AND，如：(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
    * @return orConditionList
    */
    public List<ProductQuery> 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<ProductQuery> 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<ProductQuery> 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<ProductQuery> andConditionList){
        this.andConditionList = andConditionList;
    }

}