kd.bos.entity.filter

## 类 FilterBuilder

- java.lang.Object
- - kd.bos.entity.filter.FilterBuilder

-     public class FilterBuilder
      extends java.lang.Object

  过滤条件构造类

- - ### 构造器概要

    构造器
    构造器和说明
    `FilterBuilder(MainEntityType dataType)`
    `FilterBuilder(MainEntityType dataType, boolean isCheckInput)` 构造函数
    `FilterBuilder(MainEntityType dataType, FilterCondition filterCondition)`
    `FilterBuilder(MainEntityType dataType, FilterCondition filterCondition, boolean isCheckInput)`
    `FilterBuilder(MainEntityType dataType, FilterCondition filterCondition, boolean isCheckInput, java.util.List<FilterField> filterFields)` 构造函数
    `FilterBuilder(MainEntityType dataType, FilterCondition filterCondition, IDataModel model)` 构造函数
    `FilterBuilder(MainEntityType dataType, FilterCondition filterCondition, IFilterValueSetter filterValueSetter, boolean isCheckInput, java.util.List<FilterField> filterFields)` 构造函数
    `FilterBuilder(MainEntityType dataType, FilterObject filterObject)`

  - ### 方法概要

    所有方法 静态方法 实例方法 具体方法 已过时的方法
    限定符和类型 | 方法和说明
    --- | ---
    `void` | `addFilterField(java.lang.String fieldName, java.lang.String compare, java.lang.String left, java.lang.String right, java.util.List<java.lang.Object> value, java.lang.String logic)` 添加过滤字段
    `void` | `addFilterField(java.lang.String fieldName, java.lang.String compare, java.lang.String left, java.lang.String right, java.util.List<java.lang.Object> value, java.lang.String logic, java.lang.String entityNumber)` 添加过滤字段
    `void` | `buildFilter()` 解析过滤元数据
    `void` | `buildFilter(boolean returnSql)` 解析过滤元数据
    `java.lang.String[]` | `buildFilterScript()` 解析条件，输出脚本表达式与表达式说明
    `static java.util.List<FilterRow>` | `convertIsNullFilterRow(FilterRow filterRow, FilterObject filterObject, FilterField filterField)` 为空特殊处理，将为空过滤条件转为A.Basedata='0'
    `static CompareType` | `getCompareType(FilterField filterField, java.lang.String compare)`
    `static LogicOperate` | `getFiledLogic(java.lang.Object value)`
    `static FilterField` | `getFilterField(FilterObject filterObject, java.lang.String fieldName)`
    `static FilterField` | `getFilterField(MainEntityType dataType, java.lang.String fieldName)` 获取过滤字段
    `FilterObject` | `getFilterObject()`
    `java.lang.String` | `getFilterString()`
    `java.lang.String` | `getFilterStringDesc()`
    `kd.bos.orm.query.QFilter` | `getQFilter()`
    `java.util.List<kd.bos.orm.query.QFilter>` | `getQFilters()`
    `java.util.List<java.lang.Long>` | `getSelectedMainOrgIds()` 已过时。
    `boolean` | `isContainBillStatus()`
    `boolean` | `isContainMainOrg()`
    `boolean` | `isContainUsedStatus()`
    `boolean` | `isMainOrgNoLimit()`
    `void` | `setContainBillStatus(boolean isContainBillStatus)`
    `void` | `setContainUsedStatus(boolean isContainUsedStatus)`
    `void` | `setFilterObject(FilterObject filterObject)`
    `void` | `setQFilter(kd.bos.orm.query.QFilter qFilter)`
    `void` | `setSchemeSetting(java.util.List<java.util.Map<java.lang.String,java.util.List<java.lang.Object>>> filterList, boolean isList, boolean initialized)` 解析方案过滤条件
    `void` | `setSelectedMainOrgIds(java.util.List<java.lang.Long> selectedMainOrgIds)` 已过时。
    `void` | `setTimeService(ITimeService timeService)`
    `void` | `setUserService(IUserService userService)`

    - ### 从类继承的方法 java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 构造器详细资料

    - #### FilterBuilder

          public FilterBuilder(MainEntityType dataType)

    - #### FilterBuilder

          public FilterBuilder(MainEntityType dataType,
                               FilterObject filterObject)

    - #### FilterBuilder

          public FilterBuilder(MainEntityType dataType,
                               boolean isCheckInput)

      构造函数
      参数:
        `dataType` - 实体类型
        `isCheckInput` - 是否检查输入

    - #### FilterBuilder

          public FilterBuilder(MainEntityType dataType,
                               FilterCondition filterCondition)

    - #### FilterBuilder

          public FilterBuilder(MainEntityType dataType,
                               FilterCondition filterCondition,
                               boolean isCheckInput)

    - #### FilterBuilder

          public FilterBuilder(MainEntityType dataType,
                               FilterCondition filterCondition,
                               boolean isCheckInput,
                               java.util.List<FilterField> filterFields)

      构造函数
      参数:
        `dataType` - 实体类型
        `filterCondition` - 过滤条件元数据
        `是否检查输入` -

    - #### FilterBuilder

          public FilterBuilder(MainEntityType dataType,
                               FilterCondition filterCondition,
                               IDataModel model)

      构造函数
      参数:
        `dataType` - 实体类型
        `filterCondition` - 过滤条件元数据
        `model` - 模型（用于字段比较）取数

    - #### FilterBuilder

          public FilterBuilder(MainEntityType dataType,
                               FilterCondition filterCondition,
                               IFilterValueSetter filterValueSetter,
                               boolean isCheckInput,
                               java.util.List<FilterField> filterFields)

      构造函数
      参数:
        `dataType` - 实体类型
        `filterCondition` - 过滤条件元数据
        `filterValueSetter` - 字段取值接口

  - ### 方法详细资料

    - #### isContainMainOrg

          public boolean isContainMainOrg()

      返回:
        是否主业务组织

    - #### isMainOrgNoLimit

          public boolean isMainOrgNoLimit()

      返回:
        如果包括主业务组织，主业务组织过滤条件是否为不限

    - #### isContainBillStatus

          public boolean isContainBillStatus()

      返回:
        是否包括单据状态

    - #### setContainBillStatus

          public void setContainBillStatus(boolean isContainBillStatus)

    - #### isContainUsedStatus

          public boolean isContainUsedStatus()

      返回:
        是否包括使用状态

    - #### setContainUsedStatus

          public void setContainUsedStatus(boolean isContainUsedStatus)

    - #### getQFilter

          public kd.bos.orm.query.QFilter getQFilter()

      返回:
        过滤条件

    - #### setQFilter

          public void setQFilter(kd.bos.orm.query.QFilter qFilter)

    - #### getFilterString

          public java.lang.String getFilterString()

      返回:
        条件语句

    - #### getQFilters

          public java.util.List<kd.bos.orm.query.QFilter> getQFilters()

    - #### getFilterStringDesc

          public java.lang.String getFilterStringDesc()

    - #### setTimeService

          public void setTimeService(ITimeService timeService)

      参数:
        `timeService` - 时间服务

    - #### setUserService

          public void setUserService(IUserService userService)

      参数:
        `userService` - 用户服务

    - #### getFilterObject

          public FilterObject getFilterObject()

      返回:
        过滤条件中间缓存对象

    - #### setFilterObject

          public void setFilterObject(FilterObject filterObject)

      参数:
        `filterObject` - 过滤条件中间缓存对象

    - #### getFilterField

          public static FilterField getFilterField(FilterObject filterObject,
                                                   java.lang.String fieldName)

    - #### getFiledLogic

          public static LogicOperate getFiledLogic(java.lang.Object value)

    - #### getCompareType

          public static CompareType getCompareType(FilterField filterField,
                                                   java.lang.String compare)

    - #### getSelectedMainOrgIds

          @Deprecated
          public java.util.List<java.lang.Long> getSelectedMainOrgIds()

      已过时。

    - #### setSelectedMainOrgIds

          @Deprecated
          public void setSelectedMainOrgIds(java.util.List<java.lang.Long> selectedMainOrgIds)

      已过时。

    - #### setSchemeSetting

          public void setSchemeSetting(java.util.List<java.util.Map<java.lang.String,java.util.List<java.lang.Object>>> filterList,
                                       boolean isList,
                                       boolean initialized)

      解析方案过滤条件
      参数:
        `filterList` - 方案过滤条件

    - #### convertIsNullFilterRow

          public static java.util.List<FilterRow> convertIsNullFilterRow(FilterRow filterRow,
                                                                         FilterObject filterObject,
                                                                         FilterField filterField)

      为空特殊处理，将为空过滤条件转为A.Basedata='0'
      参数:
        `filterRow` - 过滤行
        `filterObject` - 过滤内部对象
        `filterField` - 过滤字段信息类
      返回:

    - #### getFilterField

          public static FilterField getFilterField(MainEntityType dataType,
                                                   java.lang.String fieldName)

      获取过滤字段
      参数:
        `dataType` - 实体
        `fName` - 字段名称
      返回:
        字段信息

    - #### addFilterField

          public void addFilterField(java.lang.String fieldName,
                                     java.lang.String compare,
                                     java.lang.String left,
                                     java.lang.String right,
                                     java.util.List<java.lang.Object> value,
                                     java.lang.String logic)

      添加过滤字段
      参数:
        `fieldName` - 字段名称
        `compare` - 比较符
        `left` - 左括号
        `right` - 右括号
        `value` - 过滤值
        `logic` - 逻辑：And,Or

    - #### addFilterField

          public void addFilterField(java.lang.String fieldName,
                                     java.lang.String compare,
                                     java.lang.String left,
                                     java.lang.String right,
                                     java.util.List<java.lang.Object> value,
                                     java.lang.String logic,
                                     java.lang.String entityNumber)

      添加过滤字段
      参数:
        `fieldName` - 字段名称
        `compare` - 比较符
        `left` - 左括号
        `right` - 右括号
        `value` - 过滤值
        `logic` - 逻辑：And,Or

    - #### buildFilter

          public void buildFilter()

      解析过滤元数据

    - #### buildFilter

          public void buildFilter(boolean returnSql)

      解析过滤元数据
      参数:
        `returnSql` - 是否返回SQL
        `isParam` - 是否参数化
        `isParseConstant` - 是否解析常量

    - #### buildFilterScript

          public java.lang.String[] buildFilterScript()

      解析条件，输出脚本表达式与表达式说明
      返回:
        return[0] =脚本表达式，return[1] = 表达式说明