# 基础数据管控策略业务数据服务接口类



## 功能介绍

提供基础数据管控策略相关功能接口。
`kd.bos.servicehelper.basedata.BaseDataServiceHelper`
`kd.bos.service.IBaseDataService`

调用方式：

1、微服务方式直接调用接口
	  DispatchServiceHelper.invokeService("kd.bos.service", "bos", "IBaseDataService", "batchAssign", ...)

2、集成管理-api集成-微服务登记方式

3、Java实现类调用

​	  BaseDataServiceHelper

​	  IBaseDataService baseDataService = ServiceFactory.getService(IBaseDataService`.class);



## API 概览 

| 方法                         | 说明                                                         |
| ---------------------------- | ------------------------------------------------------------ |
| getBaseDataCreaterOrgFilter  | 获取基础资料创建组织过滤                                     |
| getBaseDataFilter            | 获取基础资料ID过滤                                           |
| getBaseDataFilter            | 获取多个使用组织的基础资料过滤条件                           |
| refreshBaseDataUseRange      | 刷新基础资料使用范围                                         |
| baseDataSubmitHandler        | 基础数据批量提交时根据基础数据管控策略，确定使用组织并更新对应的使用关系表 |
| baseDataAuditHandler         | 基础数据批量审核时根据基础数据管控策略，确定使用组织并更新对应的使用关系表 |
| getBaseDataProFilter         | 获取基础资料过滤                                             |
| getAllUseOrg                 | 获取所有能显示的使用组织                                     |
| batchAssign                  | 批量分配                                                     |
| getUnInsertExcHistory        | 获取已个性化分配未插入个性化排除表的异常数据                 |
| fixExcTable                  | 补个性化排除表数据                                           |
| handleDisable                | 处理禁用基础资料时相关处理                                   |
| handleBatchDisable           | 批量处理禁用基础资料时相关处理                               |
| handleEnable                 | 处理启用基础资料时相关处理                                   |
| getAssignUseOrgSet           | 获取可分配的使用组织集合                                     |
| baseDataAssignHandler        | 基础数据保存时根据基础数据管控策略，确定使用组织并更新对应的使用关系表 |
| baseDataAddnewHandler        | 基础数据保存时根据基础数据管控策略，确定使用组织并更新对应的使用关系表 |
| baseDataAddnewHandler        | 基础数据保存时根据基础数据管控策略，确定使用组织并更新对应的使用关系表 |
| baseDataOrgChangeHandler     | 管理权转让时，确定使用组织并更新对应的使用关系表             |
| baseDataSubmitHandler        | 基础数据提交时根据基础数据管控策略，确定使用组织并更新对应的使用关系表 |
| baseDataAuditHandler         | 基础数据审核时根据基础数据管控策略，确定使用组织并更新对应的使用关系表 |
| baseDataCtrlChangeHandler    | 控制策略变更时，更新对应的使用关系表                         |
| baseDataCtrlChangeHandler    | 控制策略变更时，更新对应的使用关系表                         |
| clearCache                   | 清除缓存                                                     |
| clearCache                   | 批量清除缓存                                                 |
| getDefaultCtrlStrtgy         | 获取默认控制策略                                             |
| checkBaseDataCtrl            | 检查基础数据是否受控                                         |
| getCtrlview                  | 查询获取视图信息                                             |
| baseDataDeleteHandler        | 删除基础数据时基础数据使用登记表处理                         |
| baseDataDeleteHandler        | 删除基础数据时基础数据使用登记表处理                         |
| orgAddnewHandler             | 1、根据管控视图在基础数据管控策略找到使用该视图的所有基础数据；2、从某个基础数据的使用关系表中查找使用组织=新增组织所属管控单元并且控制策略=按管控单元逐级分配或按管控单元自由分配的记录；<br/>3、如果找到则在使用关系表中增加新增组织的记录，如果没有则不处理；4、存在多个基础数据时，按第2，3点逐一处理。 |
| orgAddnewHandler             | 1、根据管控视图在基础数据管控策略找到使用该视图的所有基础数据；2、从某个基础数据的使用关系表中查找使用组织=新增组织所属管控单元并且控制策略=按管控单元逐级分配或按管控单元自由分配的记录；<br/>3、如果找到则在使用关系表中增加新增组织的记录，如果没有则不处理；4、存在多个基础数据时，按第2，3点逐一处理。 |
| afterSetCtrlUintHandle       | 设置为管控单元后，清除分配的数据                             |
| handleManageOrg              | 处理管理费用组织                                             |
| getCtrlStrtgy                | 查找基础数据管控策略                                         |
| handleModify                 | 处理受控基础数据修改                                         |
| saveBaseDataExc              | 保存基础数据修改化排除表                                     |
| saveBaseDataExc              | 保存基础数据修改化排除表                                     |
| getAssignDesOrgs             | 获取分配目标组织                                             |
| getCreateOrgList             | 获取单据可选的创建组织集合                                   |
| getBdCtrlOrgs                | 根据实体获取基础数据管控策略的创建组织                       |
| getBdCtrlStrgy               | 获取控制策略                                                 |
| getUseOrgFunc                | 获取使用组织的组织职能                                       |
| getCtrlStgyViewSchema        | 获取控制策略的管控视图                                       |
| chectDuplicate               | 检查基础数据是否存在重复                                     |
| chectDuplicate               | 检查目标组织是否存在相同编码的基础数据                       |
| isAlreadyAssign              | 是否分配的数据                                               |
| isAssignData                 | 是否分配的数据                                               |
| isHasAssignData              | 判断基础数据是否被分配过                                     |
| checkHasAssignData           | 批量判断基础数据是否被分配过                                 |
| queryBaseData                | 获取基础资料                                                 |
| queryBaseDataFromCache       | 从缓存获取基础资料                                           |
| getBaseDataCtrlPlugin        | 获取基础数据控制插件                                         |
| getBdCtrlAssistantDataFilter | 获取受控辅助资料过滤条件                                     |
| getBdCtrlAssistDataFilter    | 获取受控辅助资料过滤条件                                     |
| isNoneCustomEntity           | 判断指定实体是不是不会有个性化的基础资料实体                 |
| batchModifyVerify            | 批量个性化前校验                                             |
| batchHandleModify            | 批量个性化后续处理，如维护相关的使用登记表和个性化排除表记录 |
| clearBaseDataFilterCache     | 批量个性化后续处理，如维护相关的使用登记表和个性化排除表记录 |
| managePermChange             | 管理权转让接口                                               |
| getMasterIdPropName          | 获取基础资料配置的masterid属性名                             |
| getMasterIdFieldName         | 获取基础资料配置的masterid字段名                             |



## API 详情

## 1、获取基础资料创建组织过滤

```java
QFilter getBaseDataCreaterOrgFilter(String entityID, Long orgID)
```

参数说明：

| 参数名称   | 参数     | 参数类型 | 是否必传 |
| ---------- | -------- | -------- | -------- |
| 实体标识   | entityID | String   | 是       |
| 组织机构ID | orgID    | Long     | 是       |

返回数据：

QFilter 过滤条件。类似于QFilter(CREATEORG, "in", baseDataCreaterOrgSet)



## 2、获取基础资料ID过滤

```java
QFilter getBaseDataFilter(String entityID, Long orgID)
```

参数说明：

| 参数名称   | 参数     | 参数类型 | 是否必传 |
| ---------- | -------- | -------- | -------- |
| 实体标识   | entityID | String   | 是       |
| 组织机构ID | orgID    | Long     | 是       |

返回数据：

QFilter 过滤条件。类似于ctrlstrategy = '5' or fid in(select fdataid from T_BD_BaseData_U where fuseorgid=100000)



## 3、获取多个使用组织的基础资料过滤条件

```java
QFilter getBaseDataFilter(String entityID, List<Long> orgIDs)
```

参数说明：

| 参数名称   | 参数     | 参数类型   | 是否必传 |
| ---------- | -------- | ---------- | -------- |
| 实体标识   | entityID | String     | 是       |
| 组织机构ID | orgID    | List<Long> | 是       |

返回数据：

QFilter 过滤条件。类似于ctrlstrategy = '5' or fid in(select fdataid from T_BD_BaseData_U where fuseorgid in (100000, 1, 2, 3))



## 4、刷新基础资料使用范围

```java
void refreshBaseDataUseRange(String entityID, List<Long> orgIDList) 
```

参数说明：

| 参数名称   | 参数      | 参数类型   | 是否必传 |
| ---------- | --------- | ---------- | -------- |
| 实体标识   | entityID  | String     | 是       |
| 组织机构ID | orgIDList | List<Long> | 是       |

返回数据：



## 5、基础数据批量提交时根据基础数据管控策略，确定使用组织并更新对应的使用关系表

```java
void baseDataSubmitHandler(DynamicObject[] datas)
```

参数说明：

| 参数名称         | 参数  | 参数类型        | 是否必传 |
| ---------------- | ----- | --------------- | -------- |
| 基础数据信息对象 | datas | DynamicObject[] | 是       |
|                  |       |                 |          |

返回数据：



## 6、基础数据批量审核时根据基础数据管控策略，确定使用组织并更新对应的使用关系表

```java
void baseDataAuditHandler(DynamicObject[] datas)
```

参数说明：

| 参数名称         | 参数  | 参数类型        | 是否必传 |
| ---------------- | ----- | --------------- | -------- |
| 基础数据信息对象 | datas | DynamicObject[] | 是       |
|                  |       |                 |          |

返回数据：



## 7、获取基础资料过滤

```java
QFilter getBaseDataProFilter(String entityID, Long orgID, String property)
```

参数说明：

| 参数名称   | 参数     | 参数类型 | 是否必传 |
| ---------- | -------- | -------- | -------- |
| 实体标识   | entityID | String   | 是       |
| 组织机构ID | orgID    | Long     | 是       |
| 过滤属性   | property | String   | 是       |

返回数据：QFilter 过滤条件。类似于QFilter("id", "in", baseDataIdSet)



## 8、获取所有能显示的使用组织

```java
DynamicObjectCollection getAllUseOrg(String entityType)
```

参数说明：

| 参数名称 | 参数       | 参数类型 | 是否必传 |
| -------- | ---------- | -------- | -------- |
| 实体标识 | entityType | String   | 是       |
|          |            |          |          |

返回数据：DynamicObjectCollection



## 9、批量分配

```java
Map<Long,Map<Long, String>> batchAssign(String entityID, Long assignOrgID, List<Long> dataIDs, List<Long> orgIDs) 
```

参数说明：

| 参数名称           | 参数        | 参数类型   | 是否必传 |
| ------------------ | ----------- | ---------- | -------- |
| 实体标识           | entityType  | String     | 是       |
| 分配组织ID         | assignOrgID | Long       | 是       |
| 待分配的基础资料ID | dataIDs     | List<Long> | 是       |
| 待分配的目标组织ID | orgIDs      | List<Long> | 是       |

返回数据：检查失败的待分配基础资料及组织信息map,key是基础资料ID，value是目标组织ID集合



## 10、获取已个性化分配未插入个性化排除表的异常数据

```java
List<Object[]> getUnInsertExcHistory(String entityID,List<Long> uesOrgIDs) 
```

参数说明：

| 参数名称 | 参数      | 参数类型   | 是否必传 |
| -------- | --------- | ---------- | -------- |
| 实体标识 | entityID  | String     | 是       |
| 使用组织 | uesOrgIDs | List<Long> | 是       |
|          |           |            |          |

返回数据：Object[3]:useorgid,dataid,createorgid(使用组织ID，数据ID,创建组织ID)



## 11、补个性化排除表数据

```java
void fixExcTable(String entityID,List<Long> orgIDs)
```

参数说明：

| 参数名称 | 参数     | 参数类型   | 是否必传 |
| -------- | -------- | ---------- | -------- |
| 实体标识 | entityID | String     | 是       |
| 使用组织 | orgIDs   | List<Long> | 是       |
|          |          |            |          |

返回数据：



## 12、处理禁用基础资料时相关处理

```java
void handleDisable(String entityID, DynamicObject[] objs) 
```

参数说明：

| 参数名称         | 参数     | 参数类型        | 是否必传 |
| ---------------- | -------- | --------------- | -------- |
| 实体标识         | entityID | String          | 是       |
| 待禁用的基础数据 | objs     | DynamicObject[] | 是       |
|                  |          |                 |          |

返回数据：



## 13、批量处理禁用基础资料时相关处理

```java
 void handleBatchDisable(String entityID, List<Object> orgIds, List<Object> masterIds) 
```

参数说明：

| 参数名称                 | 参数      | 参数类型     | 是否必传 |
| ------------------------ | --------- | ------------ | -------- |
| 实体标识                 | entityID  | String       | 是       |
| 待禁用的基础数据         | orgIds    | List<Object> | 是       |
| 待禁用的基础数据主ID集合 | masterIds | List<Object> | 是       |

返回数据：



## 14、处理启用基础资料时相关处理

```java
boolean handleEnable(String entityID, DynamicObject[] objs) 
```

参数说明：

| 参数名称         | 参数     | 参数类型        | 是否必传 |
| ---------------- | -------- | --------------- | -------- |
| 实体标识         | entityID | String          | 是       |
| 待启用的基础数据 | objs     | DynamicObject[] | 是       |
|                  |          |                 |          |

返回数据：



## 15、获取可分配的使用组织集合

```java
List<Long> getAssignUseOrgSet(DynamicObject dataInfo, Long orgID, Long createorgId)
```

参数说明：

| 参数名称     | 参数        | 参数类型      | 是否必传 |
| ------------ | ----------- | ------------- | -------- |
| 分配数据对象 | dataInfo    | DynamicObject | 是       |
| 分配组织     | orgID       | Long          | 是       |
| 创建组织id   | createorgId | Long          | 是       |

返回数据：List<Long>组织集合



## 16、基础数据保存时根据基础数据管控策略，确定使用组织并更新对应的使用关系表

```java
 void baseDataAssignHandler(DynamicObject dataInfo, Long orgID, Long createorgId) 
```

参数说明：

| 参数名称     | 参数        | 参数类型      | 是否必传 |
| ------------ | ----------- | ------------- | -------- |
| 分配数据对象 | dataInfo    | DynamicObject | 是       |
| 分配组织     | orgID       | Long          | 是       |
| 创建组织ID   | createorgId | Long          | 是       |

返回数据：



## 17、基础数据保存时根据基础数据管控策略，确定使用组织并更新对应的使用关系表

```java
 void baseDataAddnewHandler(DynamicObject dataInfo, Long createOrgID) 
```

参数说明：

| 参数名称     | 参数        | 参数类型      | 是否必传 |
| ------------ | ----------- | ------------- | -------- |
| 分配数据对象 | dataInfo    | DynamicObject | 是       |
| 创建组织ID   | createorgId | Long          | 是       |
|              |             |               |          |

返回数据：



## 18、基础数据保存时根据基础数据管控策略，确定使用组织并更新对应的使用关系表

```java
 void baseDataAddnewHandler(DynamicObject[] objs)  
```

参数说明：

| 参数名称             | 参数 | 参数类型        | 是否必传 |
| -------------------- | ---- | --------------- | -------- |
| 基础数据信息对象数据 | objs | DynamicObject[] | 是       |
|                      |      |                 |          |

返回数据：



## 19、管理权转让时，确定使用组织并更新对应的使用关系表

```java
 void baseDataOrgChangeHandler(DynamicObject dataInfo)
```

参数说明：

| 参数名称             | 参数     | 参数类型      | 是否必传 |
| -------------------- | -------- | ------------- | -------- |
| 基础数据信息对象数据 | dataInfo | DynamicObject | 是       |
|                      |          |               |          |

返回数据：



## 20、基础数据提交时根据基础数据管控策略，确定使用组织并更新对应的使用关系表

```java
void baseDataSubmitHandler(DynamicObject dataInfo, Long createOrgID) 
```

参数说明：

| 参数名称             | 参数        | 参数类型      | 是否必传 |
| -------------------- | ----------- | ------------- | -------- |
| 基础数据信息对象数据 | dataInfo    | DynamicObject | 是       |
| 创建组织ID           | createOrgID | Long          | 是       |
|                      |             |               |          |

返回数据：



## 21、基础数据审核时根据基础数据管控策略，确定使用组织并更新对应的使用关系表

```java
void baseDataAuditHandler(DynamicObject dataInfo, Long createOrgID) 
```

参数说明：

| 参数名称             | 参数        | 参数类型      | 是否必传 |
| -------------------- | ----------- | ------------- | -------- |
| 基础数据信息对象数据 | dataInfo    | DynamicObject | 是       |
| 创建组织ID           | createOrgID | Long          | 是       |
|                      |             |               |          |

返回数据：



## 22、控制策略变更时，更新对应的使用关系表

```java
void baseDataCtrlChangeHandler(List<DynamicObject> dataList) 
```

参数说明：

| 参数名称             | 参数     | 参数类型            | 是否必传 |
| -------------------- | -------- | ------------------- | -------- |
| 基础数据信息对象数据 | dataList | List<DynamicObject> | 是       |
|                      |          |                     |          |

返回数据：



## 23、控制策略变更时，更新对应的使用关系表

```java
void baseDataCtrlChangeHandler(List<DynamicObject> dataList) 
```

参数说明：

| 参数名称             | 参数     | 参数类型      | 是否必传 |
| -------------------- | -------- | ------------- | -------- |
| 基础数据信息对象数据 | dataList | DynamicObject | 是       |
|                      |          |               |          |

返回数据：



## 24、清除缓存

```java
void clearCache(DynamicObject dataInfo) 
```

参数说明：

| 参数名称             | 参数     | 参数类型      | 是否必传 |
| -------------------- | -------- | ------------- | -------- |
| 基础数据信息对象数据 | dataInfo | DynamicObject | 是       |
|                      |          |               |          |

返回数据：



## 25、批量清除缓存

```java
void clearCache(DynamicObject[] datas)
```

参数说明：

| 参数名称             | 参数  | 参数类型        | 是否必传 |
| -------------------- | ----- | --------------- | -------- |
| 基础数据信息对象数据 | datas | DynamicObject[] | 是       |
|                      |       |                 |          |

返回数据：



## 26、获取默认控制策略

```java
DynamicObject getDefaultCtrlStrtgy(String entityID) 
```

参数说明：

| 参数名称       | 参数     | 参数类型 | 是否必传 |
| -------------- | -------- | -------- | -------- |
| 基础数据实体ID | entityID | String   | 是       |
|                |          |          |          |

返回数据：DynamicObject 默认控制策略



## 27、检查基础数据是否受控

```java
Boolean checkBaseDataCtrl(String entityID)
```

参数说明：

| 参数名称       | 参数     | 参数类型 | 是否必传 |
| -------------- | -------- | -------- | -------- |
| 基础数据实体ID | entityID | String   | 是       |
|                |          |          |          |

返回数据：Boolean基础数据是否受控



## 28、查询获取视图信息

```java
DynamicObject getCtrlview(String entityID) 
```

参数说明：

| 参数名称       | 参数     | 参数类型 | 是否必传 |
| -------------- | -------- | -------- | -------- |
| 基础数据实体ID | entityID | String   | 是       |
|                |          |          |          |

返回数据：DynamicObject



## 29、删除基础数据时基础数据使用登记表处理

```java
void baseDataDeleteHandler(DynamicObject[] dataInfos) 
```

参数说明：

| 参数名称       | 参数      | 参数类型        | 是否必传 |
| -------------- | --------- | --------------- | -------- |
| 删除的基础数据 | dataInfos | DynamicObject[] | 是       |
|                |           |                 |          |

返回数据：



## 30、删除基础数据时基础数据使用登记表处理

```java
void baseDataDeleteHandler(DynamicObject dataInfo, Long orgID) 
```

参数说明：

| 参数名称             | 参数      | 参数类型      | 是否必传 |
| -------------------- | --------- | ------------- | -------- |
| 删除的基础数据       | dataInfos | DynamicObject | 是       |
| 创建组织ID(废弃参数) | orgID     | Long          |          |
|                      |           |               |          |

返回数据：



## 31、组织新增

```java
1、根据管控视图在基础数据管控策略找到使用该视图的所有基础数据；
2、从某个基础数据的使用关系表中查找使用组织=新增组织所属管控单元并且控制策略=按管控单元逐级分配或按管控单元自由分配的记录；
3、如果找到则在使用关系表中增加新增组织的记录，如果没有则不处理；
4、存在多个基础数据时，按第2，3点逐一处理。
void orgAddnewHandler(Long orgId) 
```

参数说明：

| 参数名称         | 参数  | 参数类型 | 是否必传 |
| ---------------- | ----- | -------- | -------- |
| 组织单元信息对象 | orgId | Long     | 是       |
|                  |       |          |          |

返回数据：



## 32、组织新增

```java
1、根据管控视图在基础数据管控策略找到使用该视图的所有基础数据；
2、从某个基础数据的使用关系表中查找使用组织=新增组织所属管控单元并且控制策略=按管控单元逐级分配或按管控单元自由分配的记录；
3、如果找到则在使用关系表中增加新增组织的记录，如果没有则不处理；
4、存在多个基础数据时，按第2，3点逐一处理。
void orgAddnewHandler(Long orgViewId, List<Long> orgs) 
```

参数说明：

| 参数名称   | 参数      | 参数类型   | 是否必传 |
| ---------- | --------- | ---------- | -------- |
| 组织视图ID | orgViewId | Long       | 是       |
| 组织ID     | orgs      | List<Long> |          |
|            |           |            |          |

返回数据：



## 33、设置为管控单元后，清除分配的数据

```java
void afterSetCtrlUintHandle(String orgViewId,List<String> orgs) 
```

参数说明：

| 参数名称   | 参数      | 参数类型   | 是否必传 |
| ---------- | --------- | ---------- | -------- |
| 组织视图ID | orgViewId | Long       | 是       |
| 组织ID     | orgs      | List<Long> |          |
|            |           |            |          |

返回数据：



## 34、查找基础数据管控策略

```java
DynamicObject getCtrlStrtgy(DynamicObject dataObj)
```

参数说明：

| 参数名称 | 参数    | 参数类型      | 是否必传 |
| -------- | ------- | ------------- | -------- |
| 基础数据 | dataObj | DynamicObject | 是       |
|          |         |               |          |

返回数据：DynamicObject



## 35、处理受控基础数据修改

```java
boolean handleModify(DynamicObject dataInfo) 
```

参数说明：

| 参数名称 | 参数    | 参数类型      | 是否必传 |
| -------- | ------- | ------------- | -------- |
| 基础数据 | dataObj | DynamicObject | 是       |
|          |         |               |          |

返回数据：boolean



## 36、保存基础数据修改化排除表

```java
void saveBaseDataExc(String entityID, List<Long> dataIds, Long createOrgID, List<Long> orgIds) 
```

参数说明：

| 参数名称    | 参数        | 参数类型   | 是否必传 |
| ----------- | ----------- | ---------- | -------- |
| 实体对象    | entityID    | String     | 是       |
| 基础数据ids | dataIds     | List<Long> | 是       |
| 创建组织id  | createOrgID | Long       | 是       |
| 组织id集合  | orgIds      | List<Long> | 是       |

返回数据：



## 37、保存基础数据修改化排除表

```java
void saveBaseDataExc(DynamicObject dataInfo, Long dataPk, Long createOrgID, List<Long> orgList) 
```

参数说明：

| 参数名称   | 参数        | 参数类型      | 是否必传 |
| ---------- | ----------- | ------------- | -------- |
| 基础数据   | dataInfo    | DynamicObject | 是       |
| 基础数据id | dataPk      | Long          | 是       |
| 创建组织id | createOrgID | Long          | 是       |
| 组织id集合 | orgList     | List<Long>    | 是       |

返回数据：



## 38、获取分配目标组织

```java
* 1、按当前基础数据的创建组织查找基础数据对应的基础数据管控策略，获取相关参数；
	 * 2、当控制策略=按管控单元逐级分配时，从基础数据的管控视图中获取当前组织的直接下级控制单元；
	 *   当控制策略=按组织逐级分配时，从基础数据的管控视图中获取当前组织的直接下级组织；
	 *   当控制策略=按管控单元自由分配时，从基础数据的管控视图中获取当前组织以外的所有控制单元；
	 *   当控制策略=按组织自由分配时，从基础数据的管控视图中获取当前组织以外的所有组织；
	 * 3、根据组织在当前基础数据的使用关系表中获取已分配组织；
	 * 4、将第2步的数据排除第3步的数据得到待分配组织；
List<Long> getAssignDesOrgs(Long srcOrgID, String ctrlType, Long orgViewID) 
```

参数说明：

| 参数名称   | 参数      | 参数类型 | 是否必传 |
| ---------- | --------- | -------- | -------- |
| 分配源组织 | srcOrgID  | Long     | 是       |
| 控制类型   | ctrlType  | String   | 是       |
| 组织视图ID | orgViewID | Long     | 是       |
|            |           |          |          |

返回数据：List<Long> 分配目标组织



## 39、获取单据可选的创建组织集合

```java
List<Long> getCreateOrgList(String entity ,String appid)
```

参数说明：

| 参数名称 | 参数   | 参数类型 | 是否必传 |
| -------- | ------ | -------- | -------- |
| 基础数据 | entity | String   | 是       |
| 应用id   | appid  | String   | 是       |
|          |        |          |          |

返回数据：List<Long> 可选的创建组织集合



## 40、获取单据可选的创建组织集合

```java
List<Long> getCreateOrgList(String entity)
```

参数说明：

| 参数名称 | 参数   | 参数类型 | 是否必传 |
| -------- | ------ | -------- | -------- |
| 基础数据 | entity | String   | 是       |
|          |        |          |          |

返回数据：List<Long> 可选的创建组织集合



## 41、根据实体获取基础数据管控策略的创建组织

```java
List<Long> getBdCtrlOrgs(String entity)
```

参数说明：

| 参数名称 | 参数   | 参数类型 | 是否必传 |
| -------- | ------ | -------- | -------- |
| 基础数据 | entity | String   | 是       |
|          |        |          |          |

返回数据：List<Long> 基础数据管控策略的创建组织



## 42、获取控制策略

```java
String getBdCtrlStrgy(String entity, String createOrg)
```

参数说明：

| 参数名称 | 参数      | 参数类型 | 是否必传 |
| -------- | --------- | -------- | -------- |
| 基础数据 | entity    | String   | 是       |
| 创建组织 | createOrg | String   | 是       |
|          |           |          |          |

返回数据：String控制策略



## 43、获取使用组织的组织职能

```java
String getUseOrgFunc(String entity)
```

参数说明：

| 参数名称 | 参数   | 参数类型 | 是否必传 |
| -------- | ------ | -------- | -------- |
| 基础数据 | entity | String   | 是       |
|          |        |          |          |

返回数据：String 组织职能



## 44、获取控制策略的管控视图

```java
String getCtrlStgyViewSchema(String entity)
```

参数说明：

| 参数名称 | 参数   | 参数类型 | 是否必传 |
| -------- | ------ | -------- | -------- |
| 基础数据 | entity | String   | 是       |
|          |        |          |          |

返回数据：String 管控视图



## 45、检查基础数据是否存在重复

```java
Boolean chectDuplicate(String entityType, Map<String, String> chectProperties, Long orgID, Long dataID)
```

参数说明：

| 参数名称                                                     | 参数            | 参数类型            | 是否必传 |
| ------------------------------------------------------------ | --------------- | ------------------- | -------- |
| 基础数据                                                     | entity          | String              | 是       |
| 检查属性,如 key = NUMBER, value = "A001";key = "name", value = "AAA" | chectProperties | Map<String, String> |          |
| 使用组织ID                                                   | orgID           | Long                |          |
| 基础数据ID                                                   | dataID          | Long                |          |

返回数据：Boolean true：有重复；false：没有重复



## 46、检查目标组织是否存在相同编码的基础数据

```java
Boolean chectDuplicate(String entityType, Long orgID, List numberList){
```

参数说明：

| 参数名称         | 参数       | 参数类型 | 是否必传 |
| ---------------- | ---------- | -------- | -------- |
| 实体类型ID       | entityType | String   | 是       |
| 使用组织ID       | orgID      | Long     |          |
| 基础数据编码列表 | numberList | List     |          |
|                  |            |          |          |

返回数据：Boolean true：有重复；false：没有重复



## 47、是否分配的数据

```java
boolean isAlreadyAssign(String entity, Object pkId, Long useOrgId)
```

参数说明：

| 参数名称   | 参数     | 参数类型 | 是否必传 |
| ---------- | -------- | -------- | -------- |
| 实体类型ID | entity   | String   | 是       |
| 数据id     | pkId     | Object   |          |
| 使用组织   | useOrgId | Long     |          |
|            |          |          |          |

返回数据：已经分配 true / 未分配 false



## 48、判断基础数据是否被分配过。

```java
boolean isHasAssignData(String entityNumber, Object dataID)
```

参数说明：

| 参数名称   | 参数         | 参数类型 | 是否必传 |
| ---------- | ------------ | -------- | -------- |
| 实体标识   | entityNumber | String   | 是       |
| 基础数据ID | dataID       | Object   |          |
|            |              |          |          |

返回数据：boolean 如果基础数据被分配过，则返回true,否则返回false.



## 49、批量判断基础数据是否被分配过。

```java
List<Long> checkHasAssignData(String entityNumber, List<Long> dataIDs)
```

参数说明：

| 参数名称   | 参数         | 参数类型   | 是否必传 |
| ---------- | ------------ | ---------- | -------- |
| 实体标识   | entityNumber | String     | 是       |
| 基础数据ID | dataID       | List<Long> |          |
|            |              |            |          |

返回数据：List<Long> 有分配过的数据的列表



## 50、获取基础资料

```java
DynamicObjectCollection queryBaseData(String entityID, Long orgID, QFilter filter, String selectFields) 
```

参数说明：

| 参数名称     | 参数         | 参数类型 | 是否必传 |
| ------------ | ------------ | -------- | -------- |
| 实体标识     | entityID     | String   | 是       |
| 基础数据ID   | orgID        | Long     | 是       |
| QFilter      | filter       | QFilter  | 是       |
| selectFields | selectFields | String   | 是       |

返回数据：DynamicObjectCollection基础资料



## 51、从缓存获取基础资料

```java
Map<Object, DynamicObject> queryBaseDataFromCache(String entityID, Long orgID, QFilter filter, String selectFields) 
```

参数说明：

| 参数名称     | 参数         | 参数类型 | 是否必传 |
| ------------ | ------------ | -------- | -------- |
| 实体标识     | entityID     | String   | 是       |
| 基础数据ID   | orgID        | Long     | 是       |
| QFilter      | filter       | QFilter  | 是       |
| selectFields | selectFields | String   | 是       |

返回数据：Map<Object, DynamicObject>基础资料



## 52、获取基础数据控制插件

```java
IBaseDataCtrlPlugin getBaseDataCtrlPlugin(String entityType)
```

参数说明：

| 参数名称 | 参数       | 参数类型 | 是否必传 |
| -------- | ---------- | -------- | -------- |
| 实体标识 | entityType | String   | 是       |
|          |            |          |          |

返回数据：IBaseDataCtrlPlugin



## 53、判断指定实体是不是不会有个性化的基础资料实体。

```java
Boolean isNoneCustomEntity(String entityNumber)
```

参数说明：

| 参数名称 | 参数         | 参数类型 | 是否必传 |
| -------- | ------------ | -------- | -------- |
| 实体编码 | entityNumber | String   | 是       |
|          |              |          |          |

返回数据：true entityNumber 是不会有个性化的基础资料实体



## 54、批量个性化前校验

```java
Map<Long, String> batchModifyVerify(String entityID, Long orgID, List<DynamicObject> dataList) 
```

参数说明：

| 参数名称                         | 参数     | 参数类型            | 是否必传 |
| -------------------------------- | -------- | ------------------- | -------- |
| 实体编码                         | entityID | String              | 是       |
| 执行批量个性化操作的组织ID       | orgID    | Long                | 是       |
| 需要批量个性化的受控基础资料列表 | dataList | List<DynamicObject> | 是       |
|                                  |          |                     |          |

返回数据：校验失败的基础资料ID和失败原因映射。



## 55、批量个性化后续处理，如维护相关的使用登记表和个性化排除表记录。

```java
Map<Long, String> batchHandleModify(String entityID, Long orgID, List<DynamicObject[]> dataList) 
```

参数说明：

| 参数名称                     | 参数     | 参数类型              | 是否必传 |
| ---------------------------- | -------- | --------------------- | -------- |
| 实体编码                     | entityID | String                | 是       |
| 执行批量个性化操作的组织ID   | orgID    | Long                  | 是       |
| 批量个性化的受控基础资料列表 | dataList | List<DynamicObject[]> | 是       |
|                              |          |                       |          |

返回数据：批量个性化后续处理失败的基础资料ID和失败原因映射。



## 56、批量个性化后续处理，如维护相关的使用登记表和个性化排除表记录

```java
void clearBaseDataFilterCache(String entityType, Long orgID)
```

参数说明：

| 参数名称 | 参数       | 参数类型 | 是否必传 |
| -------- | ---------- | -------- | -------- |
| 实体编码 | entityType | String   | 是       |
| 组织ID   | orgID      | Long     | 是       |
|          |            |          |          |

返回数据：



## 57、管理权转让接口

```java
void managePermChange(String entityNumber,List<Long> ids,Long orgId)
```

参数说明：

| 参数名称       | 参数         | 参数类型   | 是否必传 |
| -------------- | ------------ | ---------- | -------- |
| 实体编码       | entityNumber | String     | 是       |
| 基础资料ID     | ids          | List<Long> | 是       |
| 转让目标组织ID | orgId        | Long       | 是       |
|                |              |            |          |

返回数据：



## 58、获取基础资料配置的masterid属性名

```java
String getMasterIdPropName(String entityName)
```

参数说明：

| 参数名称 | 参数       | 参数类型 | 是否必传 |
| -------- | ---------- | -------- | -------- |
| 实体编码 | entityName | String   | 是       |

返回数据：return String 基础资料masterid对应属性名



## 59、获取基础资料配置的masterid属性名

```java
String getMasterIdFieldName(String entityName)
```

参数说明：

| 参数名称 | 参数       | 参数类型 | 是否必传 |
| -------- | ---------- | -------- | -------- |
| 实体编码 | entityName | String   | 是       |

返回数据：String 基础资料masterid对应属性名

