# 查询服务帮助类

`kd.bos.servicehelper.QueryServiceHelper`查询服务帮助类封装了一些查询方法。

举例，查询某条记录是否存在：

```java
boolean exist = QueryServiceHelper.exists(entityName,pkId);
```



## API 概览 

| 方法                                                         | 说明                        |
| ------------------------------------------------------------ | --------------------------- |
| static boolean exists(String entityName, Object pkId)<br/>static boolean exists(String entityName, QFilter[] qFilters) | 查询记录是否存在            |
| static List<BillNoDto> getAllBillNo(String searchKey, int top) | 获取前top条单据编号字段标识 |
| static DynamicObjectCollection query(String entityName, String selectFields, QFilter[] filters)<br/>static DynamicObjectCollection query(String entityName, String selectFields, QFilter[] filters, String orderBys)<br/>static DynamicObjectCollection query(String entityName, String selectFields, QFilter[] filters, String orderBys, int top)<br/>static DynamicObjectCollection query(String algoKey, String entityName, String selectFields, QFilter[] filters, String orderBys)<br/>static DynamicObjectCollection query(String algoKey, String entityName, String selectFields,       QFilter[] filters, String orderBys, int top) | 查询数据                    |
| static DataSet queryDataSet(String algoKey, String entityName, String selectFields, QFilter[] filters,       String orderBys)<br/>static DataSet queryDataSet(String algoKey, String entityName, String selectFields, QFilter[] filters,       String orderBys, int top) | algo查询                    |
| static DynamicObject queryOne(String entityName, String selectFields, QFilter[] filters) | 查询单条记录                |
| static List<Object> queryPrimaryKeys(String algoKey, IDataEntityType entityType, QFilter[] filters, String orderBys,       int top)<br/>static List<Object> queryPrimaryKeys(String entityName, QFilter[] filters, String orderBys,       int top)<br/>static List<Object> queryPrimaryKeys(String algoKey, String entityName, QFilter[] filters, String orderBys,       int top) | 查询主键                    |



## API 详情

1. 查询记录是否存在

	```java
	static boolean exists(String entityName, Object pkId)
	```

	传入参数：

	| 参数名称 | 参数       | 参数类型 | 是否必传 |
	| -------- | ---------- | -------- | -------- |
	| 实体名称 | entityName | String   | 是       |
	| 主键id   | pkId       | Object   | 是       |

	返回数据：

	**数据是否存在**

1. 查询记录是否存在
	```java
	static boolean exists(String entityName, QFilter[] qFilters) 
	```

	传入参数：

	| 参数名称     | 参数       | 参数类型  | 是否必传 |
	| ------------ | ---------- | --------- | -------- |
	| 物理表格名称 | entityName | String    | 是       |
	| 过滤条件     | qFilters   | QFilter[] | 是       |

	返回数据：

	**数据是否存在**

1. 获取所有的单据编号字段标识

	```java
	static List<BillNoDto> getAllBillNo(String searchKey, int top)
	```

	传入参数：

	| 参数名称     | 参数      | 参数类型 | 是否必传 |
	| :----------- | --------- | -------- | -------- |
	| 搜索关键字   | searchKey | String   | 是       |
	| 前多少条数据 | top       | int      | 是       |

	返回数据：

	**单据编号实体**，List<BillNoDto>

	```java
	public class BillNoDto {
		String billNo;//单据字段标识
		String entityName;//单据名称
		String entityNumber;//单据编码
		String pkId;//主键
	}
	```

1. 查询

	```java
	static DynamicObjectCollection query(String entityName, String selectFields, QFilter[] filters)
	```

	传入参数：

	| 参数名称             | 参数         | 参数类型  | 是否必传 |
	| -------------------- | ------------ | --------- | -------- |
	| 实体名称(即表单编码) | entityName   | String    | 是       |
	| 查询字段             | selectFields | String    | 是       |
	| 过滤条件             | filters      | QFilter[] | 是       |

	返回数据：

	**查询数据**，DynamicObjectCollection

1. 查询（排序）

	```java
	static DynamicObjectCollection query(String entityName, String selectFields, QFilter[] filters, String orderBys) 
	```

	传入参数：

	| 参数名称             | 参数         | 参数类型  | 是否必传 |
	| -------------------- | ------------ | --------- | -------- |
	| 实体名称(即表单编码) | entityName   | String    | 是       |
	| 查询字段             | selectFields | String    | 是       |
	| 过滤条件             | filters      | QFilter[] | 是       |
	| 排序条件             | orderBys     | String    | 是       |

	返回数据：

	**查询数据**，DynamicObjectCollection

1. 查询（排序，前top条）

	```java
	static DynamicObjectCollection query(String entityName, String selectFields, QFilter[] filters, String orderBys, int top) 
	```

	传入参数：

	| 参数名称             | 参数         | 参数类型  | 是否必传 |
	| -------------------- | ------------ | --------- | -------- |
	| 实体名称(即表单编码) | entityName   | String    | 是       |
	| 查询字段             | selectFields | String    | 是       |
	| 过滤条件             | filters      | QFilter[] | 是       |
	| 排序条件             | orderBys     | String    | 是       |
	| 前多少条             | top          | int       | 是       |

	返回数据：

	**查询数据**，DynamicObjectCollection

1. 查询(algo)

	```java
	static DynamicObjectCollection query(String algoKey, String entityName, String selectFields, QFilter[] filters, String orderBys)
	```

	传入参数：

	| 参数名称             | 参数         | 参数类型  | 是否必传 |
	| -------------------- | ------------ | --------- | -------- |
	| algoKey              | algoKey      | String    | 是       |
	| 实体名称(即表单编码) | entityName   | String    | 是       |
	| 查询字段             | selectFields | String    | 是       |
	| 过滤条件             | filters      | QFilter[] | 是       |
	| 排序条件             | orderBys     | String    | 是       |

	返回数据：

	**查询数据**，DynamicObjectCollection

1. 查询(algo, 前top条)

	```java
	static DynamicObjectCollection query(String algoKey, String entityName, String selectFields, QFilter[] filters, String orderBys, int top)
	```

	传入参数：

	| 参数名称             | 参数         | 参数类型  | 是否必传 |
	| -------------------- | ------------ | --------- | -------- |
	| algoKey              | algoKey      | String    | 是       |
	| 实体名称(即表单编码) | entityName   | String    | 是       |
	| 查询字段             | selectFields | String    | 是       |
	| 过滤条件             | filters      | QFilter[] | 是       |
	| 排序条件             | orderBys     | String    | 是       |
	| 前top条              | top          | int       | 是       |

	返回数据：

	**查询数据**，DynamicObjectCollection

1. 查询(返回DataSet)

	```java
	static DataSet queryDataSet(String algoKey, String entityName, String selectFields, QFilter[] filters, String orderBys) 
	```

	传入参数：

	| 参数名称             | 参数         | 参数类型  | 是否必传 |
	| -------------------- | ------------ | --------- | -------- |
	| algoKey              | algoKey      | String    | 是       |
	| 实体名称(即表单编码) | entityName   | String    | 是       |
	| 查询字段             | selectFields | String    | 是       |
	| 过滤条件             | filters      | QFilter[] | 是       |
	| 排序条件             | orderBys     | String    | 是       |

	返回数据：

	**查询数据**，DataSet

1. 查询(返回DataSet，前top条)

	```java
	static DataSet queryDataSet(String algoKey, String entityName, String selectFields, QFilter[] filters, String orderBys, int top)
	```

	传入参数：

	| 参数名称             | 参数         | 参数类型  | 是否必传 |
	| -------------------- | ------------ | --------- | -------- |
	| algoKey              | algoKey      | String    | 是       |
	| 实体名称(即表单编码) | entityName   | String    | 是       |
	| 查询字段             | selectFields | String    | 是       |
	| 过滤条件             | filters      | QFilter[] | 是       |
	| 排序条件             | orderBys     | String    | 是       |
	| 前top条              | top          | int       | 是       |

	返回数据：

	**查询数据**，DataSet

1. 查询单条数据

	```java
	static DynamicObject queryOne(String entityName, String selectFields, QFilter[] filters)
	```

	传入参数：

	| 参数名称             | 参数         | 参数类型  | 是否必传 |
	| -------------------- | ------------ | --------- | -------- |
	| 实体名称(即表单编码) | entityName   | String    | 是       |
	| 查询字段             | selectFields | String    | 是       |
	| 过滤条件             | filters      | QFilter[] | 是       |

	返回数据：

	**单条数据**

1. 查询主键

	```java
	static List<Object> queryPrimaryKeys(String algoKey, IDataEntityType entityType, QFilter[] filters, String orderBys, int top) 
	```

	传入参数：

	| 参数名称             | 参数       | 参数类型        | 是否必传 |
	| -------------------- | ---------- | --------------- | -------- |
	| algoKey              | algoKey    | String          | 是       |
	| 实体名称(即表单编码) | entityName | String          | 是       |
	| 实体类型             | entityType | IDataEntityType | 是       |
	| 过滤条件             | filters    | QFilter[]       | 是       |
	| 排序条件             | orderBys   | String          | 是       |
	| 前top条              | top        | int             | 是       |

	返回数据：

	**主键列表**,List<Object>

1. 查询主键

	```java
	static List<Object> queryPrimaryKeys(String entityName, QFilter[] filters, String orderBys, int top)
	```

	传入参数：

	| 参数名称             | 参数       | 参数类型  | 是否必传 |
	| -------------------- | ---------- | --------- | -------- |
	| 实体名称(即表单编码) | entityName | String    | 是       |
	| 过滤条件             | filters    | QFilter[] | 是       |
	| 排序条件             | orderBys   | String    | 是       |
	| 前top条              | top        | int       | 是       |

	返回数据：

	**主键列表**,List<Object>

1. 查询主键

	```java
	static List<Object> queryPrimaryKeys(String algoKey, String entityName, QFilter[] filters, String orderBys, int top) 
	```

	传入参数：

	| 参数名称             | 参数       | 参数类型  | 是否必传 |
	| -------------------- | ---------- | --------- | -------- |
	| algoKey              | algoKey    | String    | 是       |
	| 实体名称(即表单编码) | entityName | String    | 是       |
	| 过滤条件             | filters    | QFilter[] | 是       |
	| 排序条件             | orderBys   | String    | 是       |
	| 前top条              | top        | int       | 是       |

	返回数据：

	**主键列表**,List<Object>