# doc_method

class_name: kd.bos.servicehelper.botp.BFTrackerServiceHelper
method_name: isPush
param_types_key: String,String,Long,Long
signature_text: public static boolean isPush(String entityNumber, String entryKey, Long billId, Long entryId)
comment:
判断分录行有没有下推
@param `entityNumber` 单据实体编码，如"sal_order"
@param `entryKey` 分录标识，如"entryentity"
@param `billId` 单据内码
@param `entryId` 分录内码
@return 如果有关联关系，返回true，已经下推


class_name: kd.bos.servicehelper.botp.BFTrackerServiceHelper
method_name: loadBillLinkDown
param_types_key: String,Long[],boolean
signature_text:
public static java.util.List<BFRow> loadBillLinkDown(String entityNumber, Long[] billIds, boolean onlyDirtTarget)

comment:
下查，输出下游单据之间单据级关联关系，不含明细分录行关联信息，默认含跨级下游单
@param `entityNumber` 上游单据实体编码
@param `billIds` 上游单据内码
@param `onlyDirtTarget` true = 仅包含直接下游单，不跨级
@return 输出两两单据之间的关联关系，没有按照源单到目标的顺序排列


class_name: kd.bos.servicehelper.botp.BFTrackerServiceHelper
method_name: loadBillLinkDownNodes
param_types_key: String,Long[],boolean
signature_text:
public static java.util.Map<Long, BFRowLinkDownNode> loadBillLinkDownNodes(String entityNumber, Long[] billIds, boolean onlyDirtTarget)

comment:
按单下查，输出下游关联追溯树（按单追溯，不含明细分录行关联信息）
@param `entityNumber` 上游单据实体编码
@param `billIds` 上游单据内码
@param `onlyDirtTarget` true = 仅包含直接下游单据，不做跨级搜索
@return 按传入的源单，绑定其下游关联追溯树（按单追溯，不含明细分录行关联信息）


class_name: kd.bos.servicehelper.botp.BFTrackerServiceHelper
method_name: loadBillLinkUp
param_types_key: String,Long[],boolean
signature_text:
public static java.util.List<BFRow> loadBillLinkUp(String entityNumber, Long[] billIds, boolean onlyDirtSource)

comment:
上查，输出上游单据之间单据级关联关系，不含明细分录行关联信息，默认含跨级源单
@param `entityNumber` 下游单据实体编码
@param `billIds` 下游单据内码
@param `onlyDirtSource` true = 仅包含直接源单，不跨级
@return 输出两两单据之间的关联关系，没有按照源单到目标的顺序排列


class_name: kd.bos.servicehelper.botp.BFTrackerServiceHelper
method_name: loadBillLinkUpNodes
param_types_key: String,Long[],boolean
signature_text:
public static java.util.Map<Long, BFRowLinkUpNode> loadBillLinkUpNodes(String entityNumber, Long[] billIds, boolean onlyDirtSource)

comment:
按单上查，输出上游关联追溯树（按单追溯），不含明细分录行关联信息。默认含跨级源单，可指定不含跨级源单
@param `entityNumber` 下游单据实体编码，如"sal_order"
@param `billIds` 下游单据内码
@param `onlyDirtSource` true = 仅包含直接源单，不取跨级源单；默认为false，含跨级源单
@return 按传入的下游单内码，绑定其上游关联追溯树（按单追溯）


class_name: kd.bos.servicehelper.botp.BFTrackerServiceHelper
method_name: loadLinkDownNodes
param_types_key: String,Long[],OperateOption
signature_text:
public static java.util.List<BFRowLinkDownNode> loadLinkDownNodes(String entityNumber, Long[] billIds, OperateOption option)

comment:
按单下查，输出下游关联追溯树（默认按分录行追溯，可指定参数按单追溯），默认含跨级下游单，可指定参数仅含直接下游单
@param `entityNumber` 上游单据实体编码，如"sal_order"
@param `billIds` 上游单据内码
@param `option` 自定义参数，可传null。botp_track_only_dirt_link=true，不含跨级下游单；botp_track_only_bill_link=true，仅输出单据级关联关系
@return 下游关联追溯树（按分录行追溯，或按单追溯）


class_name: kd.bos.servicehelper.botp.BFTrackerServiceHelper
method_name: loadLinkDownNodes
param_types_key: String,String,Long[],Long[],OperateOption
signature_text:
public static java.util.List<BFRowLinkDownNode> loadLinkDownNodes(String entityNumber, String entryKey, Long[] billIds, Long[] entryIds, OperateOption option)

comment:
按分录行下查，输出下游关联追溯树（按分录行追溯），默认含跨级下游单，可指定参数仅含直接下游单
@param `entityNumber` 上游单据实体编码，如"sal_order"
@param `entryKey` 上游单据分录标识，如"entryentity"
@param `billIds` 上游单据内码
@param `entryIds` 上游分录行内码
@param `option` 自定义参数，可传null。botp_track_only_dirt_link=true，不含跨级下游单
@param `option` 自定义参数，可传null。botp_track_search_entry=true，分录下查，过滤掉目标单tableid等于单据体tableid的数据
@return 下游关联追溯树（按分录行追溯）


class_name: kd.bos.servicehelper.botp.BFTrackerServiceHelper
method_name: loadLinkUpNodes
param_types_key: String,Long[],OperateOption
signature_text:
public static java.util.List<BFRowLinkUpNode> loadLinkUpNodes(String entityNumber, Long[] billIds, OperateOption option)

comment:
按单上查，输出上游关联追溯树（按单据、或按分录行追溯），默认按明细分录行往上追溯、含跨级源单。可以通过自定义参数控制是否包含跨级源单、是否仅按单据级追溯
@param `entityNumber` 下游单据实体编码，如"sal_order"
@param `billIds` 下游单据内码
@param `option` 自定义参数，可传null。botp_track_only_dirt_link=true，不含跨级源单；botp_track_only_bill_link=true，仅输出单据级关联关系
@return 上游关联追溯树（按单据、或按分录行追溯）


class_name: kd.bos.servicehelper.botp.BFTrackerServiceHelper
method_name: loadLinkUpNodes
param_types_key: String,String,Long[],Long[],OperateOption
signature_text:
public static java.util.List<BFRowLinkUpNode> loadLinkUpNodes(String entityNumber, String entryKey, Long[] billIds, Long[] entryIds, OperateOption option)

comment:
按分录行上查，输出上游关联追溯树（按分录行追溯）。默认含跨级源单的分录行，可以通过自定义参数控制不含跨级源单
@param `entityNumber` 下游单据实体编码，如"sal_order"
@param `entryKey` 下游单据分录标识，如"entryentity"
@param `billIds` 下游单据内码
@param `entryIds` 下游单据分录行内码
@param `option` 自定义参数，可传null。botp_track_only_dirt_link=true，不含跨级源单
@param `option` 自定义参数，可传null。botp_track_search_entry=true，分录上查，过滤掉源单tableid等于单据体tableid的数据
@return 上游关联追溯树（按分录行追溯）


class_name: kd.bos.servicehelper.botp.BFTrackerServiceHelper
method_name: loadSourceRowIds
param_types_key: String,Long[],OperateOption
signature_text:
public static java.util.List<BFRow> loadSourceRowIds(String entityNumber, Long[] billIds, OperateOption option)

comment:
按单上查，输出上游分录行之间关联关系，默认含跨级上游单，可指定参数不含跨级源单
@param `entityNumber` 下游单据实体编码，如"sal_order"
@param `billIds` 下游单据内码
@param `option` 可选参数，可传null；botp_track_only_dirt_link=true，不含跨级源单
@return 行关联信息集合，记录各分录行和源单行的一一对应关系


class_name: kd.bos.servicehelper.botp.BFTrackerServiceHelper
method_name: loadSourceRowIds
param_types_key: String,String,Long[],Long[],OperateOption
signature_text:
public static java.util.List<BFRow> loadSourceRowIds(String entityNumber, String entryKey, Long[] billIds, Long[] entryIds, OperateOption option)

comment:
按分录行上查，输出上游分录行之间关联关系，默认含跨级上游单，可指定参数不含跨级源单
@param `entityNumber` 下游单据实体编码，如"sal_order"
@param `entryKey` 下游单据分录标识，如"entryentity"
@param `billIds` 下游单据内码
@param `entryIds` 下游单据分录内码
@param `option` 可选参数，可传null; botp_track_only_dirt_link=true，不含跨级源单
@return 行关联信息集合，记录各分录行和源单行的一一对应关系


class_name: kd.bos.servicehelper.botp.BFTrackerServiceHelper
method_name: loadTargetRowIds
param_types_key: String,Long[],OperateOption
signature_text:
public static java.util.List<BFRow> loadTargetRowIds(String entityNumber, Long[] billIds, OperateOption option)

comment:
按单下查，输出下游分录行之间关联关系，默认含跨级下游单据
@param `entityNumber` 下游单据实体编码，如"sal_order"
@param `billIds` 下游单据内码
@param `option` 可选参数，可传null； botp_track_only_dirt_link=true，不含跨级下游单据
@return 行关联信息集合，记录各源单行和目标单行的一一对应关系


class_name: kd.bos.servicehelper.botp.BFTrackerServiceHelper
method_name: loadTargetRowIds
param_types_key: String,String,Long[],Long[],OperateOption
signature_text:
public static java.util.List<BFRow> loadTargetRowIds(String entityNumber, String entryKey, Long[] billIds, Long[] entryIds, OperateOption option)

comment:
按分录行下查，输出下游分录行之间关联关系，含跨级下游单据的分录行
@param `entityNumber` 上游单据实体编码，如"sal_order"
@param `entryKey` 上游单据分录标识，如"entryentity"
@param `billIds` 上游单据内码
@param `entryIds` 上游单据分录内码
@param `option` 可选参数，可传null； botp_track_only_dirt_link=true，不含跨级下游单据
@return 行关联信息集合，记录各源单行和目标单行的一一对应关系


class_name: kd.bos.servicehelper.botp.ConvertMetaServiceHelper
method_name: loadConvertBills
param_types_key: String,ConvertOpType
comment: @param `entityNumber` ：当前单据编码 @param `opType` ：转换操作类型 @return 可转换的目标单列表
signature_text:
public static java.util.List<ConvertBill> loadConvertBills(String entityNumber, ConvertOpType opType)


class_name: kd.bos.servicehelper.botp.ConvertMetaServiceHelper
method_name: loadMetas
param_types_key: String,String
signature_text:
public static java.util.List<ConvertRuleMetadata> loadMetas(String sourceEntityNumber, String targetEntityNumber)

comment:
@param `sourceEntityNumber` 源单据的实体标识
@param `targetEntityNumber` 目标单据的实体标识
@return 返回包含两单之间所有转换规则元数据对象的列表，如果没有规则则返回空列表。


class_name: kd.bos.servicehelper.botp.ConvertMetaServiceHelper
method_name: loadRules
param_types_key: String,String
signature_text:
public static java.util.List<ConvertRuleElement> loadRules(String sourceEntityNumber, String targetEntityNumber)

comment:
@param `sourceEntityNumber` 源单据的实体标识
@param `targetEntityNumber` 目标单据的实体标识
@return 返回包含两单之间所有转换规则元素对象的列表，如果没有规则则返回空列表。


class_name: kd.bos.servicehelper.botp.ConvertMetaServiceHelper
method_name: loadSourceBills
param_types_key: String,DynamicObject
signature_text:
public static java.util.List<ConvertBill> loadSourceBills(String targetEntityNumber, DynamicObject targetBillTypeObj)

comment:
获取选单可用的单据
@param `targetEntityNumber` 目标单据的实体标识，用于指定目标单据。
@param `targetBillTypeObj` 目标单据类型的动态对象，包含目标单据类型的详细信息。
@return 返回包含选单可用单据的列表，如果没有可用单据则返回空列表。


class_name: kd.bos.servicehelper.botp.ConvertMetaServiceHelper
method_name: loadTargetBills
param_types_key: String,ThirdPushManage,Set
signature_text:
public static java.util.List<ConvertBill> loadTargetBills(String entityNumber, kd.bos.form.operate.botp.ThirdPushManage thirdPushManage, java.util.Set<Long> srcBillTypeIds)

comment:
获取下推可用的单据
@param `entityNumber` 当前单据的实体标识，用于指定当前操作的单据。
@param `thirdPushManage` 第三方下推管理对象，用于处理第三方下推相关逻辑。
@param `srcBillTypeIds` 源单据类型，用于筛选可用的目标单据。
@return 返回包含下推可用单据的列表，如果没有可用单据则返回空列表。


class_name: kd.bos.servicehelper.botp.ConvertMetaServiceHelper
method_name: loadThirdConvertBills
param_types_key: String,String
comment: @param `sourceEntityNumber` ：源单 @param `targetEntityNumber` ：目标单 @return 可转换的目标单列表
signature_text:
public static java.util.List<ConvertBill> loadThirdConvertBills(String sourceEntityNumber, String targetEntityNumber)


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: checkLoadSizeByPKArrays
param_types_key: Object[]
signature_text: protected static void checkLoadSizeByPKArrays(Object[] pkArrays)
comment:
检查 load 服务传入的id个数：如果超过限额，抛出中断。
说明：控制数量是为了减少OOM异常，推荐调用方分批读取数据，或使用QueryServiceHelper.queryDataSet流式取数。
@param `pkArrays` 待读取的内码集合，检查此集合长度是否超过限制


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: load
param_types_key: String,String,QFilter[]
signature_text: public static DynamicObject[] load(String entityName, String selectProperties, QFilter[] filters)
comment:
按条件读取实体数据，指定读取字段（减少读取字段，可节省性能）
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 返回的数据包修改后可调用保存服务。
* 如果仅查询数据不修改保存，推荐使用流式取数、性能更优的String, String, QFilter[], String, int)。
* 请合理设置取数条件，如果符合条件的数据过多，容易引发OOM异常。
@param `entityName` 实体标识
@param `selectProperties` 读取字段：使用逗号分隔字段标识，单据体字段要带单据体标识，格式如："id, bill, entryentity.qty"
@param `filters` 过滤条件
@return 返回符合条件的实体数据


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: load
param_types_key: String,String,QFilter[],String
signature_text:
public static DynamicObject[] load(String entityName, String selectProperties, QFilter[] filters, String orderBy)

comment:
按条件读取实体数据，指定读取字段、排序字段（减少读取字段，可节省性能）
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 返回的数据包修改后可调用保存服务。
* 如果仅查询数据不修改保存，推荐使用流式取数、性能更优的String, String, QFilter[], String, int)。
* 请合理设置取数条件，如果符合条件的数据过多，容易引发OOM异常。
@param `entityName` 实体标识
@param `selectProperties` 读取字段：使用逗号分隔字段标识，单据体字段要带单据体标识，格式如："id, bill, entryentity.qty"
@param `filters` 过滤条件
@param `orderBy` 排序字段
@return 返回符合条件的实体数据


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: load
param_types_key: String,String,QFilter[],String,int
signature_text:
public static DynamicObject[] load(String entityName, String selectProperties, QFilter[] filters, String orderBy, int top)

comment:
按条件读取实体数据，限定最大取数量，指定读取字段、排序字段
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 返回的数据包修改后可调用保存服务。
* 如果仅查询数据不修改保存，推荐使用流式取数、性能更优的String, String, QFilter[], String, int)。
* 请合理设置取数条件，如果符合条件的数据过多，容易引发OOM异常。
@param `entityName` 实体标识
@param `selectProperties` 读取字段：使用逗号分隔字段标识，单据体字段要带单据体标识，格式如："id, bill, entryentity.qty"
@param `filters` 过滤条件
@param `orderBy` 排序字段
@param `top` 取前几条
@return 返回符合条件的实体数据


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: load
param_types_key: String,String,QFilter[],String,int,int
signature_text:
public static DynamicObject[] load(String entityName, String selectProperties, QFilter[] filters, String orderBy, int pageIndex, int pagesize)

comment:
按条件读取单据数据，单据体分录仅包括指定分页分录行
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 返回的数据包修改后可调用保存服务。
* 如果仅查询数据不修改保存，推荐使用流式取数、性能更优的String, String, QFilter[], String, int)。
* 请合理设置取数条件，如果符合条件的数据过多，容易引发OOM异常。
@param `entityName` 实体标识
@param `selectProperties` 读取字段：使用逗号分隔字段标识，单据体字段要带单据体标识，格式如："id, bill, entryentity.qty"
@param `filters` 过滤条件
@param `orderBy` 排序
@param `pageIndex` 分页索引
@param `pagesize` 每页数据量
@return 返回指定分页的实体数据


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: loadFromCache
param_types_key: Object[],DynamicObjectType
signature_text:
public static java.util.Map<Object, DynamicObject> loadFromCache(Object[] pkArray, DynamicObjectType type)

comment:
批量读取实体数据，使用缓存
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 本方法优先从缓存中取数，缓存是线程间共享的，请勿修改返回数据包中的字段值，进行影响其他线程。
* 缓存的实体数据缺少数据状态（快照、脏标记），不能修改后保存，保存可能会导致重复插入或误删数据。
* 适用于少量读取基础数据，大批量读取推荐使用流式取数、性能更优的String, String, QFilter[], String, int)。
* 请合理设置读取的数据量，如果读取数据过多，容易引发OOM异常。
@param `pkArray` 主键数组
@param `type` 实体类型


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: loadFromCache
param_types_key: String,String,QFilter[]
signature_text:
public static java.util.Map<Object, DynamicObject> loadFromCache(String entityName, String selectProperties, QFilter[] filters)

comment:
按条件读取实体数据，使用缓存
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 本方法优先从缓存中取数，缓存是线程间共享的，请勿修改返回数据包中的字段值，进行影响其他线程。
* 缓存的实体数据缺少数据状态（快照、脏标记），不能修改后保存，保存可能会导致重复插入或误删数据。
* 适用于少量读取基础数据，大批量读取推荐使用流式取数、性能更优的String, String, QFilter[], String, int)。
* 请合理设置取数条件，如果读取数据过多，容易引发OOM异常。
@param `entityName` 实体标识
@param `selectProperties` 读取字段：使用逗号分隔字段标识，单据体字段要带单据体标识，格式如："id, bill, entryentity.qty"
@param `filters` 过滤条件
@return 返回缓存实体数据Map，使用主键作为Key值，实体数据为Value值


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: loadFromCache
param_types_key: String,String,QFilter[],String
signature_text:
public static java.util.Map<Object, DynamicObject> loadFromCache(String entityName, String selectProperties, QFilter[] filters, String orderBy)

comment:
按条件读取实体数据，使用缓存
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 本方法优先从缓存中取数，缓存是线程间共享的，请勿修改返回数据包中的字段值，进行影响其他线程。
* 缓存的实体数据缺少数据状态（快照、脏标记），不能修改后保存，保存可能会导致重复插入或误删数据。
* 适用于少量读取基础数据，大批量读取推荐使用流式取数、性能更优的String, String, QFilter[], String, int)。
* 请合理设置取数条件，如果读取数据过多，容易引发OOM异常。
@param `entityName` 实体标识
@param `selectProperties` 读取字段：使用逗号分隔字段标识，单据体字段要带单据体标识，格式如："id, bill, entryentity.qty"
@param `filters` 条件
@param `orderBy` 排序方式
@return 返回缓存实体数据Map，使用主键作为Key值，实体数据为Value值


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: loadFromCache
param_types_key: DynamicObjectType,QFilter[]
signature_text:
public static java.util.Map<Object, DynamicObject> loadFromCache(DynamicObjectType type, QFilter[] filters)

comment:
按条件读取实体数据，使用缓存
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 本方法优先从缓存中取数，缓存是线程间共享的，请勿修改返回数据包中的字段值，进行影响其他线程。
* 缓存的实体数据缺少数据状态（快照、脏标记），不能修改后保存，保存可能会导致重复插入或误删数据。
* 适用于少量读取基础数据，大批量读取推荐使用流式取数、性能更优的String, String, QFilter[], String, int)。
* 请合理设置取数条件，如果符合条件的数据过多，容易引发OOM异常。
@param `type` 实体类型
@param `filters` 过滤条件
@return 返回缓存实体数据Map，使用主键作为Key值，实体数据为Value值


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: loadHead
param_types_key: Object,DynamicObjectType
signature_text: public static DynamicObject loadHead(Object pk, DynamicObjectType type)
comment:
读取实体数据，仅含根实体数据（单据头），不含分录数据
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合。单据体分录是空集合，未加载数据。
* 返回的数据包修改后可调用保存服务。
* 如果仅查询数据不修改保存，推荐使用性能更优的String, String, QFilter[], String, int)。
@param `pk` 主键
@param `type` 实体类型
@return 返回仅含根实体的数据包，不含分录数据


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: loadRefence
param_types_key: Object[],IDataEntityType
signature_text: public static void loadRefence(Object[] dataEntitys, IDataEntityType type)
comment:
加载实体数据中引用的基础数据，填充到实体数据包中 实体数据的加载通常分为两步： 1. 读取实体本身的属性值，基础资料字段取到内码 2. 根据基础资料内码，读取引用的基础资料数据包，填充在实体数据包中
@param `dataEntitys` 实体数据包集合
@param `type` 实体类型


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: loadSingle
param_types_key: Object,DynamicObjectType
signature_text: public static DynamicObject loadSingle(Object pk, DynamicObjectType type)
comment:
读取单张实体数据
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 返回的数据包修改后可调用保存服务。
，
* 如果仅查询数据不修改保存，推荐使用性能更优的String, String, QFilter[], String, int)。
@param `pk` 主键
@param `type` 实体类型
@return 返回实体数据包


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: loadSingle
param_types_key: Object,DynamicObjectType,int,int
signature_text: public static DynamicObject loadSingle(Object pk, DynamicObjectType type, int start, int limit)
comment:
读取单张实体数据，指定分录起始行
**适用场景：**
* 读取超大单（分录行过万），默认一次性把全部分录行都读取出来，会非常消耗性能。通过此方法指定分录行范围，减少数据量，提升性能
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 返回的数据包修改后可调用保存服务。
* 如果仅查询数据不修改保存，推荐使用性能更优的String, String, QFilter[], String, int)。
@param `pk` 主键
@param `type` 实体类型
@param `start` 分录起始行
@param `limit` 分录行数
@return 返回实体数据包，仅按指定范围的分录行数据


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: loadSingle
param_types_key: Object,String
signature_text: public static DynamicObject loadSingle(Object pk, String entityName)
comment:
读取单张实体数据
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 返回的数据包修改后可调用保存服务。
* 如果仅查询数据不修改保存，推荐使用性能更优的String, String, QFilter[], String, int)。
@param `pk` 主键
@param `entityName` 实体标识
@return 返回实体数据包


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: loadSingle
param_types_key: Object,String,String
signature_text: public static DynamicObject loadSingle(Object pk, String entityName, String selectProperties)
comment:
读取单张实体数据，指定读取字段范围
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 返回的数据包修改后可调用保存服务。
* 如果仅查询数据不修改保存，推荐使用性能更优的String, String, QFilter[], String, int)。
@param `pk` 主键
@param `entityName` 实体标识
@param `selectProperties` 读取字段，使用逗号分隔字段标识，单据体字段要带单据体标识，格式如："id, bill, entryentity.qty"
@return 返回实体数据包，仅含指定的字段


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: loadSingle
param_types_key: String,QFilter[]
signature_text: public static DynamicObject loadSingle(String entityName, QFilter[] filters)
comment:
读取第一张符合条件的实体数据，包含全部字段
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 返回的数据包修改后可调用保存服务。
* 如果仅查询数据不修改保存，推荐使用性能更优的String, String, QFilter[], String, int)。
@param `entityName` 实体标识
@param `filters` 查询条件
@return 返回满足条件的第一张实体数据，找不到符合条件的数据则返回null


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: loadSingle
param_types_key: String,String,QFilter[]
signature_text:
public static DynamicObject loadSingle(String entityName, String selectProperties, QFilter[] filters)

comment:
读取第一张符合条件的实体数据，指定读取字段范围（减少读取的字段，可节省性能开销）
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 返回的数据包修改后可调用保存服务。
* 如果仅查询数据不修改保存，推荐使用性能更优的String, String, QFilter[], String, int)。
@param `entityName` 实体标识
@param `selectProperties` 读取字段，使用逗号分隔字段标识，单据体字段要带单据体标识，格式如："id, bill, entryentity.qty"
@param `filters` 查询条件
@return 返回满足条件的第一张实体数据


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: loadSingleFromCache
param_types_key: Object,String,String
signature_text:
public static DynamicObject loadSingleFromCache(Object pk, String entityName, String selectProperties)

comment:
读取单张实体数据，使用缓存，指定字段范围（减少读取的字段，可节省性能）
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 本方法优先从缓存中取数，缓存是线程间共享的，请勿修改返回数据包中的字段值，进行影响其他线程。
* 缓存的实体数据缺少数据状态（快照、脏标记），不能修改后保存，保存可能会导致重复插入或误删数据。
* 本方法适用于少量取用基础资料数据，如果大量查询基础资料，推荐使用性能更优的String, String, QFilter[], String, int)。
@param `pk` 主键
@param `entityName` 实体标识
@param `selectProperties` 读取字段，使用逗号分隔字段标识，单据体字段要带单据体标识，格式如："id, bill, entryentity.qty"
@return 返回缓存的实体数据


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: loadSingleFromCache
param_types_key: String,String,QFilter[]
signature_text:
public static DynamicObject loadSingleFromCache(String entityName, String selectProperties, QFilter[] filters)

comment:
读取第一张符合条件的实体数据，使用缓存
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 本方法优先从缓存中取数，缓存是线程间共享的，请勿修改返回数据包中的字段值，进行影响其他线程。
* 缓存的实体数据缺少数据状态（快照、脏标记），不能修改后保存，保存可能会导致重复插入或误删数据。
* 本方法适用于少量取用基础资料数据，如果大量查询基础资料，推荐使用性能更优的String, String, QFilter[], String, int)。
@param `entityName` 实体标识
@param `selectProperties` 读取字段，使用逗号分隔字段标识，单据体字段要带单据体标识，格式如："id, bill, entryentity.qty"
@param `filters` 查询条件
@return 返回缓存的实体数据


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: loadSingleFromCache
param_types_key: Object,DynamicObjectType
signature_text: public static DynamicObject loadSingleFromCache(Object pk, DynamicObjectType type)
comment:
读取单张实体数据，使用缓存
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 本方法优先从缓存中取数，缓存是线程间共享的，请勿修改返回数据包中的字段值，进行影响其他线程。
* 缓存的实体数据缺少数据状态（快照、脏标记），不能修改后保存，保存可能会导致重复插入或误删数据。
* 本方法适用于少量取用基础资料数据，如果大量查询基础资料，推荐使用性能更优的String, String, QFilter[], String, int)。
@param `pk` 主键
@param `type` 实体类型
@return 缓存的实体数据


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: loadWithPermAndBdCtrl
param_types_key: String,String,QFilter[],String,int,int,String,Map
signature_text:
public static DynamicObject[] loadWithPermAndBdCtrl(String entityName, String selectProperties, QFilter[] filters, String orderBy, int pageIndex, int pagesize, String appId, java.util.Map<String, Object> customParam)

comment:
按条件读取单据数据，单据体分录仅包括指定分页分录行，自带特殊数据权限、数据规则和管控策略等过滤条件
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 返回的数据包修改后可调用保存服务。
* 如果仅查询数据不修改保存，推荐使用流式取数、性能更优的String, String, QFilter[], String, int)。
* 请合理设置取数条件，如果符合条件的数据过多，容易引发OOM异常。
@param `entityName` 实体标识
@param `selectProperties` 读取字段：使用逗号分隔字段标识，单据体字段要带单据体标识，格式如："id, bill, entryentity.qty"
@param `filters` 过滤条件
@param `orderBy` 排序
@param `pageIndex` 分页索引
@param `pagesize` 每页数据量
@param `appId` 验权appId，默认验实体所在应用
@param `customParam` 自定义参数 可以传null 目前只有三种参数： 一、是控制对于受控基础资料是否返回重复数据（例如物料有个性化数据），这时用PermissionService.CUSTPARAMKEY_BDCTRL_ISREMOVEDUP作为key，value是Boolean，true是去重，false是不去重； 二、是对于受控基础资料查询，获取使用组织id的集合，这时用PermissionService.CUSTPARAMKEY_BDCTRL_USEORGIDS作为key，value是使用组织id的集合，用List
@return 返回指定分页的实体数据


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: loadWithPermission
param_types_key: String,String,QFilter[],String,int,String
signature_text:
public static DynamicObject[] loadWithPermission(String entityName, String selectProperties, QFilter[] filters, String orderBy, int top, String appId)

comment:
加载有权的数据。权限控制字段、特殊数据权限、数据规则
**注意：**
* 返回的数据包是树形结构：单据头包含单据体分录集合，单据体分录包含子单据体分录集合。
* 返回的数据包修改后可调用保存服务。
* 如果仅查询数据不修改保存，推荐使用流式取数、性能更优的String, String, QFilter[], String, int)。
* 请合理设置取数条件，如果符合条件的数据过多，容易引发OOM异常。
@param `entityName` 实体编码
@param `selectProperties` 查询字段
@param `filters` 过滤条件
@param `orderBy` 排序字段
@param `top` 加载前top条记录
@param `appId` 验权appId，默认验实体所在应用
@return 有权限的动态对象数组


class_name: kd.bos.servicehelper.BusinessDataServiceHelper
method_name: newDynamicObject
param_types_key: String,boolean,OperateOption
signature_text:
public static DynamicObject newDynamicObject(String entityName, boolean fillDefVal, OperateOption option)

comment:
创建一个动态实体数据包
@param `entityName` 实体标识
@param `fillDefVal` 是否填充字段默认值
@param `option` 可选的参数，可用于传递主业务组织、单据类型,暂时不提供实现，日后根据需要补充实现
@return 返回动态实体数据包


class_name: kd.bos.servicehelper.ca.SignCommandParam
method_name: <init>
param_types_key: String,DynamicObjectCollection,SignOperateCallback
comment: 构造函数。 创建一个签名指令参数对象。 @param `entityNumber` 实体编码 @param `docs` 数据包集合 @param `callback` 签名回调
signature_text:
public SignCommandParam(String entityNumber, DynamicObjectCollection docs, kd.bos.form.operate.SignOperateCallback callback)


class_name: kd.bos.servicehelper.ca.SignCommandParam
method_name: <init>
param_types_key: String,DynamicObjectCollection,SignOperateCallback,boolean,boolean
signature_text:
public SignCommandParam(String entityNumber, DynamicObjectCollection docs, kd.bos.form.operate.SignOperateCallback callback, boolean clearPin, boolean schemeFilter)

comment:
构造函数。
创建一个签名指令参数对象。
@param `entityNumber` 实体编码
@param `docs` 数据包集合
@param `callback` 签名回调
@param `clearPin` 是否清除pin码
@param `schemeFilter` 是否启用过滤范围


class_name: kd.bos.servicehelper.ca.SignServiceHelper
method_name: saveSignMessage
param_types_key: String,Map,Map
signature_text:
public static void saveSignMessage(String entityNumber, java.util.Map<Object, Object> signTextsMap, java.util.Map<Object, Object> clearTextsMap)

comment:
保存签名后的签名字符串等信息，并记录签名日志。
@param `entityNumber` 实体标识
@param `signTextsMap` 签名后字符串集合，（`Map.key`：单据pk，`Map.value`：签名字符串）。
@param `clearTextsMap` 加密后明文串集合，（`Map.key`：单据pk，`Map.value`：明文串）。


class_name: kd.bos.servicehelper.ca.SignServiceHelper
method_name: verifySignByIds
param_types_key: String,List
signature_text:
public static java.util.Map<Object, VerifySignInfo> verifySignByIds(String entityNumber, java.util.List<Object> ids)

comment:
批量验签。
@param `entityNumber` 单据实体编码
@param `ids` 单据pk集合
@return 验签结果集合，（`Map.key`：记录id，`Map.value`：验签结果）。


class_name: kd.bos.servicehelper.coderule.CodeRuleServiceHelper
method_name: checkNumber
param_types_key: String,DynamicObject,Long,String
signature_text: public boolean checkNumber(String entityID, DynamicObject dataInfo, Long orgID, String number)
comment:
检查编码是否符合编码规则
@param `entityID` 实体标识
@param `dataInfo` 数据对象
@param `orgID` 组织ID
@param `number` 待检查的编码
@return boolean true:符合编码规则; false: 不符合编码规则。


class_name: kd.bos.servicehelper.coderule.CodeRuleServiceHelper
method_name: consumeIntermitNumber
param_types_key: CodeRuleInfo,String,int
signature_text:
public static java.util.List<Integer> consumeIntermitNumber(CodeRuleInfo coderule, String sortItemValue, int intermitNum)

comment:
消费断号的方法
@param `coderule` 编码规则对象
@param `sortItemValue` 编码规则依据
@param `intermitNum` 断号数量 ( 传-1 获取所有 )
@return 消费的断号集合(如果传入的数量比目前数据中断号的数量还多, 集合中也仅会返完已存在的数据, 不会补足空值对象)


class_name: kd.bos.servicehelper.coderule.CodeRuleServiceHelper
method_name: deleteBreakNumbers
param_types_key: String,Map,long,List
signature_text:
public static boolean deleteBreakNumbers(String entityId, java.util.Map<String, Object> dataInfo, long orgID, java.util.List<String> numbers)

comment:
删除断号
@param `entityId` 实体标识
@param `dataInfo` 数据对象
@param `orgID` 组织ID
@param `numbers` 断号列表
@return true 处理成功;false 处理失败


class_name: kd.bos.servicehelper.coderule.CodeRuleServiceHelper
method_name: exportCodeRuleByCoderuleID
param_types_key: List
comment: 根据编码规则id导出编码规则 @param `coderuleIDList` 编码规则id列表 @return 指定编码规则id所对应的编码规则
signature_text:
public static java.util.List<CoderuleFile> exportCodeRuleByCoderuleID(java.util.List<String> coderuleIDList)


class_name: kd.bos.servicehelper.coderule.CodeRuleServiceHelper
method_name: exportCodeRuleByEntityID
param_types_key: List
comment: 根据实体标识id导出编码规则 @param `entityIDList` 实体标识列表 @return 指定实体id所对应的全部编码规则
signature_text:
public static java.util.List<CoderuleFile> exportCodeRuleByEntityID(java.util.List<String> entityIDList)


class_name: kd.bos.servicehelper.coderule.CodeRuleServiceHelper
method_name: getBatchNumber
param_types_key: String,DynamicObject,String,int
signature_text:
public static String[] getBatchNumber(String entityId, DynamicObject dataInfo, String orgID, int count)

comment:
根据指定的编码规则生成批量编码
@param `entityId` 实体ID串
@param `dataInfo` 数据对象
@param `orgID` 组织架构ID
@param `count` 生成批量编码的数目
@return String[] 编码规则生成的批量编码


class_name: kd.bos.servicehelper.coderule.CodeRuleServiceHelper
method_name: getNumber
param_types_key: String,DynamicObject,String
signature_text: public static String getNumber(String entityId, DynamicObject dataInfo, String orgId)
comment:
获取编码
@param `entityId` 实体ID串
@param `dataInfo` 需要获取编码的数据对象，可能是基础资料或者单据。
@param `orgId` 组织架构ID
@return 编码


class_name: kd.bos.servicehelper.coderule.CodeRuleServiceHelper
method_name: getNumbers
param_types_key: String,List
signature_text:
public static java.util.List<String> getNumbers(String entityId, java.util.List<DynamicObject> dynamicObjects)

comment:
批量生成的编码, 根据动态对象集合, 顺序返回对应的编号 (未匹配到的动态对象也会在返回集合中占用一个位置, 值为null)
@param `entityId` 实体ID
@param `dynamicObjects` 动态对象集合
@return 返回对应的编号 (按照 dynamicObjects 的顺序)


class_name: kd.bos.servicehelper.coderule.CodeRuleServiceHelper
method_name: isAddView
param_types_key: String,DynamicObject,String
signature_text: public static boolean isAddView(String entityId, DynamicObject dataInfo, String orgID)
comment:
新增编码是否显示
@param `entityId` 实体ID串
@param `dataInfo` 数据对象
@param `orgID` 组织架构ID
@return true:新增显示；false:新增不显示。


class_name: kd.bos.servicehelper.coderule.CodeRuleServiceHelper
method_name: isExist
param_types_key: String,DynamicObject,String
signature_text: public static boolean isExist(String entityId, DynamicObject dataInfo, String orgID)
comment:
编码规则是否存在
@param `entityId` 实体ID串
@param `dataInfo` 数据对象
@param `orgID` 组织架构ID
@return true:存在编码规则；false:不存在编码规则。


class_name: kd.bos.servicehelper.coderule.CodeRuleServiceHelper
method_name: isModifiable
param_types_key: String,DynamicObject,String
signature_text: public static boolean isModifiable(String entityId, DynamicObject dataInfo, String orgID)
comment:
新增编码是否允许修改
@param `entityId` 实体ID串
@param `dataInfo` 数据对象
@param `orgID` 组织架构ID
@return true:新增编码允许修改；false:新增编码不允许修改。


class_name: kd.bos.servicehelper.coderule.CodeRuleServiceHelper
method_name: isUseIntermitNumber
param_types_key: String,DynamicObject,String
signature_text: public static boolean isUseIntermitNumber(String entityId, DynamicObject dataInfo, String orgID)
comment:
编码规则是否不允许断号
@param `entityId` 实体ID串
@param `dataInfo` 数据对象
@param `orgID` 组织架构ID
@return true:不允许断号；false:允许断号。


class_name: kd.bos.servicehelper.coderule.CodeRuleServiceHelper
method_name: readIntermitNumber
param_types_key: CodeRuleInfo,String,int
signature_text:
public static java.util.List<Integer> readIntermitNumber(CodeRuleInfo coderule, String sortItemValue, int intermitNum)

comment:
预览断号的方法
@param `coderule` 编码规则对象
@param `sortItemValue` 编码规则依据
@param `intermitNum` 断号数量 ( 传-1 获取所有 )
@return 预览的断号集合(如果传入的数量比目前数据中断号的数量还多, 集合中也仅会返完已存在的数据, 不会补足空值对象)


class_name: kd.bos.servicehelper.coderule.CodeRuleServiceHelper
method_name: recycleBatchNumber
param_types_key: String,DynamicObject[],String,String[]
signature_text:
public static boolean[] recycleBatchNumber(String entityId, DynamicObject[] dataInfo, String orgID, String[] numbers)

comment:
批量回收断号 当删除某些号码时，应该调用此接口以保存断号
@param `entityId` 实体ID串
@param `dataInfo` 数据对象
@param `orgID` 组织架构ID
@param `numbers` 待回收的编码数组
@return 是否成功


class_name: kd.bos.servicehelper.coderule.CodeRuleServiceHelper
method_name: recycleNumber
param_types_key: String,DynamicObject,String,String
signature_text:
public static boolean recycleNumber(String entityId, DynamicObject dataInfo, String orgID, String number)

comment:
回收断号 当删除某些号码时，应该调用此接口以保存断号
@param `entityId` 实体ID串
@param `dataInfo` 数据对象
@param `orgID` 组织架构ID
@param `number` 待回收的编码
@return 是否成功


class_name: kd.bos.servicehelper.coderule.CodeRuleServiceHelper
method_name: recycleNumber
param_types_key: CodeRuleInfo,String,int[]
signature_text: public static boolean[] recycleNumber(CodeRuleInfo coderule, String sortItemValue, int[] intermits)
comment:
回收断号的方法 (批量)
@param `coderule` 编码规则对象
@param `sortItemValue` 编码规则依据
@param `intermits` 回收的断号数组
@return 回收断号数组的成功失败结果


class_name: kd.bos.servicehelper.coderule.CodeRuleServiceHelper
method_name: updateNumber
param_types_key: CodeRuleInfo,String,int
signature_text: public static boolean updateNumber(CodeRuleInfo coderule, String sortItemValue, int maxserial)
comment:
更新最大号的方法
@param `coderule` 编码规则对象
@param `sortItemValue` 编码规则依据
@param `maxserial` 更新的最大号码
@return 更新最大号的成功失败结果


class_name: kd.bos.servicehelper.dbversion.IndustryVersionServiceHelper
method_name: getCaption
param_types_key: String
signature_text: public static java.util.List<IndustryVersionInfo> getCaption(String producName)
comment:
根据产品名称获取显示版本信息， 因产品编码、开发商不确定，这里返回的显示版本不一定唯一 业务调用方自行判断处理
@param `producName` 显示版本对应的产品名称 例如：starry:星空


class_name: kd.bos.servicehelper.dbversion.IndustryVersionServiceHelper
method_name: getCaption
param_types_key: String,String,String
signature_text: public static IndustryVersionInfo getCaption(String productNumber, String isv, String productName)
comment:
@param `productNumber` 补丁产品编码 例如：平台:cosmic_bos/cosmic_biz
@param `isv` 开发商标识 ,例如：kingdee
@param `productName` 显示版本对应的产品名称 例如：starry:星空


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: buildAppMetadataDiffXml
param_types_key: AppMetadata,AppMetadata,boolean
signature_text:
public static String buildAppMetadataDiffXml(AppMetadata metadata, AppMetadata baseMetadata, boolean onlyLocaleValue)

comment:
获取两个AppMetadata的差量化xml数据
@param `metadata` 扩展应用元数据
@param `baseMetadata` 源应用元数据
@param `onlyLocaleValue` boolean值。true表示取得当前语种下的差量化数据，false表示取得3种语种下的多语言信息
@return String 差量


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: convertAppFunctionPacketElementToDynamicObject
param_types_key: AppFunctionPacketElement,DynamicObject
signature_text:
public static java.util.Map<String, Object> convertAppFunctionPacketElementToDynamicObject(AppFunctionPacketElement appFunctionPacketElement, DynamicObject obj)

comment:
将功能分组实体实例中的属性值更新到应用实体实例的属性中。 功能分组中上级功能分组不是F7，而是分开为id和name两个文本框
@param `appFunctionPacketElement` 功能分组实体实例
@param `obj` 应用实体实例
@return 返回map对象, key值success为true, 表示更新成功，为false，表示更新失败；key值为message为String,表示结果信息


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: convertAppMenuElementToDynamicObject
param_types_key: AppMenuElement,DynamicObject,AppMetadata
signature_text:
public static java.util.Map<String, Object> convertAppMenuElementToDynamicObject(AppMenuElement appMenuElement, DynamicObject obj, AppMetadata metadata)

comment:
将应用菜单实例中的属性值更新到应用动态实体实例对象的属性里。
@param `appMenuElement` 应用菜单实例
@param `obj` 应用动态实体实例对象
@param `metadata` 可以为null，但是如需返回parent对象的话，不能为空
@return 返回map对象, key值success为true, 表示更新成功，为false，表示更新失败；key值为message为String,表示结果信息


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: convertDynamicObjectToAppFunctionPacketElement
param_types_key: DynamicObject,AppFunctionPacketElement
signature_text:
public static java.util.Map<String, Object> convertDynamicObjectToAppFunctionPacketElement(DynamicObject obj, AppFunctionPacketElement appFunctionPacketElement)

comment:
将应用实体实例中的属性值更新到应用功能分组实体实例的属性中。
@param `obj` 应用实体实例
@param `appFunctionPacketElement` 应用功能分组实体实例
@return 返回map对象, key值success为true, 表示更新成功，为false，表示更新失败；key值为message为String,表示结果信息


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: convertDynamicObjectToAppMenuElement
param_types_key: DynamicObject,AppMenuElement
signature_text:
public static java.util.Map<String, Object> convertDynamicObjectToAppMenuElement(DynamicObject obj, AppMenuElement appMenuElement)

comment:
将应用实体实例中的属性值更新到应用菜单实例的属性
@param `obj` 应用实体实例
@param `appMenuElement` 应用菜单实体实例
@return 返回map对象, key值success为true, 表示更新成功，为false，表示更新失败；key值为message为String,表示结果信息


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: convertDynamicObjectsToAppMetadata
param_types_key: DynamicObject[]
signature_text: public static AppMetadata convertDynamicObjectsToAppMetadata(DynamicObject[] objects)
comment:
根据bos_devportal_bizapp，bos_devportal_menu，bos_devportal_bizunit这三个表中的数据，对应用元数据为空时生成元数据。DynamicObject[0]必须是bos_devportal_bizapp对象。
@param `objects` 动态实例数组 dynObjArry[0] bos_devportal_bizapp对象 dynObjArry[1..] bos_devportal_menu对象 dynObjArry[...] bos_devportal_bizunit对象


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: getAppMetadata
param_types_key: DynamicObject
signature_text: public static AppMetadata getAppMetadata(DynamicObject appObject)
comment:
仅设计期使用 根据应用的实体实例对象，获取应用元数据。 如果该应用对应的元数据对象已存在，则更新应用元素信息，如果不存在或id为空，创建新的元数据对象，并更新应用元素信息
@param `appObject` 应用的实体实例对象


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: getFunctionPacketById
param_types_key: String,String,boolean
signature_text:
public static AppFunctionPacketElement getFunctionPacketById(String funcId, String bizAppId, boolean runtime)

comment:
获取应用功能分组实体实例对象。
@param `funcId` 功能分组id
@param `bizAppId` 应用id
@param `runtime` boolean值。true，表示运行时的元数据；false,表示设计时的元数据


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: getFunctionPacketByNumber
param_types_key: String,String,boolean
signature_text:
public static AppFunctionPacketElement getFunctionPacketByNumber(String funcNumber, String bizAppId, boolean runtime)

comment:
根据功能分组编码，获取应用功能分组实体实例对象。
@param `funcNumber` 功能分组编码
@param `bizAppId` 应用id
@param `runtime` boolean值。true，表示运行时的元数据；false,表示设计时的元数据


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: getMenuById
param_types_key: String,String,boolean
signature_text: public static AppMenuElement getMenuById(String menuId, String bizAppId, boolean runtime)
comment:
根据菜单id，获取应用菜单实体实例对象。
@param `menuId` 菜单id
@param `bizAppId` 应用id
@param `runtime` boolean值。true，表示运行时的元数据；false,表示设计时的元数据


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: getMenuByNumber
param_types_key: String,String,boolean
signature_text: public static AppMenuElement getMenuByNumber(String menuNumber, String bizAppId, boolean runtime)
comment:
根据菜单编码，获取应用菜单实体实例对象。
@param `menuNumber` 菜单编码
@param `bizAppId` 应用id
@param `runtime` boolean值。true，表示运行时的元数据；false,表示设计时的元数据


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: loadAppMetadataById
param_types_key: String,boolean
signature_text: public static AppMetadata loadAppMetadataById(String bizAppId, boolean runtime)
comment:
根据bizAppId，加载应用的全部元数据，包括应用自身属性，应用菜单，应用功能分组。 元数据的加载只能逐一加载，无法像查表一样一次返回多个应用数据
@param `bizAppId` 应用id
@param `runtime` boolean值，ture表示读取合并扩展后的运行时元数据，false表示读取该应用自身的元数据
@return 应用元数据


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: loadAppMetadataFromCacheById
param_types_key: String,boolean
signature_text: public static AppMetadata loadAppMetadataFromCacheById(String bizAppId, boolean runtime)
comment:
根据应用id，从缓存中获取应用元数据。如果缓存中没有，则生成应用元数据，并存入缓存
@param `bizAppId` 应用id
@param `runtime` boolean值。true，表示运行时的元数据；false,表示设计时的元数据
@return 应用元数据


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: loadDynamicAppObjectById
param_types_key: String,boolean
signature_text: public static DynamicObject loadDynamicAppObjectById(String bizAppId, boolean runtime)
comment:
根据bizAppId，获取应用自身的DynamicObject属性
@param `bizAppId` 应用id
@param `runtime` boolean值，ture表示读取合并扩展后的运行时元数据，false表示读取该应用自身的元数据


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: parseDiffOperations
param_types_key: String
signature_text: public static java.util.Map<String, Object> parseDiffOperations(String diffXml)
comment:
根据差量化元数据xml，解析出扩展的元素。 该方法会在加载设计期元数据后，如果是扩展应用，进一步对一个用菜单和功能分组对象的type属性(默认为原厂值：1)赋值。
@param `diffXml` 差量化元数据xml
@return 返回map对象, key值为菜单ID或功能分组ID；value值为addNew/edit/remove作为value，来区分出：原厂/扩展/自建


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: save
param_types_key: AppMetadata
signature_text: public static java.util.Map<String, Object> save(AppMetadata metadata)
comment:
保存应用元数据对象
@param `metadata` 应用元数据
@return 返回map对象, key值为success，value值为true，表示保存成功，为false表示保存失败；key值为message，表示成功或失败的原因


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: save
param_types_key: DynamicObject
signature_text: public static java.util.Map<String, Object> save(DynamicObject obj)
comment:
根据实体实例对象更新元数据信息
@param `obj` 实体实例对象，可能是应用、菜单或功能分组
@return 返回map对象, key值为success，value值为true，表示保存成功，为false表示保存失败；key值为message，表示成功或失败的原因


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: save
param_types_key: DynamicObject,String
signature_text: public static java.util.Map<String, Object> save(DynamicObject obj, String bizAppid)
comment:
根据实体实例对象更新元数据信息 对于扩展应用中的菜单，由于obj对象的bizapp值是原厂应用，这里就需要指定当前扩展应用的id
@param `obj` 实体实例对象
@param `bizAppid` 应用id
@return 返回map对象, key值为success，value值为true，表示保存成功，为false表示保存失败；key值为message，表示成功或失败的原因


class_name: kd.bos.servicehelper.devportal.AppMetaServiceHelper
method_name: saveDynamicAppObject
param_types_key: DynamicObject
signature_text: public static java.util.Map<String, Object> saveDynamicAppObject(DynamicObject appObject)
comment:
根据应用实体实例对象，保存应用元数据
@param `appObject` 应用实体实例对象
@return 返回map对象, key值为success，value值为true，表示保存成功，为false表示保存失败；key值为message，表示成功或失败的原因


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: deployCustomerCtlSchema
param_types_key: String,String,InputStream
comment: 部署方案资源 @param `schemaId` 方案Id @param `fileName` 文件名 @param `in` 文件流
signature_text:
public static boolean deployCustomerCtlSchema(String schemaId, String fileName, java.io.InputStream in)


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: getAllAppFunctionPacketsByAppID
param_types_key: String
comment: 据业务应用ID，获取应用下的所有表单功能分组 @param `appID` 应用id @return 功能分组对象集合
signature_text:
public static java.util.List<AppFunctionPacketElement> getAllAppFunctionPacketsByAppID(String appID)


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: getAppFunctionPacketByNumber
param_types_key: String,String
comment: 根据业务应用ID，获取应用下指定编码的功能分组 @param `appID` 应用ID @param `funcNumber` 功能分组编码 @return 功能分组对象
signature_text:
public static AppFunctionPacketElement getAppFunctionPacketByNumber(String appID, String funcNumber)


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: getAppLevelOneFuncsRuntimeInfoById
param_types_key: String
signature_text: public static java.util.List<String> getAppLevelOneFuncsRuntimeInfoById(String appId)
comment:
根据业务应用ID，获取该应用下运行时一级功能分组的id,number,name,parentid [{id:xxx,number:xxx,name:xxx,parentid:xxx,seq:xxx}...]
@param `appId` 应用id
@return 数据结构：[{id:xxx,number:xxx,name:xxx,parentid:xxx,seq:xxx}...]


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: getAppRuntimeInfo
param_types_key: String
signature_text: public static String getAppRuntimeInfo(String appNumber)
comment:
根据业务应用编码，获取应用的运行期元数据信息，包括应用id,number,name
@param `appNumber` 为应用编码
@return 数据结构：{id:xxx,number:xxx,name:xxx,image:xxx,description:xxx}


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: getAppRuntimeMenusInfo
param_types_key: String
signature_text: public static String getAppRuntimeMenusInfo(String appNumber)
comment:
根据业务应用编码，获取每个菜单的id,numbe,name
@param `appNumber` 为应用编码
@return 数据结构：[{id:xxx,number:xxx,name:xxx,parentid:xxx,seq:xxx}...]


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: getAppSubFuncsRuntimeInfo
param_types_key: String,String
signature_text: public static java.util.List<String> getAppSubFuncsRuntimeInfo(String appId, String parentFuncId)
comment:
根据业务应用ID和上级功能分组ID，获取子功能分组的id,number,name,parentid
@param `appId`
@param `parentFuncId`
@return 数据结构:[{id:xxx,number:xxx,name:xxx,parentid:xxx,seq:xxx}...]


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: getAppsDesigntimeInfo
param_types_key: String,boolean,boolean,boolean
signature_text:
public static java.util.List<Object> getAppsDesigntimeInfo(String cloudId, boolean onlyOriginal, boolean onlyVisible, boolean onlyActive)

comment:
获取指定业务云下，设计期符合条件的应用信息
@param `cloudId` 业务云id，指定ID只查改ID，不指定将查所有云下的
@param `onlyOriginal` 是否只查原生应用
@param `onlyVisible` 是否只查可见应用
@param `onlyActive` 是否只查已启用应用
@return 数据结构：[{id:xxx,number:xxx,name:xxx,seq:xxx,image:xxx,description:xxx}...]


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: getAppsDesigntimeInfo
param_types_key: String
signature_text: public static java.util.List<String> getAppsDesigntimeInfo(String cloudId)
comment:
获取指定业务云下，设计期所有可见且启用的应用信息
@param `cloudId` 业务云id
@return 数据结构：[{id:xxx,number:xxx,name:xxx,seq:xxx,image:xxx,description:xxx}...]


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: getAppsRuntimeInfoByCloudId
param_types_key: String
signature_text: public static java.util.List<String> getAppsRuntimeInfoByCloudId(String cloudId)
comment:
根据业务云ID，获取云下运行期的所用应用信息
@param `cloudId` 业务云id
@return 数据结构：[{id:xxx,number:xxx,name:xxx,seq:xxx,image:xxx,description:xxx}...]


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: getCustomerCtlResourcesByAppId
param_types_key: String
comment: 获取方案资源 @param `appId` 应用内码
signature_text:
public static java.util.List<java.util.Map<String, Object>> getCustomerCtlResourcesByAppId(String appId)


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: getCustomerCtlResourcesBySchemaId
param_types_key: String
comment: 获取方案资源 @param `formId` 表单编码
signature_text:
public static java.util.List<java.util.Map<String, Object>> getCustomerCtlResourcesBySchemaId(String formId)


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: getFormsRuntimeInfoByAppId
param_types_key: String
signature_text:
public static java.util.List<java.util.Map<String, Object>> getFormsRuntimeInfoByAppId(String appId)

comment:
根据应用ID，获取应用下的所有表单的运行期配置信息
@param `appId` 应用id
@return 是一个list的map对象：[{id:xxx,number:xxx,name:xxx}...]


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: getRuntimeMainConsoleInfoByCloudId
param_types_key: String
signature_text: public static java.util.List<String> getRuntimeMainConsoleInfoByCloudId(String cloudId)
comment:
根据业务云ID，获取云下运行期的所用应用信息
@param `cloudId` 业务云id
@return 数据结构为：[{cloudinfo:{id:xxx,number:xxx,name:xxx}, appsinfo:[{id:xxx,number:xxx,name:xxx,menus:[{id:xxx,name:xxx,number:xxx,formid:xxx,formnumber:xxx,formname:xxx, submenus:[{id:xxx,name:xxx,number:xxx,formid:xxx,formnumber:xxx,formname:xxx}...]}...]}...]}...]


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: getRuntimeSubsysTree
param_types_key: String[],String[],String,String
signature_text:
public static Object getRuntimeSubsysTree(String[] bizCloudIds, String[] bizAppIds, String industryId, String leafType)

comment:
获取业务云、应用、功能分组、菜单的结构数据
@param `bizCloudIds` 业务云id的集合。获取指定业务云的过滤条件，可以为null，此时表示无过滤条件
@param `bizAppIds` 应用id的集合。获取指定应用的过滤条件，可以为null，此时表示无过滤条件
@param `industryId` 行业标识id。可以为null，此时表示不进行行业过滤
@param `leafType` 叶子节点类型，可以是业务云、应用、菜单、功能分组，对应的取值分别为：cloud,app,menu,func
@return 是一个TreeNode的数据结构


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: getSubsysTree
param_types_key: String[],String[],String,String,boolean,boolean,boolean
signature_text:
public static Object getSubsysTree(String[] bizCloudIds, String[] bizAppIds, String industryId, String leafType, boolean isRuntime, boolean onlyVisible, boolean onlyDeployed)

comment:
获取业务云、应用、功能分组、菜单的结构数据
@param `bizCloudIds` 业务云id的集合。获取指定业务云的过滤条件，可以为null，此时表示无过滤条件
@param `bizAppIds` 应用id的集合。获取指定应用的过滤条件，可以为null，此时表示无过滤条件
@param `industryId` 行业标识id。可以为null，此时表示不进行行业过滤
@param `leafType` 叶子节点类型，可以是业务云、应用、菜单、功能分组，对应的取值分别为：cloud,app,menu,func isRuntime: 是否取运行期数据，为真则只显示非扩展应用且包含扩展信息 onlyVisible,onlyDeployed: isRuntime为真时，默认onlyVisible和onlyDeployed都会真，如需要排除这两项过滤条件，可设为false
@return 是一个TreeNode的数据结构


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: getSysAppsRuntimeInfoGroupByCloud
signature_text: public static java.util.List<String> getSysAppsRuntimeInfoGroupByCloud()
comment:
获取各业务云下运行期的应用信息，如果云下无可显示应用，不显示该云，只包含已启用的应用
@return 数据结构为：[{cloudinfo:{id:xxx,number:xxx,name:xxx}, appsinfo:[{id:xxx,number:xxx,name:xxx,menus:[{id:xxx,name:xxx,number:xxx,formid:xxx,formnumber:xxx,formname:xxx, submenus:[{id:xxx,name:xxx,number:xxx,formid:xxx,formnumber:xxx,formname:xxx}...]}...]}...]}...]


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: getSysAppsRuntimeInfoGroupByCloud
param_types_key: boolean
signature_text: public static java.util.List<String> getSysAppsRuntimeInfoGroupByCloud(boolean onlyActive)
comment:
按云分组获取各云下运行期的应用信息，如果云下无可显示应用，不显示该云
@param `onlyActive` boolean值，true，表示只包含已启用的应用；false，标识所以应用
@return 数据结构为：[{cloudinfo:{id:xxx,number:xxx,name:xxx}, appsinfo:[{id:xxx,number:xxx,name:xxx,menus:[{id:xxx,name:xxx,number:xxx,formid:xxx,formnumber:xxx,formname:xxx, submenus:[{id:xxx,name:xxx,number:xxx,formid:xxx,formnumber:xxx,formname:xxx}...]}...]}...]}...]


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: getSysRuntimeMainConsoleInfoGroupByCloud
signature_text: public static java.util.List<String> getSysRuntimeMainConsoleInfoGroupByCloud()
comment:
按云分组获取各云下运行期的应用信息，如果云下无可显示应用，不显示该云
@return 数据结构为：[{cloudinfo:{id:xxx,number:xxx,name:xxx}, appsinfo:[{id:xxx,number:xxx,name:xxx,menus:[{id:xxx,name:xxx,number:xxx,formid:xxx,formnumber:xxx,formname:xxx, submenus:[{id:xxx,name:xxx,number:xxx,formid:xxx,formnumber:xxx,formname:xxx}...]}...]}...]}...]


class_name: kd.bos.servicehelper.devportal.BizAppServiceHelp
method_name: searchAppAndMenu
param_types_key: String
signature_text: public static Object searchAppAndMenu(String key)
comment:
根据搜素关键字搜素:应用的编码,名称；菜单的名称; 返回值数据结构说明：{apps:[{name:"xxx",number:"xxx",id:"xxx"},{name:"xxx",number:"xxx",id:"xxx"}...],menus:[{id:"xxx",name:"xxx",appId:"xxx"}]}
@param `key`


class_name: kd.bos.servicehelper.devportal.DevPortalServiceHelp
method_name: authorizeDevPortalPermission
param_types_key: List,AuthorizeType,AssignPermMode,List,List
signature_text:
public static DevPortalServiceResult authorizeDevPortalPermission(java.util.List<Object> userIds, AuthorizeType authorizeType, AssignPermMode assignPermMode, java.util.List<Object> authorizeAppIds, java.util.List<Object> authorizeCloudIds)

comment:
开发平台权限授权接口 如果只授权应用或者只授权云，另一个 id传入空集合即可
@param `userIds` 用户 id
@param `authorizeType` 授权方式
@param `authorizeAppIds` 授权的应用 id
@param `authorizeCloudIds` 授权的业务云 id


class_name: kd.bos.servicehelper.DispatchServiceHelper
method_name: getBOSService
param_types_key: String,String,Class
signature_text: public static Object getBOSService(String appId, String serviceName, Class<T> bizCls)
comment:
获取苍穹平台发布的微服务接口
@param `appId` 业务应用编码，如"bos", "gl"，用以定位微服务执行节点
@param `serviceName` 微服务名称，默认为微服务接口短类名
@param `bizCls` 微服务接口定义
@return 返回微服务接口实例


class_name: kd.bos.servicehelper.DispatchServiceHelper
method_name: invokeBOSService
param_types_key: String,String,String,Object[]
signature_text:
public static Object invokeBOSService(String appId, String serviceName, String methodName, Object[] paras)

comment:
调用苍穹平台发布的微服务
@param `appId` 业务应用编码，如"bos", "gl"，用以定位微服务执行节点
@param `serviceName` 微服务接口名
@param `methodName` 服务方法
@param `paras` 服务方法的参数
@return 返回微服务执行结果


class_name: kd.bos.servicehelper.DispatchServiceHelper
method_name: invokeBizService
param_types_key: String,String,String,String,Object[]
signature_text:
public static Object invokeBizService(String cloudId, String appId, String serviceName, String methodName, Object[] paras)

comment:
调用星瀚财务、供应链、制造、HR等业务领域发布的微服务
@param `cloudId` 业务云编码，如"fi"
@param `appId` 业务应用编码，如"gl"，用以定位微服务执行节点
@param `serviceName` 微服务接口名
@param `methodName` 服务方法
@param `paras` 服务方法的参数
@return 返回微服务执行结果


class_name: kd.bos.servicehelper.DispatchServiceHelper
method_name: invokeExternalService
param_types_key: String,String,Map
signature_text:
public static Object invokeExternalService(String callerAppId, String apiNumber, java.util.Map<String, Object> params)

comment:
调用外部第三方接口服务（通过集成云服务转发，默认先路由到二级节点cic）
@param `callerAppId` 调用者发起者所属应用,如：bo, scm,fi
@param `apiNumber` 集成API注册的编码
@param `params` api参数,map格式
@return 返回第三方服务返回结果


class_name: kd.bos.servicehelper.DispatchServiceHelper
method_name: invokeService
param_types_key: String,String,String,String,Object[]
signature_text:
public static Object invokeService(String factoryQualifiedPrefix, String appId, String serviceName, String methodName, Object[] paras)

comment:
调用伙伴、二次开发发布的微服务
@param `factoryQualifiedPrefix` Factory类限定前缀，如：服务工厂"isv.ti.bo.ServiceFactory" 的限定前缀为"isv.ti.bo"
@param `appId` 二开业务应用编码，如"bo"，用以定位微服务执行节点
@param `serviceName` 微服务接口名
@param `methodName` 服务方法
@param `paras` 服务方法的参数
@return 返回微服务执行结果


class_name: kd.bos.servicehelper.earlywarn.EarlyWarnLogHelper
method_name: batchSaveDetailLogs
param_types_key: List
signature_text:
public static void batchSaveDetailLogs(java.util.List<kd.bos.entity.earlywarn.log.EarlyWarnDetailLog> detailLogs)

comment:
批量保存详细执行日志
**EarlyWarnDetailLog 参数详细信息kd.bos.entity.earlywarn.log.EarlyWarnDetailLog**
@param `detailLogs` 日志列表


class_name: kd.bos.servicehelper.earlywarn.EarlyWarnLogHelper
method_name: createLog
param_types_key: String,WarnScheduleOperationType
signature_text:
public static long createLog(String warnScheduleId, kd.bos.entity.earlywarn.log.WarnScheduleOperationType operationType)

comment:
创建预警执行日志
**WarnScheduleOperationType 参数详细信息kd.bos.entity.earlywarn.log.WarnScheduleOperationType**
@param `warnScheduleId` 预警监控方案id
@param `operationType` 操作类型
@return 日志id


class_name: kd.bos.servicehelper.earlywarn.EarlyWarnLogHelper
method_name: endLog
param_types_key: long,WarnScheduleStatus
signature_text: public static void endLog(long id, kd.bos.entity.earlywarn.log.WarnScheduleStatus status)
comment:
结束日志，更新状态
**WarnScheduleStatus 参数详细信息kd.bos.entity.earlywarn.log.WarnScheduleStatus**
@param `id` 日志id
@param `status` 监控方案状态


class_name: kd.bos.servicehelper.earlywarn.EarlyWarnMetaServicHelper
method_name: loadMetaById
param_types_key: String,boolean
comment: 根据id查找业务预计对象元数据 @param `id` 主键 @param `runtime` 是否为运行时 @return 业务预警对象元数据
signature_text:
public static kd.bos.metadata.earlywarn.warn.EarlyWarnMetadata loadMetaById(String id, boolean runtime)


class_name: kd.bos.servicehelper.earlywarn.EarlyWarnMetaServicHelper
method_name: loadMetaByNumber
param_types_key: String,boolean
comment: 加载业务预警对象元数据 @param `number` 业务对象编码 @param `runtime` 是否为运行时 @return 业务预警对象元数据
signature_text:
public static kd.bos.metadata.earlywarn.warn.EarlyWarnMetadata loadMetaByNumber(String number, boolean runtime)


class_name: kd.bos.servicehelper.earlywarn.EarlyWarnMetaServicHelper
method_name: loadMetasByMasterId
param_types_key: String
comment: 根据masterId加载所有业务对象元数据（包含根节点） @param `masterId` 业务对象根节点id @return 所有业务对象元数据
signature_text:
public static java.util.List<kd.bos.metadata.earlywarn.warn.EarlyWarnMetadata> loadMetasByMasterId(String masterId)


class_name: kd.bos.servicehelper.earlywarn.EarlyWarnMetaServicHelper
method_name: save
param_types_key: EarlyWarnMetadata
comment: 保存业务预警对象元数据 @param `metadata` 业务对象元数据 @return 合并后业务对象元数据
signature_text:
public static java.util.Map<String, Object> save(kd.bos.metadata.earlywarn.warn.EarlyWarnMetadata metadata)


class_name: kd.bos.servicehelper.earlywarn.WarnScheduleMetaServiceHelper
method_name: loadMetaById
param_types_key: String,boolean
comment: 根据id查找监控方案元数据 @param `id` 主键 @param `runtime` 是否为运行时 @return 监控方案元数据
signature_text:
public static kd.bos.metadata.earlywarn.warnschedule.WarnScheduleMetadata loadMetaById(String id, boolean runtime)


class_name: kd.bos.servicehelper.earlywarn.WarnScheduleMetaServiceHelper
method_name: loadMetaByNumber
param_types_key: String,boolean
comment: 加载监控方案元数据 @param `number` 监控方案编码 @param `runtime` 是否为运行时 @return 监控方案元数据
signature_text:
public static kd.bos.metadata.earlywarn.warnschedule.WarnScheduleMetadata loadMetaByNumber(String number, boolean runtime)


class_name: kd.bos.servicehelper.earlywarn.WarnScheduleMetaServiceHelper
method_name: save
param_types_key: WarnScheduleMetadata
comment: 保存监控方案元数据 @param `metadata` 监控方案元数据 @return 合并后监控方案元数据
signature_text:
public static java.util.Map<String, Object> save(kd.bos.metadata.earlywarn.warnschedule.WarnScheduleMetadata metadata)


class_name: kd.bos.servicehelper.filter.FilterServiceHelper
method_name: getQFilterByFilterScheme
param_types_key: FilterScheme,String,QFilter
comment: @param `fs` 方案过滤储存对象 @param `entityTypeId` 实体编码 @param `preFilter` QFilter对象
signature_text:
public static QFilter getQFilterByFilterScheme(FilterScheme fs, String entityTypeId, QFilter preFilter)


class_name: kd.bos.servicehelper.filter.FilterServiceHelper
method_name: getQFilterByFilterScheme
param_types_key: FilterScheme,String,QFilter,boolean
signature_text:
getQFilterByFilterScheme(FilterScheme fs, String entityTypeId, QFilter preFilter, boolean isolationOrg)


class_name: kd.bos.servicehelper.filter.FilterServiceHelper
method_name: getQFilterCount
param_types_key: FilterScheme,String,QFilter,boolean
signature_text:
public static int getQFilterCount(FilterScheme fs, String entityTypeId, QFilter preFilter, boolean isolationOrg)

comment:
@param `fs` 方案过滤对象
@param `entityTypeId` 实体ID
@param `preFilter` QFilter对象
@param `isolationOrg` 是否隔离组织


class_name: kd.bos.servicehelper.filter.FilterServiceHelper
method_name: getQFilterCount
param_types_key: FilterScheme,String,QFilter,boolean,String
comment: @param `fs` 方案过滤对象 @param `preFilter` QFilter对象 @param `isolationOrg` 是否隔离组织
signature_text:
public static int getQFilterCount(FilterScheme fs, String entityTypeId, QFilter preFilter, boolean isolationOrg, String appId)


class_name: kd.bos.servicehelper.filter.FilterServiceHelper
method_name: getQFilterCount
param_types_key: String,String,QFilter,boolean
comment: @param `schemeId` 方案ID @param `preFilter` QFilter对象 @param `isolationOrg` 是否隔离组织
signature_text:
public static int getQFilterCount(String schemeId, String entityTypeId, QFilter preFilter, boolean isolationOrg)


class_name: kd.bos.servicehelper.filter.FilterServiceHelper
method_name: getQFiltersByFilterScheme
param_types_key: FilterScheme,String,QFilter,boolean,String
signature_text:
public static java.util.List<QFilter> getQFiltersByFilterScheme(FilterScheme fs, String entityTypeId, QFilter preFilter, boolean isolationOrg, String appId)

comment:
@param `fs` 方案过滤储存对象
@param `entityTypeId` 实体ID
@param `preFilter`
@param `isolationOrg` 是否隔离组织
@param `appId` 应用编码
@return QFilter集


class_name: kd.bos.servicehelper.flex.FlexHelper
method_name: batchSaveFlexData
param_types_key: int,List
signature_text:
public static java.util.List<Long> batchSaveFlexData(int flexTypeId, java.util.List<FlexEntireData> flexEntireDatas)

comment:
批量保存弹性域数据
@param `flexTypeId` 弹性域类型 1：辅助属性 2：核算维度
@param `flexEntireDatas` 弹性域数据集合
@return 批量保存弹性域数据id集合


class_name: kd.bos.servicehelper.flex.FlexHelper
method_name: getBaseUseFlexProperties
param_types_key: String,Object,String
signature_text:
public static java.util.List<Long> getBaseUseFlexProperties(String entityNumber, Object basePKVal, String flexPropertyKey)

comment:
根据基础资料值获取启用的弹性域属性
@param `entityNumber` ` 基础资料实体标识
@param `basePKVal` ` 基础资料值
@param `flexPropertyKey` ` 基础资料上的弹性域属性标识
@return 弹性域属性的id集合


class_name: kd.bos.servicehelper.flex.FlexHelper
method_name: save
param_types_key: MainEntityType,DynamicObject
signature_text: public static long save(MainEntityType flexEntityType, DynamicObject flexObject)
comment:
保存弹性域数据
@param `flexEntityType` ` 弹性域实体类型（基础资料的弹性域完整实体类型）
@param `flexObject` ` 弹性域数据
@return 保存的弹性域数据id


class_name: kd.bos.servicehelper.flex.FlexHelper
method_name: saveFlexData
param_types_key: MainEntityType,FlexEntireData
signature_text: public static long saveFlexData(MainEntityType flexEntityType, FlexEntireData flexEntireData)
comment:
保存弹性域数据
@param `flexEntityType` 弹性域实体类型（基础资料的弹性域完整实体类型）
@param `flexEntireData` 弹性域数据
@return 保存的弹性域数据id


class_name: kd.bos.servicehelper.image.ImageServiceHelper
method_name: cancelRescan
param_types_key: String,String,String
comment: 取消影像退扫
signature_text:
public static String cancelRescan(String barCode, String cancelMessage, String cancelUser) throws Exception


class_name: kd.bos.servicehelper.image.ImageServiceHelper
method_name: createImageInfoBatch
param_types_key: List
comment: 批量生成影像编码接口
signature_text:
public static java.util.Map<String, ImageInfo> createImageInfoBatch(java.util.List<ImageInfo> imageInfoList)


class_name: kd.bos.servicehelper.image.ImageServiceHelper
method_name: getScanHomeUrl
param_types_key: String,String,boolean,boolean,boolean,String
signature_text:
public static String getScanHomeUrl(String personId, String scanLocation, boolean allowShowAnnotation, boolean allowHideMask, boolean allowEditAnnotationMask, String language)

comment:
获取扫描员首页
@param `personId`
@param `scanLocation`
@param `allowShowAnnotation`
@param `allowHideMask`
@param `allowEditAnnotationMask`
@param `language`


class_name: kd.bos.servicehelper.image.ImageServiceHelper
method_name: imageRscan
param_types_key: String,String,String
comment: 影像退扫
signature_text:
public static String imageRscan(String imageNumber, String rescanMessage, String userid) throws Exception


class_name: kd.bos.servicehelper.inte.InteServiceHelper
method_name: batchQueryDirectionByLang
param_types_key: Set
signature_text:
public static java.util.Map<String, String> batchQueryDirectionByLang(java.util.Set<String> langSet)

comment:
批量查询目标语言的文字方向属性值
@param `langSet` 语言编码列表
@return Map<语言编码,文字方向> resultMap - 文字方向属性值:rtl(右>左)/ltr(左>右)


class_name: kd.bos.servicehelper.inte.InteServiceHelper
method_name: convertDate
param_types_key: ChronoLocalDateType,ChronoLocalDateType,String
signature_text:
public static String convertDate(ChronoLocalDateType sourceType, ChronoLocalDateType targetType, String sourceDate)

comment:
描述：从给定日历 @sourceType 的日期字符串 @sourceDate ，转为目标日历 @targetType 的对应日期字符串。
@param `sourceType` 源日历类型
@param `targetType` 目标日历类型
@param `sourceDate` 源日历的日期字符串
@return java.lang.String 对应目标日历日期的字符串


class_name: kd.bos.servicehelper.inte.InteServiceHelper
method_name: getFormat
param_types_key: Long
signature_text: public static FormatObject getFormat(Long formatID)
comment:
描述：根据区域格式ID，获取区域格式的具体内容
注意：底层查询方法会有返回null的情况，所以调用方需要进行null判断
@param `formatID` 区域格式ID，如果传0则返回默认的区域格式
@return 区域格式信息


class_name: kd.bos.servicehelper.inte.InteServiceHelper
method_name: getSysTimezone
signature_text: public static DynamicObject getSysTimezone()
comment:
描述：获取系统的时区信息。
此方法返回一个包含系统时区信息的 `DynamicObject` 对象，该对象封装了当前系统的时区数据，通常是一个表示时区的字符串。 此方法不需要任何外部输入参数，直接调用即可获取时区信息。
DynamicObject timezone = someObject.getSysTimezone();
String timezoneString = timezone.getString("number");
System.out.println("Current System Timezone: " + timezoneString);
@return 一个 `DynamicObject` 对象，包含系统时区信息。


class_name: kd.bos.servicehelper.inte.InteServiceHelper
method_name: getUserFormat
param_types_key: Long
signature_text: public static FormatObject getUserFormat(Long userID)
comment:
描述：根据用户ID信息,获取该用户的区域格式
@param `userID` 用户ID
@return Map key:dateFormat 日期格式 yyyy-MM-dd; timeFormat 时间格式 hh:mm:ss; numberFormat 数字格式 ##,###.##


class_name: kd.bos.servicehelper.inte.InteServiceHelper
method_name: saveOrgTimezone
param_types_key: Long,DynamicObject
signature_text: public static void saveOrgTimezone(Long orgID, DynamicObject timezone)
comment:
描述：根据组织ID和时区对象,保存组织的时区信息
@param `orgID` ` 组织ID
@param `timezone` ` 时区 注意:保存成功后,组织时区信息立即生效.对通过组织时区控制的长日期时间控件内容显示会产生影响.


class_name: kd.bos.servicehelper.inte.InteServiceHelper
method_name: saveUserTimezone
param_types_key: Long,DynamicObject
signature_text: public static void saveUserTimezone(Long userID, DynamicObject timezone)
comment:
描述：根据用户ID和时区对象,保存该用户的个人时区
@param `userID` ` 用户ID
@param `timezone` ` 时区 注意:保存成功后,个人时区信息立即生效.对通过个人时区控制的长日期控件内容显示会产生影响.


class_name: kd.bos.servicehelper.inte.InteServiceHelper
method_name: updateUserTimeZone
param_types_key: Long,String
signature_text: public static java.util.Map<String, Object> updateUserTimeZone(Long userId, String timeZoneNum)
comment:
描述：根据用户ID，更新用户的个人时区信息
@param `userId` 人员id
@param `timeZoneNum` 时区编码
@return 更新结果为Map类型。包含了更新是否成功，错误信息等内容。


class_name: kd.bos.servicehelper.license.LicenseServiceHelper
method_name: addUserGroupById
param_types_key: Set,Set,Long
signature_text:
public static java.util.List<LicenseError> addUserGroupById(java.util.Set<Long> userIds, java.util.Set<Long> groupIds, Long legalPersonID)

comment:
添加用户许可
@param `userIds`
@param `groupIds`
@param `legalPersonID` 开启法人参数时传入，非法人公司可以为null
@return List 包括错误类型，原因等


class_name: kd.bos.servicehelper.license.LicenseServiceHelper
method_name: addUserLicGroupByBizAppAndBizObj
param_types_key: Long,Map
signature_text:
public static java.util.Map<String, Object> addUserLicGroupByBizAppAndBizObj(Long userId, java.util.Map<String, java.util.List<String>> bizAppAndObjInfo)

comment:
描述：根据应用和业务对象分配用户至对应分组
@param `userId` 用户Id
@param `bizAppAndObjInfo` Map<应用id,List<业务对象编码>>
@return key:success value:true 调用成功


class_name: kd.bos.servicehelper.license.LicenseServiceHelper
method_name: addUserListByGroupId
param_types_key: Object,List
comment: 将分组-用户保存至许可用户分组表 @param `groupId` 许可分组id @param `userIds` 用户id集合 @return 返回成功用户集合
signature_text:
public static java.util.List<Long> addUserListByGroupId(Object groupId, java.util.List<Long> userIds)


class_name: kd.bos.servicehelper.license.LicenseServiceHelper
method_name: addUserListByGroupId
param_types_key: Object,List,Long
signature_text:
public static java.util.List<Long> addUserListByGroupId(Object groupId, java.util.List<Long> userIds, Long legalPersonID)

comment:
将分组-用户保存至许可用户分组表
@param `groupId` 许可分组id
@param `userIds` 用户id集合
@param `legalPersonID` 法人公司ID
@return 返回成功用户集合


class_name: kd.bos.servicehelper.license.LicenseServiceHelper
method_name: addUserListByGroupNum
param_types_key: String,List
comment: 将分组编码-用户保存至许可用户分组表 @param `groupNumber` 许可分组编码 @param `userIds` 用户id集合 @return 返回成功用户集合
signature_text:
public static java.util.List<Long> addUserListByGroupNum(String groupNumber, java.util.List<Long> userIds)


class_name: kd.bos.servicehelper.license.LicenseServiceHelper
method_name: addUsersLicGroupByBizAppAndBizObj
param_types_key: List,Map
signature_text:
public static java.util.Map<String, Object> addUsersLicGroupByBizAppAndBizObj(java.util.List<Long> userIds, java.util.Map<String, java.util.List<String>> bizAppAndObjInfo)

comment:
描述：根据应用和业务对象分配用户至对应分组
@param `userIds` 用户Id结合
@param `bizAppAndObjInfo` Map<应用id,List<业务对象编码>>
@return key:success value:true 调用成功


class_name: kd.bos.servicehelper.license.LicenseServiceHelper
method_name: deleteUserGroupById
param_types_key: Set,Set,Long
signature_text:
public static java.util.List<LicenseError> deleteUserGroupById(java.util.Set<Long> userIds, java.util.Set<Long> groupIds, Long legalPersonID)

comment:
删除用户许可
@param `userIds`
@param `groupIds`
@param `legalPersonID` 开启法人参数时传入，非法人公司可以为null
@return List 包括错误类型，原因等


class_name: kd.bos.servicehelper.license.LicenseServiceHelper
method_name: deleteUserLic
param_types_key: Set
signature_text: public static void deleteUserLic(java.util.Set<Long> userID)
comment:
描述：删除用户所有许可（苍穹版本v6.0之前 只是写入增量表中，下次同步许可时尝试删除，V6.0及之后的版本中为直接删除该用户的全部许可分组分配关系）
@param `userID` 需要删除许可的用户ID集合


class_name: kd.bos.servicehelper.log.LogServiceHelper
method_name: getOperationLogByUserId
param_types_key: Long,int,int
comment: 查询上机操作日志 @param `userId` @param `month`
signature_text:
public static java.util.List<java.util.Map<String, Object>> getOperationLogByUserId(Long userId, int month, int top)


class_name: kd.bos.servicehelper.message.MessageServiceHelper
method_name: dingdingUpdateProcessInstanceState
param_types_key: String,String
comment: 更新钉钉实例状态 @param `state` @param `dingProcessInstId`
signature_text:
public static java.util.Map<String, Object> dingdingUpdateProcessInstanceState(String state, String dingProcessInstId)


class_name: kd.bos.servicehelper.message.MessageServiceHelper
method_name: queryDDTask
param_types_key: String,long,long,long
comment: 查询钉钉待办任务 @param `userId` @param `offSet` @param `count` @param `status`
signature_text:
public static java.util.Map<String, Object> queryDDTask(String userId, long offSet, long count, long status)


class_name: kd.bos.servicehelper.MetadataServiceHelper
method_name: copyMobleFormMetadata
param_types_key: String,String,String,String,LocaleString
signature_text:
public static java.util.Map<String, Object> copyMobleFormMetadata(String tplId, String bizAppId, String bizUnitId, String newNumber, LocaleString newName)

comment:
复制移动表单模板元数据
@param `tplId` 源模版的PK
@param `bizUnitId` 所属业务单元
@param `newNumber` 新建表单编码
@param `newName` 新建表单名称
@return Map对象


class_name: kd.bos.servicehelper.notification.NotificationServiceHelper
method_name: sendClearNotification
param_types_key: String,List,int
comment: 发送清除消息通知 @param `userId` @param `notificationIds` @param `level`
signature_text:
public static void sendClearNotification(String userId, java.util.List<String> notificationIds, int level)


class_name: kd.bos.servicehelper.notification.NotificationServiceHelper
method_name: sendNotification
param_types_key: List,NotificationFormInfo
comment: 发送消息通知 @param `userIds` @param `notificationFormInfo`
signature_text:
public static void sendNotification(java.util.List<String> userIds, NotificationFormInfo notificationFormInfo)


class_name: kd.bos.servicehelper.notification.NotificationServiceHelper
method_name: sendNotificationByLang
param_types_key: Map,NotificationFormInfo,String
signature_text:
public static void sendNotificationByLang(java.util.Map<String, java.util.List<String>> userSessionIdsMap, NotificationFormInfo notificationFormInfo, String lang)

comment:
采取根据sessionid方式发送，为了兼容发送端和接收端不在同一种语言环境
@param `userSessionIdsMap`
@param `notificationFormInfo`
@param `lang`


class_name: kd.bos.servicehelper.OpBizRuleSetServiceHelper
method_name: deleteOpBizRuleSet
param_types_key: String,String
signature_text: public static void deleteOpBizRuleSet(String entityNumber, String opBizRuleId)
comment:
删除单据的操作服务（物理删除） 特别注意：如果修改配置，请不要先调用String)，然后调用String, List) 先删除后插入会有个时间差，如果操作服务正在执行，就极可能读取到操作服务被删的结果，导致极个别单据执行操作时，未同步执行操作服务。 修改配置，直接调用String, List)即可，该服务内部会先把原有配置读出，改动后再保存，不会有时间差
@param `entityNumber` 单据
@param `opBizRuleId` 服务


class_name: kd.bos.servicehelper.OpBizRuleSetServiceHelper
method_name: saveOpBizRuleSet
param_types_key: String,String,Boolean
signature_text: public static void saveOpBizRuleSet(String entityNumber, String opBizRuleId, Boolean selectAllop)
comment:
保存单据启用的操作服务
@param `entityNumber` 实体
@param `opBizRuleId` 服务id
@param `selectAllop` 是否所有操作（请注意，该参数值不会清空操作分录的配置） true:应用于所有操作 false:按操作分录的配置启用


class_name: kd.bos.servicehelper.operation.DeleteServiceHelper
method_name: delete
param_types_key: IDataEntityType,Object[]
signature_text: public static void delete(IDataEntityType type, Object[] pks)
comment:
删除一批实体数据（物理删除）
**注意：**
* 直接删库，不走删除校验。
* 调用本方法，会同步删除主实体及下级实体的所有物理表格数据，不可恢复。
* 例如，单据实体有单据头、单据体、子单据体、多语言表、拆分表等，调用本方法，会把单据头、单据体、子单据体、多语言表、拆分表等物理表格数据一并删除，不可恢复。
* 请控制传入的实体数据内码个数，分批调用本方法。一次传入太多内码可能会引发OOM异常。
@param `type` 实体
@param `pks` 要删除的一批实体数据内码


class_name: kd.bos.servicehelper.operation.DeleteServiceHelper
method_name: delete
param_types_key: String,QFilter[],int
signature_text: public static int delete(String entityName, QFilter[] qFilters, int top)
comment:
按条件删除实体数据，并限制最大删除数据量（物理删除）
**注意：**
* 直接删库，不走删除校验。
* 传入空条件或top数超出限制范围会中断
* 调用本方法，会同步删除主实体及下级实体的所有物理表格数据，不可恢复。
* 例如，单据实体有单据头、单据体、子单据体、多语言表、拆分表等，调用本方法，会把单据头、单据体、子单据体、多语言表、拆分表等物理表格数据一并删除，不可恢复。
* 请合理设置删除条件：错误条件可能会导致误删数据，而过于宽松的条件可能会导致整个物理表格数据被删除，不可恢复；符合条件的数据太多，则容易发生OOM异常。
@param `entityName` 实体编码
@param `qFilters` 数据删除条件 禁止传入空条件
@param `top` 设置最大删除数据量 范围(0,10000]


class_name: kd.bos.servicehelper.operation.DeleteServiceHelper
method_name: deleteOperate
param_types_key: String,String,Object[],OperateOption
signature_text:
public OperationResult deleteOperate(String operationKey, String entityName, Object[] pks, OperateOption option)

comment:
调用单据删除操作（物理删除）
**注意：**
* 执行删除校验及插件，校验通过后才删库。
* 调用本方法，会同步删除单据主实体及下级实体的所有物理表格数据，不可恢复。
* 例如，单据实体有单据头、单据体、子单据体、多语言表、拆分表等，调用本方法，会把单据头、单据体、子单据体、多语言表、拆分表等物理表格数据一并删除，不可恢复。
* 请控制传入的单据数据内码个数，分批调用本方法。一次传入太多内码可能会引发OOM异常。
@param `operationKey` 删除操作标识
@param `entityName` 单据主实体编码
@param `pks` 要删除的一批单据数据内码
@param `option` 可选参数
@return 返回删除操作结果


class_name: kd.bos.servicehelper.operation.DeleteServiceHelper
method_name: deleteOperate
param_types_key: String,Object[],OperateOption
signature_text: public OperationResult deleteOperate(String entityName, Object[] pks, OperateOption option)
comment:
调用单据删除操作（物理删除）
**注意：**
* 执行删除校验及插件，校验通过后才删库。
* 调用本方法，会同步删除单据主实体及下级实体的所有物理表格数据，不可恢复。
* 例如，单据实体有单据头、单据体、子单据体、多语言表、拆分表等，调用本方法，会把单据头、单据体、子单据体、多语言表、拆分表等物理表格数据一并删除，不可恢复。
* 请控制传入的单据数据内码个数，分批调用本方法。一次传入太多内码可能会引发OOM异常。
@param `entityName` 单据主实体编码
@param `pks` 要删除的一批单据数据内码
@param `option` 可选参数
@return 返回删除操作结果


class_name: kd.bos.servicehelper.operation.OperationServiceHelper
method_name: executeOperate
param_types_key: String,String,DynamicObject[],OperateOption
signature_text:
public static OperationResult executeOperate(String operationKey, String entityNumber, DynamicObject[] dataEntities, OperateOption option)

comment:
调用操作服务 （微服务调用，请注意对事务和入参的影响，详情见类注释）
@param `operationKey` 操作key
@param `entityNumber` 实体ID，设计器中对应的标识
@param `dataEntities` 需要操作的数据
@param `option` 自定义参数
@return 操作结果


class_name: kd.bos.servicehelper.operation.OperationServiceHelper
method_name: executeOperate
param_types_key: String,String,Object[],OperateOption
signature_text:
public static OperationResult executeOperate(String operationKey, String entityNumber, Object[] ids, OperateOption option)

comment:
调用操作服务
@param `operationKey` 操作key
@param `entityNumber` 实体ID，设计器中对应的标识
@param `ids` 数据实体的id（主键）
@param `option` 自定义参数
@return 操作结果


class_name: kd.bos.servicehelper.operation.SaveServiceHelper
method_name: save
param_types_key: IDataEntityType,Object[]
signature_text: public static Object[] save(IDataEntityType type, Object[] dataEntities)
comment:
保存实体数据
**注意：**
* 直接保存入库，不走操作校验。
* 调用本方法时，会自动分析出实体数据中增加、删除、修改的分录行，同步插入、删除、更新物理表格中的分录行记录。
* 调用本方法前，清理实体数据中的分录行需谨慎：本方法会识别出被清理的分录行，自动同步删除物理表格中的分录行记录，无法恢复。
* 请控制传入的实体数据数量，分批调用本方法。一次传入太多数据可能会引发OOM异常。
@param `type` 实体类型
@param `dataEntities` 数据包
@return 返回保存成功的数据包


class_name: kd.bos.servicehelper.operation.SaveServiceHelper
method_name: save
param_types_key: IDataEntityType,Object[],OperateOption
signature_text: public static Object[] save(IDataEntityType type, Object[] dataEntities, OperateOption option)
comment:
保存实体数据
**注意：**
* 直接保存入库，不走操作校验。
* 调用本方法时，会自动分析出实体数据中增加、删除、修改的分录行，同步插入、删除、更新物理表格中的分录行记录。
* 调用本方法前，清理实体数据中的分录行需谨慎：本方法会识别出被清理的分录行，自动同步删除物理表格中的分录行记录，无法恢复。
* 请控制传入的实体数据数量，分批调用本方法。一次传入太多数据可能会引发OOM异常。
@param `type` 实体类型
@param `dataEntities` 数据包
@param `option` 提供更新快照和清理缓存数据参数， kd.bos.entity.operate.OperateOptionConst#ORM_SAVEOP_REMOVECACHEkd.bos.entity.operate.OperateOptionConst#ORM_SAVEOP_COMMITPKSNAPSHOT
@return 返回保存成功的数据包


class_name: kd.bos.servicehelper.operation.SaveServiceHelper
method_name: save
param_types_key: IDataEntityType,Object[],boolean
signature_text: public static Object[] save(IDataEntityType type, Object[] dataEntities, boolean commitSnapData)
comment:
保存实体数据
**注意：**
* 直接保存入库，不走操作校验。
* 调用本方法时，会自动分析出实体数据中增加、删除、修改的分录行，同步插入、删除、更新物理表格中的分录行记录。
* 调用本方法前，清理实体数据中的分录行需谨慎：本方法会识别出被清理的分录行，自动同步删除物理表格中的分录行记录，无法恢复。
* 请控制传入的实体数据数量，分批调用本方法。一次传入太多数据可能会引发OOM异常。
传入false，不同步更新数据包状态，可以提升性能；但因为数据包状态已过时，再次调用保存，分析增删改行时会出错。
@param `type` 实体类型
@param `dataEntities` 数据包
@param `commitSnapData` ` 设置为true，保存完毕同步更新数据包的状态（快照、脏标志），会耗费性能。快照用于保存时对比数据包变化。
@return 返回保存成功的数据包


class_name: kd.bos.servicehelper.operation.SaveServiceHelper
method_name: save
param_types_key: DynamicObject[]
signature_text: public static Object[] save(DynamicObject[] dataEntities)
comment:
保存实体数据
**注意：**
* 直接保存入库，不走操作校验。
* 调用本方法时，会自动分析出实体数据中增加、删除、修改的分录行，同步插入、删除、更新物理表格中的分录行记录。
* 调用本方法前，清理实体数据中的分录行需谨慎：本方法会识别出被清理的分录行，自动同步删除物理表格中的分录行记录，无法恢复。
* 请控制传入的实体数据数量，分批调用本方法。一次传入太多数据可能会引发OOM异常。
@param `dataEntities` 数据包
@return 返回保存成功的数据包


class_name: kd.bos.servicehelper.operation.SaveServiceHelper
method_name: save
param_types_key: DynamicObject[],OperateOption
signature_text: public static Object[] save(DynamicObject[] dataEntities, OperateOption option)
comment:
保存实体数据
**注意：**
* 直接保存入库，不走操作校验。
* 调用本方法时，会自动分析出实体数据中增加、删除、修改的分录行，同步插入、删除、更新物理表格中的分录行记录。
* 调用本方法前，清理实体数据中的分录行需谨慎：本方法会识别出被清理的分录行，自动同步删除物理表格中的分录行记录，无法恢复。
* 请控制传入的实体数据数量，分批调用本方法。一次传入太多数据可能会引发OOM异常。
@param `dataEntities` 数据包
@param `option` 提供更新快照和清理缓存数据参数， kd.bos.entity.operate.OperateOptionConst#ORM_SAVEOP_REMOVECACHEkd.bos.entity.operate.OperateOptionConst#ORM_SAVEOP_COMMITPKSNAPSHOT
@return 返回保存成功的数据包


class_name: kd.bos.servicehelper.operation.SaveServiceHelper
method_name: save
param_types_key: DynamicObject[],boolean
signature_text: public static Object[] save(DynamicObject[] dataEntities, boolean commitSnapData)
comment:
保存实体数据
**注意：**
* 直接保存入库，不走操作校验。
* 调用本方法时，会自动分析出实体数据中增加、删除、修改的分录行，同步插入、删除、更新物理表格中的分录行记录。
* 调用本方法前，清理实体数据中的分录行需谨慎：本方法会识别出被清理的分录行，自动同步删除物理表格中的分录行记录，无法恢复。
* 请控制传入的实体数据数量，分批调用本方法。一次传入太多数据可能会引发OOM异常。
传入false，不同步更新数据包状态，可以提升性能；但因为数据包状态已过时，再次调用保存，分析增删改行时会出错。
@param `dataEntities` 数据包
@param `commitSnapData` ` 设置为true，保存完毕同步更新数据包的状态（快照、脏标志），会耗费性能。快照用于保存时对比数据包变化。
@return 返回保存成功的数据包


class_name: kd.bos.servicehelper.operation.SaveServiceHelper
method_name: saveOperate
param_types_key: String,DynamicObject[],OperateOption
signature_text:
public static OperationResult saveOperate(String entityNumber, DynamicObject[] dataEntities, OperateOption option)

comment:
调用单据保存操作
**注意：**
* 先执行单据保存操作校验及操作插件，通过后才保存入库。
* 调用本方法时，会自动分析出实体数据中增加、删除、修改的分录行，同步插入、删除、更新物理表格中的分录行记录。
* 调用本方法前，清理实体数据中的分录行需谨慎：本方法会识别出被清理的分录行，自动同步删除物理表格中的分录行记录，无法恢复。
* 请控制传入的单据数据量，分批调用本方法。一次传入太多数据可能会引发OOM异常。
@param `entityNumber` 单据主实体编码
@param `dataEntities` 单据数据包
@param `option` 自定义参数，可选。可通过设置自定义参数值控制保存操作行为
@return 返回操作结果


class_name: kd.bos.servicehelper.operation.SaveServiceHelper
method_name: saveOperate
param_types_key: String,String,DynamicObject[],OperateOption
signature_text:
public static OperationResult saveOperate(String operationKey, String entityNumber, DynamicObject[] dataEntities, OperateOption option)

comment:
调用单据保存操作
**注意：**
* 先执行单据保存操作校验及操作插件，通过后才保存入库。
* 调用本方法时，会自动分析出实体数据中增加、删除、修改的分录行，同步插入、删除、更新物理表格中的分录行记录。
* 调用本方法前，清理实体数据中的分录行需谨慎：本方法会识别出被清理的分录行，自动同步删除物理表格中的分录行记录，无法恢复。
* 请控制传入的单据数据量，分批调用本方法。一次传入太多数据可能会引发OOM异常。
@param `operationKey` 保存操作标识
@param `entityNumber` 单据主实体编码
@param `dataEntities` 单据数据包
@param `option` 自定义参数，可选。可通过设置自定义参数值控制保存操作行为
@return 返回操作结果


class_name: kd.bos.servicehelper.operation.SaveServiceHelper
method_name: update
param_types_key: DynamicObject[]
signature_text: public static void update(DynamicObject[] dataEntities)
comment:
更新实体数据
**注意：**
* 直接更新入库，不走操作校验。
* 请控制传入的实体数据数量，分批调用本方法。一次传入太多数据可能会引发OOM异常。
@param `dataEntities` 数据包


class_name: kd.bos.servicehelper.operation.SaveServiceHelper
method_name: update
param_types_key: DynamicObject[],OperateOption
signature_text: public static void update(DynamicObject[] dataEntities, OperateOption option)
comment:
更新实体数据
**注意：**
* 直接更新入库，不走操作校验。
* 请控制传入的实体数据数量，分批调用本方法。一次传入太多数据可能会引发OOM异常。
@param `dataEntities` 数据包
@param `option` 可选参数


class_name: kd.bos.servicehelper.operation.SaveServiceHelper
method_name: update
param_types_key: DynamicObject,OperateOption
signature_text: public static void update(DynamicObject dataEntity, OperateOption option)
comment:
更新数据
**注意：**
* 直接更新入库，不走操作校验。
@param `dataEntity` 数据包
@param `option` 提供更新快照和清理缓存数据参数， kd.bos.entity.operate.OperateOptionConst#ORM_SAVEOP_REMOVECACHEkd.bos.entity.operate.OperateOptionConst#ORM_SAVEOP_COMMITPKSNAPSHOT


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: addDuty
param_types_key: List
signature_text: public static void addDuty(java.util.List<OrgParam> paramList)
comment:
批量增加组织职能
@param `paramList` 组织参数对象列表。执行结果回填到参数对象OrgParam，须判断是否执行成功标志success，失败时错误信息通过参数对象OrgParam的msg属性获取。


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: addOrUpdate
param_types_key: List
signature_text: public static void addOrUpdate(java.util.List<OrgParam> paramList)
comment:
批量新增或更新组织：参数对象设置了ID时执行更新，否则执行新增
@param `paramList` 组织参数对象列表。执行结果回填到参数对象OrgParam，须判断是否执行成功标志success，失败时错误信息通过参数对象OrgParam的msg属性获取。


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: checkOrgFunction
param_types_key: Long,String
signature_text: public static boolean checkOrgFunction(Long orgID, String orgFunction)
comment:
描述：检查指定组织是否具有指定职能
@param `orgID` 组织ID
@param `orgFunction` 组织职能编码
@return 如果指定组织具有指定职能，则返回true，否则返回false


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: deleteDuty
param_types_key: List
signature_text: public static void deleteDuty(java.util.List<OrgParam> paramList)
comment:
批量删除组织职能
@param `paramList` 组织参数对象列表。执行结果回填到参数对象OrgParam，须判断是否执行成功标志success，失败时错误信息通过参数对象OrgParam的msg属性获取。


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: disable
param_types_key: List
signature_text: public static void disable(java.util.List<OrgParam> paramList)
comment:
批量禁用组织
@param `paramList` 组织参数对象列表。执行结果回填到参数对象OrgParam，须判断是否执行成功标志success，失败时错误信息通过参数对象OrgParam的msg属性获取。


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: enable
param_types_key: List
signature_text: public static void enable(java.util.List<OrgParam> paramList)
comment:
批量启用组织
@param `paramList` 组织参数对象列表。执行结果回填到参数对象OrgParam，须判断是否执行成功标志success，失败时错误信息通过参数对象OrgParam的msg属性获取。


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: filterOrg
param_types_key: List,long,boolean,boolean
signature_text:
public static java.util.List<Long> filterOrg(java.util.List<Long> orgIds, long viewId, boolean isFilterDisable, boolean isFilterFreeze)

comment:
过滤相应职能下禁用或者封存组织
@param `orgIds` 原组织ID集合
@param `viewId` 视图方案编id
@param `isFilterDisable` 是否过滤禁用组织
@param `isFilterFreeze` 是否过滤封存组织
@return 过滤后的组织集合


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: freeze
param_types_key: List
signature_text: public static void freeze(java.util.List<OrgParam> paramList)
comment:
批量封存组织
@param `paramList` 组织参数对象列表。执行结果回填到参数对象OrgParam，须判断是否执行成功标志success，失败时错误信息通过参数对象OrgParam的msg属性获取。


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getAccountingBizUnit
param_types_key: long,List,boolean,boolean
signature_text:
public static java.util.Map<Long, java.util.Map<String, Object>> getAccountingBizUnit(long viewId, java.util.List<Long> orgIds, boolean isBizUnit, boolean isSearchUpward)

comment:
描述：获取指定视图的组织（如行政组织、业务单元）的核算主体 提供根据行政组织获取核算主体接口： 1.若业务单据返回的组织是行政组织，则需根据业务单元分配部门的关系，找到业务单元所属核算主体。 2.因业务单元分配部门存在两者多对多的关系，会导致返回多个核算主体的情况，这种情况下随机返回一个核算组织 3.若业务单元分配部门没有配置，这种情况下，优先找本组织对应的核算组织，其次上级行政组织是不是核算主体。
@param `viewId` 视图方案ID
@param `orgIds` 组织ID
@param `isBizUnit` 是否业务实体，当需要查询“业务实体”的核算主体时传递true，当只需要查询核算主体时传递false.
@param `isSearchUpward` 是否逐级查找
@return Map> 组织ID-业务组织的核算主体信息，key信息： id， number， name


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getAdminOrgRelation
param_types_key: List,boolean
signature_text:
public static java.util.List<Long> getAdminOrgRelation(java.util.List<Long> orgIds, boolean isReturnAdminOrg)

comment:
根据行政组织协作关系查询组织
@param `orgIds` 源组织
@param `isReturnAdminOrg` 是否返回行政组织（true：返回行政组织；false：返回业务单元）
@return 返回业务协作关系对应的组织


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getAdminOrgRelationMap
param_types_key: List,boolean
signature_text:
public static java.util.Map<Long, java.util.Set<Long>> getAdminOrgRelationMap(java.util.List<Long> orgIds, boolean isReturnAdminOrg)

comment:
根据行政组织协作关系查询组织
@param `orgIds` 源组织
@param `isReturnAdminOrg` 是否返回行政组织（true：返回行政组织；false：返回业务单元）
@return 行政组织与业务单元的键值对


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getAllOrgByViewId
param_types_key: long,boolean
signature_text: public static java.util.List<Long> getAllOrgByViewId(long viewId, boolean isIncludeDisable)
comment:
根据视图类型主键获取所有组织ID
@param `viewId` 组织视图ID
@param `isIncludeDisable` 是否包含禁用组织（true：返回结果包含禁用的组织；false：返回结果不包含禁用的组织）
@return 组织ID列表


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getAllOrgByViewNumber
param_types_key: String,boolean
signature_text:
public static java.util.List<Long> getAllOrgByViewNumber(String viewSchemaNumber, boolean isIncludeDisable)

comment:
根据视图方案编码获取所有组织
@param `viewSchemaNumber` 视图方案编码
@param `isIncludeDisable` 是否包含禁用组织（true：返回结果包含禁用的组织；false：返回结果不包含禁用的组织）
@return 组织ID列表


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getAllSubordinateOrgMap
param_types_key: String,List,boolean
signature_text:
public static java.util.Map<Long, java.util.List<Long>> getAllSubordinateOrgMap(String viewSchemaNumber, java.util.List<Long> orgIds, boolean isIncludeCurOrg)

comment:
根据视图方案编码获取所有下级组织
@param `viewSchemaNumber` 视图方案编码
@param `orgIds` 组织ID列表
@param `isIncludeCurOrg` 是否包含参数组织“orgIds”（true：返回结果包含参数传入的组织；false：返回结果不包含参数传入的组织）
@return 组织与其下级组织ID集合的键值对


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getAllSubordinateOrgMap
param_types_key: long,List,boolean
signature_text:
public static java.util.Map<Long, java.util.List<Long>> getAllSubordinateOrgMap(long viewId, java.util.List<Long> orgIds, boolean isIncludeCurOrg)

comment:
根据视图方案编码获取所有下级组织
@param `viewId` 视图方案ID
@param `orgIds` 组织ID列表
@param `isIncludeCurOrg` 是否包含参数组织“orgIds”（true：返回结果包含参数传入的组织；false：返回结果不包含参数传入的组织）
@return 组织与其下级组织ID集合的键值对


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getAllSubordinateOrgs
param_types_key: Long,List,boolean
signature_text:
public static java.util.List<Long> getAllSubordinateOrgs(Long viewType, java.util.List<Long> orgIds, boolean bIncludeCurOrg)

comment:
获得当前组织的所有下属组织，根据参数判断是否包含当前组织
@param `viewType` 组织视图ID
@param `orgIds` orgId 组织ID列表
@param `bIncludeCurOrg` 是否包含参数组织“orgIds”（true：返回结果包含参数传入的组织；false：返回结果不包含参数传入的组织）
@return 下级组织ID列表


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getAllSubordinateOrgs
param_types_key: Long,List,boolean,boolean
signature_text:
public static java.util.List<Long> getAllSubordinateOrgs(Long viewType, java.util.List<Long> orgIds, boolean bIncludeCurOrg, boolean isIncludeDisable)

comment:
获得当前组织的所有下属组织，根据参数判断是否包含当前组织
@param `viewType` 组织视图ID
@param `orgIds` 组织ID列表
@param `bIncludeCurOrg` 是否包含参数组织“orgIds”（true：返回结果包含参数传入的组织；false：返回结果不包含参数传入的组织）
@param `isIncludeDisable` 是否包含封存组织（true：返回结果包含封存的组织；false：返回结果不包含封存的组织）
@return 下级组织ID列表


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getAllSubordinateOrgs
param_types_key: String,List,boolean
signature_text:
public static java.util.List<Long> getAllSubordinateOrgs(String viewSchemaNumber, java.util.List<Long> orgIds, boolean isIncludeCurOrg)

comment:
根据视图方案编码获取所有下级组织
@param `viewSchemaNumber` 视图方案编码
@param `orgIds` 组织ID列表
@param `isIncludeCurOrg` 是否包含参数组织“orgIds”（true：返回结果包含参数传入的组织；false：返回结果不包含参数传入的组织）
@return 组织ID列表


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getAllSubordinateOrgs
param_types_key: String,List,boolean,boolean
signature_text:
public static java.util.List<Long> getAllSubordinateOrgs(String viewSchemaNumber, java.util.List<Long> orgIds, boolean isIncludeCurOrg, boolean isIncludeDisable)

comment:
根据视图方案编码获取所有下级组织
@param `viewSchemaNumber` 视图方案编码
@param `orgIds` 组织ID列表
@param `isIncludeCurOrg` 是否包含参数组织“orgIds”（true：返回结果包含参数传入的组织；false：返回结果不包含参数传入的组织）
@param `isIncludeDisable` 是否包含封存组织（true：返回结果包含封存的组织；false：返回结果不包含封存的组织）
@return 组织ID列表


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getAllSuperiorOrgs
param_types_key: String,List
comment: 获取组织的所有上级组织 @param `viewNumber` ` 组织视图方案编码 @param `orgIds` 组织ID列表 @return 组织与其上级组织ID集合的键值对
signature_text:
public static java.util.Map<Long, java.util.List<Long>> getAllSuperiorOrgs(String viewNumber, java.util.List<Long> orgIds)


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getBelongToOrgByPatternOrType
param_types_key: boolean,String,long,String[]
signature_text:
public static java.util.Map<String, Object> getBelongToOrgByPatternOrType(boolean isByPatternType, String orgViewNumber, long orgId, String[] patternOrPatternTypes)

comment:
根据组织形态或者组织形态类型获取所属组织
{
ID：组织ID,
number：编码，
name：名称，
uniformsocialcreditcode：统一信用代码，
firmname：法人公司的名称，
address：注册地址，
representative：法定代表人，
depositbank：开户银行，
bankaccount：开户行账号 ，
taxregnum：纳税识别号
taxpayertype：纳税人类型
}
@param `isByPatternType` 是否根据组织形态类型获取：true（根据组织形态类型查询）/false（根据组织形态查询）
@param `orgViewNumber` 视图方案编码
@param `orgId` 组织ID
@param `patternOrPatternTypes` 组织形态或者组织形态类型集合(具体形态和类型，参照OrgPatternType)：isByPatternType==true?组织形态类型 : 组织形态
@return Map:


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getCompanyByAdminOrg
param_types_key: Long
signature_text: public static java.util.Map<String, Object> getCompanyByAdminOrg(Long adminOrgId)
comment:
描述：获取行政组织的核算主体 提供根据行政组织获取核算主体接口： 1.若业务单据返回的组织是行政组织，则需根据业务单元分配部门的关系，找到业务单元所属核算主体。 2.因业务单元分配部门存在两者多对多的关系，会导致返回多个核算主体的情况，这种情况下随机返回一个核算组织 3.若业务单元分配部门没有配置，这种情况下，优先找本组织对应的核算组织，其次上级行政组织是不是核算主体，最后找核算组织视图根组织。
是否“业务实体”通过参数传递控制
@param `adminOrgId` 行政组织ID
@return Map 业务组织的核算主体信息，key信息： id， number， name


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getCompanyByAdminOrg
param_types_key: Long,Boolean
signature_text:
public static java.util.Map<String, Object> getCompanyByAdminOrg(Long adminOrgId, Boolean isBizUnit)

comment:
描述：获取行政组织的核算主体 提供根据行政组织获取核算主体接口： 1.若业务单据返回的组织是行政组织，则需根据业务单元分配部门的关系，找到业务单元所属核算主体。 2.因业务单元分配部门存在两者多对多的关系，会导致返回多个核算主体的情况，这种情况下随机返回一个核算组织 3.若业务单元分配部门没有配置，这种情况下，优先找本组织对应的核算组织，其次上级行政组织是不是核算主体。
是否“业务实体”通过参数传递控制
@param `adminOrgId` 行政组织ID
@param `isBizUnit` 是否业务实体，当需要查询“业务实体”的核算主体时传递true，当只需要查询核算主体时传递false.
@return Map 业务组织的核算主体信息，key信息： id， number， name


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getCompanyByOrg
param_types_key: Long
signature_text: public static java.util.Map<String, Object> getCompanyByOrg(Long orgId)
comment:
描述：获取业务组织的核算主体 提供根据业务单元获取上级标识“业务实体”的核算主体接口： 首先判断当前业务单元是否具有“业务实体”标识的核算主体职能，若具有，则核算主体取当前组织； 若不具有，则核算主体取当前业务单元的上级具有“业务实体”标识的核算主体。 总之，就是从当前组织顺着业务单元视图往上找，直到找到具有业务实体”标识的核算主体为止。 项目任务：PRJ00473454
@param `orgId` 业务组织ID
@return Map 业务组织的核算主体信息，key信息： id， number， name


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getCompanyByOrg
param_types_key: Long,Boolean,Boolean
signature_text:
public static java.util.Map<String, Object> getCompanyByOrg(Long orgId, Boolean isBizUnit, Boolean isSearchUpward)

comment:
描述：获取业务组织的核算主体 提供根据业务单元获取上级标识“业务实体”的核算主体接口： 首先判断当前业务单元是否具有“业务实体”标识的核算主体职能，若具有，则核算主体取当前组织； 若不具有，则核算主体取当前业务单元的上级具有“业务实体”标识的核算主体。 总之，就是从当前组织顺着业务单元视图往上找，直到找到具有业务实体”标识的核算主体为止。 项目任务：PRJ00473454
@param `orgId` 业务组织ID
@param `isBizUnit` 是否业务实体，当需要查询“业务实体”的核算主体时传递true，当只需要查询核算主体时传递false.
@param `isSearchUpward` 是否往上找“业务实体”标识的核算主体
@return Map 业务组织的核算主体信息，key信息： id， number， name


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getCompanyOfOrg
param_types_key: Object,Collection
comment: 获取组织所属公司 @param `viewIDOrNumber` 视图方案ID或者编码 @param `orgIds` 组织ID集合 @return 组织ID与详情的键值对
signature_text:
public static java.util.Map<Long, java.util.Map<String, Object>> getCompanyOfOrg(Object viewIDOrNumber, java.util.Collection orgIds)


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getCompanyfromOrg
param_types_key: Long
signature_text: public static java.util.Map<String, Object> getCompanyfromOrg(Long orgID)
comment:
得到某个组织的所属公司（通过行政组织树获得）。如果当前组织为公司则直接返回，否则向上遍历得到最近的公司。可能返回为空map
@param `orgID` 组织内码
@return 行政组织视图上的组织所属公司，数据{id-内码,number-代码,name-名称}


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getCompanyfromOrg
param_types_key: Object
signature_text: public static java.util.Map getCompanyfromOrg(T org)
comment:
得到某个组织的所属公司（通过行政组织树获得）。如果当前组织为公司则直接返回，否则向上遍历得到最近的公司。可能返回为空map
@param `org` 组织内码（long）或者 组织代码（String）
@return 行政组织视图上的组织所属公司，数据{id-内码,number-代码,name-名称}


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getCorporationIds
param_types_key: Set,boolean,boolean
signature_text:
public static java.util.List<Long> getCorporationIds(java.util.Set<Long> orgIds, boolean includeDisabled, boolean includeFrozen)

comment:
获取法人组织ID集合
@param `orgIds` 组织ID集合：如果为空，则查询所有法人组织ID
@param `includeDisabled` 是否包含禁用的
@param `includeFrozen` 是否包含注销的


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getDirectSuperiorOrg
param_types_key: String,List
comment: 获取直接上级组织 @param `viewSchemaNumber` 组织视图方案编码 @param `orgIds` 组织ID列表 @return 组织与其直接上级ID的键值对
signature_text:
public static java.util.Map<Long, Long> getDirectSuperiorOrg(String viewSchemaNumber, java.util.List<Long> orgIds)


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getMultiOrgRelation
param_types_key: OrgRelationParam
comment: 批量获取组织协作关系 @param `param` 组织协作关系参数对象 @return 组织协作关系信息
signature_text:
public static java.util.Map<Long, java.util.Map<Long, java.util.Map<String, Object>>> getMultiOrgRelation(OrgRelationParam param)


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getOrgByPattern
param_types_key: Object,Collection,boolean,List
signature_text:
public static java.util.Map<Long, java.util.Map<String, Object>> getOrgByPattern(Object viewIDOrNumber, java.util.Collection orgIds, boolean isByPatternType, java.util.List<Object> patternOrPatternTypes)

comment:
根据形态获取所属组织：如获取所属公司。当前组织不符合时查找上级
@param `viewIDOrNumber` 视图方案ID或者编码
@param `orgIds` 组织ID集合
@param `isByPatternType` 是否根据形态类型获取
@param `patternOrPatternTypes` 形态或者形态类型集合
@return 组织ID与详情的键值对


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getOrgStructureInfo
param_types_key: Set,Set,Set
signature_text:
public static java.util.Map<Long, java.util.Map<Object, OrgStructureApiResult>> getOrgStructureInfo(java.util.Set<Long> orgIds, java.util.Set<Long> viewIds, java.util.Set<String> viewNumbers)

comment:
获取组织结构信息 优先使用视图方案ID查询，视图方案ID不为空时，根据ID查询，否则根据视图方案编码查询； 视图方案ID、编码都为空时，查询组织所有视图的结构信息
返回结果根据查询条件封装映射集合
@param `orgIds` 组织ID
@param `viewIds` 视图方案ID
@param `viewNumbers` 视图方案编码
@return <组织ID-<视图方案ID/视图方案编码-OrgStructureApiResult>> ]


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: getOrgbyYzjorgId
param_types_key: String
signature_text: public static java.util.Map<String, Object> getOrgbyYzjorgId(String yzjorgId)
comment:
通过云之家组织内码，返回一个云ERP的组织内码
@param `yzjorgId` 云之家组织id，为guid字符串
@return 存在则返回Map{id-内码,number-代码,name-名称}，否则Map为空


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: isParentOrg
param_types_key: String,long,long
signature_text: public static boolean isParentOrg(String viewNumber, long parentId, long orgId)
comment:
判断组织是否为上下级关系
@param `viewNumber` 视图方案编码
@param `parentId` 上级组织ID
@param `orgId` 组织ID
@return 是否为上下级关系true/false


class_name: kd.bos.servicehelper.org.OrgUnitServiceHelper
method_name: unFreeze
param_types_key: List
signature_text: public static void unFreeze(java.util.List<OrgParam> paramList)
comment:
批量解封组织
@param `paramList` 组织参数对象列表。执行结果回填到参数对象OrgParam，须判断是否执行成功标志success，失败时错误信息通过参数对象OrgParam的msg属性获取。


class_name: kd.bos.servicehelper.parameter.SystemParamServiceHelper
method_name: loadAppCustomParameterFromCache
param_types_key: AppCustomParam
comment: 获取应用参数-自定义参数 @param `appCustomParam`
signature_text:
public static java.util.Map<String, String> loadAppCustomParameterFromCache(AppCustomParam appCustomParam)


class_name: kd.bos.servicehelper.parameter.SystemParamServiceHelper
method_name: loadBatchAppParameterByOrgFromCache
param_types_key: AppParam,List
comment: 从缓存加载批量应用参数 @param `appParam` 应用参数对象，其中orgId无效 @param `orgIds` 组织ID列表 @return 应用参数包，内含各参数值
signature_text:
public static java.util.Map<String, java.util.Map<String, Object>> loadBatchAppParameterByOrgFromCache(AppParam appParam, java.util.List<Long> orgIds)


class_name: kd.bos.servicehelper.parameter.SystemParamServiceHelper
method_name: loadPublicParametersFromCache
param_types_key: String
comment: 从缓存中加载公共参数 @return 所有公共参数
signature_text:
public static java.util.Map<String, Object> loadPublicParametersFromCache(String publicParameterFormId)


class_name: kd.bos.servicehelper.parameter.UserParamterServiceHelper
method_name: deleteUserCustParameter
param_types_key: String,SqlParameter[]
signature_text: public static void deleteUserCustParameter(String filter, SqlParameter[] params)
comment:
删除用户自定义参数值
@param `filter` 删除条件：FUSERID=? AND FFORMID=? AND FEXTEND=? AND FISLISTOPTION=?
@param `params` 条件参数值


class_name: kd.bos.servicehelper.parameter.UserParamterServiceHelper
method_name: getListOption
param_types_key: Long,String,String,String,String
comment: 读取列表选项 @param `userId` 用户 @param `formId` 表单标识 @param `extend` 扩展维度，没有填null或者空字符串"" @param `key` 选项
signature_text:
public static Object getListOption(Long userId, String formId, String listOption, String extend, String key)


class_name: kd.bos.servicehelper.parameter.UserParamterServiceHelper
method_name: getUserOption
param_types_key: Long,String,String,String
signature_text: public static Object getUserOption(Long userId, String formId, String extend, String key)
comment:
读取用户选项
@param `userId` 用户ID
@param `formId` 表单ID
@param `extend` 扩展维度，没有填null或者空字符串""
@param `key` 选项


class_name: kd.bos.servicehelper.parameter.UserParamterServiceHelper
method_name: saveUserCustParameter
param_types_key: long,String,String,String
signature_text:
public static void saveUserCustParameter(long userId, String formId, String paramKey, String paramValue)

comment:
保存用户参数值
@param `userId` 用户
@param `formId` 表单标识，如果与表单无关，可传入null
@param `paramKey` 参数名
@param `paramValue` 参数值


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: bizRoleAssignFuncPerm
param_types_key: Long,List,boolean,StringBuilder
signature_text:
public static boolean bizRoleAssignFuncPerm(Long bizRoleId, java.util.List<BizRoleInfo.BizRolePerm> bizRolePermList, boolean addOrRemove, StringBuilder processInfo)

comment:
给业务角色分配补充功能权限
@param `bizRoleId` 业务角色ID
@param `bizRolePermList` 应用ID，实体编码和权限项ID组成的javaBean
@param `addOrRemove` true 为增加， false为删除
@param `processInfo` 处理信息
@return 如果分配失败，则返回false，否则为true。


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: bizRoleBundleUser
param_types_key: Long,Map,StringBuilder
signature_text:
public static boolean bizRoleBundleUser(Long bizRoleId, java.util.Map<Long, Object[]> assignInfo, StringBuilder processInfo)

comment:
业务角色分配用户
@param `bizRoleId` 角色ID
@param `assignInfo` 键：用户id 值：[生效日期，失效日期]
@return 如果分配成功返回true，否则返回false


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: bizRoleDisFuncPerm
param_types_key: Long,List,boolean,StringBuilder
signature_text:
public static boolean bizRoleDisFuncPerm(Long bizRoleId, java.util.List<BizRoleInfo.BizRoleDisPerm> bizRoleDisPermList, boolean addOrRemove, StringBuilder processInfo)

comment:
给业务角色分配禁用权限 分配之后，可能导致用户失去某些功能权限、数据权限
@param `bizRoleId` 业务角色ID
@param `bizRoleDisPermList` 应用ID，实体编码和权限项ID组成的javaBean
@param `addOrRemove` true 为增加， false为删除
@param `processInfo` 处理信息
@return 如果分配失败，则返回false，否则为true。


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: bizRoleUnBundleUser
param_types_key: Long,Set,StringBuilder
signature_text:
public static boolean bizRoleUnBundleUser(Long bizRoleId, java.util.Set<Long> userIds, StringBuilder processInfo)

comment:
业务角色解除用户 解除之后，可能导致用户失去某些功能权限、数据权限
@param `bizRoleId` 业务角色ID
@param `userIds` 用户ID集合
@return 如果解除成功返回true，否则返回false


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: checkMultiPermItemInfos
param_types_key: long,String,String,Set
signature_text:
public static java.util.Map<String, Boolean> checkMultiPermItemInfos(long pUserId, String pAppId, String pFormNum, java.util.Set<String> pPermItems)

comment:
批量验证指定的权限项的授权情况
@param `pUserId` 用户id
@param `pAppId` 应用id或应用编码
@param `pFormNum` 表单id
@param `pPermItems` 权限项ID的集合
@return Map key：权限项标识， value： 是否有权，true为有权，false为无权。


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: checkMultiPermItemInfos
param_types_key: long,String,Set,boolean
signature_text:
public static java.util.Map<String, Boolean> checkMultiPermItemInfos(long pUserId, String pFormNum, java.util.Set<String> pPermItems, boolean pNeedCheckMenuApp)

comment:
批量验证指定的权限项的授权情况（忽略应用验权）
@param `pUserId` 用户id
@param `pFormNum` 表单id
@param `pPermItems` 权限项ID的集合
@param `pNeedCheckMenuApp` 是否按表单通过菜单挂载的全员应用验权，不清楚时传 false
@return Map key：权限项标识， value： 是否有权，true为有权，false为无权。


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: checkOperationRule
param_types_key: Long,String,String,List,StringBuilder
signature_text:
public static java.util.Map<Object, Boolean> checkOperationRule(Long userId, String entityNum, String operationKey, java.util.List<Object> pkIds, StringBuilder sbNotMatchTips)

comment:
校验特殊数据权限
@param `userId` 用户id
@param `entityNum` 实体编码
@param `operationKey` 操作编码
@param `pkIds` 主键id的集合
@param `sbNotMatchTips` 提示语
@return Map： key是主键ID； value是校验结果，true是校验通过，false是不通过。


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: checkPermission
param_types_key: Long,String,String,String
signature_text:
public static boolean checkPermission(Long userId, String appId, String entityNum, String permItemId)

comment:
判断指定用户是否拥有指定应用指定表单的指定权限项(不考虑隔离维度)，支持任一应用验权
@param `userId` 用户id
@param `appId` 应用id
@param `entityNum` 表单编码
@param `permItemId` 权限项内码
@return true: 有权 false: 无权


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: checkPermission
param_types_key: CheckPermissionReq
signature_text: public static PermResult checkPermission(CheckPermissionReq req)
comment:
判断指定用户是否拥有指定应用指定表单的指定权限项(不考虑隔离维度)
@param `req` 判断指定用户是否拥有指定应用指定表单的指定权限项(不考虑隔离维度) 请求参数类
@return PermResult 权限接口结果对象


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: checkPermission
param_types_key: Long,Long,String,String,String,String
signature_text:
public static int checkPermission(Long userId, Long orgId, String orgViewType, String appId, String entityNum, String permItemId)

comment:
功能权限检查(按 业务单元+职能类型 验权)
@param `userId` 用户id
@param `orgViewType` 业务单元类型，不确定是可以传null
@param `orgId` 业务单元id
@param `appId` 应用id
@param `entityNum` 业务对象编码
@param `permItemId` 权限项id
@return 0 无权 1 有权


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: checkPermission
param_types_key: Long,Map,String,String,String
signature_text:
public static int checkPermission(Long userId, java.util.Map<Long, String> orgIdViewTypeMap, String appId, String entityNum, String permItemId)

comment:
功能权限检查(按多个业务单元+职能类型 验权)
@param `userId` 用户id
@param `orgIdViewTypeMap` 业务单元和组织类型的映射
@param `appId` 应用id
@param `entityNum` 业务对象编码
@param `permItemId` 权限项id
@return 0 无权 1 有权


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: checkPermission
param_types_key: Long,String,List,String,String,String
signature_text:
public static int checkPermission(Long userId, String dimType, java.util.List<Long> dimObjIds, String appId, String entityNum, String permItemId)

comment:
功能权限检查(按多个权限隔离对象)
@param `userId` 用户id
@param `dimType` 权限控制类型（即原来说的权限隔离维度类型）
@param `dimObjIds` 维度对象的id列表
@param `appId` 应用id
@param `entityNum` 业务对象编码
@param `permItemId` 权限项id
@return 0 无权 1 有权


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: checkPermission
param_types_key: long,String,String,String,String
signature_text:
public static boolean checkPermission(long userId, String orgViewType, String appId, String entityNum, String permItemId)

comment:
判断指定用户是否拥有指定授权：应用-表单-权限项 orgViewType这个入参，从目前的实现上来说，可能只有在entityNum对应的是动态表单时， 可能有意义，因为动态表单有时无法指定权限控制主字段或辅字段，那么此时调用者可能需要按指定组织职能来验权； 如果当前表单本身有指定权限控制主字段或辅字段，那么按这些字段的组织职能来验权
@param `userId` 用户id
@param `appId` 应用id
@param `orgViewType` 业务单元职能类型(可以传null，传null意味着不考虑具体职能类型的限定)
@param `entityNum` 表单编码
@param `permItemId` 权限项内码
@return true 拥有 false 没有


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: clearBizRoleUserBundingByBizRoleId
param_types_key: Long,StringBuilder
signature_text: public static boolean clearBizRoleUserBundingByBizRoleId(Long bizRoleId, StringBuilder processInfo)
comment:
根据业务角色ID解除对应的所有用户绑定 解除之后，可能导致用户失去某些功能权限、数据权限
@param `bizRoleId` 业务角色ID
@return 如果解除成功返回true，否则返回false


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: delBizRoleById
param_types_key: Long,StringBuilder
signature_text: public static boolean delBizRoleById(Long bizRoleId, StringBuilder processInfo)
comment:
根据业务角色的id，删除业务角色 删除之后，可能导致用户失去某些功能权限、数据权限 * @return 如果删除成功返回true，否则返回false。
@param `bizRoleId` 业务角色id
@param `processInfo` 处理信息
@return 如果删除成功返回true，否则返回false


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: delBizRoleByNum
param_types_key: String,StringBuilder
signature_text: public static boolean delBizRoleByNum(String number, StringBuilder processInfo)
comment:
根据业务角色的number，删除业务角色 删除之后，可能导致用户失去某些功能权限、数据权限
@param `number` 业务角色编码
@param `processInfo` 处理信息
@return 如果删除成功返回true，否则返回false


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: delDataRule
param_types_key: QFilter[],StringBuilder
signature_text: public static boolean delDataRule(QFilter[] qfilter, StringBuilder processInfo)
comment:
删除数据规则方案（物理删除） 删除数据规则方案，可能导致用户查看、操作的数据范围出现变动
@param `qfilter` 需要删除的数据规则方案的过滤条件
@param `processInfo` 如果执行失败，会有错误信息。可以传null，但将无法获取错误原因。
@return true：执行成功; false:执行失败


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: deleteRole
param_types_key: RoleInfo,StringBuilder
signature_text: public static boolean deleteRole(RoleInfo roleInfo, StringBuilder processInfo)
comment:
删除角色（物理删除） 如果角色被删除，相应用户使用上会失去角色绑定的功能权限、字段权限、数据规则
@param `roleInfo` 角色对象(可以设置角色的ID, 编码来删，如果同时设置多个，优先按ID, 编码来查询 )
@param `processInfo` 如果删除失败，会有错误信息。可以传null，但将无法获取错误原因。 如果成功，也会有信息。
@return true：执行成功; false:执行失败


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: deleteUserPermission
param_types_key: List,StringBuilder
signature_text: public static boolean deleteUserPermission(java.util.List<Long> userIds, StringBuilder errorInfo)
comment:
删除指定用户所有权限。 删除之后，用户将失去所有功能权限、字段权限、数据规则
@param `userIds` 用户id的集合
@param `errorInfo` 执行过程中的错误信息，如果执行失败，才有内容
@return true:执行成功;false:执行失败


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: fieldControlRules2RuleMap
param_types_key: FieldControlRules2RuleReq
signature_text: public static <any> fieldControlRules2RuleMap(FieldControlRules2RuleReq req)
comment:
字段权限 FieldControlRules 转换成 Map
@param `req` FieldControlRules转换成FieldControlRule-请求类
@return PermRes>


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getAdminApps
param_types_key: Long,boolean
signature_text: public static AdminAppResult getAdminApps(Long userId, boolean returnExtAppId)
comment:
获取管理员管辖的应用范围（返回扩展应用id） 相比于getAdminChargeApps（）方法，调用者可以通过返回值判断是否控制管理员的应用管辖范围 （如公共设置-查询配置左树，需要返回扩展应用id）
@param `userId` 用户ID
@param `returnExtAppId` 是否返回扩展应用id
@return 返回值是一个AdminAppResult对象，管理员管辖的应用结果类 使用时，务必先判断needAdminAppRange（）是否为true， 如果为true， getAppIds()代表有权应用范围。 如果为false，则getAppIds()是空集合，没有意义。


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getAdminChargeOrgWithParaMap
param_types_key: Long,String,boolean,Map
signature_text:
public static HasPermOrgResult getAdminChargeOrgWithParaMap(Long adminUserId, String orgViewType, boolean mustQueryAll, java.util.Map<String, Object> paraMap)

comment:
获取管理员管辖的组织范围
@param `adminUserId` 管理员的用户ID
@param `orgViewType` 组织视图类型：只能填OrgViewType.OrgUnit（业务单元）或 OrgViewType.Admin(行政组织)
@param `mustQueryAll` true:返回值中的getHasPermOrgs()在任何情况都需要查出有权组织范围（不考虑性能）； false：当返回的组织id为所有组织时，考虑性能问题，返回值中的getHasPermOrgs()可能为空集合。（考虑性能）
@param `paraMap` 其他请求参数Map
@return @see HasPermOrgResult的详细定义


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getAdminExtraUserWithParaMap
param_types_key: Long,Map
signature_text:
public static java.util.List<Long> getAdminExtraUserWithParaMap(Long adminUserId, java.util.Map<String, Object> paraMap)

comment:
获取管理员行政组织管辖范围外的用户（在管理员的行政组织管辖范围以外的额外用户，这些用户也受管理员控制。）
@param `adminUserId` 管理员的用户ID
@param `paraMap` 其他请求参数Map
@return 返回 List人员范围结果集


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getAllPermOrgs
param_types_key: long,String,String,String,String,boolean,boolean
signature_text:
public static HasPermOrgResult getAllPermOrgs(long userId, String orgViewType, String appId, String entityNum, String permItemId, boolean mustQuery, boolean includeDisable)

comment:
获取有权限的业务单元。（带职能类型参数）
@param `userId` 用户ID
@param `orgViewType` 职能类型，值可以使用OrgViewType
@param `appId` 应用ID
@param `entityNum` 实体编码
@param `permItemId` 权限项ID
@param `mustQuery` 必须查出组织列表内容
@param `includeDisable` 是否包含封存或禁用
@return 即使HasPermOrgResult的hasAllOrgPerm（）为true，如果mustQuery为true，HasPermOrgResult的getHasPermOrgs()返回值就是有权的组织范围， 否则当HasPermOrgResult的hasAllOrgPerm（）为true时，HasPermOrgResult的getHasPermOrgs()返回值的内容为空，但表示有权范围为所有业务单元。 当HasPermOrgResult的hasAllOrgPerm（）为false时， getHasPermOrgs()返回值的内容就是有权的业务单元范围。


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getBizRoleDisPermByBizRoleId
param_types_key: Long
comment: 根据业务角色id,获取业务角色禁用权限 @param `bizRoleId` 业务角色id @return 业务角色禁用权限
signature_text:
public static java.util.List<BizRoleInfo.BizRoleDisPerm> getBizRoleDisPermByBizRoleId(Long bizRoleId)


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getDataPermWithOrg
param_types_key: long,String,String
signature_text: public static QFilter getDataPermWithOrg(long userId, String appId, String entityNum)
comment:
获取指定用户、应用，实体下的数据权限规则
@param `userId` 用户ID
@param `appId` 应用ID
@param `entityNum` 实体编码
@return 最终过滤条件：条件中包含组织的条件。例如 (orgid=1L and 规则1) or (orgid=2L and 规则2) or (orgid=3L and 规则3) ....


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getDataRule
param_types_key: long,String,String,String
signature_text: public static QFilter getDataRule(long userId, String appId, String entityNum, String permItemId)
comment:
获取用户在指定表单的权限项下被分配的过滤条件（不考虑隔离维度（如组织，体系，渠道等））
@param `userId` 用户ID
@param `appId` 应用ID
@param `entityNum` 实体编码
@param `permItemId` 权限项ID
@return 数据规则转化后的过滤条件


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getDataRuleForBdProp
param_types_key: long,String,String,String
signature_text:
public static QFilter getDataRuleForBdProp(long userId, String appId, String entityNum, String propEntNum)

comment:
获取用户在指定表单的基础资料属性上被分配的过滤条件（不考虑隔离维度（如组织，体系，渠道等））
@param `userId` 用户ID
@param `appId` 应用ID
@param `entityNum` 实体编码
@param `propEntNum` 基础资料属性标识
@return 数据规则转化后的过滤条件


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getDimIdRoleIdSetMap
param_types_key: GetDimIdRoleIdSetMapReq
signature_text:
public static java.util.Map<Long, java.util.Set<String>> getDimIdRoleIdSetMap(GetDimIdRoleIdSetMapReq req)

comment:
获取Map<权限控制对象id,Set<通用角色id>> 用户有的角色包含： 1、用户-业务角色-通用角色 2、用户-用户组-业务角色-通用角色 3、用户-通用角色， 4、用户-用户组-通用角色 包含父组织拥有的角色(父组织设置为包含下级)
@param `req` 获取Map<权限控制对象id,Set<通用角色id>> 请求类
@return Map<权限控制对象id,Set<通用角色id>>


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getFieldControlRules
param_types_key: long,String,String
signature_text: public static FieldControlRules getFieldControlRules(long userId, String appId, String entityNum)
comment:
获取指定用户、应用、实体的字段权限 (包含字段方案)
@param `userId` 用户ID
@param `appId` 应用ID
@param `entityNum` 实体编码
@return 字段权限控制信息


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getGrpIdUIdSetMap
param_types_key: Set
signature_text:
public static java.util.Map<Long, java.util.Set<Long>> getGrpIdUIdSetMap(java.util.Set<Long> usrGrpIdSet)

comment:
根据用户组id集合获取Map<用户组id,Set<用户id>> 为避免OOM，建议入参usrGrpIdSet不要太大
@param `usrGrpIdSet` 用户组id集合
@return Map<用户组id,Set<用户id>>


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getHasPermDimObjs
param_types_key: long,String,String,String
signature_text:
public static HasPermDimObjResult getHasPermDimObjs(long userId, String appId, String entityNum, String permItemId)

comment:
获取有权的隔离维度对象范围
@param `userId` 用户ID
@param `appId` 应用ID
@param `entityNum` 实体ID
@param `permItemId` 权限项ID
@return HasPermDimObjResult 使用时，务必先判断hasAllDimObjPerm（）是否为true，如果是，getHasPermDimObjs()是一个空集合，但含义却是所有隔离维度下都有权。 如果为false，则getHasPermDimObjs()返回范围即为有权隔离维度的范围。


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getHasPermDimObjs
param_types_key: long,String,String
signature_text: public static HasPermDimObjResult getHasPermDimObjs(long userId, String appId, String dimType)
comment:
获取授权的隔离维度对象范围（没有加入管理员的校验）
@param `userId` 用户ID
@param `appId` 应用ID
@param `dimType` 隔离维度类型
@return HasPermDimObjResult 使用时，务必先判断hasAllDimObjPerm（）是否为true，如果是，getHasPermDimObjs()是一个空集合，但含义却是所有隔离维度下都有权。 如果为false，则getHasPermDimObjs()返回范围即为有权隔离维度的范围。


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getHasPermItems
param_types_key: Long,String,String
signature_text:
public static java.util.Map<String, Boolean> getHasPermItems(Long userId, String appId, String formNum)

comment:
获取用户在指定应用-表单下的有权和无权的权限项情况（不考虑隔离维度分配情况）
@param `userId` 用户id
@param `appId` 应用id
@param `formNum` 表单编码（注意这个是表单编码，不是实体编码）
@return 返回值为Map。 key：权限项标识；value： 是否显示，true为显示，false为不显示。 两个特殊情况： 返回null即参数有问题，返回空集合即不需要验权


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getMultiPermItemInfos
param_types_key: long,String,String
signature_text:
public static java.util.Map<String, Boolean> getMultiPermItemInfos(long pUserId, String pAppId, String pFormNum)

comment:
获取当前表单所有权限项的授权情况
@param `pUserId` 用户id
@param `pAppId` 应用id或应用编码
@param `pFormNum` 表单编码
@return Map key：权限项标识， value： 是否有权，true为有权，false为无权。


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getOperationRuleFilter
param_types_key: Long,String,String,String,StringBuilder
signature_text:
public static QFilter getOperationRuleFilter(Long userId, String appId, String entityNum, String operationKey, StringBuilder sbNotMatchTips)

comment:
获取指定参数范围对应的特殊数据权限的过滤条件
@param `userId` 当前用户id
@param `appId` 应用id
@param `entityNum` 实体编码
@param `operationKey` 操作编码（例如查看是view，提交是submit）
@param `sbNotMatchTips` 如果不匹配规则，给出的提示语。
@return 返回QFilter，用于数据过滤


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getUIdGrpIdSetMap
param_types_key: Set
signature_text:
public static java.util.Map<Long, java.util.Set<Long>> getUIdGrpIdSetMap(java.util.Set<Long> userIdSet)

comment:
根据用户id集合获取Map<用户id,Set<用户组id>> 为避免OOM，建议入参userIdSet不要太大
@param `userIdSet` 用户id集合
@return Map<用户id,Set<用户组id>>


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getUsableEntitiesInfo
param_types_key: GetUsableEntitiesInfoReq
signature_text: public String getUsableEntitiesInfo(GetUsableEntitiesInfoReq req)
comment:
不区分组织，获取用户所有有权“查看”的所有业务对象实体的信息 返回内容如下：
[{
//云"id":"cloudid",
"name":"cloudName",
"children":[
{
//应用"id":"appId",
"name":"appName""children":[
{
//表单"id":"formId1",
"name":"formName1"
},
{
"id":"formId2",
"name":"formName2"
},
{
"id":"formId3",
"name":"formName3"
}]
},
{
"id":"appId2",
"name":"appName2""children":[
{
"id":"formId4",
"name":"formName4"
},
{
"id":"formId5",
"name":"formName5"
},
{
"id":"formId6",
"name":"formName6"
}]
}]
}]
@param `req` 获取用户所有有权“查看”的所有业务对象实体的信息 请求参数类
@return String


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getUserHasPermDimObjs
param_types_key: long,String
signature_text: public static HasPermDimObjResult getUserHasPermDimObjs(long userId, String dimType)
comment:
获得用户所有授权的隔离维度范围（指定隔离维度）
@param `userId` 用户id
@param `dimType` 隔离维度类型（例如组织：bos_org，或 体系：bcm_model）
@return 详情参考HasPermOrgResult的注释


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getUserHasPermOrgs
param_types_key: long,boolean
signature_text: public static HasPermOrgResult getUserHasPermOrgs(long userId, boolean mustQueryAll)
comment:
获取用户的有权的组织范围（同首页右上角的切换组织中的内容）
@param `mustQueryAll` true: 忽略性能需求，HasPermOrgResult的getHasPermOrgs（）肯定代表用户有权的组织范围； false:考虑性能，HasPermOrgResult的hasAllOrgPerm()为true时，getHasPermOrgs（）为空集合
@return 详情参考HasPermOrgResult的注释


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: getUserNoPermMenuByBatchApp
param_types_key: Long,Set
signature_text:
public static java.util.Map<String, java.util.Set<String>> getUserNoPermMenuByBatchApp(Long userId, java.util.Set<String> appIdSet)

comment:
批量应用 获取用户无权菜单
用户进入某个应用时，需将无权的菜单隐藏掉 根据用户ID和应用ID获取接口返回无权的菜单ID 用户有权的菜单是已授权业务对象及没有配置权限项的业务对象的并集 为了避免性能问题，建议appIdSet 一次性不要传入过多。
@param `userId` 用户ID
@param `appIdSet` 应用ID集合
@return Map<应用id, 无权菜单Set < String>>


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: hasBindingFunctionPerm
param_types_key: String
signature_text: public static boolean hasBindingFunctionPerm(String entityNum)
comment:
判断指定实体是否需要权限控制，如果当前实体在设计器中打开了权限控制开关，并且至少绑定了一个权限项，那么认为指定实体需要权限控制，否则认为不受控。
@param `entityNum` 实体编码
@return true：需要验权；false：不需要验权。


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: hasNewPermission
param_types_key: long,String,String
signature_text: public static boolean hasNewPermission(long userId, String appId, String entityNum)
comment:
判断用户是否拥有指定实体的新增权（不考虑隔离维度）
@param `userId` 用户id
@param `appId` 应用id
@param `entityNum` 实体编码
@return true：有权；false：无权


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: isAdminUserWithParaMap
param_types_key: long,String,Map
signature_text:
public static boolean isAdminUserWithParaMap(long userId, String type, java.util.Map<String, Object> paraMap)

comment:
检查用户是不是虚拟或实名管理员。
@param `userId` 用户ID
@param `type` 管理员类型 两个枚举常量：ADMINTYPE_SUPERADMIN： 虚拟管理员； ADMINTYPE_ORGADMIN： 实名管理员，当 type 为空，忽略管理员类进行查询返回
@param `paraMap` 其他请求参数Map
@return boolean true:是管理员；false：不是管理员。


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: isAnonymousUserAccess
param_types_key: String
signature_text: public static boolean isAnonymousUserAccess(String formNum)
comment:
判断当前是否匿名用户访问某个表单，并且该表单允许匿名访问的情况。是这种情况为true，否则为false。
@param `formNum` 表单编码
@return true：是匿名用户访问允许匿名访问的表单的情况； false：不是


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: matchDataRule
param_types_key: long,String,String,String,QFilter[]
signature_text:
public static boolean matchDataRule(long userId, String appId, String entityNum, String permItemId, QFilter[] qFilters)

comment:
判断用户在指定应用-表单-权限项下，操作指定条件的表单记录时，是否匹配数据规则
@param `userId` 用户ID
@param `appId` 应用id
@param `entityNum` 实体编码
@param `permItemId` 权限项ID
@param `qFilters` 自定义指定条件，也可以直接提供指定记录的ID，例如：new QFilter[]{new QFilter("id", QFilter.equals, pkId)}


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: modifyBizRole
param_types_key: BizRoleInfo,StringBuilder
signature_text: public static boolean modifyBizRole(BizRoleInfo bizRoleInfo, StringBuilder processInfo)
comment:
修改业务角色(仅修改业务角色的信息，其中包含的对应通用角色，组织不会修改) 修改业务角色相关的通用角色，组织信息，见modifyCommonRoles,modifyBizRoleOrgs，修改后可能导致用户的权限产生变化 角色id,number不能修改
@param `processInfo` 如果创建失败，会有错误信息
@return 如果创建成功返回true，否则返回false。


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: modifyBizRoleCommRoles
param_types_key: Long,List,StringBuilder
signature_text:
public static boolean modifyBizRoleCommRoles(Long bizRoleId, java.util.List<BizRoleInfo.CommonRole> commonRoleList, StringBuilder processInfo)

comment:
修改业务角色相关的通用角色 修改之后，可能导致用户失去某些功能权限、数据权限 业务角色ID不能为空，通用角色集合不能为空，更新后，新关联的通用角色会替换之前的全部旧数据
@param `processInfo` 如果创建失败，会有错误信息
@return 如果创建成功返回true，否则返回false。


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: modifyBizRoleOrgs
param_types_key: Long,List,StringBuilder
signature_text:
public static boolean modifyBizRoleOrgs(Long bizRoleId, java.util.List<BizRoleInfo.BizRoleOrg> bizRoleOrgList, StringBuilder processInfo)

comment:
修改业务角色相关的组织 修改之后，会导致用户的权限发生变化 业务角色ID不能为空，组织集合不能为空，修改后，用户的所有关联关系会更新
@param `processInfo` 如果创建失败，会有错误信息
@return 如果创建成功返回true，否则返回false。


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: modifyDataRule
param_types_key: Long,DataRuleInfo,StringBuilder
signature_text:
public static boolean modifyDataRule(Long oldDataRuleId, DataRuleInfo dataRuleInfo, StringBuilder processInfo)

comment:
修改数据规则方案
@param `oldDataRuleId` 旧数据规则方案的主键id
@param `dataRuleInfo` 数据规则方案基本信息
@param `processInfo` 如果执行失败，会有错误信息。可以传null，但将无法获取错误原因。
@return true：执行成功; false:执行失败


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: modifyRole
param_types_key: RoleInfo,StringBuilder
signature_text: public static boolean modifyRole(RoleInfo roleInfo, StringBuilder processInfo)
comment:
修改角色
@param `roleInfo` 角色对象
@param `processInfo` 如果修改失败，会有错误信息。可以传null，但将无法获取错误原因。 如果成功，也会有信息。
@return true：执行成功; false:执行失败


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: newBizRole
param_types_key: BizRoleInfo,StringBuilder
signature_text: public static boolean newBizRole(BizRoleInfo bizRoleInfo, StringBuilder processInfo)
comment:
新建业务角色(需要传入该业务角色对应的通用角色，组织进行关联) 角色id,num由接口内部生成
@param `bizRoleInfo` 业务角色对象， 创建成功后， bizRoleInfo的getId会有值。
@param `processInfo` 如果创建失败，会有错误信息
@return 如果创建成功返回true，否则返回false。


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: newDataRule
param_types_key: DataRuleInfo,StringBuilder
signature_text: public static boolean newDataRule(DataRuleInfo dataRuleInfo, StringBuilder processInfo)
comment:
新增数据规则方案
@param `dataRuleInfo` 数据规则方案基本信息
@param `processInfo` 如果执行失败，会有错误信息。可以传null，但将无法获取错误原因。
@return true：执行成功; false:执行失败


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: newRole
param_types_key: RoleInfo,StringBuilder
signature_text: public static boolean newRole(RoleInfo roleInfo, StringBuilder processInfo)
comment:
新建角色
@param `roleInfo` 角色对象， 创建成功后， roleInfo的getId（）会有值。调用方可获取这个id，以便后续做其他处理。
@param `processInfo` 如果创建失败，会有错误信息。可以传null，但将无法获取错误原因。 如果方法执行成功，也会有信息。
@return true：执行成功; false:执行失败


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: queryDataRule
param_types_key: QFilter[],StringBuilder
signature_text: public static DataRuleInfo[] queryDataRule(QFilter[] qfilter, StringBuilder processInfo)
comment:
查询数据规则
@param `qfilter` 需要查询的数据规则方案的过滤条件
@param `processInfo` 如果执行失败，会有错误信息。可以传null，但将无法获取错误原因。
@return 多个数据规则方案基本信息的数组


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: roleAssignFuncPerm
param_types_key: String,Map,boolean,StringBuilder
signature_text:
public static boolean roleAssignFuncPerm(String roleId, java.util.Map<String, java.util.Map<String, java.util.List<String>>> appEntityPermItemMap, boolean addOrRemove, StringBuilder processInfo)

comment:
通用角色分配功能权限
@param `roleId` 角色ID
@param `appEntityPermItemMap` 应用ID，实体编码和权限项ID的映射
@param `addOrRemove` true 为增加权限项， false为删除权限项
@param `processInfo` 处理信息
@return 如果分配失败，则返回false，否则为true。


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: roleAssignUserDim
param_types_key: List,PermLogReq
signature_text:
public static PermResult roleAssignUserDim(java.util.List<RoleAssignUserDimReq> reqList, PermLogReq permLogReq)

comment:
通用角色分配用户-隔离维度 例如：通用角色分配组织-用户、通用角色分配用户-组织，如果传入delList，可能导致用户失去某些功能权限、数据权限 ps：先执行req中 addList，再执行 delList
@param `reqList` 通用角色分配用户-隔离维度 请求参数 列表
@param `permLogReq` 权限日志 请求参数
@return 权限接口结果对象


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: userAssignDimRole
param_types_key: List,PermLogReq
signature_text:
public static PermResult userAssignDimRole(java.util.List<UserAssignDimRoleReq> reqList, PermLogReq permLogReq)

comment:
用户分配隔离维度-通用角色（记录权限日志） 例如：用户分配组织-用户，如果传入delList，可能导致用户失去某些功能权限、数据权限 ps：先执行req中 addList，再执行 delList
@param `reqList` 用户分配隔离维度-通用角色 请求参数 列表
@param `permLogReq` 权限日志 请求参数
@return 权限接口结果对象


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: userAssignUserGroupWithPermLog
param_types_key: List,PermLogReq
signature_text:
public static PermResult userAssignUserGroupWithPermLog(java.util.List<UserAssignUserGroupReq> reqList, PermLogReq permLogReq)

comment:
用户组分配用户（记录权限日志） 为避免OOM，userIdAndGroupIdsMap不要太大，可分批次调用
@param `reqList` 用户组分配用户-请求参数列表
@param `permLogReq` 权限日志 请求参数
@return 权限接口结果对象


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: userBundleBizRole
param_types_key: Long,Map,StringBuilder
signature_text:
public static boolean userBundleBizRole(Long userId, java.util.Map<Long, Object[]> assignInfo, StringBuilder processInfo)

comment:
用户分配业务角色
@param `userId` 用户ID
@param `assignInfo` 键：业务角色id 值：[生效日期，失效日期]
@return 如果分配成功返回true，否则返回false


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: userDirectAssignPerm
param_types_key: UserDirectAssignReq
signature_text: public static PermResult userDirectAssignPerm(UserDirectAssignReq req)
comment:
用户直接授权 例如：用户分配组织-功能权限 ps：先执行req中 addList，再执行 delList，如果传入delList，可能导致用户失去某些功能权限、数据权限
@param `req` 用户直接授权分配 请求参数
@return 权限接口结果对象


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: userDisFuncPerm
param_types_key: Long,String,List,Map,boolean
signature_text:
public boolean userDisFuncPerm(Long userId, String dimType, java.util.List<Long> dimObjIds, java.util.Map<String, java.util.Map<String, java.util.List<String>>> appEntityPermItemMap, boolean addOrRemove)

comment:
用户禁用权限 增加用户禁用权限后，可能会导致用户无法使用某功能
@param `userId` 用户ID
@param `dimType` 隔离维度
@param `dimObjIds` 隔离维度ID
@param `appEntityPermItemMap` 应用，实体和权限项的映射
@param `addOrRemove` true 为禁用 , false为取消禁用


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: userGroupsAssignUserWithPermLog
param_types_key: List,PermLogReq
signature_text:
public static PermResult userGroupsAssignUserWithPermLog(java.util.List<UserGroupAssignUserReq> reqList, PermLogReq permLogReq)

comment:
用户组分配用户（记录权限日志） 为避免OOM，userIdAndGroupIdsMap不要太大，可分批次调用
@param `reqList` 用户组分配用户-请求参数列表
@param `permLogReq` 权限日志 请求参数
@return 权限接口结果对象


class_name: kd.bos.servicehelper.permission.PermissionServiceHelper
method_name: userUnBundleBizRole
param_types_key: Long,Set,StringBuilder
signature_text:
public static boolean userUnBundleBizRole(Long userId, java.util.Set<Long> bizRoleIds, StringBuilder processInfo)

comment:
用户解除业务角色 解除之后，可能导致用户失去某些功能权限、数据权限
@param `userId` 用户ID
@param `bizRoleIds` 业务角色ID集合
@return 如果解除成功返回true，否则返回false


class_name: kd.bos.servicehelper.privacy.PrivacyCenterServiceHelper
method_name: buildEncryptDoc
param_types_key: InputStream,OutputStream,String
comment: 文件加密测试用的，已废弃
signature_text:
buildEncryptDoc(java.io.InputStream inputStream, java.io.OutputStream outputStream, String password)


class_name: kd.bos.servicehelper.privacy.PrivacyCenterServiceHelper
method_name: getBatchDesensitizeField
param_types_key: List
comment: 批量获取字段是否脱敏 @param `desensitizeFields` 绑定属性 @return 属性脱敏状态 true为脱敏
signature_text:
public static Boolean[] getBatchDesensitizeField(java.util.List<DesensitizeField> desensitizeFields)


class_name: kd.bos.servicehelper.privacy.PrivacyCenterServiceHelper
method_name: getDesensitizeStrategy
param_types_key: IDataEntityProperty,String,DynamicObject
signature_text:
public static String getDesensitizeStrategy(IDataEntityProperty prop, String operateType, DynamicObject dynamicObject)

comment:
获取属性对应的脱敏策略
@param `prop` 实体属性
@param `operateType` 操作类型 PrivacyDataConstant.OPERATETYPE_XXX
@param `dynamicObject` 单据对象


class_name: kd.bos.servicehelper.privacy.PrivacyCenterServiceHelper
method_name: getDesensitizeValue
param_types_key: IDataEntityProperty,String,String,DynamicObject,Object
signature_text:
public static Object getDesensitizeValue(IDataEntityProperty prop, String localeid, String operateType, DynamicObject dynmicObject, Object value)

comment:
@param `prop` 属性元数据，
@param `localeid` 需要脱敏的语种，如Lang.get().toString()
@param `operateType` 操作类型,如PrivacyCenterServiceHelper.OPERATETYPE_EXPORT
@param `dynmicObject` 单据对象(作为预留作用，有可能脱敏的字段需要其他字段作为辅助)
@param `value` 当前需要处理字段对应的明文值
@return 返回脱敏值，如果不是脱敏字段，返回原值。


class_name: kd.bos.servicehelper.privacy.PrivacyCenterServiceHelper
method_name: getDesensitizeValue
param_types_key: String,String,String,String,DynamicObject,Object
signature_text:
public static Object getDesensitizeValue(String entityNum, String fieldIdent, String localeid, String operateType, DynamicObject dynamicObject, Object value)

comment:
@param `entityNum` 实体标识
@param `fieldIdent` 属性标识 基础资料支持层级，如currency.name
@param `localeid` 多语言标识，需要脱敏的语种，如Lang.get().toString()
@param `operateType` 操作类型,如PrivacyCenterServiceHelper.OPERATETYPE_EXPORT
@param `dynamicObject` 单据对象
@param `value` 明文值


class_name: kd.bos.servicehelper.privacy.PrivacyCenterServiceHelper
method_name: getDesensitizeValueWithoutPerm
param_types_key: IDataEntityProperty,String,String,DynamicObject,Object
signature_text:
public static Object getDesensitizeValueWithoutPerm(IDataEntityProperty prop, String localeid, String operateType, DynamicObject dynamicObject, Object value)

comment:
@param `prop` 属性元数据，
@param `localeid` 需要脱敏的语种，如Lang.get().toString()
@param `operateType` 操作类型,如PrivacyCenterServiceHelper.OPERATETYPE_EXPORT
@param `dynamicObject` 单据对象
@param `value` 明文值
@return 返回脱敏值，如果不是脱敏字段，返回原值。


class_name: kd.bos.servicehelper.privacy.PrivacyCenterServiceHelper
method_name: isDesensitizeField
param_types_key: String,String,String,String,DynamicObject
signature_text:
public static boolean isDesensitizeField(String entityNum, String fieldIdent, String localeId, String operateType, DynamicObject dynamicObject)

comment:
是否脱敏字段
@param `entityNum` 实体标识
@param `fieldIdent` 属性标识 基础资料支持层级，如currency.name
@param `localeId` 多语言标识 需要脱敏的语种
@param `operateType` 操作类型 PrivacyCenterServiceHelper#OPERATETYPE_XXX
@param `dynamicObject` 单据对象
@return 是否脱敏字段


class_name: kd.bos.servicehelper.privacy.PrivacyCenterServiceHelper
method_name: isDesensitizeField
param_types_key: IDataEntityProperty,String,String,DynamicObject
signature_text:
public static boolean isDesensitizeField(IDataEntityProperty prop, String localeId, String operateType, DynamicObject dynamicObject)

comment:
是否脱敏字段
@param `prop` 属性元数据
@param `localeId` 多语言标识，需要脱敏的语种，如Lang.get().toString()
@param `operateType` 操作类型,如PrivacyCenterServiceHelper.OPERATETYPE_EXPORT
@param `dynamicObject` 单据对象


class_name: kd.bos.servicehelper.privacy.PrivacyCenterServiceHelper
method_name: isDesensitizeFieldWithoutPerm
param_types_key: IDataEntityProperty,String,String,DynamicObject
signature_text:
public static boolean isDesensitizeFieldWithoutPerm(IDataEntityProperty prop, String localeId, String operateType, DynamicObject dynamicObject)

comment:
是否脱敏字段，忽略脱敏权限
@param `prop` 属性元数据
@param `localeId` 多语言标识，需要脱敏的语种，如Lang.get().toString()
@param `operateType` 操作类型,如PrivacyCenterServiceHelper.OPERATETYPE_EXPORT
@param `dynamicObject` 单据对象


class_name: kd.bos.servicehelper.productsetting.ProductSettingServiceHelper
method_name: hasBlackFeature
param_types_key: String,String
signature_text: public static boolean hasBlackFeature(String appIdOrNum, String featureNum)
comment:
查询该应用下是否有对应的黑名单特性
@param `appIdOrNum` 应用id或应用编码
@param `featureNum` 特性编码
@return true：应用下有该黑名单特性； false：应用下没有该黑名单特性


class_name: kd.bos.servicehelper.pushMessage.PushServiceHelper
method_name: sendWebSocketAction
param_types_key: String,Object,List
comment: 通过webscoket发送指令给前端 @param `actionName` 指令名 @param `param` 指令参数 @param `userIds` 用户id
signature_text:
public static void sendWebSocketAction(String actionName, Object param, java.util.List<String> userIds)


class_name: kd.bos.servicehelper.pushMessage.PushServiceHelper
method_name: sendWebSocketActionBySession
param_types_key: String,Object,String[]
comment: 通过webscoket发送指令给前端 @param `actionName` 指令名 @param `param` 指令参数 @param `sessionIds` 用户id
signature_text:
public static void sendWebSocketActionBySession(String actionName, Object param, String[] sessionIds)


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: checkQueryPKSize
param_types_key: int,List
signature_text: protected static boolean checkQueryPKSize(int maxCells, java.util.List<Object> ids)
comment:
检查queryPrimaryKeys的数据量是否超过阈值，如果超过则报错
@param `maxCells` 最大限制单元格数。如传入-1为不限制
@param `ids` 实际取出的内码数
@return 通过检查返回ture。未通过检查会抛异常


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: checkQuerySize
param_types_key: QFilter[],String,DynamicObjectCollection,int,int
signature_text:
protected static boolean checkQuerySize(QFilter[] filters, String selectFields, DynamicObjectCollection rows, int maxRows, int maxCells)

comment:
检查query的数据量是否超过阈值，如果超过则报错中断。检查包括总行数、总单元格数，任一超出即报错。
@param `filters` 原始取数条件
@param `selectFields` 读取的字段
@param `rows` 已读取的数据集合
@param `maxRows` 最大限制行数。如传入-1为不限制
@param `maxCells` 最大限制单元格数。如传入-1为不限制
@return 通过检查返回ture。未通过检查会抛异常


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: getAllBillNo
param_types_key: String,int
comment: 获取所有的单据编号字段标识 @param `searchKey` 关键字 @param `top` 前top条
signature_text:
public static java.util.List<kd.bos.servicehelper.BillNoDto> getAllBillNo(String searchKey, int top)


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: query
param_types_key: String,String,QFilter[]
signature_text:
public static DynamicObjectCollection query(String entityName, String selectFields, QFilter[] filters)

comment:
查询单据，返回拉平的数据包
**注意：**
* 本方法返回的是单据头、单据体拉平后的数据行，不同于[String, QFilter[], String)返回的结构化数据包。
* 本方法返回的数据包不能用于修改、保存。
* 请合理设置读取字段：减少读取的字段，可节省性能。
* 请合理设置取数条件：读取大量数据，容易引发OOM异常。
@param `entityName` 单据实体标识，如"sal_saleorder"
@param `selectFields` 查询字段，多个字段用逗号隔开，单据体字段需增加单据体标识做前缀，如："id, billno, entryentity.qty"
@param `filters` 过滤条件
@return 返回单据头、单据体拉平的数据包


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: query
param_types_key: String,String,QFilter[],String
signature_text:
public static DynamicObjectCollection query(String entityName, String selectFields, QFilter[] filters, String orderBys)

comment:
查询单据（排序），返回拉平的数据包
**注意：**
* 本方法返回的是单据头、单据体拉平后的数据行，不同于[String, QFilter[], String)返回的结构化数据包。
* 本方法返回的数据包不能用于修改、保存。
* 请合理设置读取字段：减少读取的字段，可节省性能。
* 请合理设置取数条件：读取大量数据，容易引发OOM异常。
@param `entityName` 单据实体标识，如"sal_saleorder"
@param `selectFields` 查询字段，多个字段用逗号隔开，单据体字段需增加单据体标识做前缀，如："id, billno, entryentity.qty"
@param `filters` 过滤条件
@param `orderBys` 排序条件
@return 返回单据头、单据体拉平的数据包


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: query
param_types_key: String,String,QFilter[],String,int
signature_text:
public static DynamicObjectCollection query(String entityName, String selectFields, QFilter[] filters, String orderBys, int top)

comment:
查询单据（排序，前top条），返回拉平的数据包
**注意：**
* 本方法返回的是单据头、单据体拉平后的数据行，不同于[String, QFilter[], String)返回的结构化数据包。
* 本方法返回的数据包不能用于修改、保存。
* 请合理设置读取字段：减少读取的字段，可节省性能。
* 请合理设置取数条件：读取大量数据，容易引发OOM异常。
@param `entityName` 单据实体标识，如"sal_saleorder"
@param `selectFields` 查询字段，多个字段用逗号隔开，单据体字段需增加单据体标识做前缀，如："id, billno, entryentity.qty"
@param `filters` 过滤条件
@param `orderBys` 排序条件
@param `top` 查询前top条
@return 返回单据头、单据体拉平的数据包


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: query
param_types_key: String,String,String,QFilter[],String
signature_text:
public static DynamicObjectCollection query(String algoKey, String entityName, String selectFields, QFilter[] filters, String orderBys)

comment:
查询单据（排序），返回拉平的数据包
**注意：**
* 本方法返回的是单据头、单据体拉平后的数据行，不同于[String, QFilter[], String)返回的结构化数据包。
* 本方法返回的数据包不能用于修改、保存。
* 请合理设置读取字段：减少读取的字段，可节省性能。
* 请合理设置取数条件：读取大量数据，容易引发OOM异常。
@param `algoKey` 查询标识，调用者通过指定查询标识来互相区分，后续可用此对本本服务进行归类，分析各调用者的性能表现
@param `entityName` 单据实体标识，如"sal_saleorder"
@param `selectFields` 查询字段，多个字段用逗号隔开，单据体字段需增加单据体标识做前缀，如："id, billno, entryentity.qty"
@param `filters` 过滤条件
@param `orderBys` 排序条件
@return 返回单据头、单据体拉平的数据包


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: query
param_types_key: String,String,String,QFilter[],String,int
signature_text:
public static DynamicObjectCollection query(String algoKey, String entityName, String selectFields, QFilter[] filters, String orderBys, int top)

comment:
查询单据（排序，前top条），返回拉平的数据包
**注意：**
* 本方法返回的是单据头、单据体拉平后的数据行，不同于[String, QFilter[], String)返回的结构化数据包。
* 本方法返回的数据包不能用于修改、保存。
* 请合理设置读取字段：减少读取的字段，可节省性能。
* 请合理设置取数条件：读取大量数据，容易引发OOM异常。
@param `algoKey` 查询标识，调用者通过指定查询标识来互相区分，后续可用此对本本服务进行归类，分析各调用者的性能表现
@param `entityName` 单据实体标识，如"sal_saleorder"
@param `selectFields` 查询字段，多个字段用逗号隔开，单据体字段需增加单据体标识做前缀，如："id, billno, entryentity.qty"
@param `filters` 过滤条件
@param `orderBys` 排序条件
@param `top` 查询前top条
@return 返回单据头、单据体拉平的数据包


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: queryByDate
param_types_key: String,String,QFilter[],Date
signature_text:
public static DynamicObjectCollection queryByDate(String entityName, String selectFields, QFilter[] filters, java.util.Date date)

comment:
查询单据，返回拉平的数据包（支持获取名称版本化数据）
**注意：**
* 本方法返回的是单据头、单据体拉平后的数据行，不同于[String, QFilter[], String)返回的结构化数据包。
* 本方法返回的数据包不能用于修改、保存。
* 请合理设置读取字段：减少读取的字段，可节省性能。
* 请合理设置取数条件：读取大量数据，容易引发OOM异常。
@param `entityName` 单据实体标识，如"sal_saleorder"
@param `selectFields` 查询字段，多个字段用逗号隔开，单据体字段需增加单据体标识做前缀，如："id, billno, entryentity.qty"
@param `filters` 过滤条件
@param `date` : 名称版本化取值日期
@return 返回单据头、单据体拉平的数据包


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: queryCountWithPermAndBdCtrl
param_types_key: String,String,QFilter[],String,Map
signature_text:
public static int queryCountWithPermAndBdCtrl(String entityName, String selectFields, QFilter[] filters, String appId, java.util.Map<String, Object> customParam)

comment:
统计单据的数量，自带特殊数据权限、数据规则和管控策略等过滤条件
@param `entityName` 单据实体标识，如"sal_saleorder"
@param `selectFields` 查询字段，多个字段用逗号隔开，单据体字段需增加单据体标识做前缀，如："id, billno, entryentity.qty"
@param `filters` 过滤条件
@param `appId` 验权appId，默认验实体所在应用
@param `customParam` 自定义参数 可以传null 目前只有两种参数： 一是控制对于受控基础资料是否返回重复数据（例如物料有个性化数据），这时用PermissionService.CUSTPARAMKEY_BDCTRL_ISREMOVEDUP作为key，value是Boolean，true是去重，false是不去重； 二是对于受控基础资料查询，获取使用组织id的集合，这时用PermissionService.CUSTPARAMKEY_BDCTRL_USEORGIDS作为key，value是使用组织id的集合，用int
@return 返回单据头数据的总量


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: queryCountWithPermAndBdCtrl
param_types_key: String,String,QFilter[],String,Map,Distinctable
signature_text:
public static int queryCountWithPermAndBdCtrl(String entityName, String selectFields, QFilter[] filters, String appId, java.util.Map<String, Object> customParam, Distinctable distinct)

comment:
统计单据的数量，自带特殊数据权限、数据规则和管控策略等过滤条件
@param `entityName` 单据实体标识，如"sal_saleorder"
@param `selectFields` 查询字段，多个字段用逗号隔开，单据体字段需增加单据体标识做前缀，如："id, billno, entryentity.qty"
@param `filters` 过滤条件
@param `appId` 验权appId，默认验实体所在应用
@param `customParam` 自定义参数 可以传null 目前只有两种参数： 一是控制对于受控基础资料是否返回重复数据（例如物料有个性化数据），这时用PermissionService.CUSTPARAMKEY_BDCTRL_ISREMOVEDUP作为key，value是Boolean，true是去重，false是不去重； 二是对于受控基础资料查询，获取使用组织id的集合，这时用PermissionService.CUSTPARAMKEY_BDCTRL_USEORGIDS作为key，value是使用组织id的集合，用int
@param `distinct` 去重标志
@return 单据的数量


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: queryCountWithPermAndBdCtrl
param_types_key: String,String,String,QFilter[],String,Map,Distinctable
signature_text:
public static int queryCountWithPermAndBdCtrl(String algoKey, String entityName, String selectFields, QFilter[] filters, String appId, java.util.Map<String, Object> customParam, Distinctable distinct)

comment:
统计单据的数量，自带特殊数据权限、数据规则和管控策略等过滤条件
@param `algoKey` 查询标识，调用者通过指定查询标识来互相区分，后续可用此对本本服务进行归类，分析各调用者的性能表现
@param `entityName` 单据实体标识，如"sal_saleorder"
@param `selectFields` 查询字段，多个字段用逗号隔开，单据体字段需增加单据体标识做前缀，如："id, billno, entryentity.qty"
@param `filters` 过滤条件
@param `appId` 验权appId，默认验实体所在应用
@param `customParam` 自定义参数 可以传null 目前只有两种参数： 一是控制对于受控基础资料是否返回重复数据（例如物料有个性化数据），这时用PermissionService.CUSTPARAMKEY_BDCTRL_ISREMOVEDUP作为key，value是Boolean，true是去重，false是不去重； 二是对于受控基础资料查询，获取使用组织id的集合，这时用PermissionService.CUSTPARAMKEY_BDCTRL_USEORGIDS作为key，value是使用组织id的集合，用int
@param `distinct` 去重标志
@return 返回单据的数量


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: queryDataSet
param_types_key: String,String,String,QFilter[],String
comment: 查询单据，返回拉平的数据流
signature_text:
queryDataSet(String algoKey, String entityName, String selectFields, QFilter[] filters, String orderBys)


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: queryDataSet
param_types_key: String,String,String,QFilter[],String,int
signature_text:
public static DataSet queryDataSet(String algoKey, String entityName, String selectFields, QFilter[] filters, String orderBys, int top)

comment:
查询单据（排序，取top条），返回拉平的数据流
**注意：**
* 返回的是流式的数据集合DataSet对象，和数据库保持着链接，用完后必须主动关闭。推荐使用try语法自动关闭返回的DataSet对象。
* 请合理设置读取字段：减少读取的字段，可节省性能。
* 请合理设置取数条件：减少读取的数据量，条件使用索引字段可提升查询效率。
* 本方法是流式取数，性能优于String, QFilter[], String, int)
@param `algoKey` 查询标识，调用者通过指定查询标识来互相区分，后续可用此对本本服务进行归类，分析各调用者的性能表现
@param `entityName` 单据实体标识，如"sal_saleorder"
@param `selectFields` 查询字段，多个字段用逗号隔开，单据体字段需增加单据体标识做前缀，如："id, billno, entryentity.qty"
@param `filters` 过滤条件
@param `orderBys` 排序条件
@param `top` 查询前top条
@return 返回单据头、单据体拉平的数据流


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: queryOne
param_types_key: String,String,QFilter[]
signature_text: public static DynamicObject queryOne(String entityName, String selectFields, QFilter[] filters)
comment:
查询一条数据（第一条）
**注意：**
* 本方法返回的是单据头、单据体拉平后的数据行，不同于[String, QFilter[], String)返回的结构化数据包。
* 本方法返回的数据包不能用于修改、保存。
* 请合理设置读取字段：减少读取的字段，可节省性能。
* 本方法仅返回单据头、单据体拉平后的第一条数据：即单据头单据体关联后的第一行数据
@param `entityName` 单据实体标识，如"sal_saleorder"
@param `selectFields` 查询字段，多个字段用逗号隔开，单据体字段需增加单据体标识做前缀，如："id, billno, entryentity.qty"
@param `filters` 过滤条件
@return 返回单据头、单据体拉平的数据包


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: queryPrimaryKeys
param_types_key: String,QFilter[],String,int
signature_text:
public static java.util.List<Object> queryPrimaryKeys(String entityName, QFilter[] filters, String orderBys, int top)

comment:
查询主键（排序，取top条）
**注意：**
* 请合理设置取数条件：减少读取的数据量，大量读取数据容易引发OOM异常。
@param `entityName` 单据实体标识，如"sal_saleorder"
@param `filters` 过滤条件
@param `orderBys` 排序条件
@param `top` 查询前top条
@return 返回单据内码集合


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: queryPrimaryKeys
param_types_key: String,String,QFilter[],String,int
signature_text:
public static java.util.List<Object> queryPrimaryKeys(String algoKey, String entityName, QFilter[] filters, String orderBys, int top)

comment:
查询主键（排序，取top条）
**注意：**
* 请合理设置取数条件：减少读取的数据量，大量读取数据容易引发OOM异常。
@param `algoKey` 查询标识，调用者通过指定查询标识来互相区分，后续可用此对本本服务进行归类，分析各调用者的性能表现
@param `entityName` 单据实体标识，如"sal_saleorder"
@param `filters` 过滤条件
@param `orderBys` 排序条件
@param `top` 查询前top条
@return 返回单据内码集合


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: queryPrimaryKeys
param_types_key: String,IDataEntityType,QFilter[],String,int
signature_text:
public static java.util.List<Object> queryPrimaryKeys(String algoKey, IDataEntityType entityType, QFilter[] filters, String orderBys, int top)

comment:
查询主键（排序，取top条）
**注意：**
* 请合理设置取数条件：减少读取的数据量，大量读取数据容易引发OOM异常。
@param `algoKey` 查询标识，调用者通过指定查询标识来互相区分，后续可用此对本本服务进行归类，分析各调用者的性能表现
@param `entityType` 查询实体，查询此实体的主键
@param `filters` 过滤条件
@param `orderBys` 排序条件
@param `top` 查询前top条
@return 返回指定实体的数据内码集合


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: queryWithPermAndBdCtrl
param_types_key: String,String,QFilter[],String,String,Map
signature_text:
public static DynamicObjectCollection queryWithPermAndBdCtrl(String entityName, String selectFields, QFilter[] filters, String orderBys, String appId, java.util.Map<String, Object> customParam)

comment:
查询单据（排序），返回拉平的数据包，自带特殊数据权限、数据规则和管控策略等过滤条件
**注意：**
* 本方法返回的是单据头、单据体拉平后的数据行，不同于[String, QFilter[], String)返回的结构化数据包。
* 本方法返回的数据包不能用于修改、保存。
* 请合理设置读取字段：减少读取的字段，可节省性能。
* 请合理设置取数条件：读取大量数据，容易引发OOM异常。
@param `entityName` 单据实体标识，如"sal_saleorder"
@param `selectFields` 查询字段，多个字段用逗号隔开，单据体字段需增加单据体标识做前缀，如："id, billno, entryentity.qty"
@param `filters` 过滤条件
@param `orderBys` 排序条件
@param `appId` 验权appId，默认验实体所在应用
@param `customParam` 自定义参数 可以传null 目前只有两种参数： 一是控制对于受控基础资料是否返回重复数据（例如物料有个性化数据），这时用PermissionService.CUSTPARAMKEY_BDCTRL_ISREMOVEDUP作为key，value是Boolean，true是去重，false是不去重； 二是对于受控基础资料查询，获取使用组织id的集合，这时用PermissionService.CUSTPARAMKEY_BDCTRL_USEORGIDS作为key，value是使用组织id的集合，用int
@return 返回单据头、单据体拉平的数据包


class_name: kd.bos.servicehelper.QueryServiceHelper
method_name: queryWithPermAndBdCtrl
param_types_key: String,String,String,QFilter[],String,String,Map
signature_text:
public static DynamicObjectCollection queryWithPermAndBdCtrl(String algoKey, String entityName, String selectFields, QFilter[] filters, String orderBys, String appId, java.util.Map<String, Object> customParam)

comment:
查询单据（排序），返回拉平的数据包，自带特殊数据权限、数据规则和管控策略等过滤条件
**注意：**
* 本方法返回的是单据头、单据体拉平后的数据行，不同于[String, QFilter[], String)返回的结构化数据包。
* 本方法返回的数据包不能用于修改、保存。
* 请合理设置读取字段：减少读取的字段，可节省性能。
* 请合理设置取数条件：读取大量数据，容易引发OOM异常。
@param `algoKey` 查询标识，调用者通过指定查询标识来互相区分，后续可用此对本本服务进行归类，分析各调用者的性能表现
@param `entityName` 单据实体标识，如"sal_saleorder"
@param `selectFields` 查询字段，多个字段用逗号隔开，单据体字段需增加单据体标识做前缀，如："id, billno, entryentity.qty"
@param `filters` 过滤条件
@param `orderBys` 排序条件
@param `appId` 验权appId，默认验实体所在应用
@param `customParam` 自定义参数 可以传null 目前只有两种参数： 一是控制对于受控基础资料是否返回重复数据（例如物料有个性化数据），这时用PermissionService.CUSTPARAMKEY_BDCTRL_ISREMOVEDUP作为key，value是Boolean，true是去重，false是不去重； 二是对于受控基础资料查询，获取使用组织id的集合，这时用PermissionService.CUSTPARAMKEY_BDCTRL_USEORGIDS作为key，value是使用组织id的集合，用int
@return 返回单据头、单据体拉平的数据包


class_name: kd.bos.servicehelper.runmode.RunModeServiceHelper
method_name: getAppAndCloudBlacklistFilters
param_types_key: QFilter[],String,String
comment: 获取应用黑名单中ORM规范的应用主键以及云主健条件的Filters bos_devportal_bizapp
signature_text:
public static QFilter[] getAppAndCloudBlacklistFilters(QFilter[] filters, String appfilterKey, String cloudfilterKey)


class_name: kd.bos.servicehelper.runmode.RunModeServiceHelper
method_name: getEntityNumBlacklistFilters
param_types_key: String,QFilter[],String
comment: 获取表单实体黑名单中ORM规范的Entity主键Filters
signature_text:
public static QFilter[] getEntityNumBlacklistFilters(String appNumber, QFilter[] filters, String filterKey)


class_name: kd.bos.servicehelper.schedule.ScheduleServiceHelper
method_name: genPlanDesc
param_types_key: String,Date,Date,int
signature_text:
public static String genPlanDesc(String cron, java.util.Date startTime, java.util.Date endTime, int numTimes)

comment:
根据 cron 表达式生成最近执行时间
@param `cron` cron表达式
@param `startTime` 调度计划开始时间
@param `endTime` 调度计划结束时间
@param `numTimes` 生成最近多少次执行时间


class_name: kd.bos.servicehelper.schedule.ScheduleServiceHelper
method_name: genPlanDesc
param_types_key: String,Date,Date,long,int
signature_text:
public static String genPlanDesc(String cron, java.util.Date oriStartTime, java.util.Date endTime, long timeZoneId, int numTimes)

comment:
根据 cron 表达式生成最近执行时间
@param `cron` cron表达式
@param `endTime` 调度计划结束时间
@param `timeZoneId` 指定运行时区
@param `numTimes` 生成最近多少次执行时间


class_name: kd.bos.servicehelper.schedule.ScheduleServiceHelper
method_name: genPlanDescByWorkDay
param_types_key: String,Date,Date,long,int,Long
signature_text:
public static String genPlanDescByWorkDay(String cron, java.util.Date oriStartTime, java.util.Date endTime, long timeZoneId, int numTimes, Long workdayschId)

comment:
根据 cron 表达式生成最近执行时间
@param `cron` 表达式
@param `oriStartTime` 开始时间
@param `endTime` 结束时间
@param `timeZoneId` 时区信息
@param `numTimes` 生成执行时间的次数
@param `workdayschId` 工作日计划id


class_name: kd.bos.servicehelper.TimeServiceHelper
method_name: parseOrgTime
param_types_key: String,Long
signature_text:
public static java.util.Date parseOrgTime(String datetime, Long orgId) throws java.text.ParseException

comment:
解析组织时间（组织时区+默认格式）
@param `datetime` 源时间
@param `orgId` 组织id
@return 时间对象（Date）
@throws ParseException


class_name: kd.bos.servicehelper.TimeServiceHelper
method_name: parseOrgTime
param_types_key: String,Long,DateFormat
signature_text:
public static java.util.Date parseOrgTime(String datetime, Long orgId, java.text.DateFormat fmt) throws java.text.ParseException

comment:
解析组织时间（组织时区+自定义格式）
@param `datetime` 源时间
@param `orgId` 组织id
@param `fmt` 格式化对象
@return 时间对象（Date）
@throws ParseException


class_name: kd.bos.servicehelper.TimeServiceHelper
method_name: parseUserTime
param_types_key: String,Long
signature_text:
public static java.util.Date parseUserTime(String datetime, Long userId) throws java.text.ParseException

comment:
解析用户时间（用户时区+默认格式）
@param `datetime` 源时间
@param `userId` 用户id
@return 时间对象（Date）
@throws ParseException


class_name: kd.bos.servicehelper.TimeServiceHelper
method_name: parseUserTime
param_types_key: String,Long,DateFormat
signature_text:
public static java.util.Date parseUserTime(String datetime, Long userId, java.text.DateFormat fmt) throws java.text.ParseException

comment:
解析用户时间（用户时区+自定义格式）
@param `datetime` 源时间
@param `userId` 用户id
@param `fmt` 格式化对象
@return 时间对象（Date）
@throws ParseException


class_name: kd.bos.servicehelper.UnitConvertHelper
method_name: calculateNewQty
param_types_key: BigDecimal,Long,Long,Long,StringBuilder
signature_text:
public static java.math.BigDecimal calculateNewQty(java.math.BigDecimal srcQty, Long distUnitId, Long srcUnitId, Long materialId, StringBuilder errMsg)

comment:
调用基础的接口进行单位换算
@param `srcQty` 源数量的值
@param `distUnitId` 目标单位内码
@param `srcUnitId` 源单位内码
@param `materialId` 物料内码
@param `errMsg` 错误信息
@return 目标数量的值


class_name: kd.bos.servicehelper.UnitConvertHelper
method_name: convertQty
param_types_key: QtyProp,QtyProp,IDataModel,StringBuilder
signature_text:
public static boolean convertQty(QtyProp srcQtyProp, QtyProp distQtyProp, IDataModel dataModel, StringBuilder errMsg)

comment:
根据 源数量 目标数量 进行换算
@param `srcQtyProp` 源数量
@param `distQtyProp` 目标数量
@param `dataModel` 数据模型
@param `errMsg` 错误信息
@return boolean


class_name: kd.bos.servicehelper.UnitConvertHelper
method_name: convertQtyByNewUnit
param_types_key: IDataModel,QtyProp,QtyProp,int,StringBuilder
signature_text:
public static boolean convertQtyByNewUnit(IDataModel dataModel, QtyProp srcQtyProp, QtyProp distQtyProp, int rowIndex, StringBuilder errMsg)

comment:
@param `dataModel` 数据模型
@param `srcQtyProp` 源数量字段属性
@param `distQtyProp` 目标数量字段属性
@param `rowIndex` 行索引，如果在单据体内，单据体的下标，单据头则填写-1
@param `errMsg` 错误信息
@return true/false


class_name: kd.bos.servicehelper.UnitConvertHelper
method_name: convertQtyByNewUnit
param_types_key: IDataModel,QtyProp,QtyProp,Long,Long,int,StringBuilder
signature_text:
public static boolean convertQtyByNewUnit(IDataModel dataModel, QtyProp srcQtyProp, QtyProp distQtyProp, Long srcUnitId, Long distUnitId, int rowIndex, StringBuilder errMsg)

comment:
@param `dataModel` 数据模型
@param `srcQtyProp` 源数量字段属性
@param `distQtyProp` 目标数量字段属性
@param `srcUnitId` 源单位内码
@param `distUnitId` 目标单位内码
@param `rowIndex` 行索引，如果在单据体内，单据体的下标，单据头填写-1
@param `errMsg` 错误信息
@return true/false


class_name: kd.bos.servicehelper.UnitConvertHelper
method_name: convertQtyByNewUnit
param_types_key: IDataModel,QtyProp,QtyProp,StringBuilder
signature_text:
public static void convertQtyByNewUnit(IDataModel dataModel, QtyProp srcQtyProp, QtyProp distQtyProp, StringBuilder errMsg)

comment:
@param `dataModel` 数据模型
@param `srcQtyProp` 源数量字段属性
@param `distQtyProp` 目标数量字段属性
@param `errMsg` 错误信息


class_name: kd.bos.servicehelper.UnitConvertHelper
method_name: convertQtyByNewUnit
param_types_key: IDataModel,UnitProp,long,long,int,StringBuilder
signature_text:
public static void convertQtyByNewUnit(IDataModel dataModel, UnitProp unitProp, long newUnitId, long oldUnitId, int rowIndex, StringBuilder errMsg)

comment:
@param `dataModel` 数据模型
@param `unitProp` 单位属性
@param `newUnitId` 新单位内码
@param `oldUnitId` 旧单位内码
@param `rowIndex` 如果单位在单据体内，单据体的下标，单据头则填写-1
@param `errMsg` 错误信息


class_name: kd.bos.servicehelper.UnitConvertHelper
method_name: getRelatedUnitId
param_types_key: QtyProp,DynamicObject,int
signature_text: public static Long getRelatedUnitId(QtyProp qtyProp, DynamicObject maindataPkg, int index)
comment:
@param `qtyProp` 数量属性
@param `maindataPkg` 主数据包
@param `index` 如果关联的单位在单据体内，填单据体的下标，单据头则填写-1
@return 基础资料内码


class_name: kd.bos.servicehelper.UnitConvertHelper
method_name: isConvertable
param_types_key: QtyProp,QtyProp,MainEntityType,StringBuilder
signature_text:
public static boolean isConvertable(QtyProp distQtyProp, QtyProp srcQtyProp, MainEntityType dt, StringBuilder errMsg)

comment:
@param `distQtyProp` 目标数量属性
@param `srcQtyProp` 源单位数量属性
@param `dt` 主实体类型
@param `errMsg` 错误信息记录
@return true/falses


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: addOrUpdateReportRelation
param_types_key: List
signature_text:
public static java.util.Map<Long, String> addOrUpdateReportRelation(java.util.List<java.util.Map<String, Long>> relationList)

comment:
新增或更新汇报关系
@param `relationList` 新增或更新的汇报关系list Map中的key：id 汇报关系id typeid 汇报类型id positionid 岗位id suppositionid 上级岗位id
@return Map 返回汇报关系id和操作结果的Map


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: changePsw
param_types_key: long,String
signature_text: public static java.util.Map<String, Object> changePsw(long userId, String password)
comment:
设置用户密码的接口
@param `userId` 用户id
@param `password` 新密码
@return 成功失败的信息 success:boolean,修改成功或失败;msg:String,失败信息


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: changePsw
param_types_key: long,String,String
signature_text:
public static java.util.Map<String, Object> changePsw(long userId, String oldPassword, String newPassword)

comment:
设置用户密码的接口
@param `userId` 用户id
@param `oldPassword` 旧密码
@param `newPassword` 新密码
@return 成功失败的信息 success:boolean,修改成功或失败;msg:String,失败信息


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: deleteReportRelation
param_types_key: Map
comment: 删除汇报关系 @param `relationMap` 汇报类型id，岗位id Set @return Map> 返回汇报类型id和对应的操作结果
signature_text:
public static java.util.Map<Long, java.util.Map<Long, String>> deleteReportRelation(java.util.Map<Long, java.util.Set<Long>> relationMap)


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: get
param_types_key: List,String[],String[]
signature_text:
public static java.util.List<java.util.Map<String, Object>> get(java.util.List<Long> userIds, String[] properties, String[] jobProperties)

comment:
获取人员信息
@param `userIds` 人员ID列表
@param `properties` 人员属性集合：为空时，返回默认属性
@param `jobProperties` 人员职位属性集合：为空时，返回默认属性
@return 包含指定人员属性值的集合列表


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getAllPartnerUsersOfOrg
param_types_key: List,boolean,boolean
signature_text:
public static java.util.Set<Long> getAllPartnerUsersOfOrg(java.util.List<Long> orgIds, boolean isFindSubOrg, boolean includeDisable)

comment:
根据条件获取相应组织下所有的商务伙伴用户ID
@param `orgIds` 组织ID列表
@param `isFindSubOrg` 是否包含下级部门（true：返回结果包含任职部门的下级组织；false：返回结果不包含任职部门的下级组织）
@param `includeDisable` 是否包含禁用商务伙伴用户
@return 商务伙伴用户ID集合


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getAllUsersOfOrg
param_types_key: List,boolean
signature_text:
public static java.util.List<Long> getAllUsersOfOrg(java.util.List<Long> orgIds, boolean isFindSubOrg)

comment:
得到给定组织集合的全部人员
@param `orgIds` 组织ID列表
@param `isFindSubOrg` 是否包含下级部门（true：返回结果包含任职部门的下级组织；false：返回结果不包含任职部门的下级组织）
@return 人员ID列表


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getAllUsersOfOrg
param_types_key: int,List,boolean,boolean
signature_text:
public static java.util.Set<Long> getAllUsersOfOrg(int jobType, java.util.List<Long> orgIds, boolean includeSubOrg, boolean includeDisableUser)

comment:
根据指定部门查询人员
@param `jobType` 任职类型 1：只获取主职人员；2：只获取兼职部门人员；其他：部门下所有人员，不区分主职和兼职
@param `orgIds` 组织ID
@param `includeSubOrg` 是否包含下级组织
@param `includeDisableUser` 是否包含禁用人员（true：返回结果包含禁用的人员；false：返回结果不包含禁用的人员）
@return 人员ID列表


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getAllUsersOfOrg
param_types_key: List,boolean,boolean
signature_text:
public static java.util.Set<Long> getAllUsersOfOrg(java.util.List<Long> orgIds, boolean isFindSubOrg, boolean includeDisable)

comment:
根据条件获取相应组织下所有的人员ID
@param `orgIds` 组织ID列表
@param `isFindSubOrg` 是否包含下级部门（true：返回结果包含任职部门的下级组织；false：返回结果不包含任职部门的下级组织）
@param `includeDisable` 是否包含禁用人员（true：返回结果包含禁用的人员；false：返回结果不包含禁用的人员）
@return 人员ID集合


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getAllUsersOfOrg
param_types_key: List,boolean,boolean,List
signature_text:
public static java.util.Set<Long> getAllUsersOfOrg(java.util.List<Long> orgIds, boolean isFindSubOrg, boolean includeDisable, java.util.List<Long> inUserIds)

comment:
根据条件获取相应组织下所有的人员ID
@param `orgIds` 组织ID列表
@param `isFindSubOrg` 是否包含下级部门（true：返回结果包含任职部门的下级组织；false：返回结果不包含任职部门的下级组织）
@param `includeDisable` 是否包含禁用人员（true：返回结果包含禁用的人员；false：返回结果不包含禁用的人员）
@param `inUserIds` 预先查询的人员范围
@return 人员ID集合


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getInchargeOrgs
param_types_key: long,boolean
signature_text: public static java.util.List<Long> getInchargeOrgs(long userID, boolean isIncludeSubOrg)
comment:
获取指定人员的负责部门
@param `userID` 人员ID
@param `isIncludeSubOrg` 是否包含下级部门（true：返回结果包含任职部门的下级组织；false：返回结果不包含任职部门的下级组织）
@return List 组织ID列表


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getPeopleUnderPosition
param_types_key: Set
comment: 获取岗位下的人员 @param `positionIds` 岗位id @return Map> 返回岗位对应岗位下的人员信息
signature_text:
public static java.util.Map<Long, java.util.Set<DynamicObject>> getPeopleUnderPosition(java.util.Set<Long> positionIds)


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getPosition
param_types_key: List
comment: 获取人员职位信息 @param `userIds` 人员ID列表 @return 人员任职信息列表
signature_text:
public static java.util.List<java.util.Map<String, Object>> getPosition(java.util.List<Long> userIds)


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getPositionIdsByDptId
param_types_key: List
comment: 根据部门id查询岗位 @param `dptIds` 部门id集合 @return Map> 返回部门id和岗位id Set的Map
signature_text:
public static java.util.Map<Long, java.util.Set<Long>> getPositionIdsByDptId(java.util.List<Long> dptIds)


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getPositions
param_types_key: List,boolean
signature_text:
public static java.util.Map<Long, Position> getPositions(java.util.List<Long> positionIds, boolean isIncludeSuperiorPosition)

comment:
根据岗位id的List批量获取岗位信息
@param `positionIds` 岗位id
@param `isIncludeSuperiorPosition` 查询结果是否包含上级岗位id
@return Map，岗位id，对应岗位的number，name，dptId，ismainposition，enable，remarks，superiorPositionId


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getPositionsByNumber
param_types_key: List,boolean
signature_text:
public static java.util.Map<String, Position> getPositionsByNumber(java.util.List<String> positionNumberList, boolean isIncludeSuperiorPosition)

comment:
根据岗位number的List批量获取岗位信息(行政汇报关系)
@param `positionNumberList` 岗位number
@param `isIncludeSuperiorPosition` 查询结果是否包含上级岗位
@return Map，岗位number，对应岗位的id，number，name，dptId，ismainposition，enable，remarks


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getReportType
param_types_key: boolean
comment: 获取汇报类型 @param `isIncludeDisable` 是否包含禁用 @return 返回Map>,汇报类型id，对应汇报类型number、name、enable
signature_text:
public static java.util.Map<Long, java.util.Map<String, Object>> getReportType(boolean isIncludeDisable)


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getSuperiorPosition
param_types_key: long,long
signature_text: public static String getSuperiorPosition(long reportTypeId, long positionId)
comment:
根据汇报类型id和岗位id获取上级岗位
@param `reportTypeId` 汇报类型id
@param `positionId` 岗位id
@return 返回上级岗位id，id为0则表示没有上级岗位


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getSuperiorPositions
param_types_key: long,List
signature_text:
public static java.util.Map<Long, java.util.Map<String, Object>> getSuperiorPositions(long reportTypeId, java.util.List<Long> positionIds)

comment:
根据汇报类型id和岗位id的List批量获取上级岗位信息
@param `reportTypeId` 汇报类型id
@param `positionIds` 岗位id
@return Map>，岗位id，对应上级岗位的id、number、name、enable，没有上级岗位的id为0，其他属性为null


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getUserAvatarPath
param_types_key: List,boolean
comment: 获取人员头像地址 @param `userIds` 人员ID列表 @param `isGetFullPath` 是否获取全路径 @return 人员ID和头像URI地址映射
signature_text:
public static java.util.Map<Long, String> getUserAvatarPath(java.util.List<Long> userIds, boolean isGetFullPath)


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getUserChangeInfos
param_types_key: String,boolean,boolean
signature_text:
public static java.util.List<java.util.Map<String, Object>> getUserChangeInfos(String timestamp, boolean includeDptAdmin, boolean includeCompany)

comment:
描述：取人员变动信息接口
key:id,uid,number,name,dpt,phone,email,chargerName,chargerNumber,companyName,type
描述：人员ID，云之家UID、工号、姓名、部门、手机、邮箱，部门负责人及其工号、调用部门所属公司名称、变更类型（新增、修改、删除，禁用）。
变更类型:1：新增 2：修改 3：删除 4:禁用
@param `timestamp` 查询时间戳，格式YYYY-MM-dd
@param `includeDptAdmin` 是否包含人员所在部门的负责人
@param `includeCompany` 是否包含人员所属公司
@return List> 人员变动信息列表，Map格式，


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getUserChangeInfos
param_types_key: String
signature_text: public static java.util.List<java.util.Map<String, Object>> getUserChangeInfos(String timestamp)
comment:
描述：取人员变动信息接口
key:id,uid,number,name,dpt,phone,email,chargerName,chargerNumber,companyName,type
描述：人员ID，云之家UID、工号、姓名、部门、手机、邮箱，部门负责人及其工号、调用部门所属公司名称、变更类型（新增、修改、删除，禁用）。
变更类型:1：新增 2：修改 3：删除 4:禁用
@param `timestamp` 查询时间戳，格式YYYY-MM-dd
@return List> 人员变动信息列表，Map格式，


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getUserDepartments
param_types_key: List,boolean,boolean
signature_text:
public static java.util.Map<Long, java.util.List<Long>> getUserDepartments(java.util.List<Long> userIds, boolean onlyMainJob, boolean onlyInCharge)

comment:
获取人员的任职部门
@param `userIds` 人员ID列表
@param `onlyMainJob` 是否只查询主职部门
@param `onlyInCharge` 是否只查询负责的部门
@return 人员ID与任职部门ID列表的映射


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getUserDepartments
param_types_key: long,boolean,boolean
signature_text:
public static java.util.List<Long> getUserDepartments(long userId, boolean onlyMainJob, boolean onlyInCharge)

comment:
获取人员的任职部门
@param `userId` 人员ID
@param `onlyMainJob` 是否只查询主职部门
@param `onlyInCharge` 是否只查询负责的部门
@return 任职部门ID列表


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getUserInfoByID
param_types_key: List
comment: 根据用户id获取用户信息（批量） @param `userID` 用户id列表 @return 包含人员的userid、uid、number、name、phone、email、type的map
signature_text:
public static java.util.List<java.util.Map<String, Object>> getUserInfoByID(java.util.List<Long> userID)


class_name: kd.bos.servicehelper.user.UserServiceHelper
method_name: getUserMainOrgId
param_types_key: List
comment: 批量获取用户的主职部门 @param `lstUserIds` 用户内码列表 @return 人员和主职部门内码映射关系列表
signature_text:
public static java.util.List<java.util.Map<Long, Long>> getUserMainOrgId(java.util.List<Long> lstUserIds)


class_name: kd.bos.servicehelper.workflow.EventServiceHelper
method_name: triggerEventSubscribe
param_types_key: String,String
signature_text: public static void triggerEventSubscribe(String eventNumber, String json)
comment:
通过事件编码、入参触发事件订阅
@param `eventNumber` 事件编码
@param `json` 入参json中需要包含 主键：businesskey，实体编码：entityNumber 例：{"entityNumber":"wf_demo","businesskey":"2152188820592847872"} 注：入参json不支持非String类型字段作为Key传递


class_name: kd.bos.servicehelper.workflow.EventServiceHelper
method_name: triggerEventSubscribeJobs
param_types_key: String,String,String
signature_text:
public static void triggerEventSubscribeJobs(String eventNumber, String businessKey, String entityNumber)

comment:
通过事件编码、业务主键、实体编码触发事件订阅
@param `eventNumber` 事件编码
@param `businessKey` 业务主键
@param `entityNumber` 实体编码


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: batchComplateTasks
param_types_key: List,Long,ILocaleString,Map
signature_text:
public static java.util.Map<String, Object> batchComplateTasks(java.util.List<Long> taskIds, Long userId, ILocaleString opinion, java.util.Map<String, Object> variables)

comment:
批量处理任务
data -> {"result":"","successIds":[2175569264101057536,2177667133419304960],"failedCount":0,"success":true,"successCount":2,"message":""}-处理的任务信息 如果失败会有失败原因
success ->  true - 是否处理成功
description -> task handle success - 任务成功信息
@param `taskIds` 任务id
@param `userId` 用户id
@param `opinion` 处理意见
@param `variables` 参数
@return map集合


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: batchDeleteTasks
param_types_key: List
signature_text: public static java.util.Map<String, Object> batchDeleteTasks(java.util.List<Long> taskIds)
comment:
批量删除自定义任务
**注意：** 该操作会批量物理删除自定义任务，请谨慎使用。
"data" -> "{}""success" -> true - 是否处理成功
description -> "deleteTasks success" -成功信息，如果失败会报失败原因
@param `taskIds` 任务id
@return map集合


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: batchSendMessages
param_types_key: List
signature_text:
public static java.util.Map<String, Object> batchSendMessages(java.util.List<MessageInfo> messageInfos)

comment:
批量推送消息
data={failMsgs={}, successMsgIds=[2178374492370298880]} 成功/失败数据
success=true - 是否处理成功
description=消息发送成功！ -成功信息，如果失败会报失败原因
@param `messageInfos` 消息中心推送消息接口入参对象属性 kd.bos.workflow.engine.msg.info.MessageInfo
@return map集合 {data={failMsgs={}, successMsgIds=[2178374492370298880]}, success=true, description=消息发送成功！}


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: builMessageUrl
param_types_key: String,String,Long,Map
signature_text:
public static java.util.Map<String, Object> builMessageUrl(String formId, String mobFormId, Long pkId, java.util.Map<String, Object> param)

comment:
构造消息链接
@param `formId` 表单id
@param `mobFormId` 移动表单
@param `pkId` pkid
@param `param` 参数 {demo=1} 自定义参数，会被拼接到url中
@return map 消息链接数据 {result=true, code=0, data=http://localhost:8080/ierp/integration/yzjShareOpen.do?formId=demo&mb_formId=demo_mob&pkId=2192954646153856768&accountId=2077515216072918912&demo=1, description=操作成功。}


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: circulateBizTask
param_types_key: CirculateOperationParam
signature_text: public BatchOperateResult circulateBizTask(CirculateOperationParam circulateOperationParam)
comment:
批量传阅任务
@param `circulateOperationParam` 批量传阅参数 kd.bos.workflow.engine.task.operation.CirculateOperationParam
@return BatchOperateResult 批量操作结果 kd.bos.workflow.engine.task.BatchOperateResult


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: completeBizTask
param_types_key: CompleteOperationParam
signature_text: public static BatchOperateResult completeBizTask(CompleteOperationParam completeOperationParam)
comment:
批量完成模型运行期任务
@param `completeOperationParam` 完成操作参数 kd.bos.workflow.engine.task.operation.CompleteOperationParam
@return BatchOperateResult 批量操作结果 kd.bos.workflow.engine.task.BatchOperateResult


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: createBizTask
param_types_key: TaskEntityInfo
signature_text: public static TaskInfo createBizTask(TaskEntityInfo taskEntityInfo)
comment:
创建模型运行期任务
@param `taskEntityInfo` 任务实体 kd.bos.workflow.engine.msg.info.TaskEntityInfo
@return TaskInfo 任务对象 kd.bos.workflow.engine.task.TaskInfo


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: createTask
param_types_key: TaskEntityInfo
signature_text: public static java.util.Map<String, Object> createTask(TaskEntityInfo taskEntityInfo)
comment:
苍穹业务调用接口，传入任务对象，推送任务到消息中心以及产生各渠道待办
@param `taskEntityInfo` 任务实体信息 kd.bos.workflow.engine.msg.info.TaskEntityInfo
@return map集合{success=false,// 是否成功 description=taskEntityInfo name[null[] or subject[null[] is null // 错误信息}


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: deleteBizTask
param_types_key: DeleteOperationParam
signature_text: public static BatchOperateResult deleteBizTask(DeleteOperationParam deleteOperationParam)
comment:
批量删除模型运行期任务
**注意：** 该操作会物理删除模型运行期任务，请谨慎使用。
@param `deleteOperationParam` 删除操作参数 kd.bos.workflow.engine.task.operation.DeleteOperationParam
@return BatchOperateResult 批量操作结果 kd.bos.workflow.engine.task.BatchOperateResult


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: deleteMessage
param_types_key: List
signature_text: public static java.util.Map<String, Object> deleteMessage(java.util.List<Object> msgIds)
comment:
批量删除消息
**注意：** 该操作会直接 物理删除 消息表数据，请谨慎使用。
@param `msgIds` 消息id集合
@return 返回值为Map对象，存储有撤回pc端消息操作的结果信息 key="result" value=true/false 操作结果 key="code" value="0/400" 操作结果状态码 key="description" value="****" 操作成功/失败的描述信息 key="data" value="List data = new ArrayList<>()" 处理的消息编号集合


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getApplyedProcess
param_types_key: MessageCenterParams
signature_text:
public static java.util.Map<String, Object> getApplyedProcess(MessageCenterParams messageCenterParams)

comment:
获取已办申请
@param `messageCenterParams` 消息中心参数 kd.bos.workflow.engine.task.MessageCenterParams
@return 任务值 示例：{"data":[{"id":12121,"billno":"test-12","entityname":"jichuziliao"},{"id":12121,"billno":"test-12","entityname":"jichuziliao"}]}


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getApplyedProcessCount
param_types_key: MessageCenterParams
signature_text: public static Long getApplyedProcessCount(MessageCenterParams messageCenterParams)
comment:
获取已办申请数量
@param `messageCenterParams` 消息中心参数 kd.bos.workflow.engine.task.MessageCenterParams
@return 申请数量 Long


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getChannelsOfMsgType
param_types_key: String
signature_text: public static String getChannelsOfMsgType(String type)
comment:
获取消息类型中使用的消息渠道信息
@param `type` 消息类型 （预置了6种消息类型，分别是任务(task)、报警(alarm)、预警(warning)、通知(message)、公告(notice)、活动消息（activity））
@return type 渠道编码


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getDelegateTaskCount
param_types_key: String,MessageCenterParams
signature_text: public static Long getDelegateTaskCount(String taskType, MessageCenterParams messageCenterParams)
comment:
获取委托任务数量
@param `taskType` 任务类型
@param `messageCenterParams` 消息中心参数 kd.bos.workflow.engine.task.MessageCenterParams
@return 任务数量 Long


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getDelegateTasks
param_types_key: String,MessageCenterParams
signature_text:
public static java.util.Map<String, Object> getDelegateTasks(String taskType, MessageCenterParams messageCenterParams)

comment:
获取委托任务
@param `taskType` 任务类型
@param `messageCenterParams` 消息中心参数 kd.bos.workflow.engine.task.MessageCenterParams
@return 任务值 示例：{"data":[{"id":12121,"billno":"test-12","entityname":"jichuziliao"},{"id":12121,"billno":"test-12","entityname":"jichuziliao"}]}


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getHandledTaskCount
param_types_key: MessageCenterParams
signature_text: public static Long getHandledTaskCount(MessageCenterParams messageCenterParams)
comment:
获取已办任务数量
@param `messageCenterParams` 消息中心参数 kd.bos.workflow.engine.task.MessageCenterParams
@return 任务数量 Long


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getHandledTasks
param_types_key: MessageCenterParams
signature_text:
public static java.util.Map<String, Object> getHandledTasks(MessageCenterParams messageCenterParams)

comment:
获取已办任务
@param `messageCenterParams` 消息中心参数 kd.bos.workflow.engine.task.MessageCenterParams
@return 任务值 示例：{"data":[{"id":12121,"billno":"test-12","entityname":"jichuziliao"},{"id":12121,"billno":"test-12","entityname":"jichuziliao"}]}


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getMessageByFilter
param_types_key: String,String,String,String,boolean,int
signature_text:
public static java.util.List<java.util.Map<String, Object>> getMessageByFilter(String userId, String entityNumber, String tags, String msgType, boolean unread, int top)

comment:
根据条件获取消息消息内容
@param `userId` 用户ID
@param `entityNumber` 业务实体
@param `tags` 自定义标签
@param `msgType` 消息类型（预置了6种消息类型，分别是任务(task)、报警(alarm)、预警(warning)、通知(message)、公告(notice)、活动消息（activity））
@param `unread` 是否已读 true | false
@param `top` 数量 不使用该参数，设为0
@return 返回值为Map对象，存储有消息内容信息，具体包含以下等关键字段 key="readstate" value="unread/read" 消息未读已读状态 key="sendername" value="xxx" 消息发送者名称 key="createdate" value="YYYY-MM-DD hh-mm-ss" 创建时间 key="entitynumber" value="xxx" 业务实体名称 key="type" value="123xxx321" 消息类型id key="title" value="xxx" 消息标题 key="content" value="xxx" 消息正文内容 key="bizdataid" value="xxx" 业务单据id key="contenturl" value="http://localhost:8080/xxx/index.html?formId=xxx" pc端消息链接 key="sender" value="xxx" 消息发送者id key="mobcontenturl" value="http://localhost:8080/xxx/index.html?formId=xxx" 移动端消息链接 key="id" value="xxx" 消息id key="tag" value="xxx" 自定义标签


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getMessageById
param_types_key: List
signature_text: public static java.util.Map<String, Object> getMessageById(java.util.List<Long> messageIds)
comment:
根据消息id获取消息内容
e.g ： {messageInfos=[MessageInfo [title=xxx, content=xxx,userid=[2102901203351383040], contentUrl=, bizDataId=xxx, operation=save]]}
key="title"          value="xxx"                     消息标题
key="content"		value="xxx"		                消息正文内容
key="bizdataid"		value="xxx"		                业务单据id
key="contenturl"		value="http://localhost:8080/xxx/index.html?formId=xxx" pc端消息链接
key="userid"			value=[2102901203351383040]		人员
key="operation"		value="save"					操作
@param `messageIds` 消息id
@return map 消息内容


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getMessageData
param_types_key: MessageRequestInfo
signature_text:
public static java.util.List<java.util.Map<String, Object>> getMessageData(MessageRequestInfo messageRequestInfo)

comment:
获取消息内容数据
key="readstate"		value="unread/read"             消息未读已读状态
key="sendername"		value="xxx" 		            消息发送者名称
key="createdate"		value="YYYY-MM-DD hh-mm-ss"     创建时间
key="entitynumber"   value="xxx"                     业务实体名称
key="type"           value="123xxx321"               消息类型id
key="title"          value="xxx"                     消息标题
key="content"		value="xxx"		                消息正文内容
key="bizdataid"		value="xxx"		                业务单据id
key="contenturl"		value="http://localhost:8080/xxx/index.html?formId=xxx" pc端消息链接
key="sender"		    value="xxx" 		            消息发送者id
key="mobcontenturl"	value="http://localhost:8080/xxx/index.html?formId=xxx" 移动端消息链接
key="id"				value="xxx" 		            消息id
key="tag"            value="xxx"                     自定义标签
@param `messageRequestInfo` 消息请求 kd.bos.workflow.api.MessageRequestInfo 特别提醒:messageRequestInfo中的start与limit为必填项，需要限制单次查询的条数不能超过5000条，详情可见MessageRequestInfo中的描述
@return 返回值为Map对象，存储有消息内容信息，具体包含以下等关键字段


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getMessageDatas
param_types_key: String,MessageCenterParams
signature_text:
public static java.util.Map<String, Object> getMessageDatas(String messageType, MessageCenterParams messageCenterParams)

comment:
获取消息数据
demo1
}]}
@param `messageType` 消息类型(warning/ message/ activity/ notice/ alarm)
@param `messageCenterParams` 消息中心参数 kd.bos.workflow.engine.task.MessageCenterParams
@return 对应查询字段消息数据 {data=[{title=“demo”没有进入流程，原因：未找到满足启动条件的流程。},{title=


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getMessageDatasCount
param_types_key: String,MessageCenterParams
signature_text:
public static Long getMessageDatasCount(String messageType, MessageCenterParams messageCenterParams)

comment:
获取消息数量
@param `messageType` 消息类型 (warning/ message/ activity/ notice/ alarm)
@param `messageCenterParams` 消息中心参数 kd.bos.workflow.engine.task.MessageCenterParams
@return 消息总数 Long


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getMessageReadState
param_types_key: Long
signature_text: public static java.util.Map<String, Object> getMessageReadState(Long msgId)
comment:
查询该消息下，消息接收人的阅读状态
key="toAll"			value="true/false"	该消息是否是全员推送
key="read"			value="List read = new ArrayList<>()"	已读该消息的接收人id集合
key="unread"		value="List unread = new ArrayList<>()"	未读该消息的接收人id集合
key="messageId"		value="msgId"	入参中的消息id
@param `msgId` 消息id
@return map对象，存储消息接收人的阅读状态


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getMessageTemplateByFilters
param_types_key: String,String,String,String
signature_text:
public static java.util.List<String> getMessageTemplateByFilters(String type, String channel, String scene, String entityNumber)

comment:
获取消息模板
demo
\n
{billno}
"}
@param `type` 消息类型（预置了6种消息类型，分别是任务(task)、报警(alarm)、预警(warning)、通知(message)、公告(notice)、活动消息（activity））
@param `channel` 消息渠道（默认内置了8个消息渠道，分别为dingding,email,sms,weixinqy,welink,yunzhijia,yunzhijiaeco,yunzhijiaup）
@param `scene` 消息场景` msg_tplscene 数据
@param `entityNumber` 消息实体编码
@return List 消息模板信息集合 其中包含具体的模板内容 {"emailTitle":"demo{billstatus}","emailContent":"


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getMessageTemplateLocaleByFilters
param_types_key: String,String,String,String
signature_text:
public static java.util.List<ILocaleString> getMessageTemplateLocaleByFilters(String type, String channel, String scenen, String entityNumber)

comment:
获取消息模板
List
"zh_TW" -> """en_US" -> "{"emailTitle":"demo","emailContent":"demo"}""zh_CN" -> "{"emailTitle":"demo{billstatus}","emailContent":"demo\n{billno}"}""commonlang" -> "{"emailTitle":"demo{billstatus}","emailContent":"demo\n{billno}"}"
@param `type` 消息类型（预置了6种消息类型，分别是任务(task)、报警(alarm)、预警(warning)、通知(message)、公告(notice)、活动消息（activity））
@param `channel` 消息渠道（默认内置了8个消息渠道，分别为dingding,email,sms,weixinqy,welink,yunzhijia,yunzhijiaeco,yunzhijiaup）
@param `scenen` 消息场景` msg_tplscene 数据
@param `entityNumber` 实体编码
@return List 消息模板信息集合 其中包含具体的模板内容 (多语言)


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getMsgCenterCardOptions
param_types_key: String
signature_text: public static java.util.List<java.util.Map<String, Object>> getMsgCenterCardOptions(String uid)
comment:
获取消息中心卡片需要的数据
key="id"			value="String id = new String()"	消息卡片分类的编号（例如：handled）
key="name"			value="String id = new String()"	消息卡片分类的名称（例如：已办任务）
key="count"			value="int count = 0"				对应类型的任务数量
key="formId"		value="String id = new String()"	表单标识（例如：wf_msg_center）
key="billFormId" 	value="String id = new String()"	列表的表单标识（例如wf_hitaskinst）
@param `uid` 当前用户id
@return List map 消息中心信息集合 返回值必须确保是List对象，List对象中存储的是Map类型的对象


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getMsgCenterCardOptions
param_types_key: String,List
signature_text:
public static java.util.List<java.util.Map<String, Object>> getMsgCenterCardOptions(String uid, java.util.List<String> itemKey)

comment:
获取消息中心卡片需要的数据
key="id"			value="String id = new String()"	消息卡片分类的编号（例如：handled）
key="name"			value="String id = new String()"	消息卡片分类的名称（例如：已办任务）
key="count"			value="int count = 0"				对应类型的任务数量
key="formId"		value="String id = new String()"	表单标识（例如：wf_msg_center）
key="billFormId" 	value="String id = new String()"	列表的表单标识（例如wf_hitaskinst）
@param `uid` 当前用户id
@param `itemKey` 门户首页设置的消息卡片分类的key(例如待办任务：tohandle，已办任务：handled，在办申请：toapply，已办申请：applyed)
@return 返回值必须确保是List对象，List对象中存储的是Map类型的对象


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getMsgCenterCardType
param_types_key: String
signature_text: public static java.util.List<java.util.Map<String, Object>> getMsgCenterCardType(String uid)
comment:
获取消息中心卡片 消息类型+任务类型（门户首页配置以及初始化）
key="id"			value="String id = new String()"	消息卡片分类的编号（例如：handled）
key="name"			value="String id = new String()"	消息卡片分类的名称（例如：已办任务）
key="formId"		value="String id = new String()"	表单标识（例如：wf_msg_center）
key="billFormId" 	value="String id = new String()"	列表的表单标识（例如wf_hitaskinst）
e.g[{formId=wf_msg_center, billFormId=wf_task, name=待办任务, id=toHandle}, {formId=wf_msg_center, billFormId=wf_hitaskinst, name=已办任务, id=handled}, {formId=wf_msg_center, billFormId=wf_execution_tc, name=在办申请, id=toApply}, {formId=wf_msg_center, billFormId=wf_hiprocinst, name=已办申请, id=applyed}, {formId=wf_msg_center, billFormId=wf_msg_message, name=未读消息, id=unread}, {formId=wf_msg_center, billFormId=wf_msg_message, name=活动消息, id=1223746113903789056}, {formId=wf_msg_center, billFormId=wf_msg_message, name=认领, id=1569568690419428352}, {formId=wf_msg_center, billFormId=wf_msg_message, name=公告, id=1005601617044585472}, {formId=wf_msg_center, billFormId=wf_msg_message, name=测试, id=2148666912384223232}, {formId=wf_msg_center, billFormId=wf_msg_message, name=传阅, id=2001413935542051840}, {formId=wf_msg_center, billFormId=wf_msg_message, name=通知, id=475779909600436224}, {formId=wf_msg_center, billFormId=wf_msg_message, name=预警, id=475779578418192384}, {formId=wf_msg_center, billFormId=wf_msg_message, name=报警, id=475779342555701248}]
@param `uid` 当前用户id
@return 返回值必须确保是List对象，List对象中存储的是Map类型的对象


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getNoCodeFlowMessageData
param_types_key: MessageRequestInfo
signature_text:
public static java.util.List<java.util.Map<String, Object>> getNoCodeFlowMessageData(MessageRequestInfo messageRequestInfo)

comment:
无代码_获取全部消息
key="readstate"		value="unread/read"             消息未读已读状态
key="sendername"		value="xxx" 		            消息发送者名称
key="createdate"		value="YYYY-MM-DD hh-mm-ss"     创建时间
key="entitynumber"   value="xxx"                     业务实体名称
key="type"           value="123xxx321"               消息类型id
key="title"          value="xxx"                     消息标题
key="content"		value="xxx"		                消息正文内容
key="bizdataid"		value="xxx"		                业务单据id
key="contenturl"		value="http://localhost:8080/xxx/index.html?formId=xxx" pc端消息链接
key="sender"		    value="xxx" 		            消息发送者id
key="mobcontenturl"	value="http://localhost:8080/xxx/index.html?formId=xxx" 移动端消息链接
key="id"				value="xxx" 		            消息id
key="tag"            value="xxx"                     自定义标签
@param `messageRequestInfo` 消息请求 kd.bos.workflow.api.MessageRequestInfo
@return 返回值为List Map对象，存储有消息内容信息，具体包含以下等关键字段


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getTaskAndMessageCategory
signature_text: public static java.util.List<java.util.Map<String, Object>> getTaskAndMessageCategory()
comment:
获取任务和消息的菜单数据
task/message	表示是任务还是消息（task  message ）	List>
menuKey	菜单标识	String
menuName	菜单名称	String
formId	菜单对应列表的实体编码	String
e.g [{formId=wf_task, menuKey=toHandle, menuName=待办任务}, {formId=wf_hitaskinst, menuKey=handled, menuName=已办任务}, {formId=wf_execution_tc, menuKey=toApply, menuName=在办申请}, {formId=wf_hiprocinst, menuKey=applyed, menuName=已办申请}, {formId=wf_task, menuKey=transferToHandle, menuName=我的转交(待办)}, {formId=wf_hitaskinst, menuKey=transferHandled, menuName=我的转交(已办)}, {formId=wf_task, menuKey=delegateToHandle, menuName=我的委托(待办)}, {formId=wf_hitaskinst, menuKey=delegateHandled, menuName=我的委托(已办)}, {formId=wf_task, menuKey=flod, menuName=我的文件夹}, {formId=wf_msg_message, menuKey=activity, menuName=活动消息}, {formId=wf_msg_message, menuKey=message, menuName=通知}, {formId=wf_msg_message, menuKey=warning, menuName=预警}, {formId=wf_msg_message, menuKey=notice, menuName=公告}, {formId=wf_msg_message, menuKey=alarm, menuName=报警}]
@return List


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getTaskAndMessageFields
param_types_key: String
signature_text: public static java.util.List<java.util.Map<String, String>> getTaskAndMessageFields(String formId)
comment:
获取列表(表单)字段信息
fieldKey	字段标识
fieldName	字段名称
e.g [{fieldKey=id, fieldName=Id}, {fieldKey=billno, fieldName=单据编码}, {fieldKey=entityname, fieldName=单据}, {fieldKey=startname, fieldName=发起人}, {fieldKey=subject, fieldName=主题}, {fieldKey=handlestate, fieldName=状态}, {fieldKey=name, fieldName=当前节点}, {fieldKey=sendername, fieldName=上一步处理人}, {fieldKey=sourcename, fieldName=来源系统}, {fieldKey=createdate, fieldName=接收时间}]
@param `formId` 表单标识 传菜单的key, toHandle,handled,applyed,toApply,transferToHandle,delegateToHandle,transferHandled,delegateHandled,message,warning,alarm,notice,activity
@return List


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getToApplyProcess
param_types_key: MessageCenterParams
signature_text:
public static java.util.Map<String, Object> getToApplyProcess(MessageCenterParams messageCenterParams)

comment:
获取在办申请
@param `messageCenterParams` 消息中心参数 kd.bos.workflow.engine.task.MessageCenterParams
@return 任务值 示例：{"data":[{"id":12121,"billno":"test-12","entityname":"jichuziliao"},{"id":12121,"billno":"test-12","entityname":"jichuziliao"}]}


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getToApplyProcessCount
param_types_key: MessageCenterParams
signature_text: public static Long getToApplyProcessCount(MessageCenterParams messageCenterParams)
comment:
获取在办申请数量
@param `messageCenterParams` 消息中心参数 kd.bos.workflow.engine.task.MessageCenterParams
@return 申请数量 Long


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getToHandleTaskCount
param_types_key: MessageCenterParams
signature_text: public static Long getToHandleTaskCount(MessageCenterParams messageCenterParams)
comment:
获取待办任务数量
@param `messageCenterParams` 消息中心参数 kd.bos.workflow.engine.task.MessageCenterParams
@return 数据总数 Long


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getToHandleTasks
param_types_key: MessageCenterParams
signature_text:
public static java.util.Map<String, Object> getToHandleTasks(MessageCenterParams messageCenterParams)

comment:
获取待办任务
// 传递查询字段 subject、name、billno 数量2
data=[{subject=请处理:demo1, name=一级审批, billno=demo001}, {subject=pcdemo02, name=审批, billno=demo02}]
@param `messageCenterParams` 消息中心参数 kd.bos.workflow.engine.task.MessageCenterParams
@return Map对象 key ->"data" value -> List \- Map中为参数中传递需要查询字段的值kv


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getToHandleTasksMessage
param_types_key: Long,Integer
signature_text:
public static java.util.List<java.util.Map<String, Object>> getToHandleTasksMessage(Long userId, Integer topCount)

comment:
首页个人中心获取未处理任务消息数据
"timeCompare" -> "Tue Mar 25 10:40:28 CST 2025" - 时间
"handlestate" -> "待审批" - 状态
"id" ->  2178273433593329664 - 主键
"time" -> "Tue Mar 25 10:40:28 CST 2025" - 时间
"title" -> "IERP提交的单据" - 标题
"content" -> "请处理：demo1" - 内容
@param `userId` 当前用户id
@param `topCount` 前topCount条数据
@return 未处理任务消息数据 List map内容如下


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getTransferTaskCount
param_types_key: String,MessageCenterParams
signature_text: public static Long getTransferTaskCount(String taskType, MessageCenterParams messageCenterParams)
comment:
获取转交任务数量
@param `taskType` 任务类型
@param `messageCenterParams` 消息中心参数 kd.bos.workflow.engine.task.MessageCenterParams
@return 任务数量 Long


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getTransferTasks
param_types_key: String,MessageCenterParams
signature_text:
public static java.util.Map<String, Object> getTransferTasks(String taskType, MessageCenterParams messageCenterParams)

comment:
获取转交任务
@param `taskType` 任务类型
@param `messageCenterParams` 消息中心参数 kd.bos.workflow.engine.task.MessageCenterParams
@return 任务值 示例：{"data":[{"id":12121,"billno":"test-12","entityname":"jichuziliao"},{"id":12121,"billno":"test-12","entityname":"jichuziliao"}]}


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getUnReadMessage
param_types_key: String,int
comment: 获取未读消息 @param `uid` 当前用户id @param `topCount` 前topCount条数据
signature_text:
public static java.util.List<java.util.Map<String, Object>> getUnReadMessage(String uid, int topCount)


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getUnreadActivityMessageByAppNum
param_types_key: Long,String[]
signature_text:
public static java.util.List<java.util.Map<String, Object>> getUnreadActivityMessageByAppNum(Long userId, String[] appNum)

comment:
通过应用编码获取未读运营消息
@param `userId` 用户ID
@param `appNum` 应用编码
@return list 消息数据集合[{msgType=activity, id=2193591965898029056, title=您有一条活动消息！, content=请尽快处理}]


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: getUserFilterSchemes
param_types_key: String
signature_text: public static java.util.List<java.util.Map<String, Object>> getUserFilterSchemes(String formId)
comment:
获取列表过滤方案
schemeId    方案id
schemeName	方案名称
formId	表单标识
e.g [{schemeName=1, formId=demo1, schemeId=4SZWDIV+XR5=}]
@param `formId` 页面标识
@return List


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: resendMessageByIds
param_types_key: List
signature_text: public static void resendMessageByIds(java.util.List<Long> channelMsgIds)
comment:
消息推送失败之后，可以调用该接口手动重发渠道消息， 注意，msgId为被拆分后的渠道消息Id,可以通过消息推送监听获取到。 适用于业务只记录失败消息ID的场景
@param `channelMsgIds` id 可以通过在消息日志表t_wf_msgfail表中获取渠道信息id


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: resendMessageByMsgInfos
param_types_key: List
signature_text: public static void resendMessageByMsgInfos(java.util.List<MessageInfo> messageInfos)
comment:
消息推送失败之后，可以调用该接口手动重发渠道消息， 注意，messageInfos为业务根据失败的消息自己组装的失败消息集合 适用于业务自己记录消息详细日志的场景 messageInfo的参数请尽可能的详细正确,比如发送人名称等
@param `messageInfos` 消息信息 kd.bos.workflow.engine.msg.info.MessageInfo


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: retractMessage
param_types_key: Long
signature_text: public static java.util.Map<String, Object> retractMessage(Long messageId)
comment:
撤回pc端消息
**注意：** 该操作会直接 物理删除 消息表以及接收人表数据，请谨慎使用。
@param `messageId` 消息id
@return 返回值为Map对象，存储有撤回pc端消息操作的结果信息 key="msg" value="success/e.getMessage()" 撤回pc端成功，将会返回success，撤回失败则会返回抛出的异常信息


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: sendNoticeMessageByLoginUser
param_types_key: Long
signature_text: public static java.util.Map<String, Object> sendNoticeMessageByLoginUser(Long userId)
comment:
用户登录时，消息中心主动推送该用户未读且未过期的系统消息
@param `userId` 用户id
@return map {result=true, code=0, data=[], description=操作成功。} data中包含消息id集合


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: setMessagePopup
param_types_key: Long,List,boolean
signature_text:
public static void setMessagePopup(Long messageId, java.util.List<Long> userIds, boolean popupState)

comment:
设置消息的弹出状态
@param `messageId` 消息id
@param `userIds` 用户id
@param `popupState` 状态 消息接收者某条消息是否弹出消息（true:弹出，false:不弹出）


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: transferBizTask
param_types_key: TransferOperationParam
signature_text: public static BatchOperateResult transferBizTask(TransferOperationParam transferOperationParam)
comment:
批量转交模型运行期任务
@param `transferOperationParam` 转交操作参数 kd.bos.workflow.engine.task.operation.TransferOperationParam
@return BatchOperateResult 批量操作结果 kd.bos.workflow.engine.task.BatchOperateResult


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: updateChannelData
param_types_key: Map
signature_text:
public static java.util.Map<String, Object> updateChannelData(java.util.Map<String, Object> channelParam)

comment:
海信项目中渠道配置位置处于接口中心，配置完成之后，需要将配置的信息同步到消息渠道中 保证消息中心消息渠道配置相关功能正常使用。
@param `channelParam` 参数 map key:number,name,createDate,modifydate,((number=email)smtpHost,smtpPort,userName,password,fromAccount),fromUserName
@return map key:result value:true/false ; key:code value:0/400 ; key:description value:操作成功/失败(信息)


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: updateParticipant
param_types_key: UpdateParticipantParam
signature_text: public static BatchOperateResult updateParticipant(UpdateParticipantParam updateParticipantParam)
comment:
更新任务参与人
@param `updateParticipantParam` 更新参与人参数 kd.bos.workflow.engine.task.operation.UpdateParticipantParam
@return BatchOperateResult 批量操作结果 kd.bos.workflow.engine.task.BatchOperateResult


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: updateTaskParticipant
param_types_key: Long,List
signature_text:
public static java.util.Map<String, Object> updateTaskParticipant(Long taskId, java.util.List<Long> userIds)

comment:
更新任务参与人
data -> null
success -> {Boolean@31617} true - 是否处理成功
description -> update task [2175546287032656896] participant [[2150037443254967296]] success -成功信息，如果失败会报失败原因
@param `taskId` 任务id
@param `userIds` 用户
@return map集合成功信息


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: updateToDoMsgContent
param_types_key: MessageServiceConfig,ITaskMsg
signature_text: public static void updateToDoMsgContent(MessageServiceConfig config, ITaskMsg taskMsg)
comment:
描述：待办模板解析
@param `config` 配置 kd.bos.workflow.engine.msg.MessageServiceConfig
@param `taskMsg` 任务信息 kd.bos.workflow.engine.msg.info.ITaskMsg


class_name: kd.bos.servicehelper.workflow.MessageCenterServiceHelper
method_name: updateToDoMsgContent
param_types_key: MessageServiceConfig,MessageInfo
signature_text: public static void updateToDoMsgContent(MessageServiceConfig config, MessageInfo messageInfo)
comment:
描述：消息模板解析
@param `config` 配置 kd.bos.workflow.engine.msg.MessageServiceConfig
@param `messageInfo` 消息 kd.bos.workflow.engine.msg.info.MessageInfo


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: canWithdrawByProcessInstanceId
param_types_key: Long
comment: 描述：根据流程实例id判断是否能撤回流程 @param `processInstanceId`
signature_text:
public static java.util.Map<String, java.util.List<String>> canWithdrawByProcessInstanceId(Long processInstanceId)


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: completeTask
param_types_key: Long,Long,String,String,Map
signature_text:
public static void completeTask(Long taskId, Long userId, String decOptionNumber, String auditMessage, java.util.Map<String, Object> variables)

comment:
完成任务，并记录审批意见
@param `taskId` 任务ID
@param `userId` 处理人ID
@param `decOptionNumber` 决策项编码
@param `auditMessage` 审批意见
@param `variables` 参数变量


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: createBlankProcessResource
param_types_key: String,Map
comment: 创建空白流程资源 @param `procType` @param `config`
signature_text:
public static String createBlankProcessResource(String procType, java.util.Map<String, Object> config)


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: createProcessesByTemplates
param_types_key: String,List,Map,Map
comment: 根据模板创建流程到指定应用分类下 @param `appId` @param `templateIds` @param `entityMap` @param `roleMap`
signature_text:
public static java.util.Map<Long, Long> createProcessesByTemplates(String appId, java.util.List<Long> templateIds, java.util.Map<String, String> entityMap, java.util.Map<String, String> roleMap)


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: discardProcesses
param_types_key: List,boolean,boolean
signature_text:
public static void discardProcesses(java.util.List<Long> modelIds, boolean disableProcDefinition, boolean terminalProcInst)

comment:
废弃流程，如果disableProcDefinition为true，则同时禁用流程定义；如果terminalProcInst为true，则同时终止流程实例
@param `modelIds`
@param `disableProcDefinition`
@param `terminalProcInst`


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: getNoCodeFlowApplyedProcess
param_types_key: Long,Integer,Integer,String,String,Map
signature_text:
public static DynamicObjectCollection getNoCodeFlowApplyedProcess(Long userId, Integer start, Integer limit, String starterOrSubjectFilter, String timeFilter, java.util.Map<String, Object> paramFilter)

comment:
描述:无代码平台_获取已办申请
@param `userId`
@param `start`
@param `limit`
@param `starterOrSubjectFilter`
@param `timeFilter`
@param `paramFilter`


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: getNoCodeFlowApprovalRecordsFromDetailLog
param_types_key: String,String
comment: 描述:无代码平台_根据businessKey和entityNumber查询审批记录 @param `businessKey` @param `entityNumber`
signature_text:
public static DynamicObjectCollection getNoCodeFlowApprovalRecordsFromDetailLog(String businessKey, String entityNumber)


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: getNoCodeFlowBizProcessStatus
param_types_key: String[]
comment: 描述:无代码平台_根据单据id集合查询在流程中的状态 @param `businessKeys`
signature_text:
public static java.util.Map<String, java.util.List<BizProcessStatus>> getNoCodeFlowBizProcessStatus(String[] businessKeys)


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: getNoCodeFlowHandledTasksByUserId
param_types_key: int,int,String,Map
comment: 描述:无代码平台_获取已办任务 @param `start` @param `limit` @param `uid` @param `sqlFilterMap`
signature_text:
public static DynamicObjectCollection getNoCodeFlowHandledTasksByUserId(int start, int limit, String uid, java.util.Map<String, String> sqlFilterMap)


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: getNoCodeFlowInProcessApply
param_types_key: int,int,String,Map
comment: 描述:无代码平台_获取在办申请 @param `start` @param `limit` @param `uid`
signature_text:
public static DynamicObjectCollection getNoCodeFlowInProcessApply(int start, int limit, String uid, java.util.Map<String, String> sqlFilterMap)


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: getNoCodeFlowProcessInstanceInfoByProcessCode
param_types_key: int,int,String
comment: 描述:无代码平台_根据流程编码查询流程实例信息 @param `processCode` 流程编码
signature_text:
public static DynamicObjectCollection getNoCodeFlowProcessInstanceInfoByProcessCode(int start, int limit, String processCode)


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: getNoCodeFlowToHandleTasksByUserId
param_types_key: int,int,String
comment: 描述:无代码平台_获取待办任务 @param `start` @param `limit` @param `uid`
signature_text:
public static DynamicObjectCollection getNoCodeFlowToHandleTasksByUserId(int start, int limit, String uid)


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: getNodeMacros
param_types_key: String,String,String
signature_text:
public static java.util.List<NodeMacro> getNodeMacros(String procType, String nodeJson, String macroType)


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: getProcInstIdsByEntityNumberOrBusinessKey
param_types_key: int,int,String,String
comment: 根据entityNumber或businessKey查询流程实例ids接口：带分页，限制一次最多一万条 @param `entityNumber` @param `businessKey`
signature_text:
public static java.util.List<Long> getProcInstIdsByEntityNumberOrBusinessKey(int start, int limit, String entityNumber, String businessKey)


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: getProcessDefinitionsByTriggerMode
param_types_key: String,String
comment: 通过实体编码和触发方式获取满足条件的流程定义列表 @param `entityNumber` @param `triggerMode`
signature_text:
public static java.util.List<ProcessDefinitionInfo> getProcessDefinitionsByTriggerMode(String entityNumber, String triggerMode)


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: getProcessInstanceCountByEntityNumberOrBusinessKey
param_types_key: String,String
comment: 根据entityNumber或businessKey查询流程实例数量接口 @param `entityNumber` @param `businessKey`
signature_text:
public static Long getProcessInstanceCountByEntityNumberOrBusinessKey(String entityNumber, String businessKey)


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: getProcessesInitiator
param_types_key: List
comment: 获取流程发起人信息 @param `procInstIds`
signature_text:
public static java.util.Map<Long, ProcessInitiator> getProcessesInitiator(java.util.List<Long> procInstIds)


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: getTaskIdByProcessInstanceIdAndActivityIdAndUserId
param_types_key: Long,String,Long
comment: 根据流程实例ID,节点ID和人员ID获取任务id @param `processInstanceId` @param `activityId` @param `userId`
signature_text:
public static Long getTaskIdByProcessInstanceIdAndActivityIdAndUserId(Long processInstanceId, String activityId, Long userId)


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: importProcessFileContent
param_types_key: String,boolean
signature_text:
public static java.util.Map<String, Object> importProcessFileContent(String content, boolean forceNew)


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: publishProcess
param_types_key: Long,Map
comment: 发布流程 @param `modelId` @param `deploymentProperty`
signature_text:
public static ProcPublishResult publishProcess(Long modelId, java.util.Map<String, Object> deploymentProperty)


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: saveProcessesAsTemplates
param_types_key: String,List,Map,Map
comment: 将模型保存为模板 @param `appId` @param `modelIds` @param `entityMap` @param `roleMap`
signature_text:
public static java.util.Map<Long, Long> saveProcessesAsTemplates(String appId, java.util.List<Long> modelIds, java.util.Map<String, String> entityMap, java.util.Map<String, String> roleMap)


class_name: kd.bos.servicehelper.workflow.NoCodeWorkflowServiceHelper
method_name: tryTriggerProcessByTriggerMode
param_types_key: String,String,String
comment: 根据triggerMode触发对应所有流程定义的最新版本流程 @param `entityNumber` @param `billId` @param `triggerMode`
signature_text:
public static void tryTriggerProcessByTriggerMode(String entityNumber, String billId, String triggerMode)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: addCallActivityMultiInst
param_types_key: Long,String,List,Map
signature_text:
public static void addCallActivityMultiInst(Long processInstanceId, String callActivityId, java.util.List<Object> dimensionValues, java.util.Map<String, Object> variables)

comment:
当前子流程节点添加子实例
@param `processInstanceId`
@param `callActivityId`
@param `dimensionValues`
@param `variables`


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: addComment
param_types_key: Comment
signature_text: public static void addComment(Comment comment)
comment:
记录审批意见 通过Comment对象中的taskId，找到对应的任务，然后给盖任务添加审批意见。
@param `comment` 审批意见对象 kd.bos.workflow.engine.task.Comment


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: addJointAuditParticipants
param_types_key: String,String,List,Map
comment: @param `businesskey` @param `nodeId` @param `userIds` @param `variables`
signature_text:
public static void addJointAuditParticipants(String businesskey, String nodeId, java.util.List<Long> userIds, java.util.Map<String, String> variables)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: addProcessRelationPerson
param_types_key: Long,List
comment: 添加任务关联人
signature_text:
public static void addProcessRelationPerson(Long processInstanceId, java.util.List<Long> assigneeIds)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: addProcessRelationPerson
param_types_key: String,String,List
comment: 添加任务关联人
signature_text:
public static void addProcessRelationPerson(String entityNumber, String businessKey, java.util.List<Long> assigneeIds)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: addTrdComment
param_types_key: ThirdCommentInfo
signature_text: public static void addTrdComment(ThirdCommentInfo thirdCommentInfo)
comment:
新增第三方审批记录 方法获取对应的Task任务，然后添加三方审批意见
@param `thirdCommentInfo` 第三方审批信息 kd.bos.workflow.engine.task.ThirdCommentInfo


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: assignNextParticipant
param_types_key: Long,Map
comment: @param `taskId` 任务id @param `dynParticipants`
signature_text:
public static void assignNextParticipant(Long taskId, java.util.Map<String, java.util.List<String>> dynParticipants)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: batchAddTrdComment
param_types_key: List
signature_text: public static BatchResult batchAddTrdComment(java.util.List<ThirdCommentInfo> thirdCommentInfos)
comment:
批量新增第三方审批记录，ThirdCommentInfo实体会校验任务主键，业务单据主键，流程实例主键不能同时为空 有一个实体未新增成功，BatchResult.success=false。具体ThirdCommentInfo是否成功，可获取BatchResult.results具体判断 方法获取对应的Task任务，然后添加三方审批意见。新增一个审批记录，会同时新增一个流程操作日志
@param `thirdCommentInfos`


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: batchAgreeTaskWithUserId
param_types_key: List,ILocaleString,Long
comment: 批量同意任务 @param @return String @throws Exception
signature_text:
public static String batchAgreeTaskWithUserId(java.util.List<Long> taskIds, ILocaleString opinion, Long userId)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: batchAuditByBusinesskeys
param_types_key: List,Map
comment: 根据businessKeys批量处理任务，需要传入审批人，批量审批决策类型，审批意见 @param `businessKeys` @param `param`
signature_text:
public static java.util.Map<String, Object> batchAuditByBusinesskeys(java.util.List<String> businessKeys, java.util.Map<String, Object> param)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: batchCompleteCompositeTasks
param_types_key: Map
signature_text:
public static void batchCompleteCompositeTasks(java.util.Map<Long, java.util.Map<String, Object>> variables)

comment:
批量完成聚合任务
@param `variables` map结构参数，key为任务id，value为处理该任务的参数 { Long类型的任务id: 处理该任务的参数，{auditType: 审批类型} }


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: batchCompleteTask
param_types_key: List
signature_text:
public static BatchResult batchCompleteTask(java.util.List<CompleteTaskParam> completeTaskParamList)

comment:
批量完成任务，是completeTask完成单个任务的批量行为，参数通过CompleteTaskParam传递 1、流程服务不可用，未配置流程引擎时，会抛异常。 2、批量数量不允许超过100个，大于100时，会抛异常。 3、CompleteTaskParam参数设置，对应两种完成任务的方式 1.通过任务ID完成任务：流程节点上审批决策项编码必填；待办任务ID必填；任务处理人ID非必填，不填取上下文用户ID；审批意见非必填。 2.通过单据ID完成任务：流程节点上审批决策项编码必填；业务单据ID必填；任务节点ID必填（通过业务单据ID和任务节点ID找到对应的待办任务）；审批意见非必填； 处理人ID和是否指定任务处理人参数分以下两种情况 找到的待办任务类型属于会审时，处理人ID必填。是否指定任务处理人固定是true，入参无效。即处理人ID必填。 找到的待办任务类型不属于会审时，是否指定任务处理人默认为false，即任务处理人ID非必填，不填取上下文用户ID；如果是否指定任务处理人为true，任务处理人ID比填
@param `completeTaskParamList`


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: batchGetApprovalRecordByBusinessKey
param_types_key: List
comment: 批量获取审批记录 @param `businessKeyList` 单据PK集合 @return Map> 审批记录对象集合 key为单据的businessKey，valve为审批记录集合
signature_text:
public static java.util.Map<String, java.util.List<IApprovalRecord>> batchGetApprovalRecordByBusinessKey(java.util.List<String> businessKeyList)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: batchUpdateTaskInfoAndParticipant
param_types_key: List,Map
signature_text:
public static TaskAndParticipantBatchUpdateResult batchUpdateTaskInfoAndParticipant(java.util.List<TaskAndParticipantBatchUpdateParams> paramList, java.util.Map<Long, ILocaleString> userNameFormatterMap)

comment:
批量更新待办任务信息以及待办任务参与人 该接口会删除待办任务原始的参与人、历史任务参与人，并删除旧参与人的待办 同时会给待办任务添加新的参与人，并给新参与人创建待办。 注意： 1.批量处理的任务个数不能超过10个，每个任务的参与人不能超过10个 2.传入的任务信息、每个任务的参与人集合不能为空 3.该接口不会对传入的userId在系统中是否存在进行校验，调用方请自行确保userId正确 4.该接口仅对相同实体的任务处理，如果任务对应了多个实体会抛出异常 5.如果需要对任务的显示名称格式化显示，请在userNameFormatterMap中传入用户名称格式化配置，key为用户id，value为用户名称格式化字符串；若不传，则默认使用用户名显示 6.该接口会调用任务对应的流程节点上的“处理人改变时”的外部接口，包括操作、插件、脚本， 若需要调用外部接口，请实现批量方法：kd.bos.workflow.engine.extitf.IWorkflowPlugin#notifys(java.util.List)
@param `paramList` 批量处理参数集合 kd.bos.workflow.engine.task.TaskAndParticipantBatchUpdateParams
@return 批量处理结果集合 kd.bos.workflow.engine.task.TaskAndParticipantBatchUpdateResult


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: billUnsubmit
param_types_key: DynamicObject[],String,Map
signature_text:
public static void billUnsubmit(DynamicObject[] objs, String operationName, java.util.Map<String, Object> param)

comment:
撤回的批量接口
@param `objs` 单据实体
@param `operationName` 操作名称
@param `param` 参数，map结构，包括如下字段： abandonPks: 整单撤回的单据id


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: canWithdraw
param_types_key: DynamicObject[]
signature_text: public static java.util.Map<String, java.util.List<String>> canWithdraw(DynamicObject[] objs)
comment:
过滤并返回可以撤回的数据包集合。
返回结果按照数据包的状态类型进行区分，Map 的 key 为以下几种类型：
* #NOT_IN_PROCESS：数据包不在工作流中。
* #WF_CAN_WITHDRAW：数据包在工作流中且可以撤回。
* #WF_CAN_WITHDRAW_BYABANDONPROC：数据包在工作流中且已进行处理，可以撤回并终止流程。
Map 的 value 是对应状态类型的数据包主键（PK）集合。
@param `objs` 需要过滤的数据包集合，类型为 kd.bos.dataentity.entity.DynamicObject
@return 可以撤回的数据包集合，按照类型分类的 Map


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: completeTask
param_types_key: Long,Long,String,String,Map
signature_text:
public static void completeTask(Long taskId, Long userId, String decOptionNumber, String auditMessage, java.util.Map<String, Object> variables)

comment:
完成任务，并记录审批意见
@param `taskId` 任务ID
@param `userId` 处理人ID
@param `decOptionNumber` 决策项编码 Consent / Reject (同意/拒绝)
@param `auditMessage` 审批意见
@param `variables` 参数变量 流程相关VariableConstants 常量


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: completeTask
param_types_key: Long,Long,String,String
signature_text:
public static void completeTask(Long taskId, Long userId, String decOptionNumber, String auditMessage)

comment:
完成任务，并记录审批意见
@param `taskId` 任务ID
@param `userId` 处理人ID
@param `decOptionNumber` 决策项编码
@param `auditMessage` 审批意见


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: completeTask
param_types_key: String,String,Long,String,String,boolean,Map
signature_text:
public static void completeTask(String businessKey, String nodeId, Long userId, String decOptionNumber, String auditMessage, boolean checkUser, java.util.Map<String, Object> variables)

comment:
完成任务，并记录审批意见
@param `businessKey` 单据id
@param `nodeId` 节点编码
@param `userId` 处理人ID
@param `decOptionNumber` 决策项编码
@param `auditMessage` 审批意见
@param `variables` 参数变量


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: completeTask
param_types_key: String,String,Long,String,String,boolean
signature_text:
public static void completeTask(String businessKey, String nodeId, Long userId, String decOptionNumber, String auditMessage, boolean checkUser)

comment:
完成任务，并记录审批意见
@param `businessKey` 单据id
@param `nodeId` 节点编码
@param `userId` 处理人ID
@param `decOptionNumber` 决策项编码
@param `auditMessage` 审批意见


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: completeTaskByBusinessKey
param_types_key: String,String,Long,String,String,boolean
comment: 根据单据id和nodeid完成任务 @param @return void @throws Exception
signature_text:
public static void completeTaskByBusinessKey(String businessKey, String nodeId, Long userId, String decOptionNumber, String auditMessage, boolean checkUser)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: createProcessAndStart
param_types_key: String,String,String,Map,WFProcess
signature_text:
public static void createProcessAndStart(String businessKey, String operation, String entityNumber, java.util.Map<String, Object> variables, WFProcess wfProcess)

comment:
创建并启动流程
@param `businessKey` 单据ID
@param `operation` 操作
@param `entityNumber` 实体编码
@param `variables` 变量
@param `wfProcess` 流程信息


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: discardProcesses
param_types_key: List,boolean,boolean
signature_text:
public static void discardProcesses(java.util.List<Long> modelIds, boolean disableProcDefinition, boolean terminalProcInst)

comment:
废弃流程，废弃的流程模型将不允许发布流程 **注意：**
如果废弃并终止流程实列，终止的流程将不可恢复，请谨慎选择调用
@param `modelIds` 流程模型ID
@param `disableProcDefinition` 是否禁用流程定义，true时禁用该流程所有启用的流程版本
@param `terminalProcInst` 是否终止流程实列，disableProcDefinition=true的前提下，如果该参数为true则终止该流程所有版本未结束的流程。


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: findOperationLogByBusinessKey
param_types_key: String,String,String
signature_text:
public static java.util.List<DynamicObject> findOperationLogByBusinessKey(String businessKey, String selectFeilds, String orderBy)

comment:
根据单据Id查询操作日志（如果按照条件未查到数据则会从压缩表查）
@param `businessKey` 业务单据主键
@param `selectFeilds` 查询字段
@param `orderBy` 排序字段


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: findOperationLogByProcInstId
param_types_key: Long,String,String
signature_text:
public static java.util.List<DynamicObject> findOperationLogByProcInstId(Long procInstId, String selectFeilds, String orderBy)

comment:
根据流程实例Id查询操作日志（如果按照条件未查到数据则会从压缩表查）
@param `procInstId` 流程实例Id
@param `selectFeilds` 查询字段
@param `orderBy` 排序字段


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getActInstInfo
param_types_key: String,List,boolean
comment: @param `businessKey` 单据主键ID @param `actId` 节点ID @param `isOnlyCompleted` 是否只查询已完成的节点
signature_text:
public static java.util.Map<String, java.util.List<java.util.Map<String, Object>>> getActInstInfo(String businessKey, java.util.List<String> actIds, boolean isOnlyCompleted)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getAddressAndPreCompute
param_types_key: String,String,String
comment: 根据操作和单据对象，进行寻址以及预计算 @param `operation` 操作 @param `entityNumber` 实体编码 @param `businessKey` 业务主键
signature_text:
public static java.util.List<java.util.Map<String, Object>> getAddressAndPreCompute(String operation, String entityNumber, String businessKey)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getAfterPreComputorRecordItem
param_types_key: PreComputorParams
signature_text:
public static java.util.Map<String, Object> getAfterPreComputorRecordItem(PreComputorParams computorParams)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getAllApprovalRecord
param_types_key: String
signature_text: public static java.util.List<IApprovalRecordGroup> getAllApprovalRecord(String businessKey)
comment:
返回单据的整个审批记录
@param `businessKey` 单据ID
@return 审批记录对象，具体查看IApprovalRecordGroup的实现类 kd.bos.workflow.component.approvalrecord.IApprovalRecordGroup


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getAllApprovalRecordInclCoordinate
param_types_key: String
comment: 获取审批记录（包含协办记录） @param `businessKey` 单据id
signature_text:
public static java.util.List<IApprovalRecordGroup> getAllApprovalRecordInclCoordinate(String businessKey)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getAllOriginalApprovalRecord
param_types_key: String,Long,Map
signature_text:
public static java.util.List<IApprovalRecordGroup> getAllOriginalApprovalRecord(String businessKey, Long processInstanceId, java.util.Map<String, Object> params)

comment:
可以传入流程实例id获取审批记录，业务主键必须要传
@param `businessKey`
@param `processInstanceId`
@param `params`
@return 审批记录对象集合；不会触发自定义数据源插件 `@Link kd.bos.workflow.component.approvalrecord.IApprovalRecordGroup`


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getAllProcInstPropertiesByBusKey
param_types_key: String
signature_text:
public static java.util.List<java.util.Map<String, Object>> getAllProcInstPropertiesByBusKey(String businessKey)

comment:
根据businessKey获取所有历史流程的属性
@param `businessKey`
@return Map 流程相关的属性，关键属性如下所示： processInstanceId 流程实例ID subject 流程单据主题 startUserId 任务发起人 billno 单据编号 name 流程名称 suspensionState 流程状态 1-正常 2-挂起 3-结束 suspensionStateName 流程状态名称 1-正常 2-挂起 3-结束 activityName 当前语种下的节点名称 entityNumber 实体编码 businessKey 业务主键（单据id） createDate 创建日期 endTime 结束时间 duration 持续时间


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getApplyedProcess
param_types_key: Long,Integer,Integer,String,String,Map
signature_text:
public static DynamicObjectCollection getApplyedProcess(Long userId, Integer start, Integer limit, String starterOrSubjectFilter, String timeFilter, java.util.Map<String, Object> paramFilter)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getApprovalRecordMeta
signature_text: public static java.util.Map<String, String> getApprovalRecordMeta()
comment:
获取审批记录的元数据
{
"assignee": "审批人“,
“activityName": "节点名称",
"resultName": "审批结果",
"message": "审批意见",
"time": "审批时间",
"throughRule": "审批通过规则",
"auditPropName": "任务属性",
"userNameFormatter": "参与人显示信息",
"signature": "审批人签名"
}
@return Map结构，key为字段标识，value为名称


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getApprovalRecords
param_types_key: String,String,boolean
signature_text:
public static java.util.List<IApprovalRecordGroup> getApprovalRecords(String entityNumber, String businessKey, boolean allRecord)

comment:
获取(全部)审批记录
@param `entityNumber` 实体编码
@param `businessKey` 单据主键
@param `allRecord` 是否全部审批记录（包含当前单据历史审批记录） ：true - 全部审批记录；false - 最新审批记录
@return 审批记录对象集合；注意异常的捕获，异常说明参数不对 `@Link kd.bos.workflow.component.approvalrecord.IApprovalRecordGroup`


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getApproversMapByBusinessKeys
param_types_key: String[]
comment: 描述:获取给定单据集合的当前审批人集合 @param `businessKeyArr` @return 以businessKey为key，当前审批人id集合为value
signature_text:
public static java.util.Map<String, java.util.List<Long>> getApproversMapByBusinessKeys(String[] businessKeyArr)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getArchiveRouteKeys
param_types_key: String,List
comment: 获取归档路由集合 @param `archiveEntity` 归档实体 @param `archiveRouteIndexConditions` 归档实体属性键值对
signature_text:
public java.util.List<String> getArchiveRouteKeys(String archiveEntity, java.util.List<ArchiveRouteIndexCondition> archiveRouteIndexConditions)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getAuditAllowModifiedFields
param_types_key: Long,String
signature_text:
public static java.util.List<java.util.Map<String, String>> getAuditAllowModifiedFields(Long taskId, String type)

comment:
根据taskId获取节点上配置的页面可编辑信息
@param `taskId` 任务id
@param `type` 类型 pc-pc端 mobile-移动端
@return List> 参数Map对象，具体包含以下等关键字段 key:字段名称 value:字段编码 新版：单据属性获取模型可编辑字段 fieldname-字段名称 filednumber-字段编码 老版（pc）: pageAttrConfig中modify = true的字段 老版（移动端）:mobilePageAttrConfig中modify = true的字段


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getAuditBillPageAttributeConfigs
param_types_key: Long,String
comment: 获取审批节点单据字段可见性-可编辑性-必录性、按钮-可见性、图标及页签可见性 @param `taskId` @param `type`
signature_text:
public static java.util.Map<String, java.util.Map<String, String>> getAuditBillPageAttributeConfigs(Long taskId, String type)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getBizProcessStatus
param_types_key: String[]
comment: 根据单据id集合查询在流程中的状态 @param `businessKeys`
signature_text:
public static java.util.Map<String, java.util.List<BizProcessStatus>> getBizProcessStatus(String[] businessKeys)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getBizProcessStatus
param_types_key: String[],String
signature_text:
public static java.util.Map<String, java.util.List<BizProcessStatus>> getBizProcessStatus(String[] businessKeys, String name)

comment:
根据单据id集合查询在流程中的状态
@param `businessKeys` 业务单据ID
@return Key为单据id Value为流程中的状态 kd.bos.workflow.api.BizProcessStatus


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getBusinessKeyByEntityNumberUIds
param_types_key: BusinessKeyQueryParams
signature_text:
public static java.util.List<Object> getBusinessKeyByEntityNumberUIds(BusinessKeyQueryParams businessKeyQueryParams)

comment:
根据单据实体编码、用户Id获取业务主键 最多查询数据库中100000条数据
@param `businessKeyQueryParams` 参数 kd.bos.workflow.engine.task.BusinessKeyQueryParams
@return 业务主键列表


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getCommentForPrintByType
param_types_key: String,String
signature_text:
public static java.util.Collection<java.util.Map<String, String>> getCommentForPrintByType(String businessKey, String type)

comment:
根据类型获取审批记录，该接口为打印场景定制
@param `businessKey`
@param `type` `WorkflowServiceHelper.PRINT_TYPE_ALL 获取所有(多圈+同意+驳回) WorkflowServiceHelper.PRINT_TYPE_ALLCONSENT 获取所有同意(多圈+同意) WorkflowServiceHelper.PRINT_TYPE_LASTEDCONSENT 获取最新 allContainHiComment 获取所有审批记录（包含历史审批记录）
@return 审批记录集合


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getCurrentCallActivityMultiInstInfo
param_types_key: Long
comment: 根据流程实例查询当前子流程节点的多维度信息 @param `processInstanceId`
signature_text:
public static java.util.List<java.util.Map<String, Object>> getCurrentCallActivityMultiInstInfo(Long processInstanceId)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getEnabledProcDefByEntityNumber
param_types_key: String
comment: @param `entityNumber`
signature_text:
public static java.util.List<java.util.Map<String, Object>> getEnabledProcDefByEntityNumber(String entityNumber)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getEnabledProcesses
param_types_key: DynamicObject,String
signature_text:
public static java.util.List<EnabledProcessInfo> getEnabledProcesses(DynamicObject dataEntity, String operation)

comment:
获取满足启动条件的流程信息
@param `dataEntity` 单据实体
@param `operation` 启动操作
@return 满足启动条件的流程信息 kd.bos.workflow.api.EnabledProcessInfo


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getHandledTasksByUserId
param_types_key: int,int,String,Map
signature_text:
public static DynamicObjectCollection getHandledTasksByUserId(int start, int limit, String uid, java.util.Map<String, String> sqlFilterMap)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getInProcessApply
param_types_key: int,int,String,Map
signature_text:
public static DynamicObjectCollection getInProcessApply(int start, int limit, String uid, java.util.Map<String, String> sqlFilterMap)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getInProcessDataEntity
param_types_key: ExtendedDataEntity[]
signature_text: public static ExtendedDataEntity[] getInProcessDataEntity(ExtendedDataEntity[] dataEntities)
comment:
过滤出那些单据在工作里中
@param `dataEntities` 单据数据包信息 kd.bos.entity.ExtendedDataEntity
@return 在工作流中的单据集合 kd.bos.entity.ExtendedDataEntity


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getNextUseableUserAndScope
param_types_key: Long,String
comment: 获取下一步可选参与人和选择范围（白名单，黑名单，必选名单） @param `taskId` 任务id @param `auditNumber`
signature_text:
public static java.util.Map<String, java.util.Map<String, java.util.List<Long>>> getNextUseableUserAndScope(Long taskId, String auditNumber)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getNextUserTaskNodeByBusinessKey
param_types_key: String
signature_text:
public static java.util.List<java.util.Map<String, Object>> getNextUserTaskNodeByBusinessKey(String businessKey)

comment:
任务预计算
@param `businessKey` 业务单据ID
@return 预测信息 1.K:nextNode V:预测下一节点信息 2.K:参与人id V:名称 3.K:users V:用户对象（bos_user）


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getNextUserTaskNodeByModel
param_types_key: DynamicObject,String,String
signature_text:
public static java.util.List<java.util.Map<String, Object>> getNextUserTaskNodeByModel(DynamicObject dataEntity, String operation, String entityNumber)

comment:
获取下一步节点信息
map.put("nextNode", userTask); // 节点信息
map.put("users", users); // 用户信息
@param `dataEntity` \-- 单据model
@param `operation` \-- 操作
@param `entityNumber` \-- 实体编码
@return List> 下一步节点信息，map中包括：


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getNodeParticipantScop
param_types_key: ParticipantScopeParams
signature_text:
public static ParticipantScope getNodeParticipantScop(ParticipantScopeParams participantScopeParams)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getPreComputorRecord
param_types_key: Long
signature_text: public static IPreComputorRecord getPreComputorRecord(Long procInstId)
comment:
流程预测并返回预测结果
@param `procInstId` 流程实列ID
@return 预计算结果 kd.bos.workflow.engine.precomputor.IPreComputorRecord


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getPreComputorRecordWithOutCurrentNodes
param_types_key: Long
signature_text: public static IPreComputorRecord getPreComputorRecordWithOutCurrentNodes(Long procInstId)
comment:
流程预测并返回预测结果,结果不包含当前节点的信息
@param `procInstId` 流程实列ID
@return 预计算结果 kd.bos.workflow.engine.precomputor.IPreComputorRecord


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getPrintCommentWithParam
param_types_key: String,String,Map
signature_text:
public static java.util.Collection<java.util.Map<String, String>> getPrintCommentWithParam(String businessKey, String type, java.util.Map<String, Object> printParam)

comment:
根据类型、排序方案、是否打印人工节点、是否打印影像上传输出单据打印结果
@param `businessKey`
@param `type` ：all获取所有(多圈+同意+驳回)、allConsent获取所有同意(多圈+同意)、lastedConsent获取最新
@param `printParam` Map结构，value为布尔值，key包含如下选项 includeUserTask 包含人工节点 includeSSCImageUpload 包含共享节点 INCLUDECALLACTIVITY 包含子流程
@return 审批记录集合


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getPrintMetaEntityNumber
param_types_key: String
comment: 根据实体编码获取对应的流程的节点 业务标识 节点名称 节点编码 节点名称和节点编码均为最后一个的流程节点的 采用的是覆盖上个节点名称和编码的方式 @param `entityNumber`
signature_text:
public static java.util.Collection<java.util.Map<String, Object>> getPrintMetaEntityNumber(String entityNumber)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getProcDefByNumberAndVerson
param_types_key: String,String
comment: @param `processNumber` 编码 @param `version` 版本
signature_text:
public static java.util.Map<String, Object> getProcDefByNumberAndVerson(String processNumber, String version)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getProcSchemesByProcDefId
param_types_key: Long
comment: @param `procDefId` 流程id
signature_text:
public static java.util.List<java.util.Map<String, Object>> getProcSchemesByProcDefId(Long procDefId)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getProcess
param_types_key: Long
signature_text: public static ProcessModel getProcess(Long modelId)
comment:
根据流程ID获取流程模型信息
@param `modelId` 模型ID，用于获取指定模型
@return 流程模型信息，包含流程的ID,编码，名称，以及详细的模型数据。kd.bos.workflow.api.model.ProcessModel


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getProcessAttachmentsInfo
param_types_key: String,String
signature_text:
public static java.util.Map<String, java.util.List<ApprovalAttachmentInfo>> getProcessAttachmentsInfo(String entityNumber, String businessKey)

comment:
获取流程附件
@param `entityNumber` 实体编码
@param `businessKey` 单据主键id
@return map数据结构，其中key为commentid值，value为一个List的审批附件信息


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getProcessDefinitionInfoById
param_types_key: Long
signature_text: public static ProcessDefinitionInfo getProcessDefinitionInfoById(Long procDefId)
comment:
根据流程定义ID查询流程定义信息
@param `procDefId` 流程定义ID
@return 流程定义，包括流程定义ID,编码，名称，以及详细流程定义数据。kd.bos.workflow.api.model.ProcessDefinitionInfo


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getProcessDefinitionInfoByProcInstId
param_types_key: Long
signature_text: public static ProcessDefinitionInfo getProcessDefinitionInfoByProcInstId(Long procInstId)
comment:
根据流程实例ID查询流程定义信息
kd.bos.workflow.api.model.ProcessDefinitionInfo
@param `procInstId` 流程实列ID
@return 流程定义，包括流程定义ID,编码，名称，以及详细流程定义数据。


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getProcessElements
param_types_key: DynamicObject,String
signature_text:
public static java.util.List<WFFlowElement> getProcessElements(DynamicObject bill, String operation)

comment:
获取流程模型节点信息。
返回的节点信息基于流程编码和版本号。如果版本号为空或为 "latest"，则返回最新版本的流程模型节点信息。
返回的节点类型为 kd.bos.workflow.engine.dynprocess.freeflow.WFFlowElement， 该类是流程模型节点的基类，派生出多种子类，不同节点类型对应不同的子类。例如：
* kd.bos.workflow.engine.dynprocess.freeflow.WFAuditTask：审批节点。
* kd.bos.workflow.engine.dynprocess.freeflow.WFGateway：网关节点。
@param `bill` 单据对象
@param `operation` 操作类型编码 具体查看操作定义，举例：submit(提交），audit(审批）
@return 流程模型节点信息，类型为 kd.bos.workflow.engine.dynprocess.freeflow.WFFlowElement


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getProcessElements
param_types_key: String,String
signature_text: public static java.util.List<WFFlowElement> getProcessElements(String number, String version)
comment:
获取流程模型的节点信息。
返回的节点信息基于流程编码和版本号。如果版本号为空或为 "latest"，则返回最新版本的流程模型节点信息。
返回的节点类型为 kd.bos.workflow.engine.dynprocess.freeflow.WFFlowElement， 该类是流程模型节点的基类，派生出多种子类，不同节点类型对应不同的子类。例如：
* kd.bos.workflow.engine.dynprocess.freeflow.WFAuditTask：审批节点。
* kd.bos.workflow.engine.dynprocess.freeflow.WFGateway：网关节点。
@param `number` 流程编码，用于指定需要查询的流程
@param `version` 流程版本号，如果为空或为 "latest"，则返回最新版本
@return 流程模型节点信息，类型为 kd.bos.workflow.engine.dynprocess.freeflow.WFFlowElement


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getProcessInfo
param_types_key: DynamicObject,String
signature_text: public static WFProcess getProcessInfo(DynamicObject bill, String operation)
comment:
根据单据信息查找流程信息
@param `bill` 单据对象
@param `operation` 操作类型编码 具体查看操作定义，举例：submit(提交），audit(审批）
@return 流程信息 kd.bos.workflow.engine.dynprocess.freeflow.WFProcess


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getProcessInfo
param_types_key: String,String
signature_text: public static WFProcess getProcessInfo(String number, String version)
comment:
获取流程信息
@param `number` 流程编码
@param `version` 流程版本，如果为空或为latest表示最新版本
@return 流程信息 kd.bos.workflow.engine.dynprocess.freeflow.WFProcess


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getProcessInstancePropertiesByBusinesskey
param_types_key: String
signature_text:
public static java.util.Map<String, Object> getProcessInstancePropertiesByBusinesskey(String businessKey)

comment:
根据businessKey获取流程的各类属性
@param `businessKey` 单据ID
@return Map 流程相关的属性，关键属性如下所示： processInstanceId 流程实例ID subject 流程单据主题 startUserId 任务发起人 billno 单据编号 name 流程名称 suspensionState 流程状态 1-正常 2-挂起 3-结束 suspensionStateName 流程状态名称 1-正常 2-挂起 3-结束 activityName 当前语种下的节点名称 entityNumber 实体编码 businessKey 业务主键（单据id） createDate 创建日期 endTime 结束时间 duration 持续时间


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getProcessWindowRecords
param_types_key: String
comment: 获取流程审批节点信息及预计算节点信息(单据已进流程) @param `businessKey` @return 流程窗口所需数据
signature_text:
public static java.util.List<java.util.Map<String, Object>> getProcessWindowRecords(String businessKey)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getProcessWindowRecords
param_types_key: Long,DynamicObject
comment: 获取流程预计算节点信息(单据未进流程) @param `procdefId` 指定流程 @param `billObj` 单据信息 @return 流程窗口所需数据
signature_text:
public static java.util.List<java.util.Map<String, Object>> getProcessWindowRecords(Long procdefId, DynamicObject billObj)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getProcessWindowRecords
param_types_key: String,DynamicObject
comment: 获取流程预计算节点信息(单据未进流程) @param `opKey` 指定操作类型 @param `billObj` 单据信息 @return 流程窗口所需数据
signature_text:
public static java.util.List<java.util.Map<String, Object>> getProcessWindowRecords(String opKey, DynamicObject billObj)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getProcessesByEntityNumber
param_types_key: String
signature_text: public static java.util.List<ProcessModel> getProcessesByEntityNumber(String entityNumber)
comment:
获取某个实体配置的流程模型，不包括废弃的流程
@param `entityNumber` 实体编码
@return 流程模型信息，包含流程的ID,编码，名称，以及详细的模型数据。 kd.bos.workflow.api.model.ProcessModel


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getRejectInnerNodes
param_types_key: Long,String
comment: @param `procinstId` @param `activityId`
signature_text:
public static java.util.List<java.util.Map<String, Object>> getRejectInnerNodes(Long procinstId, String activityId)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getRejectNodes
param_types_key: Long,String
signature_text:
public static java.util.List<WFRejectNodesModel> getRejectNodes(Long taskId, String decisionOptionNumber)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getTaskCountByType
param_types_key: String,String
signature_text: public static Long getTaskCountByType(String uid, String type)
comment:
获取指定用户的特定类型任务或申请的数量。 该方法可用于查询待办任务、已办任务、在办申请和已办申请的数量。
@param `uid` 用户的唯一标识符，用于指定要查询的用户。
@param `type` 查询的任务或申请类型，支持以下取值： \- kd.bos.workflow.engine.impl.cmd.task.WorkflowTaskCenterTypes#HANDLED：已办任务，表示用户已经处理完成的任务数量。 \- kd.bos.workflow.engine.impl.cmd.task.WorkflowTaskCenterTypes#TOHANDLE：待办任务，表示等待用户处理的任务数量。 \- kd.bos.workflow.engine.impl.cmd.task.WorkflowTaskCenterTypes#APPLYED：已办申请，表示用户已经提交并处理完成的申请数量。 \- kd.bos.workflow.engine.impl.cmd.task.WorkflowTaskCenterTypes#TOAPPLY：在办申请，表示用户正在处理中的申请数量。
@return 返回符合指定用户和类型的任务或申请的具体数量，返回值为非负整数。 如果没有符合条件的记录，返回 0。


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getTaskEntityName
param_types_key: Long,String
signature_text:
public static java.util.List<java.util.Map<String, Object>> getTaskEntityName(Long uid, String type)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getToHandleTasksByUserId
param_types_key: int,int,String
signature_text: public static DynamicObjectCollection getToHandleTasksByUserId(int start, int limit, String uid)
comment:
描述:获取当前人的所有待办任务
@param `start` 分页开始行
@param `limit` 最大返回数
@param `uid` 用户ID
@return DynamicObjectCollection 全部代办任务集合 内容包含单据编号、节点名、单据实体等任务信息


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: getVariablesByProcInstId
param_types_key: Long,String[]
comment: @param `procInstId` 流程实例id
signature_text:
public static java.util.Map<String, Object> getVariablesByProcInstId(Long procInstId, String[] variableKeys)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: jumpToNodeWithReason
param_types_key: Long,String,String,ILocaleString
signature_text:
public static void jumpToNodeWithReason(Long procInstId, String destId, String srcId, ILocaleString reason)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: publishProcess
param_types_key: Long,Map
signature_text:
public static ProcPublishResult publishProcess(Long modelId, java.util.Map<String, Object> deploymentProperty)

comment:
发布流程
@param `modelId` 流程模型ID
@param `deploymentProperty` 模型发布参数，map结构，可以为空。可选参数： key=versionDescription 版本描述，字符串类型 key=ignoreValidateInfo 忽略校验信息，布尔类型，为true时，则不会在结果里返回警告类型的错误信息
@return 流程发布结果,该对象封装了流程发布的结果信息，包括是否发布成功，以及校验结果 kd.bos.workflow.api.model.ProcPublishResult


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: rejectToInnerNode
param_types_key: Long,Long,String,String,List,boolean,Map
signature_text:
public static void rejectToInnerNode(Long taskId, Long userId, String decOptionNumber, String auditMessage, java.util.List<String> innerNodeIds, boolean skipPath, java.util.Map<String, Object> variables)

comment:
@param `taskId`
@param `userId`
@param `decOptionNumber`
@param `auditMessage`
@param `innerNodeIds`
@param `skipPath`
@param `variables`


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: removeCallActivityMultiInst
param_types_key: Long,String,List,Map
signature_text:
public static void removeCallActivityMultiInst(Long processInstanceId, String callActivityId, java.util.List<Object> dimensionValues, java.util.Map<String, Object> variables)

comment:
当前子流程节点删除子实例
@param `processInstanceId`
@param `callActivityId`
@param `dimensionValues`
@param `variables`


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: removeJointAuditParticipants
param_types_key: String,String,List
comment: @param `businesskey` @param `nodeId` @param `userIds`
signature_text:
public static void removeJointAuditParticipants(String businesskey, String nodeId, java.util.List<Long> userIds)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: replyCoordinateTask
param_types_key: Long,ILocaleString,List,Long
comment: 协办回复 @param @return void @throws Exception
signature_text:
public static void replyCoordinateTask(Long taskId, ILocaleString taskCoordinateOpinion, java.util.List<java.util.Map<String, Object>> attch, Long userId)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: setDynPanticipant
param_types_key: Long,List
signature_text:
public static void setDynPanticipant(Long taskId, java.util.List<java.util.Map<String, String>> list)

comment:
动态修改参与人
@param `taskId` 任务ID
@param `list` 下一步参与人列表，下一步参与人信息为Map结构，包括如下字段： nodeId: 节点id userIds: 用户id，


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: showBillRelationGraph
param_types_key: String,List,String,String
signature_text:
public static void showBillRelationGraph(String pageId, java.util.List<BillCard> billCards, String currentEntityNumber, String currentBusinessKey)

comment:
打开单据关系图
@param `pageId` 页面ID
@param `billCards` 单据卡片信息 kd.bos.workflow.api.model.BillCard
@param `currentEntityNumber` 实体编码
@param `currentBusinessKey` 业务标识（单据ID)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: suspendTaskById
param_types_key: Long,Long,ILocaleString
comment: 任务挂起 @param `taskId` @param `userId` @param `suspendReason`
signature_text:
public static java.util.Map<String, Object> suspendTaskById(Long taskId, Long userId, ILocaleString suspendReason)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: taskCirculate
param_types_key: Long,List,ILocaleString
signature_text:
public static java.util.Map<String, Object> taskCirculate(Long taskId, java.util.List<Long> userIds, ILocaleString circulationMsg)

comment:
任务传阅
@param `taskId` 任务id
@param `userIds` 发送给谁的userid,并非openid
@param `circulationMsg` 发送的消息 返回一个map 成功或失败的信息 需要校验传递的senderUserId是否在该任务的处理人中 map中包含如下信息： { issuccess: true/false, 表示传阅成功或者失败 message: 失败信息 }


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: taskCirculateForBatch
param_types_key: List,List,Long,ILocaleString
signature_text:
public static BatchOperateResult taskCirculateForBatch(java.util.List<Long> taskIds, java.util.List<Long> circulationUserIds, Long senderUserId, ILocaleString circulationMsg)

comment:
任务传阅 for batch
String validateMsg - 校验信息 - 比如缺少参数
int successCount- 成功条数
int failedCount - 失败条数
List - 操作结果 集
String operateType - 操作类型
String operateStatus - 操作状态
String operateMsg - 操作信息
@param `taskIds` 批量传阅的任务id集合
@param `circulationUserIds` 发送给谁的userid,并非openid
@param `senderUserId` 发送人的userid,并非openid
@param `circulationMsg` 发送的传阅消息
@return 批量操作结果（【样例】共6条单据，传阅成功3条，失败3条）对象


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: taskCoordinate
param_types_key: Long,List,ILocaleString,Boolean
signature_text:
public static String taskCoordinate(Long taskId, java.util.List<Long> userIds, ILocaleString coordinateMsg, Boolean isPublic)

comment:
任务协办（请求）
@param `taskId` 任务id
@param `userIds` 协办用户ids
@param `coordinateMsg` 协办信息
@param `isPublic` 是否公开


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: taskCoordinateRequestWithdraw
param_types_key: Long,List
comment: 协办任务撤回 @param `taskId` 任务id @param `coordinaterIds` 被邀请协办人id集合 @return 执行结果
signature_text:
public static String taskCoordinateRequestWithdraw(Long taskId, java.util.List<Long> coordinaterIds)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: taskReminders
param_types_key: Long,ILocaleString
comment: 催办功能 --- 根据当前taskid，查询当前任务的处理人，然后发送云之家消息 @param `processInstanceId` @param `reminderMsg`
signature_text:
public static java.util.Map<String, Object> taskReminders(Long processInstanceId, ILocaleString reminderMsg)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: taskReminders
param_types_key: Long[],ILocaleString
signature_text:
public static BatchOperateResult taskReminders(Long[] processInstanceIds, ILocaleString reminderMsg)

comment:
批量催办功能
（【样例】共6条单据，催办成功3条，失败3条）map中的key
successCount- 成功条数
failedCount - 失败条数
List - 操作结果 集
@param `processInstanceIds` 流程实例ids
@param `reminderMsg` 催办消息
@return 批量操作结果


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: taskTransfer
param_types_key: Long,Long,ILocaleString,Boolean
signature_text:
public static void taskTransfer(Long taskId, Long transfererId, ILocaleString transferOpinion, Boolean transferSubscribe)

comment:
任务转交
@param `taskId` 任务id
@param `transfererId` 转交用户id
@param `transferOpinion` 转交意见
@param `transferSubscribe` 是否订阅转交结果 如果成功，无异常信息；否则请捕获异常信息


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: tryTriggerProcess
param_types_key: String,String,String,Map
signature_text:
public static void tryTriggerProcess(String businessKey, String operation, String entityNumber, java.util.Map<String, Object> variables)

comment:
启动流程。调用该接口后，会根据传入的参数进行流程寻址，如果满足条件，则该数据会进入流程进行流转。
@param `businessKey` 业务数据标识，即单据内码(主键）
@param `operation` 操作类型编码 具体查看操作定义，举例：submit(提交），audit(审批）
@param `entityNumber` 实体编码。如采购订单则传入er_tripreqbill
@param `variables` 参数为Map对象，具体包含以下等关键字段 freeflowmodelstr 自由流程参数 freeflow 自由流程 dynType 动态类型 rejectToForkInner-驳回到分支内部 dynReject-动态驳回 dynJump-动态跳转 dynBackToRejectNode-动态-再次提交到驳回节点、动态-驳回后再次提交时直接回到本节点 forceAbort-人工终止 forceAbortAll-人工终止全部 compensationAbort-补偿终止 abortByParentProcessJump-父流程跳转引起的终止 abortByParentProcessAbort-父流程终止引起的终止 abortByParentProcessWithdraw- 父流程整单撤回引起的终止 terminateProcWhenExceptionOccurs-发生异常时直接终止流程 billExcepAbort-例外终止 billAbort-整单终止 billWithdrawJump-整单撤回强制跳转至人工 abortByRejectToParentProcess-因驳回至父流程而终止 meetBillClose-满足业务关闭条件 terminateEvent-终止事件 auditAbort-审批终止 expireSkip-过期跳过 addsignbefore-前加签 addsignbeforebyadmin-前加签 addsignafter-后加签 addsignafterbyadmin-后加签 freeflow-自由流程 freeflowafternode-自由流程 isCrossTenant 是否跨租户 false-不跨租户 true-跨租户 targetTenantId 目标租户id currentTenantId 当前租户id currentTenantAccountId 当前租户数据中心id crossTenantInfo 跨租户信息 `@Link kd.bos.workflow.engine.crosstenant.CrossTenantInfo` dataSourceType 数据中心类型 LOCAL-本租户本数据中心 CT-跨租户 TP-第三方系统 DE-动态实体 serialexecutecount 串行执行数量：大于某个数量之后才串行，否则和原来一致 addressbusinesskey 业务key _billno_ 单据id jobId 任务id newprocessdefinitionid 新流程定义id newschmeid 新实例计划id


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: tryTriggerProcessByProcNumber
param_types_key: String,String,String,Map
signature_text:
public static void tryTriggerProcessByProcNumber(String businessKey, String processNumber, String entityNumber, java.util.Map<String, Object> variables)

comment:
触发工作流。调用该接口后，会根据传入的参数进行流程寻址，如果满足条件，则该数据会进入流程进行流转。
@see ##tryTriggerProcess(String, String, String, Map)
@param `businessKey` 业务数据标识，即单据内码(主键）
@param `processNumber` 流程编码
@param `entityNumber` 实体编码。如采购订单则传入er_tripreqbill
@param `variables` 操作变量。


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: updateBpmnModelPropertys
param_types_key: Long,String,Map
comment: 更新流程节点属性 @param `procInstId` 流程实列ID @param `actId` 流程节点ID @param `params` 更新的信息
signature_text:
public static void updateBpmnModelPropertys(Long procInstId, String actId, java.util.Map<String, java.util.Map<String, Object>> params)


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: updateLatestProcessDefaultScheme
param_types_key: Long
signature_text: public static void updateLatestProcessDefaultScheme(Long modelId)
comment:
使用设计器中的流程模型数据，更新最新版流程定义中的默认方案。
**注意：** 该操作会直接修改当前正在使用的流程方案，对运行中的流程会立即生效。
@param `modelId` 模型ID，用于指定需要更新的流程模型
@throws `kd.bos.workflow.exception.WFException` 如果模型资源与方案资源中的节点结构不一致， 则抛出此异常，阻止更新操作


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: updateNodeTemplateInfo
param_types_key: String,Map
signature_text:
public static void updateNodeTemplateInfo(String nodeTemplateNumber, java.util.Map<String, Object> nodeTemplateInfo)

comment:
更新节点模板
@param `nodeTemplateNumber` 节点模板编码
@param `nodeTemplateInfo` 节点模板信息 {"nodeTemplateName": “新模版名称（多语言字符串）"}


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: updateParticipant
param_types_key: Long,List
signature_text: public static void updateParticipant(Long taskId, java.util.List<Long> userIds)
comment:
修改对应任务的参与人，该方法会触发管理员进行任务转交功能，即将当前任务转交给指定的用户。
**注意：** 方法执行后，之前的任务处理人将不具备该任务的处理权限。
@param `taskId` 任务ID
@param `userIds` 新参与人ID


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: updateTaskInfoAndParticipant
param_types_key: TaskInfo,List
signature_text: public static void updateTaskInfoAndParticipant(TaskInfo task, java.util.List<Long> userIds)
comment:
更新任务参与人 该接口会删除任务原始的参与人，历史任务参与人。并且会删除旧参与人的待办。 同时会给改任务添加新的参与人，并给新的参与人创建待办。
@param `task` 任务信息 kd.bos.workflow.engine.task.TaskInfo
@param `userIds` 用户ID集合


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: updateTrdRelatedProcComment
param_types_key: String,Comment
signature_text: public static void updateTrdRelatedProcComment(String relationValue, Comment comment)
comment:
更新第三方关联的流程审批信息
@param `relationValue` 第三方与流程关联字段值
@param `comment` 审批信息 kd.bos.workflow.engine.task.Comment


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: viewFlowchart
param_types_key: String,Object
signature_text: public static void viewFlowchart(String pageId, Object billId)
comment:
查看流程图 调用方式：例如：WorkflowServiceHelper.viewFlowchart(getView().getPageId(), 347562958684947456L);
@param `pageId` 页面ID
@param `billId` 单据ID


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: viewFlowchart
param_types_key: String,OpenStyle,Object,Long
signature_text: public static void viewFlowchart(String pageId, OpenStyle style, Object billId, Long procDefId)
comment:
查看流程图
@param `pageId` 页面ID
@param `style` 打开方式 kd.bos.form.OpenStyle
@param `billId` 单据ID
@param `procDefId` 流程定义ID


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: viewFlowchartWithEntityNumber
param_types_key: String,String,Object,OpenStyle
signature_text:
public static void viewFlowchartWithEntityNumber(String pageId, String entityNumber, Object billId, OpenStyle style)

comment:
查看流程图
@param `pageId` 页面ID
@param `entityNumber` 实体编码
@param `billId` 单据ID
@param `style` 打开方式 kd.bos.form.OpenStyle


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: viewFlowchartWithEntityNumber
param_types_key: String,String,Object,OpenStyle,Long
signature_text:
public static void viewFlowchartWithEntityNumber(String pageId, String entityNumber, Object billId, OpenStyle style, Long procDefId)

comment:
查看流程图
@param `pageId` 页面ID
@param `entityNumber` 实体编码
@param `billId` 单据ID
@param `style` 打开方式 kd.bos.form.OpenStyle
@param `procDefId` 流程定义ID


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: withdraw
param_types_key: DynamicObject
signature_text: public static void withdraw(DynamicObject obj)
comment:
工作流撤回
@param `obj` 单据数据 kd.bos.dataentity.entity.DynamicObject 仅支持单据上提交节点的撤回，当单据已经进入工作，并且任务已经有人处理，撤回会抛出异常 注意： 集成时，先调用流程撤回，然后调用业务撤回
@throws `KDException` 流程不允许撤回时抛出该异常


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: withdraw
param_types_key: DynamicObject,String
signature_text: public static void withdraw(DynamicObject obj, String operationKey)
comment:
流程中的单据撤销
@param `obj` 单据数据 kd.bos.dataentity.entity.DynamicObject
@param `operationKey` 操作编码。WfConfigurationUtil.userOldWithdraw()==true时，有效。新的撤回无需该参数 注意： 集成时，先调用流程撤回，然后调用业务撤回
@throws `KDException` 流程不允许撤回时抛出该异常


class_name: kd.bos.servicehelper.workflow.WorkflowServiceHelper
method_name: withdrawTaskByBusinessKeyAndUserId
param_types_key: String,Long
signature_text: public static void withdrawTaskByBusinessKeyAndUserId(String businessKey, Long userId)
comment:
描述：根据businessKey、userId撤回（最近一次已办）任务
@param `businessKey` 业务主键
@param `userId` 用户id 建议：捕获异常信息，如果不存在历史任务，则抛出KDException


class_name: kd.bos.threads.ThreadPools
method_name: executeOnceIncludeRequestContext
param_types_key: String,Runnable
signature_text: public static void executeOnceIncludeRequestContext(String name, Runnable runnable)
comment:
包含上下文执行一次
创建一个线程并执行提交的任务，并且将当前提交任务线程的上下文RequestContext传递给新创建的线程
@param `name` 线程名
@param `runnable` 执行的任务


class_name: kd.bos.threads.ThreadPools
method_name: executeOnceIncludeRequestContext
param_types_key: String,Runnable,String
signature_text: public static void executeOnceIncludeRequestContext(String name, Runnable runnable, String appId)
comment:
包含上下文执行一次
创建一个线程并执行提交的任务，并且将当前提交任务线程的上下文RequestContext传递给新创建的线程，并根据appid创建OperationContext上下文
@param `name` 线程名
@param `runnable` 执行的任务
@param `appId` 应用ID


class_name: kd.bos.threads.ThreadPools
method_name: executeOnceIncludeRequestContext
param_types_key: String,Runnable,OperationContext
signature_text:
public static void executeOnceIncludeRequestContext(String name, Runnable runnable, OperationContext operationContext)

comment:
执行一次
创建一个线程并执行提交的任务，并且将当前提交任务线程的上下文RequestContext传递给新创建的线程，并将传入的OperationContext上下文传递给新创建的线程
@param `name` 线程名
@param `runnable`
@param `operationContext` 操作上下文


class_name: kd.bos.threads.ThreadPools
method_name: newCachedExecutorService
param_types_key: String,int,int
signature_text:
public static java.util.concurrent.ExecutorService newCachedExecutorService(String poolName, int coreThread, int maxThread)

comment:
创建缓存线程池服务
@param `poolName` 线程池名称，线程池唯一标识，一个节点只能存在一个
@param `coreThread` 核心线程数，限制大于0，小于等于30，当传入的数值不在限制范围时候取值3
@param `maxThread` 最大线程数，限制大于等于0，小于等于10000，当传入的数值不在限制范围时候取值1000
@return 线程池服务ExecutorService


class_name: kd.bos.threads.ThreadPools
method_name: newCachedThreadPool
param_types_key: String,String
signature_text: public static ThreadPool newCachedThreadPool(String poolName, String appId)
comment:
创建缓存线程池
默认最大线程数1000，根据传入的appId创建OperationContext，使用该线程池执行任务都会携带这个OperationContext上下文
@param `poolName` 线程池名称，线程池唯一标识，一个节点只能存在一个
@param `appId` 应用ID
@return 线程池接口ThreadPool


class_name: kd.bos.threads.ThreadPools
method_name: newCachedThreadPool
param_types_key: String,int,int
signature_text: public static ThreadPool newCachedThreadPool(String poolName, int coreThread, int maxThread)
comment:
创建缓存线程池
@param `poolName` 线程池名称，线程池唯一标识，一个节点只能存在一个
@param `coreThread` 核心线程数
@param `maxThread` 最大线程数
@return 线程池接口ThreadPool


class_name: kd.bos.threads.ThreadPools
method_name: newCachedThreadPool
param_types_key: String,int,int,String
signature_text:
public static ThreadPool newCachedThreadPool(String poolName, int coreThread, int maxThread, String appId)

comment:
创建缓存线程池
根据传入的appId创建OperationContext，使用该线程池执行任务都会携带这个OperationContext上下文
@param `poolName` 线程池名称，线程池唯一标识，一个节点只能存在一个
@param `coreThread` 核心线程数，限制大于0，小于等于30，当传入的数值不在限制范围时候取值3
@param `maxThread` 最大线程数，限制大于等于0，小于10000，当传入的数值不在限制范围时候取值10000
@param `appId` 应用ID
@return 线程池接口ThreadPool


class_name: kd.bos.threads.ThreadPools
method_name: newCachedThreadPool
param_types_key: String,int,int,OperationContext
signature_text:
public static ThreadPool newCachedThreadPool(String poolName, int coreThread, int maxThread, OperationContext operationContext)

comment:
创建缓存线程池
使用该线程池执行任务都会携带传入的OperationContext上下文
@param `poolName` 线程池名称，线程池唯一标识，一个节点只能存在一个
@param `coreThread` 核心线程数，限制大于0，小于等于30，当传入的数值不在限制范围时候取值3
@param `maxThread` 最大线程数，限制大于等于0，小于10000，当传入的数值不在限制范围时候取值10000
@param `operationContext` 操作上下文
@return 线程池接口ThreadPool


class_name: kd.bos.threads.ThreadPools
method_name: newDynamicExecutorService
param_types_key: String,int,int
signature_text:
public static kd.bos.threads.DynamicExecutorService newDynamicExecutorService(String poolName, int coreThread, int maxThread)

comment:
创建动态线程池服务
可创建动态设置线程核心线程数，最大线程数的动态线程池
@param `poolName` 线程池名称，线程池唯一标识，一个节点只能存在一个
@param `coreThread` 核心线程数，限制大于0，小于等于30，当传入的数值不在限制范围时候取值3
@param `maxThread` 最大线程数，限制大于等于0，小于等于10000，当传入的数值不在限制范围时候取值1000
@return 线程池服务DynamicExecutorService


class_name: kd.bos.threads.ThreadPools
method_name: newExecutorService
param_types_key: String,int
signature_text:
public static java.util.concurrent.ExecutorService newExecutorService(String poolName, int nThreads)

comment:
创建一个固定线程数的线程池
@param `poolName` 线程池名称，线程池唯一标识，一个节点只能存在一个
@param `nThreads` 线程池的线程数，最大值不能超过1000，超过会自动取值1000
@return 原生线程池服务ExecutorService


class_name: kd.bos.threads.ThreadPools
method_name: newFixedThreadPool
param_types_key: String,int
signature_text: public static ThreadPool newFixedThreadPool(String poolName, int nThreads)
comment:
创建一个固定线程数的线程池
@param `poolName` 线程池名称，线程池唯一标识，一个节点只能存在一个
@param `nThreads` 线程池的线程数，最大值不能超过1000，超过会自动取值1000
@return 线程池接口ThreadPool


class_name: kd.bos.threads.ThreadPools
method_name: newFixedThreadPool
param_types_key: String,int,String
signature_text: public static ThreadPool newFixedThreadPool(String poolName, int nThreads, String appId)
comment:
创建一个绑定appId的固定线程数的线程池
根据传入的appId创建OperationContext，使用该线程池执行任务都会携带这个OperationContext上下文
@param `poolName` 线程池名称，线程池唯一标识，一个节点只能存在一个
@param `nThreads` 线程池的线程数，最大值不能超过1000，超过会自动取值1000
@param `appId` APPID
@return 线程池接口ThreadPool


class_name: kd.bos.threads.ThreadPools
method_name: newFixedThreadPool
param_types_key: String,int,OperationContext
signature_text: public static ThreadPool newFixedThreadPool(String poolName, int nThreads, OperationContext oc)
comment:
创建一个绑定OperationContext的固定线程数的线程池
使用该线程池执行任务都会携带传入的OperationContext上下文
@param `poolName` 线程池名称，线程池唯一标识，一个节点只能存在一个
@param `nThreads` 线程池的线程数，最大值不能超过1000，超过会自动取值1000
@param `oc` 操作上下文OperationContext
@return 线程池接口ThreadPool


class_name: kd.bos.threads.ThreadPools
method_name: toThreadPool
param_types_key: ExecutorService,String
signature_text: public static ThreadPool toThreadPool(java.util.concurrent.ExecutorService es, String appId)
comment:
通过JDK线程池服务ExecutorService得到被管理的线程池ThreadPool
@param `es` 线程池服务
@param `appId` 应用ID
@return 被管理的线程池ThreadPool


class_name: kd.bos.threads.ThreadPools
method_name: toThreadPool
param_types_key: ExecutorService,OperationContext
signature_text: public static ThreadPool toThreadPool(java.util.concurrent.ExecutorService es, OperationContext oc)
comment:
通过JDK线程池服务ExecutorService得到被管理的线程池ThreadPool
@param `es` 线程池服务
@param `oc` 操作上下文
@return 被管理的线程池ThreadPool


class_name: kd.bos.util.dbhint.DBHintContext
method_name: toString
signature_text: public String toString()
comment:
返回当前对象的字符串表示形式。 该方法将 hintTable 和 hintContent 按照特定格式拼接成一个字符串。 如果拼接后的字符串长度超过 512 个字符，会截取前 512 个字符并添加省略号。
@return 当前对象的字符串表示


class_name: kd.bos.util.FileNameUtils
method_name: getAttachmentFileName
param_types_key: String,String,String,String,Object,String
signature_text:
public static String getAttachmentFileName(String tenantId, String accountId, String appId, String formId, Object pkId, String filename)

comment:
根据提供的系统参数生成附件存储附件服务器的相对路径
@param `tenantId` 租户id
@param `accountId` 账户id
@param `appId` 应用编码
@param `formId` 单据编码
@param `pkId` 单据主键
@param `filename` 文件名
@return 存入文件服务器的相对路径


class_name: kd.bos.util.FileNameUtils
method_name: getAttachmentFileName
param_types_key: String,String,Object,String
signature_text:
public static String getAttachmentFileName(String tenantId, String accountId, Object AttPk, String filename)

comment:
根据提供的系统参数生成附件存储附件服务器的相对路径(用于附件字段)
@param `tenantId` 租户id
@param `accountId` 账户id
@param `filename` 文件名
@return 存入文件服务器的相对路径


class_name: kd.bos.util.FileNameUtils
method_name: getBillImageFileName
param_types_key: String,String,String,String
signature_text:
public static String getBillImageFileName(String tenantId, String accountId, String entityNumber, String fileName)

comment:
生成单据影像文件路径 （提供影像平台用）
@param `tenantId` 租户id
@param `accountId` 账套id
@param `entityNumber` 实体标识
@param `fileName` 文件名
@return 存入文件服务器的相对路径


class_name: kd.bos.util.FileNameUtils
method_name: getExportFileName
param_types_key: String,String,String,String,String
signature_text:
public static String getExportFileName(String tenantId, String accountId, String appId, String tag, String filename)

comment:
生成导出文件的文件名。 根据传入的租户 ID、账户 ID、应用 ID、标签和文件名，结合当前日期（格式为 yyyyMMdd）， 按照指定格式 FMT_PATH_EXPORT 生成最终的导出文件名。
@param `tenantId` 租户 ID
@param `accountId` 账户 ID
@param `appId` 应用 ID
@param `tag` 标签
@param `filename` 文件名
@return 生成的导出文件名


class_name: kd.bos.util.FileNameUtils
method_name: getExportFolderName
param_types_key: String,String,String,String,String
signature_text:
public static String getExportFolderName(String tenantId, String accountId, String appId, String tag, String filename)

comment:
生成导出文件夹的名称。 此方法会获取当前日期并格式化为 "yyyyMMdd" 的字符串形式，然后根据传入的租户 ID、账户 ID、应用 ID、标签和文件名， 按照预定义的格式 FMT_PATH_EXPORT 生成导出文件夹的名称。
@param `tenantId` 租户的 ID
@param `accountId` 账户的 ID
@param `appId` 应用的 ID
@param `tag` 标签信息
@param `filename` 文件名
@return 生成的导出文件夹名称


class_name: kd.bos.util.FileNameUtils
method_name: getImageAttFileName
param_types_key: String,String,String,Object,String
signature_text:
public static String getImageAttFileName(String tenantId, String accountId, String entityNumber, Object pkId, String fileName)

comment:
生成影像附件文件路径 （提供影像平台用）
@param `tenantId` 租户id
@param `accountId` 账套id
@param `entityNumber` 实体标识
@param `pkId` 单据pkid
@param `fileName` 文件名
@return 存入文件服务器的相对路径


class_name: kd.bos.util.FileNameUtils
method_name: getImageFileName
param_types_key: String,String,String,String,Object,String
signature_text:
public static String getImageFileName(String tenantId, String accountId, String appId, String formId, Object pkId, String filename)

comment:
根据提供的系统参数生成图片存储图片服务器的相对路径
@param `tenantId` 租户id
@param `accountId` 账户id
@param `appId` 应用编码
@param `formId` 单据编码
@param `pkId` 单据主键
@param `filename` 文件名
@return 存入文件服务器的相对路径


class_name: kd.bos.util.FileNameUtils
method_name: getRichTextResource
param_types_key: String,String,String,String,Object,String
signature_text:
public static String getRichTextResource(String tenantId, String accountId, String appId, String formId, Object pkId, String filename)

comment:
根据提供的系统参数生成rich_resources服务器的相对路径
@param `tenantId` 租户id
@param `accountId` 账户id
@param `appId` 应用编码
@param `formId` 单据编码
@param `pkId` 单据主键
@param `filename` 文件名
@return 存入文件服务器的相对路径


class_name: kd.bos.util.FileNameUtils
method_name: getRptImageFileName
param_types_key: String,String,String,String
signature_text:
public static String getRptImageFileName(String tenantId, String accountId, String entityNumber, String fileName)

comment:
生成报表影像文件路径 （提供影像平台用）
@param `tenantId` 租户id
@param `accountId` 账套id
@param `entityNumber` 实体标识
@param `fileName` 文件名
@return 存入文件服务器的相对路径


class_name: kd.bos.util.HttpUtils
method_name: post
param_types_key: String,Map,String,boolean
signature_text:
public static String post(String url, java.util.Map<String, String> header, String argument, boolean replaceSpace)

comment:
POST 请求, 该方法可以提供表单请求服务
@param `url` 请求地址
@param `header` 请求头
@param `argument` 请求参数
@param `replaceSpace` true 对返回结果去除空白字符，false 不去除
@return 相应内容


class_name: kd.bos.util.HttpUtils
method_name: post
param_types_key: String,Map,String,boolean,boolean,Integer
signature_text:
public static String post(String url, java.util.Map<String, String> header, String argument, boolean replaceSpace, boolean throwExcpeiont, Integer timeOut)


class_name: kd.bos.util.HttpUtils
method_name: post
param_types_key: String,Map,InputStream,boolean
signature_text:
public static String post(String url, java.util.Map<String, String> header, java.io.InputStream in, boolean replaceSpace)

comment:
发起post请求
@param `url` 请求地址
@param `header` 请求头
@param `in` 输入流
@param `replaceSpace` true 对返回结果去除空白字符，false 不去除
@return 响应内容


class_name: kd.bos.util.HttpUtils
method_name: request
param_types_key: String,String,Map,boolean
signature_text:
public static String request(String url, String requestType, java.util.Map<String, String> header, boolean replaceSpace)

comment:
@param `url` 请求地址
@param `requestType` 请求类型
@param `header` 请求头
@param `replaceSpace` true 对返回结果去除空白字符，false 不去除
@return 响应内容


class_name: kd.bos.util.JSONUtils
method_name: cast
param_types_key: String,Class
signature_text: public static Object cast(String source, Class<T> type) throws java.io.IOException
comment:
JSON字符串转换成目标对象
@param `source` 转换JSON字符串
@param `type` 转换结果类型
@return 如果转换成功返回type指定的对象，失败返回null
@throws Exception


class_name: kd.bos.util.JSONUtils
method_name: cast
param_types_key: String,Class,boolean
signature_text:
public static Object cast(String source, Class<T> type, boolean ignoreUnkownField) throws java.io.IOException

comment:
JSON字符串转换成目标对象
@param `source` 转换JSON字符串
@param `type` 转换结果类型
@param `ignoreUnkownField` 当反序列化json时，未知属性会引起的反序列化被打断, 如果为true， 目标类中将忽略source中多余的字段 如果为false, 转换失败将中断
@return 如果转换成功返回type指定的对象，失败返回null
@throws Exception


class_name: kd.bos.util.JSONUtils
method_name: cast
param_types_key: String,Class,Class[]
signature_text:
public static Object cast(String source, Class<?> collectionType, Class<?>[] elementType) throws java.io.IOException

comment:
JSON字符串转换成复杂目标对象
@param `source` 转换JSON字符串
@param `collectionType` 待转换复杂集合类型, 如ArrayList, HashMap
@param `elementType` 集合包含元素类型
@return 如果转换成功返回type指定的对象，失败返回null
@throws IOException


class_name: kd.bos.util.JSONUtils
method_name: cast
param_types_key: String,boolean,Class,Class[]
signature_text:
public static Object cast(String source, boolean ignoreUnkownField, Class<?> collectionType, Class<?>[] elementType) throws java.io.IOException

comment:
JSON字符串转换成复杂目标对象
@param `source` 转换JSON字符串
@param `ignoreUnkownField` 当反序列化json时，未知属性会引起的反序列化被打断, 如果为true， 目标类中将忽略source中多余的字段 如果为false, 转换失败将中断
@param `collectionType` 待转换复杂集合类型, 如ArrayList, HashMap
@param `elementType` 集合包含元素类型
@return 如果转换成功返回type指定的对象，失败返回null
@throws IOException


class_name: kd.bos.util.JSONUtils
method_name: getCollectionType
param_types_key: Class,Class[]
signature_text: public static JavaType getCollectionType(Class<?> collectionClass, Class<?>[] elementClasses)
comment:
获取数据类型
@param `collectionClass` 待转换复杂集合类型, 如ArrayList, HashMap
@param `elementClasses` 集合包含元素类型
@return 数据类型结果


class_name: kd.bos.util.resource.Resources
method_name: getString
param_types_key: String,String,String,Object[]
signature_text:
public static String getString(String description, String resourceID, String systemType, Object[] args)

comment:
加载多语言字符
@param `description` 描述字符串
@param `resourceID` 字段ID
@param `systemType` 子系统
@param `args` 参数列表


class_name: kd.bos.util.StringUtils
method_name: fromInputStream
param_types_key: InputStream,String
signature_text:
public static String fromInputStream(java.io.InputStream in, String encoding) throws java.io.IOException

comment:
从输入流中读取数据并转换为指定编码的字符串。
@param `in` 要读取数据的输入流。
@param `encoding` 用于将字节转换为字符串的字符编码。
@return 从输入流中读取并转换后的字符串。
@throws `IOException` 如果在读取输入流或转换为字符串过程中发生 I/O 错误。


class_name: kd.bos.util.StringUtils
method_name: getBooleanValue
param_types_key: String
signature_text: public static boolean getBooleanValue(String value)
comment:
将字符串值转换为布尔值。 该方法接收一个字符串和一个默认布尔值，根据字符串内容尝试将其转换为布尔值。 如果字符串等于预定义的 "YES" 常量，或者不区分大小写地等于 "TRUE"，则返回 true；
@param `value` 要转换为布尔值的字符串。
@return 根据字符串内容转换后的布尔值，如果转换失败则返回默认值。


class_name: kd.bos.util.StringUtils
method_name: getBooleanValue
param_types_key: String,boolean
signature_text: public static boolean getBooleanValue(String value, boolean defaultValue)
comment:
将字符串值转换为布尔值。 该方法接收一个字符串和一个默认布尔值，根据字符串内容尝试将其转换为布尔值。 如果字符串等于预定义的 "YES" 常量，或者不区分大小写地等于 "TRUE"，则返回 true； 否则返回传入的默认布尔值。
@param `value` 要转换为布尔值的字符串。
@param `defaultValue` 当字符串不符合转换条件时返回的默认布尔值。
@return 根据字符串内容转换后的布尔值，如果转换失败则返回默认值。


class_name: kd.bos.util.StringUtils
method_name: getStringValue
param_types_key: Object
signature_text: public static String getStringValue(Object StringObj)
comment:
将传入的对象转换为字符串类型。 该方法接收一个对象，尝试将其转换为字符串。如果对象本身就是字符串类型，则直接返回该字符串； 如果对象不为空但不是字符串类型，则使用 String.valueOf 方法将其转换为字符串； 如果对象为空，则返回 null。
@param `StringObj` 要转换为字符串的对象。
@return 转换后的字符串，如果对象为空则返回 null。


class_name: kd.bos.util.StringUtils
method_name: getStringValue
param_types_key: Object,String
signature_text: public static String getStringValue(Object StringObj, String defaultValue)
comment:
返回对象的Obj,如果为空，就用defaultValue代替
@param `StringObj` object对象内容
@return 对象的ObjString结果,如果为空，就用defaultValue代替


class_name: kd.bos.util.StringUtils
method_name: isEmpty
param_types_key: String
signature_text: public static boolean isEmpty(String string)
comment:
判断文本是否为null，或者文本长度为0 注意：该方法语义可能与其他第三方StringUtils的实现逻辑不同，请注意区分
@param `string` 需要进行判断的内容
@return 是否为空


class_name: kd.bos.util.StringUtils
method_name: isNumberString
param_types_key: String
signature_text: public static boolean isNumberString(String str)
comment:
判断字符串是否为数字字符串。 若字符串为 null 或为空，返回 false；否则调用 isNumericString 方法进一步判断。
@param `str` 待判断的字符串
@return 若为数字字符串返回 true，否则返回 false


class_name: kd.bos.util.StringUtils
method_name: isNumeric
param_types_key: String
signature_text: public static boolean isNumeric(String str)
comment:
判断字符串是否为数值类型。 若字符串不为 null 且其中小数点仅出现一次，移除小数点后调用 isNumericString 方法判断剩余部分是否为数字。
@param `str` 待判断的字符串
@return 若为数值类型返回 true，否则返回 false


class_name: kd.bos.util.StringUtils
method_name: randomNumber
param_types_key: int
signature_text: public static String randomNumber(int min)
comment:
生成随机数字字符串。 该方法调用另一个重载的 randomNumber 方法，以生成随机数字字符串，默认最大长度和最小长度均为传入的 min 值。
@param `min` 生成随机数字字符串的最小（也是最大）长度。
@return 生成的随机数字字符串。


class_name: kd.bos.util.StringUtils
method_name: split
param_types_key: String,boolean,char[]
signature_text: public static String[] split(String value, boolean withoutEmpty, char[] delim)
comment:
按指定分隔符分割字符串，可选择去除空元素。 若字符串为空，依 withoutEmpty 返回空数组或含空串数组。 有分隔符时遍历字符串分割，按 withoutEmpty 决定是否留空元素。
@param `value` 待分割字符串
@param `withoutEmpty` 是否去除空元素
@param `delim` 分隔符字符
@return 分割后的字符串数组


class_name: kd.bos.util.ThreadLocals
method_name: create
signature_text: public static ThreadLocal create()
comment:
创建一个新的 ThreadLocal 实例，初始值为 null。 调用重载的 create 方法，传入 null 作为初始值。
@param `<T>` ThreadLocal 存储的数据类型
@return 一个新的 ThreadLocal 实例


class_name: kd.bos.util.ThreadLocals
method_name: create
param_types_key: Object
signature_text: public static ThreadLocal create(T initValue)
comment:
创建一个新的 ThreadLocal 实例，并指定初始值。 当调用该 ThreadLocal 的 initialValue 方法时，会将其添加到 th 存储的集合中， 并返回指定的初始值。
@param `<T>` ThreadLocal 存储的数据类型
@param `initValue` 该 ThreadLocal 的初始值
@return 一个新的 ThreadLocal 实例


class_name: kd.bos.util.ThreadLocals
method_name: create
param_types_key: Supplier
signature_text: public static ThreadLocal create(java.util.function.Supplier<T> supplier)
comment:
创建一个新的 ThreadLocal 实例，并通过 Supplier 提供初始值。 当调用该 ThreadLocal 的 initialValue 方法时，会将其添加到 th 存储的集合中， 并通过 Supplier 获取初始值。如果 Supplier 为 null，则返回 null。
@param `<T>` ThreadLocal 存储的数据类型
@param `supplier` 用于提供初始值的 Supplier 函数式接口
@return 一个新的 ThreadLocal 实例


class_name: kd.bos.util.ThreadLocals
method_name: release
signature_text: public static void release()
comment:
释放当前线程中所有 ThreadLocal 实例占用的资源。 首先获取 th 存储的所有 ThreadLocal 实例集合， 复制一份进行释放操作，处理过程中可能会产生新的 ThreadLocal 实例， 若有新产生的实例，再次进行释放操作，但最多处理两轮，避免无限循环。 最后清空 th 存储的集合。


class_name: kd.bos.workflow.api.BizProcessStatus
method_name: <init>
param_types_key: String,String,String,String
signature_text:
public BizProcessStatus(String processStatus, String processStatusName, String participantName, String currentNodeName)

comment:
流程中状态
@param `processStatus` 流程状态 ACTIVE-正在运行 SUSPENSION-挂起
@param `processStatusName` 状态名称 正在运行/挂起
@param `participantName` 参与人名称 多个人以逗号隔开
@param `currentNodeName` 当前节点名称


class_name: kd.bos.workflow.api.BizProcessStatus
method_name: <init>
param_types_key: String,String,Long
signature_text: public BizProcessStatus(String processStatus, String processStatusName, Long processInstanceId)
comment:
流程中状态
@param `processStatus` 流程状态 ACTIVE-正在运行 SUSPENSION-挂起
@param `processStatusName` 状态名称 正在运行/挂起
@param `processInstanceId` 流程实例ID


class_name: kd.bos.workflow.api.INoCodeWorkflowService
method_name: createProcessesByTemplates
param_types_key: String,List,Map,Map
comment: 根据模板创建流程到指定应用分类下 @param `appId` @param `templateIds` @param `entityMap` 新旧实体id的对应关系，用于替换新创建流程中的实体信息
signature_text:
public default java.util.Map<Long, Long> createProcessesByTemplates(String appId, java.util.List<Long> templateIds, java.util.Map<String, String> entityMap, java.util.Map<String, String> roleMap)


class_name: kd.bos.workflow.api.INoCodeWorkflowService
method_name: getNoCodeFlowApplyTasksByStartId
param_types_key: int,int,String,Map
comment: 描述:无代码平台_获取在办申请 @param `start` @param `limit` @param `uid` @param `sqlFilterMap`
signature_text:
DynamicObjectCollection getNoCodeFlowApplyTasksByStartId(int start, int limit, String uid, java.util.Map<String, String> sqlFilterMap)


class_name: kd.bos.workflow.api.INoCodeWorkflowService
method_name: getNoCodeFlowApplyedProcessAssistantCollection
param_types_key: Long,Integer,Integer,String,String,Map
signature_text:
DynamicObjectCollection getNoCodeFlowApplyedProcessAssistantCollection(Long userId, Integer start, Integer limit, String starterOrSubjectFilter, String timeFilter, java.util.Map<String, Object> paramFilter)

comment:
描述:无代码平台_获取已办申请
@param `userId`
@param `start`
@param `limit`
@param `starterOrSubjectFilter`
@param `timeFilter`
@param `paramFilter`


class_name: kd.bos.workflow.api.INoCodeWorkflowService
method_name: getNoCodeFlowApprovalRecordsFromDetailLog
param_types_key: String,String
comment: 描述:无代码平台_根据businessKey查询审批记录 @param `businessKey` @param `entityNumber`
signature_text:
DynamicObjectCollection getNoCodeFlowApprovalRecordsFromDetailLog(String businessKey, String entityNumber)


class_name: kd.bos.workflow.api.INoCodeWorkflowService
method_name: getNoCodeFlowBizProcessStatus
param_types_key: String[]
comment: 描述:无代码平台_根据单据id集合查询在流程中的状态 @param `businessKeys`
signature_text:
java.util.Map<String, java.util.List<BizProcessStatus>> getNoCodeFlowBizProcessStatus(String[] businessKeys)


class_name: kd.bos.workflow.api.INoCodeWorkflowService
method_name: getNoCodeFlowHandledTasksByUserId
param_types_key: int,int,String,Map
comment: 描述:无代码平台_获取已办任务 @param `start` @param `limit` @param `uid` @param `sqlFilterMap`
signature_text:
DynamicObjectCollection getNoCodeFlowHandledTasksByUserId(int start, int limit, String uid, java.util.Map<String, String> sqlFilterMap)


class_name: kd.bos.workflow.api.INoCodeWorkflowService
method_name: getNoCodeFlowProcessInstanceInfoByProcessCode
param_types_key: int,int,String
comment: 描述:无代码平台_根据流程编码查询流程实例信息 @param `processCode` 流程编码
signature_text:
DynamicObjectCollection getNoCodeFlowProcessInstanceInfoByProcessCode(int start, int limit, String processCode)


class_name: kd.bos.workflow.api.INoCodeWorkflowService
method_name: getNodeMacros
param_types_key: String,String,String
comment: 获取节点宏 @param `procType` 流程类型 @param `nodeJson` 节点JSON @param `macroType` 宏
signature_text:
public default java.util.List<NodeMacro> getNodeMacros(String procType, String nodeJson, String macroType)


class_name: kd.bos.workflow.api.INoCodeWorkflowService
method_name: getProcInstIdsByEntityNumberOrBusinessKey
param_types_key: int,int,String,String
comment: 根据entityNumber或businessKey查询流程实例ids接口 @param `entityNumber` @param `businessKey`
signature_text:
java.util.List<Long> getProcInstIdsByEntityNumberOrBusinessKey(int start, int limit, String entityNumber, String businessKey)


class_name: kd.bos.workflow.api.INoCodeWorkflowService
method_name: getProcessDefinitionsByTriggerMode
param_types_key: String,String
comment: 通过实体编码和触发方式获取满足条件的流程定义列表 @param `entityNumber` @param `triggerMode`
signature_text:
java.util.List<ProcessDefinitionInfo> getProcessDefinitionsByTriggerMode(String entityNumber, String triggerMode)


class_name: kd.bos.workflow.api.INoCodeWorkflowService
method_name: importProcessFileContent
param_types_key: String,boolean
comment: 导入流程 @param `content` @param `forceNew`
signature_text:
public default java.util.Map<String, Object> importProcessFileContent(String content, boolean forceNew)


class_name: kd.bos.workflow.api.INoCodeWorkflowService
method_name: saveProcessesAsTemplates
param_types_key: String,List,Map,Map
comment: 将模型保存为模板 @param `appId` @param `modelIds` @param `entityMap`
signature_text:
public default java.util.Map<Long, Long> saveProcessesAsTemplates(String appId, java.util.List<Long> modelIds, java.util.Map<String, String> entityMap, java.util.Map<String, String> roleMap)


class_name: kd.bos.workflow.api.IRelationService
method_name: convert
param_types_key: String,String,List,String,Map
signature_text:
public default java.util.List<String> convert(String srcEntity, String targetEntity, java.util.List<String> srcPks, String afterOperation, java.util.Map<String, Object> extraParams)


class_name: kd.bos.workflow.api.IRelationService
method_name: getDirectSrcBillByTargetBill
param_types_key: String,List,Map
signature_text:
public default java.util.Map<String, java.util.Set<String>> getDirectSrcBillByTargetBill(String targetEntiyNumber, java.util.List<String> tpk, java.util.Map<String, Object> extraParams)


class_name: kd.bos.workflow.api.IRelationService
method_name: getDirectTargetBillBySrcBill
param_types_key: String,List,Map
signature_text:
getDirectTargetBillBySrcBill(String srcEntityNunber, java.util.List<String> spk, java.util.Map<String, Object> extraParams)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: addCallActivityMultiInst
param_types_key: Long,String,List,Map
signature_text:
default void addCallActivityMultiInst(Long processInstanceId, String callActivityId, java.util.List<Object> dimensionValues, java.util.Map<String, Object> variables)

comment:
当前子流程节点添加子实例
@param `processInstanceId`
@param `callActivityId`
@param `dimensionValues`
@param `variables`


class_name: kd.bos.workflow.api.IWorkflowService
method_name: addCommentWithAttachment
param_types_key: Comment,List
comment: 描述:记录审批意见，可增加附件 @param `comment`
signature_text:
public default void addCommentWithAttachment(Comment comment, java.util.List<java.util.Map<String, Object>> attch)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: addJointAuditParticipants
param_types_key: String,String,List,Map
comment: 会审节点动态增加实例个数,根据参与人增加 @param `businesskey` @param `nodeId` @param `userIds`
signature_text:
public default void addJointAuditParticipants(String businesskey, String nodeId, java.util.List<Long> userIds, java.util.Map<String, String> variables)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: addOneYunzhijiaCompletedChildTask
param_types_key: AddYunzhijiaTaskParam
signature_text:
default void addOneYunzhijiaCompletedChildTask(kd.bos.workflow.engine.task.AddYunzhijiaTaskParam param)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: addProcessRelationPerson
param_types_key: Long,List
signature_text:
public default void addProcessRelationPerson(Long processInstanceId, java.util.List<Long> assigneeIds)

comment:
添加任务关联人
@param `processInstanceId` 流程实例id（Long）不为空
@param `assigneeIds` 关联人的userId（String）集合- 可以为空，获取当前上下文中的用户id
@return void - 如果有异常抛出kdexception，接口进行捕获；否则添加成功


class_name: kd.bos.workflow.api.IWorkflowService
method_name: addProcessRelationPerson
param_types_key: String,String,List
signature_text:
public default void addProcessRelationPerson(String entityNumber, String businessKey, java.util.List<Long> assigneeIds)

comment:
添加任务关联人
@param `entityNumber` 实体编码（Sting）不为空
@param `businessKey` 单据主键（Sting）不为空
@param `assigneeIds` 关联人的userId（String）集合- 可以为空，获取当前上下文中的用户id
@return void - 如果有异常抛出kdexception，接口进行捕获；否则添加成功


class_name: kd.bos.workflow.api.IWorkflowService
method_name: applyWorkflowMultiLanguageWords4ModelAndTpl
param_types_key: Map
comment: 翻译平台，把翻译好的词条应用回去，即把多语言的词条存储起来，此接口适用于流程设计和流程模板 @param `mutiLangDatas` 多语言数据
signature_text:
default void applyWorkflowMultiLanguageWords4ModelAndTpl(java.util.Map<String, Object> mutiLangDatas)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: assignNextParticipant
param_types_key: Long,Map
comment: @param `taskId` @param `users`
signature_text:
public default void assignNextParticipant(Long taskId, java.util.Map<String, java.util.List<String>> dynParticipants)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: batchAuditByBusinesskeys
param_types_key: List,Map
comment: 根据businessKeys批量处理任务，需要传入审批人，批量审批决策类型，审批意见 @param `businessKeys` @param `param`
signature_text:
public default java.util.Map<String, Object> batchAuditByBusinesskeys(java.util.List<String> businessKeys, java.util.Map<String, Object> param)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: batchCompleteCompositeTasks
param_types_key: Map
signature_text:
public default void batchCompleteCompositeTasks(java.util.Map<Long, java.util.Map<String, Object>> variables)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: batchGetApprovalRecordByBusinessKey
param_types_key: List
signature_text:
default java.util.Map<String, java.util.List<IApprovalRecord>> batchGetApprovalRecordByBusinessKey(java.util.List<String> businessKeyList)

comment:
批量获取审批记录
@param `businessKeyList` 单据businessKeyList
@return Map> 审批记录对象集合 key为单据的businessKey，valve为审批记录集合


class_name: kd.bos.workflow.api.IWorkflowService
method_name: batchUpdateTaskInfoAndParticipant
param_types_key: List,Map
signature_text:
public default TaskAndParticipantBatchUpdateResult batchUpdateTaskInfoAndParticipant(java.util.List<TaskAndParticipantBatchUpdateParams> paramList, java.util.Map<Long, ILocaleString> userNameFormatterMap)

comment:
批量更新任务信息以及任务参与人
@param `paramList` 批量更新参数 TaskAndParticipantBatchUpdateParams
@param `userNameFormatterMap` 用户名称格式化


class_name: kd.bos.workflow.api.IWorkflowService
method_name: batchUpdateTaskInfoAndParticipant
param_types_key: List
signature_text:
public default TaskAndParticipantBatchUpdateResult batchUpdateTaskInfoAndParticipant(java.util.List<TaskAndParticipantBatchUpdateParams> paramList)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: billUnsubmit
param_types_key: DynamicObject[],String,Map
signature_text:
public default void billUnsubmit(DynamicObject[] objs, String operationName, java.util.Map<String, Object> param)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: canWithdrawByProcessInstanceId
param_types_key: Long
comment: 描述：根据流程实例id撤回流程 @param `processInstanceId`
signature_text:
public default java.util.Map<String, java.util.List<String>> canWithdrawByProcessInstanceId(Long processInstanceId)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: compareProcessDifference
param_types_key: String,String,String,Set
signature_text:
public default java.util.List<ModelModifyLogInfo> compareProcessDifference(String newestJson, String currentJson, String processNum, java.util.Set<String> ignoredProps)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: completeTask
param_types_key: Long,Long,String,String,Map
signature_text:
public default void completeTask(Long taskId, Long userId, String decOptionNumber, String auditMessage, java.util.Map<String, Object> variables)

comment:
完成任务，并记录审批意见
@param `taskId` 任务ID
@param `userId` 处理人ID
@param `decOptionNumber` 决策项编码
@param `auditMessage` 审批意见
@param `variables` 提交参数信息


class_name: kd.bos.workflow.api.IWorkflowService
method_name: completeTask
param_types_key: String,String,Long,String,String,boolean
signature_text:
public default void completeTask(String businessKey, String nodeId, Long userId, String decOptionNumber, String auditMessage, boolean checkUser)

comment:
完成任务，并记录审批意见,此方法只支持审批节点，不支持会审节点
@param `businessKey` 单据id
@param `nodeId` 节点编码
@param `userId` 处理人ID
@param `decOptionNumber` 决策项编码
@param `auditMessage` 审批意见
@param `checkUser` :是否强制校验userId为任务参与人，会审必须校验


class_name: kd.bos.workflow.api.IWorkflowService
method_name: completeTask
param_types_key: String,String,Long,String,String,boolean,Map
signature_text:
public default void completeTask(String businessKey, String nodeId, Long userId, String decOptionNumber, String auditMessage, boolean checkUser, java.util.Map<String, Object> variables)

comment:
完成任务，并记录审批意见,此方法只支持审批节点，不支持会审节点
@param `businessKey` 单据id
@param `nodeId` 节点编码
@param `userId` 处理人ID
@param `decOptionNumber` 决策项编码
@param `auditMessage` 审批意见
@param `checkUser` :是否强制校验userId为任务参与人，会审必须校验
@param `variables` :参数变量


class_name: kd.bos.workflow.api.IWorkflowService
method_name: completeTaskByBusinessKey
param_types_key: String,String,Long,String,String,boolean
signature_text:
public default void completeTaskByBusinessKey(String businessKey, String nodeId, Long userId, String decOptionNumber, String auditMessage, boolean checkUser)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: createProcessAndStart
param_types_key: String,String,String,Map,WFProcess
signature_text:
public default void createProcessAndStart(String businessKey, String operation, String entityNumber, java.util.Map<String, Object> variables, WFProcess freeFlowProcess)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: discardProcesses
param_types_key: List,boolean,boolean
signature_text:
public default void discardProcesses(java.util.List<Long> modelIds, boolean disableProcDefinition, boolean terminalProcInst)

comment:
废弃流程，如果disableProcDefinition为true，则同时禁用流程定义
@param `modelIds`
@param `disableProcDefinition`
@param `terminalProcInst`


class_name: kd.bos.workflow.api.IWorkflowService
method_name: findOperationLogByBusinessKey
param_types_key: String,String,String
comment: 根据单据Id查询操作日志 @param `businessKey` @param `selectFeilds` @param `orderBy`
signature_text:
default java.util.List<DynamicObject> findOperationLogByBusinessKey(String businessKey, String selectFeilds, String orderBy)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: findOperationLogByProcInstId
param_types_key: Long,String,String
comment: 根据流程实例Id查询操作日志 @param `procInstId` @param `selectFeilds` @param `orderBy`
signature_text:
default java.util.List<DynamicObject> findOperationLogByProcInstId(Long procInstId, String selectFeilds, String orderBy)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getActInstInfo
param_types_key: String,List,boolean
comment: @param `businessKey` 单据主键ID @param `actId` 节点ID @param `isOnlyCompleted` 是否只查询已完成的数据
signature_text:
public default java.util.Map<String, java.util.List<java.util.Map<String, Object>>> getActInstInfo(String businessKey, java.util.List<String> actIds, boolean isOnlyCompleted)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getAddressAndPreCompute
param_types_key: String,String,String
signature_text:
public default java.util.List<java.util.Map<String, Object>> getAddressAndPreCompute(String operation, String entityNumber, String businessKey)

comment:
传递operation+dynamicObject来寻址和预测（通威）
@param `operation` 操作
@param `entityNumber` 单据实体编码
@param `businessKey` 单据业务主键
@return 寻址和预测的结果数据


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getAfterPreComputorRecordItem
param_types_key: PreComputorParams
signature_text:
public default java.util.Map<String, Object> getAfterPreComputorRecordItem(kd.bos.workflow.engine.precomputor.PreComputorParams computorParams)

comment:
获取当前节点预计算的后续节点
@param `computorParams`
@return Map结构 - 当前节点预计的后续节点 当前节点为auditnode5 VariableConstants.SCHEMEIDVARIABLE, schemeId VariableConstants.AFTERNODES, List afterNodeList - IPreComputorRecordItem已经在api工程里，返回的是auditnode7、Auditnode9


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getAllApprovalRecordInclCoordinate
param_types_key: String
signature_text:
public default java.util.List<IApprovalRecordGroup> getAllApprovalRecordInclCoordinate(String businessKey)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getAllOriginalApprovalRecord
param_types_key: String,Long,Map
signature_text:
default java.util.List<IApprovalRecordGroup> getAllOriginalApprovalRecord(String businessKey, Long processInstanceId, java.util.Map<String, Object> params)

comment:
@param `businessKey`
@param `processInstanceId`
@param `params`
@return 完整的审批记录，该方法不走第三方插件，只根据原始的cmd查询


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getAllProcInstPropertiesByBusKey
param_types_key: String
comment: 根据businessKey获取所有历史流程的属性 @param `businessKey`
signature_text:
default java.util.List<java.util.Map<String, Object>> getAllProcInstPropertiesByBusKey(String businessKey)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getAllowPersonListShowParameter
param_types_key: Long,Long,DynamicObject,CloseCallBack
signature_text:
getAllowPersonListShowParameter(Long processDefinitionId, Long processInstId, DynamicObject dataEntity, CloseCallBack closeCallBack)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getAllowPersonListShowParameter
param_types_key: Map,DynamicObject,CloseCallBack
signature_text:
public default ListShowParameter getAllowPersonListShowParameter(java.util.Map<String, String> variables, DynamicObject dataEntity, CloseCallBack closeCallBack)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getAllowPersonParameter
param_types_key: Map,DynamicObject,CloseCallBack,String
signature_text:
public default FormShowParameter getAllowPersonParameter(java.util.Map<String, String> variables, DynamicObject dataEntity, CloseCallBack closeCallBack, String scene)

comment:
获取指定下一步参与人parameter
@param `variables`
@param `dataEntity`
@param `closeCallBack`
@param `scene` \-- "mob"：移动端；"pc"：PC端


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getApplyTasksByStartId
param_types_key: int,int,String,Map
signature_text:
public default DynamicObjectCollection getApplyTasksByStartId(int start, int limit, String uid, java.util.Map<String, String> sqlFilterMap)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getApplyedProcessAssistant
param_types_key: Long,Integer,Integer,String,String
comment: 流程助手获取我的已办任务 @param `userId`
signature_text:
public default java.util.List<java.util.Map<String, Object>> getApplyedProcessAssistant(Long userId, Integer start, Integer limit, String starterOrSubjectFilter, String timeFilter)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getApplyedProcessAssistantCollection
param_types_key: Long,Integer,Integer,String,String,Map
signature_text:
public default DynamicObjectCollection getApplyedProcessAssistantCollection(Long userId, Integer start, Integer limit, String starterOrSubjectFilter, String timeFilter, java.util.Map<String, Object> paramFilter)

comment:
提供对外的微服务查询已办申请数据接口
@param `userId`
@param `start`
@param `limit`
@param `starterOrSubjectFilter`
@param `timeFilter`
@param `paramFilter`


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getApplyedProcessAssistantDatas
param_types_key: Long,Integer,Integer,String,String,Map
signature_text:
public default java.util.List<java.util.Map<String, Object>> getApplyedProcessAssistantDatas(Long userId, Integer start, Integer limit, String starterOrSubjectFilter, String timeFilter, java.util.Map<String, Object> paramFilter)

comment:
提供对外的http查询已办申请数据接口
@param `userId`
@param `start`
@param `limit`
@param `starterOrSubjectFilter`
@param `timeFilter`
@param `paramFilter`


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getApprovalRecords
param_types_key: String,String,boolean
signature_text:
default java.util.List<IApprovalRecordGroup> getApprovalRecords(String entityNumber, String businessKey, boolean allRecord)

comment:
获取(全部)审批记录
@param `entityNumber` 实体编码
@param `businessKey` 单据主键
@param `allRecord` 是否全部审批记录（包含当前单据历史审批记录） ：true - 全部审批记录；false - 最新审批记录
@return 审批记录对象集合；注意异常的捕获，异常说明参数不对


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getApproversMapByBusinessKeys
param_types_key: String[]
comment: 描述:获取给定单据集合的当前审批人集合 @param `businessKeyArr` @return 以businessKey为key当前审批人集合为value
signature_text:
public java.util.Map<String, java.util.List<Long>> getApproversMapByBusinessKeys(String[] businessKeyArr)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getArchiveRouteKeys
param_types_key: String,List
comment: 通过单据+单据归档索引条件，查询归档路由 @param `entityNumber` @param `archiveRouteIndexConditions`
signature_text:
public default java.util.List<String> getArchiveRouteKeys(String archiveEntity, java.util.List<kd.bos.workflow.engine.msg.ArchiveRouteIndexCondition> archiveRouteIndexConditions)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getAuditAllowModifiedFields
param_types_key: Long,String
comment: 根据任务id获得节点配置的页面可编辑信息
signature_text:
public default java.util.List<java.util.Map<String, String>> getAuditAllowModifiedFields(Long taskId, String type)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getAuditBillPageAttributeConfigs
param_types_key: Long,String
comment: 获取审批节点单据字段可见性-可编辑性-必录性、按钮-可见性、图标及页签可见性 @param `taskId` @param `type`
signature_text:
public default java.util.Map<String, java.util.Map<String, String>> getAuditBillPageAttributeConfigs(Long taskId, String type)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getAuditPointResultsByTaskId
param_types_key: Long
comment: 获取审批要点计算结果 @param `taskId`
signature_text:
public default java.util.List<kd.bos.workflow.engine.task.AuditPointResult> getAuditPointResultsByTaskId(Long taskId)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getBillPageAttributeConfig
param_types_key: Long,String
comment: 根据taskId获取节点单据界面属性接口
signature_text:
public default kd.bos.workflow.engine.dynprocess.billpage.BillPageAttributeConfig getBillPageAttributeConfig(Long taskId, String type)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getBizProcessStatus
param_types_key: String[]
comment: 根据单据id集合查询在流程中的状态 @param `businessKeys`
signature_text:
public default java.util.Map<String, java.util.List<BizProcessStatus>> getBizProcessStatus(String[] businessKeys)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getBizProcessStatus
param_types_key: String[],String
comment: 根据单据id集合查询在流程中的状态 @param `businessKeys` @param `name`
signature_text:
public default java.util.Map<String, java.util.List<BizProcessStatus>> getBizProcessStatus(String[] businessKeys, String name)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getBusinessKeyByEntityNumberUIds
param_types_key: BusinessKeyQueryParams
comment: 根据单据编码、用户Id获取业务主键 @param `businessKeyQueryParams` 参数 @return 业务主键
signature_text:
default java.util.List<Object> getBusinessKeyByEntityNumberUIds(BusinessKeyQueryParams businessKeyQueryParams)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getCommentForPrintByType
param_types_key: String,String,Map
comment: 获取全部（同意+驳回+多圈），获取同意（多圈+同意），获取单圈同意 @param `buinessKey` @param `type` @param `printParam`
signature_text:
public default java.util.Collection<java.util.Map<String, String>> getCommentForPrintByType(String buinessKey, String type, java.util.Map<String, Object> printParam)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getCommentForPrintByType
param_types_key: String,String
comment: 获取全部（同意+驳回+多圈），获取同意（多圈+同意），获取单圈同意 @param `businessKey` @param `type`
signature_text:
public default java.util.Collection<java.util.Map<String, String>> getCommentForPrintByType(String businessKey, String type)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getCurrentCallActivityMultiInstInfo
param_types_key: Long
comment: 根据流程实例查询当前子流程节点的多维度信息 @param `processInstanceId`
signature_text:
default java.util.List<java.util.Map<String, Object>> getCurrentCallActivityMultiInstInfo(Long processInstanceId)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getEnabledProcDefByEntityNumber
param_types_key: String
comment: @param `entityNumber`
signature_text:
public default java.util.List<java.util.Map<String, Object>> getEnabledProcDefByEntityNumber(String entityNumber)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getEnabledProcesses
param_types_key: DynamicObject,String
signature_text:
public default java.util.List<kd.bos.workflow.api.EnabledProcessInfo> getEnabledProcesses(DynamicObject dataEntity, String operation)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getHandledTasksByUserId
param_types_key: int,int,String,Map
signature_text:
public default DynamicObjectCollection getHandledTasksByUserId(int start, int limit, String uid, java.util.Map<String, String> sqlFilterMap)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getHandledTasksByUserId
param_types_key: int,int,String,Map,String
signature_text:
public default DynamicObjectCollection getHandledTasksByUserId(int start, int limit, String uid, java.util.Map<String, String> sqlFilterMap, String orderBy)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getNextUseableUserAndScope
param_types_key: Long,String
comment: 获取下一步可选参与人和选择范围（白名单，黑名单，必选名单） @param `taskId` @param `auditType` @param `auditNumber`
signature_text:
public default java.util.Map<String, java.util.Map<String, java.util.List<Long>>> getNextUseableUserAndScope(Long taskId, String auditNumber)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getNextUserTaskNodeByBusinessKey
param_types_key: String
comment: 与计算下一步参与人 @param `businessKey`
signature_text:
public default java.util.List<java.util.Map<String, Object>> getNextUserTaskNodeByBusinessKey(String businessKey)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getNextUserTaskNodeByModel
param_types_key: DynamicObject,String,String
signature_text:
public default java.util.List<java.util.Map<String, Object>> getNextUserTaskNodeByModel(DynamicObject model, String operation, String entityNumber)

comment:
获取下一步节点信息
@param `model` \-- 单据model
@param `operation` \-- 操作
@param `entityNumber` \-- 实体编码
@return List> map.put("nextNode", userTask); // 节点信息 map.put("users", users); // 用户信息


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getNodeParticipantScop
param_types_key: ParticipantScopeParams
comment: 获取节点参与人范围 @param `participantScopeParams`
signature_text:
public default kd.bos.workflow.engine.impl.cmd.task.ParticipantScope getNodeParticipantScop(kd.bos.workflow.engine.precomputor.ParticipantScopeParams participantScopeParams)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getOperationLogs
param_types_key: Long,String
comment: 获取操作记录 @param `processInstanceId` @param `type`
signature_text:
public default java.util.List<java.util.Map<String, Object>> getOperationLogs(Long processInstanceId, String type)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getPreComputorRecordWithOutCurrentNodes
param_types_key: Long
signature_text:
default kd.bos.workflow.engine.precomputor.IPreComputorRecord getPreComputorRecordWithOutCurrentNodes(Long procInstId)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getPrintCommentWithParam
param_types_key: String,String,Map
signature_text:
public default java.util.Collection<java.util.Map<String, String>> getPrintCommentWithParam(String businessKey, String type, java.util.Map<String, Object> printParam)

comment:
@param `businessKey`
@param `type` ：all获取所有(多圈+同意+驳回)、allConsent获取所有同意(多圈+同意)、lastedConsent获取最新
@param `printParam`


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getPrintMetaEntityNumber
param_types_key: String
comment: 根据实体编码获取对应的流程的打印元数据 节点名称和节点编码均为第一个的流程节点的 采用的是覆盖上个节点名称和编码的方式 @param `entityNumber`
signature_text:
public default java.util.Collection<java.util.Map<String, Object>> getPrintMetaEntityNumber(String entityNumber)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getProcDefByNumberAndVerson
param_types_key: String,String
comment: @param `procDefId`
signature_text:
public default java.util.Map<String, Object> getProcDefByNumberAndVerson(String processNumber, String version)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getProcSchemesByProcDefId
param_types_key: Long
comment: @param `procDefId`
signature_text:
public default java.util.List<java.util.Map<String, Object>> getProcSchemesByProcDefId(Long procDefId)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getProcessAttachmentsInfo
param_types_key: String,String
signature_text:
public default java.util.Map<String, java.util.List<kd.bos.workflow.component.approvalrecord.ApprovalAttachmentInfo>> getProcessAttachmentsInfo(String entityNumber, String businessKey)

comment:
获取流程附件
@param `entityNumber` 实体编码
@param `businessKey` 单据主键id
@return map数据结构，其中key为commentid值，value为一个List的审批附件信息


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getProcessElements
param_types_key: DynamicObject,String
signature_text:
public default java.util.List<WFFlowElement> getProcessElements(DynamicObject bill, String operation)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getProcessInstanceIdByBusinessKeyAndEntityNumber
param_types_key: String,String
signature_text:
public default Long getProcessInstanceIdByBusinessKeyAndEntityNumber(String businessKey, String entityNumber)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getProcessInstancePropertiesByBusinesskey
param_types_key: String
signature_text:
public default java.util.Map<String, Object> getProcessInstancePropertiesByBusinesskey(String businessKey)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getProcessWindowRecords
param_types_key: String
comment: 获取流程审批节点信息及预计算节点信息(单据已进流程) @param `businessKey` @return 流程窗口所需数据
signature_text:
public default java.util.List<java.util.Map<String, Object>> getProcessWindowRecords(String businessKey)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getProcessWindowRecords
param_types_key: Long,DynamicObject
comment: 获取流程预计算节点信息(单据未进流程) @param `procdefId` 指定流程 @param `billObj` 单据信息 @return 流程窗口所需数据
signature_text:
public default java.util.List<java.util.Map<String, Object>> getProcessWindowRecords(Long procdefId, DynamicObject billObj)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getProcessWindowRecords
param_types_key: String,DynamicObject
comment: 获取流程预计算节点信息(单据未进流程) @param `opKey` 指定操作类型 @param `billObj` 单据信息 @return 流程窗口所需数据
signature_text:
public default java.util.List<java.util.Map<String, Object>> getProcessWindowRecords(String opKey, DynamicObject billObj)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getRejectInnerNodes
param_types_key: Long,String
signature_text:
public default java.util.List<java.util.Map<String, Object>> getRejectInnerNodes(Long procinstId, String activityId)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getRejectNodes
param_types_key: Long,String
signature_text:
public default java.util.List<WFRejectNodesModel> getRejectNodes(Long taskId, String decisionOptionNumber)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getSensitiveFieldInfo
param_types_key: String,DynamicObject[],String,Map,String,boolean
comment: 获取关键字段信息
signature_text:
public default java.util.Map<String, Object> getSensitiveFieldInfo(String entityId, DynamicObject[] dataEntities, String operationKey, java.util.Map<String, Object> wfVar, String category, boolean fromApi)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getTaskEntityName
param_types_key: Long,String
comment: 获取查询条件 @param `uid` @param `type`
signature_text:
public default java.util.List<java.util.Map<String, Object>> getTaskEntityName(Long uid, String type)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getTaskIdByProcessInstanceIdAndActivityIdAndUserId
param_types_key: Long,String,Long
comment: 根据流程实例ID,节点ID和人员ID获取任务id @param `processInstanceId` @param `activityId` @param `userId`
signature_text:
public default Long getTaskIdByProcessInstanceIdAndActivityIdAndUserId(Long processInstanceId, String activityId, Long userId)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getToHandleTasksByUserId
param_types_key: int,int,String,Map
comment: 描述:获取当前人的所有任务,根据 @param `start` @param `limit` @param `uid` @param `sqlFilter`
signature_text:
public default DynamicObjectCollection getToHandleTasksByUserId(int start, int limit, String uid, java.util.Map<String, String> sqlFilter)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getToHandleTasksByUserId
param_types_key: int,int,String,Map,String
comment: 描述:获取当前人的所有任务 @param `start` @param `limit` @param `uid` @param `sqlFilter`
signature_text:
public default DynamicObjectCollection getToHandleTasksByUserId(int start, int limit, String uid, java.util.Map<String, String> sqlFilter, String orderBy)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getToHandleTasksMessage
param_types_key: Long,Integer
comment: 获取单板任务消息 @param `userId` 当前用户id @param `topCount` 前topCount条数据
signature_text:
java.util.List<java.util.Map<String, Object>> getToHandleTasksMessage(Long userId, Integer topCount)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getVariablesByProcInstId
param_types_key: Long,String[]
comment: @param `processinstanceId`
signature_text:
public default java.util.Map<String, Object> getVariablesByProcInstId(Long procInstId, String[] variableKeys)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getWfAssignPersons
param_types_key: String,String,DynamicObject
signature_text:
public default java.util.Map<String, Object> getWfAssignPersons(String formId, String opKey, DynamicObject dataEntity)

comment:
批量检查是否需要指定下一步参与人
@param `formId`
@param `opKey`
@param `dataEntities`
@return wfAssignPersons：true/false; wfid:xxx;


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getWfAssignPersons
param_types_key: String,String,DynamicObject,Map
signature_text:
public default java.util.Map<String, Object> getWfAssignPersons(String formId, String opKey, DynamicObject dataEntity, java.util.Map<String, Object> param)

comment:
批量检查是否需要指定下一步参与人
@param `formId`
@param `opKey`
@param `dataEntities`
@return wfAssignPersons：true/false; wfid:xxx;


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getWorkflowModelMultiLanguageIdsByAppId
param_types_key: String
signature_text: default java.util.List<Long> getWorkflowModelMultiLanguageIdsByAppId(String applicationId)
comment:
根据应用Id(applicationId)获取一个应用下全部工作流的流程设计资源Id(resourceId)
@param `applicationId` 应用id
@return 工作流多语言资源id


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getWorkflowModelResourceIdsByCategoryId
param_types_key: Long
comment: 根据流程类别Id(categoryId)获取一个应用下全部工作流设计的资源Id(resourceId) @param `categoryId` 分类Id @return 流程设计资源相关信息
signature_text:
default java.util.List<java.util.Map<String, Object>> getWorkflowModelResourceIdsByCategoryId(Long categoryId)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getWorkflowResourceIdsByCategoryId
param_types_key: Long
comment: 根据流程类别Id(categoryId)获取一个应用下全部工作流的资源Id(resourceId) @param `categoryId`
signature_text:
public default java.util.List<java.util.Map<String, Object>> getWorkflowResourceIdsByCategoryId(Long categoryId)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: getWorkflowTemplateMultiLanguageIdsByCategoryId
param_types_key: Long
comment: 根据分类Id(categoryId)获取一个分类下全部工作流流程模板的资源Id(resourceId) @param `categoryId` 分类Id @return 工作流多语言资源id
signature_text:
default java.util.List<java.util.Map<String, Object>> getWorkflowTemplateMultiLanguageIdsByCategoryId(Long categoryId)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: invokeBillRelationMethod
param_types_key: String,String,Object[]
comment: 微服务调用
signature_text:
default Object invokeBillRelationMethod(String clazz, String method, Object[] args) throws NoSuchMethodException, IllegalAccessException, java.lang.reflect.InvocationTargetException


class_name: kd.bos.workflow.api.IWorkflowService
method_name: invokeBizPlugin
param_types_key: String,String,Object[]
comment: 执行业务插件 @param `billInfo` @param `params`
signature_text:
default Object invokeBizPlugin(String clazz, String method, Object[] args) throws NoSuchMethodException, IllegalAccessException, java.lang.reflect.InvocationTargetException


class_name: kd.bos.workflow.api.IWorkflowService
method_name: invokeParseExpression
param_types_key: String,String,Object[]
comment: 执行对象扩展属性插件 @param `billInfo` @param `params`
signature_text:
default Object invokeParseExpression(String clazz, String method, Object[] args) throws NoSuchMethodException, IllegalAccessException, java.lang.reflect.InvocationTargetException


class_name: kd.bos.workflow.api.IWorkflowService
method_name: jumpToNodeWithReason
param_types_key: Long,String,String,ILocaleString
signature_text:
public default void jumpToNodeWithReason(Long procInstId, String destId, String srcId, ILocaleString reason)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: makeWorkflowMultiLanguagePackage
param_types_key: Map
comment: 工作流服务制作多语言安装包 @param `resourceId`
signature_text:
public default java.util.Map<String, Object> makeWorkflowMultiLanguagePackage(java.util.Map<String, Object> mutiLangDatas)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: makeWorkflowMultiLanguagePackage4ModelAndTpl
param_types_key: Map
comment: 工作流服务制作流程设计和流程模板多语言安装 @param `mutiLangDatas` 资源参数
signature_text:
default java.util.Map<String, Object> makeWorkflowMultiLanguagePackage4ModelAndTpl(java.util.Map<String, Object> mutiLangDatas)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: publishProcess
param_types_key: Long,Map
comment: 发布流程 @param `modelId` @param `deploymentProperty`
signature_text:
public default ProcPublishResult publishProcess(Long modelId, java.util.Map<String, Object> deploymentProperty)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: rebuildAllMetadataOfBillSummaryCfg
param_types_key: String,String
comment: 判断元数据是否是单据摘要模板 若是则重建该模板下所有摘要设置的运行期元数据(会不会与单据摘要设置的运行期元数据构建重复) @param `metadatas`
signature_text:
public default void rebuildAllMetadataOfBillSummaryCfg(String summaryTplId, String billSummaryCfgNumber)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: rejectToInnerNode
param_types_key: Long,Long,String,String,List,boolean,Map
signature_text:
public default void rejectToInnerNode(Long taskId, Long userId, String decOptionNumber, String auditMessage, java.util.List<String> innerNodeIds, boolean skipPath, java.util.Map<String, Object> variables)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: removeCallActivityMultiInst
param_types_key: Long,String,List,Map
signature_text:
default void removeCallActivityMultiInst(Long processInstanceId, String callActivityId, java.util.List<Object> dimensionValues, java.util.Map<String, Object> variables)

comment:
当前子流程节点删除子实例
@param `processInstanceId`
@param `callActivityId`
@param `dimensionValues`
@param `variables`


class_name: kd.bos.workflow.api.IWorkflowService
method_name: removeJointAuditParticipants
param_types_key: String,String,List
comment: 会审节点动态删除实例个数，根据参与人删除 @param `businesskey` @param `nodeId` @param `userIds`
signature_text:
public default void removeJointAuditParticipants(String businesskey, String nodeId, java.util.List<Long> userIds)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: setDynPanticipant
param_types_key: Long,List
signature_text:
public default void setDynPanticipant(Long taskId, java.util.List<java.util.Map<String, String>> list)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: showBillRelationGraph
param_types_key: String,List,String,String
comment: 打开单据关系图 @param `pageId` @param `billCards` @param `currentEntityNumber` @param `currentBusinessKey`
signature_text:
default void showBillRelationGraph(String pageId, java.util.List<kd.bos.workflow.api.model.BillCard> billCards, String currentEntityNumber, String currentBusinessKey)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: suspendTaskById
param_types_key: Long,Long,ILocaleString
comment: 业务手动挂起任务 @param `taskId` @param `userId` @param `suspendReason`
signature_text:
public default java.util.Map<String, Object> suspendTaskById(Long taskId, Long userId, ILocaleString suspendReason)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: taskCirculate
param_types_key: Long,List,ILocaleString
signature_text:
default java.util.Map<String, Object> taskCirculate(Long taskId, java.util.List<Long> userIds, ILocaleString circulationMsg)

comment:
任务传阅
@param `taskId` 任务id
@param `userIds` 发送给谁的userid,并非openid
@param `circulationMsg` 发送的消息
@param `senderUserId` 发送人的userid,并非openid 返回一个map 成功or失败的信息 需要校验传递的senderUserId是否在该任务的处理人中


class_name: kd.bos.workflow.api.IWorkflowService
method_name: taskCirculateForBatch
param_types_key: List,List,Long,ILocaleString
signature_text:
default BatchOperateResult taskCirculateForBatch(java.util.List<Long> taskIds, java.util.List<Long> circulationUserIds, Long senderUserId, ILocaleString circulationMsg)

comment:
任务传阅 for batch
@param `List` <Long>` taskIds 批量传阅的任务id集合
@param `List` <Long>` circulationUserIds 发送给谁的userid,并非openid
@param `Long` senderUserId 发送人的userid,并非openid
@param `ILocaleString` circulationMsg 发送的传阅消息
@return 批量操作结果（【样例】共6条单据，传阅成功3条，失败3条）对象 String validateMsg - 校验信息 - 比如缺少参数 int successCount- 成功条数 int failedCount - 失败条数 List \- 操作结果 集 String operateType - 操作类型 String operateStatus - 操作状态 String operateMsg - 操作信息


class_name: kd.bos.workflow.api.IWorkflowService
method_name: taskCoordinate
param_types_key: Long,List,ILocaleString,Boolean,Long
signature_text:
default String taskCoordinate(Long taskId, java.util.List<Long> userIds, ILocaleString coordinateMsg, Boolean isPublic, Long ownerId)

comment:
任务协办（请求）（此方法有同数量参数的同名方法，不能用于api调用）
@param `taskId` 任务id
@param `isTaskCoodinate` 是否是多级协办
@param `userIds` 协办用户ids
@param `coordinateMsg` 协办信息
@param `isPublic` 是否公开
@param `ownerId` 请求协办者的用户id


class_name: kd.bos.workflow.api.IWorkflowService
method_name: taskCoordinate
param_types_key: Long,List,ILocaleString,Boolean
signature_text:
default String taskCoordinate(Long taskId, java.util.List<Long> userIds, ILocaleString coordinateMsg, Boolean isPublic)

comment:
任务协办（请求）
@param `taskId` 任务id
@param `isTaskCoodinate` 是否是多级协办
@param `userIds` 协办用户ids
@param `coordinateMsg` 协办信息
@param `isPublic` 是否公开


class_name: kd.bos.workflow.api.IWorkflowService
method_name: taskCoordinate
param_types_key: Long,List,ILocaleString,Boolean,Map
signature_text:
default String taskCoordinate(Long taskId, java.util.List<Long> userIds, ILocaleString coordinateMsg, Boolean isPublic, java.util.Map<String, Object> dynInfo)

comment:
任务协办（请求）
@param `taskId` 任务id
@param `isTaskCoodinate` 是否是多级协办
@param `userIds` 协办用户ids
@param `coordinateMsg` 协办信息
@param `ownerId` 请求协办者的用户id
@param `isPublic` 是否公开
@param `level` 优先级
@param `dynInfo` 动态信息，用于设置任务相关特性 -- 数据结构 Map dynInfo = new HashMap<>(); // 动态信息 dynNodeInfo.put(VariableConstants.TASKPRIORITY, TaskMarkEntity.NUMBER_URGENCY); // 设置节点优先级


class_name: kd.bos.workflow.api.IWorkflowService
method_name: taskCoordinateNew
param_types_key: Long,List,ILocaleString,Boolean,Long
signature_text:
default String taskCoordinateNew(Long taskId, java.util.List<Long> userIds, ILocaleString coordinateMsg, Boolean isPublic, Long ownerId)

comment:
任务协办（请求）
@param `taskId` 任务id
@param `isTaskCoodinate` 是否是多级协办
@param `userIds` 协办用户ids
@param `coordinateMsg` 协办信息
@param `isPublic` 是否公开
@param `ownerId` 请求协办者的用户id


class_name: kd.bos.workflow.api.IWorkflowService
method_name: taskCoordinateReply
param_types_key: Long,ILocaleString,List,Long
signature_text:
default void taskCoordinateReply(Long taskId, ILocaleString taskCoordinateOpinion, java.util.List<java.util.Map<String, Object>> attch, Long userId)

comment:
任务协办 -- 回复
@param `taskId`
@param `taskCoordinateOpinion`
@param `attch` \-- 附件 infos
@param `userId` \-- 任务参与人


class_name: kd.bos.workflow.api.IWorkflowService
method_name: taskCoordinateReply
param_types_key: Long,ILocaleString,List
comment: 任务协办 -- 回复 @param `taskId` @param `taskCoordinateOpinion` @param `attch` \-- 附件 infos
signature_text:
default void taskCoordinateReply(Long taskId, ILocaleString taskCoordinateOpinion, java.util.List<java.util.Map<String, Object>> attch)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: taskCoordinateRequestWithdraw
param_types_key: Long,List
signature_text: default String taskCoordinateRequestWithdraw(Long taskId, java.util.List<Long> userIds)
comment:
撤回协办 -- 协办人邀请人撤回协办任务 (A --> B，A向B发出协办邀请后A撤回协办任务)
@param `taskId` 任务id
@param `userIds` 被协办人id集合，如果为空则认为撤回所有协办任务
@return 撤回结果


class_name: kd.bos.workflow.api.IWorkflowService
method_name: taskCoordinateRequestWithdraw
param_types_key: Long,List,Long
signature_text:
default String taskCoordinateRequestWithdraw(Long taskId, java.util.List<Long> userIds, Long userId)

comment:
撤回协办 -- 协办人邀请人撤回协办任务 (A --> B，A向B发出协办邀请后A撤回协办任务)
@param `taskId` 任务id
@param `userIds` 被协办人id集合，如果为空则认为撤回所有协办任务
@param `userId` 协办人邀请人
@return 撤回结果


class_name: kd.bos.workflow.api.IWorkflowService
method_name: taskReminders
param_types_key: Long,ILocaleString,String
signature_text:
public default java.util.Map<String, Object> taskReminders(Long processInstanceId, ILocaleString reminderMsg, String type)

comment:
催办功能 --- 根据当前taskid，查询当前任务的处理人，然后发送云之家消息
@param `processInstanceId`
@param `reminderMsg`
@param `type` ：submit` 提交； query 查询；


class_name: kd.bos.workflow.api.IWorkflowService
method_name: taskReminders
param_types_key: Long,ILocaleString
comment: 催办功能 --- 根据当前taskid，查询当前任务的处理人，然后发送云之家消息 @param `processInstanceId` @param `reminderMsg`
signature_text:
public default java.util.Map<String, Object> taskReminders(Long processInstanceId, ILocaleString reminderMsg)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: taskReminders
param_types_key: Long[],ILocaleString
signature_text:
public default BatchOperateResult taskReminders(Long[] processInstanceIds, ILocaleString reminderMsg)

comment:
批量催办功能
@param `processInstanceIds` 流程实例ids
@param `reminderMsg` 催办消息
@return 批量操作结果（【样例】共6条单据，催办成功3条，失败3条）map中的key successCount- 成功条数 failedCount - 失败条数 List \- 操作结果 集


class_name: kd.bos.workflow.api.IWorkflowService
method_name: taskTransfer
param_types_key: Long,Long,String,Boolean
signature_text:
void taskTransfer(Long taskId, Long transfererId, String transferOpinion, Boolean transferSubscribe)

comment:
任务转交
@param `taskId` 任务id
@param `transfererId` 转交用户id
@param `transferOpinion` 转交意见
@param `transferSubscribe` 是否订阅转交结果 如果成功，无异常信息；否则请捕获异常信息


class_name: kd.bos.workflow.api.IWorkflowService
method_name: taskTransfer
param_types_key: Long,Long,ILocaleString,Boolean
signature_text:
default void taskTransfer(Long taskId, Long transfererId, ILocaleString transferOpinion, Boolean transferSubscribe)

comment:
任务转交(转交意见支持多语言)
@param `taskId` 任务id
@param `transfererId` 转交用户id
@param `transferOpinion` 转交意见
@param `transferSubscribe` 是否订阅转交结果 如果成功，无异常信息；否则请捕获异常信息


class_name: kd.bos.workflow.api.IWorkflowService
method_name: taskTransfer
param_types_key: Long,Long,ILocaleString,Boolean,Map
signature_text:
default void taskTransfer(Long taskId, Long transfererId, ILocaleString transferOpinion, Boolean transferSubscribe, java.util.Map<String, Object> dynInfo)

comment:
任务转交(转交意见支持多语言)
@param `taskId` 任务id
@param `transfererId` 转交用户id
@param `transferOpinion` 转交意见
@param `transferSubscribe` 是否订阅转交结果
@param `level` 优先级别
@param `dynInfo` 动态信息，用于设置任务相关特性 -- 数据结构 Map dynInfo = new HashMap<>(); // 动态信息 dynNodeInfo.put(VariableConstants.TASKPRIORITY, TaskMarkEntity.NUMBER_URGENCY); // 设置节点优先级 如果成功，无异常信息；否则请捕获异常信息


class_name: kd.bos.workflow.api.IWorkflowService
method_name: taskTransferNew
param_types_key: Long,Long,String,Boolean
signature_text:
default void taskTransferNew(Long taskId, Long transfererId, String transferOpinion, Boolean transferSubscribe)

comment:
任务转交
@param `taskId` 任务id
@param `transfererId` 转交用户id
@param `transferOpinion` 转交意见
@param `transferSubscribe` 是否订阅转交结果 如果成功，无异常信息；否则请捕获异常信息


class_name: kd.bos.workflow.api.IWorkflowService
method_name: taskTransferNew
param_types_key: Long,Long,String,Boolean,Long
signature_text:
default void taskTransferNew(Long taskId, Long transfererId, String transferOpinion, Boolean transferSubscribe, Long ownerId)

comment:
任务转交
@param `taskId` 任务id
@param `transfererId` 转交用户id
@param `transferOpinion` 转交意见
@param `transferSubscribe` 是否订阅转交结果
@param `ownerId` ` 如果成功，无异常信息；否则请捕获异常信息


class_name: kd.bos.workflow.api.IWorkflowService
method_name: tryTriggerProcess
param_types_key: String,String,String,Map
comment: 描述：触发工作流 @param `businessKey` @param `operation` @param `entityNumber`
signature_text:
public void tryTriggerProcess(String businessKey, String operation, String entityNumber, java.util.Map<String, Object> variable)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: tryTriggerProcess
param_types_key: DynamicObject[],String,Map
comment: 批量触发工作流 @param `objs` @param `operation` @param `params`
signature_text:
public default void tryTriggerProcess(DynamicObject[] objs, String operation, java.util.Map<String, Object> params)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: tryTriggerProcessByProcNumber
param_types_key: String,String,String,Map
signature_text:
default void tryTriggerProcessByProcNumber(String businessKey, String processNumber, String entityNumber, java.util.Map<String, Object> variables)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: tryTriggerProcessByProcNumber
param_types_key: DynamicObject[],String,Map
signature_text:
default void tryTriggerProcessByProcNumber(DynamicObject[] objs, String processNumber, java.util.Map<String, Object> variables)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: updateBpmnModelPropertys
param_types_key: Long,String,Map
signature_text:
default void updateBpmnModelPropertys(Long procInstId, String actId, java.util.Map<String, java.util.Map<String, Object>> params)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: updateNodeTemplateInfo
param_types_key: String,Map
comment: 修改节点模板信息
signature_text:
public default void updateNodeTemplateInfo(String nodeTemplateNumber, java.util.Map<String, Object> nodeTemplateInfo)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: updateWorkflowRole
param_types_key: List
signature_text:
public default kd.bos.workflow.basedata.role.WorkflowRoleResult updateWorkflowRole(java.util.List<kd.bos.workflow.basedata.role.WorkflowRole> role)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: viewFlowchartWithEntityNumber
param_types_key: String,String,Object,OpenStyle
signature_text:
default void viewFlowchartWithEntityNumber(String pageId, String entityNumber, Object billId, OpenStyle style)


class_name: kd.bos.workflow.api.IWorkflowService
method_name: viewFlowchartWithEntityNumber
param_types_key: String,String,Object,OpenStyle,Long
signature_text:
default void viewFlowchartWithEntityNumber(String pageId, String entityNumber, Object billId, OpenStyle style, Long procDefId)


class_name: kd.bos.workflow.api.NodeTemplate
method_name: <init>
param_types_key: String,String,String,String,String,String
signature_text:
public NodeTemplate(String stencilType, String name, String number, String properties, String bizIdentification, String appId)

comment:
构造方法
@param `stencilType` 继承自哪个节点模板
@param `name` 节点模板名称
@param `number` 节点模板编码
@param `properties` 节点模板的修改的继承节点的属性
@param `bizIdentification` 业务标识
@param `appId` 应用id


class_name: kd.bos.workflow.bpmn.model.BillSetting
method_name: getMobilePageAttrConfig
signature_text:
public java.util.List<kd.bos.workflow.engine.impl.persistence.entity.management.BillPageAttributeConfigEntity> getMobilePageAttrConfig()


class_name: kd.bos.workflow.bpmn.model.BillSetting
method_name: getPageAttrConfig
signature_text:
public java.util.List<kd.bos.workflow.engine.impl.persistence.entity.management.BillPageAttributeConfigEntity> getPageAttrConfig()


class_name: kd.bos.workflow.bpmn.model.BillSetting
method_name: setMobilePageAttrConfig
param_types_key: List
signature_text:
public void setMobilePageAttrConfig(java.util.List<kd.bos.workflow.engine.impl.persistence.entity.management.BillPageAttributeConfigEntity> mobilePageAttrConfig)


class_name: kd.bos.workflow.bpmn.model.BillSetting
method_name: setMobilePageAttrConfigModel
param_types_key: BillPageAttributeConfigModel
signature_text:
public void setMobilePageAttrConfigModel(kd.bos.workflow.bpmn.model.BillPageAttributeConfigModel mobilePageAttrConfigModel)


class_name: kd.bos.workflow.bpmn.model.BillSetting
method_name: setPageAttrConfig
param_types_key: List
signature_text:
public void setPageAttrConfig(java.util.List<kd.bos.workflow.engine.impl.persistence.entity.management.BillPageAttributeConfigEntity> pageAttrConfig)


class_name: kd.bos.workflow.bpmn.model.BillSetting
method_name: setPageAttrConfigModel
param_types_key: BillPageAttributeConfigModel
signature_text:
public void setPageAttrConfigModel(kd.bos.workflow.bpmn.model.BillPageAttributeConfigModel pageAttrConfigModel)


class_name: kd.bos.workflow.bpmn.model.FlowElement
method_name: setExecutionListeners
param_types_key: List
signature_text:
public void setExecutionListeners(java.util.List<kd.bos.workflow.bpmn.model.ActivitiListener> executionListeners)


class_name: kd.bos.workflow.component.approvalrecord.IApprovalRecordItem
method_name: getAttachments
comment: 获取附件
signature_text:
public default java.util.List<kd.bos.workflow.component.approvalrecord.ApprovalAttachmentInfo> getAttachments()


class_name: kd.bos.workflow.component.approvalrecord.IApprovalRecordItem
method_name: getHandleState
signature_text: public default String getHandleState()
comment:
获取处理状态 已同意 approve 已驳回 reject 已终止 terminate 已处理 handled 被驳回 dismissed 待审批 willApproval 已冻结 freeze 待处理 willHandled 已挂起 manualSuspended 已转换 converted 转换中 converting 待转换 unConverted


class_name: kd.bos.workflow.component.approvalrecord.IApprovalRecordItem
method_name: setAttachments
param_types_key: List
comment: 设置附件 @param `attachments`
signature_text:
public default void setAttachments(java.util.List<kd.bos.workflow.component.approvalrecord.ApprovalAttachmentInfo> attachments)


class_name: kd.bos.workflow.component.WorkflowDesigner
method_name: addNodeToDiagram
param_types_key: String,String,String,String,String,boolean
comment: 往画布中添加一个type类型的节点 @param `baseType` @param `type` @param `text` @param `style` @param `boundary`
signature_text:
public void addNodeToDiagram(String baseType, String type, String template, String text, String style, boolean isContainer)


class_name: kd.bos.workflow.component.WorkflowDesigner
method_name: click
param_types_key: String,String,String,Map
signature_text:
public void click(String itemId, String metaType, String propertyName, java.util.Map<String, Object> param)

comment:
设计器属性编辑器点击按钮
@param `itemId` 编辑的元素Id
@param `propertyName` 编辑的属性明处
@param `param` param中的参数有"value":当前编辑属性值 ,"form":属性编辑窗口参数 "context":需要的上下文数据 表单参数和上下文取数规则在属性元数据中定义，由设计器按定义准备好后发出 属性编辑器定义示例{"type":"btnedit","form":{"formId":"ide_operations"},"extenddata":{"type":"entitymeta","properties":["Id","Name","_Type"]}}


class_name: kd.bos.workflow.component.WorkflowDesigner
method_name: isNotOverride
param_types_key: Class,String,IConditionEvent,Class[]
signature_text:
protected boolean isNotOverride(Class<?> clazz, String methodName, IConditionEvent conditionEvent, Class<?>[] parameterTypes)


class_name: kd.bos.workflow.component.WorkflowDesigner
method_name: notify
param_types_key: String,List,IFormView
comment: @param `type` @param `params` @param `currentView`
signature_text:
public void notify(String type, java.util.List<java.util.Map<String, Object>> params, IFormView currentView)


class_name: kd.bos.workflow.component.WorkflowDesigner
method_name: updateProperties
param_types_key: List
signature_text:
public void updateProperties(java.util.List<kd.bos.workflow.design.plugin.model.Directive> directives)


class_name: kd.bos.workflow.component.WorkflowDesigner
method_name: updateProperty
param_types_key: Directive
signature_text: public void updateProperty(kd.bos.workflow.design.plugin.model.Directive directive)
comment:
更新id为itemId的节点的group属性组下的property属性的值为value
@param `itemId`
@param `group`
@param `property`
@param `value`


class_name: kd.bos.workflow.design.plugin.IWorkflowDesigner
method_name: afterDeleteCells
param_types_key: List,List
comment: 前端删除操作触发，执行顺序在afterRemoveCells之后 @param `cells` @param `selectedCells`
signature_text:
public default void afterDeleteCells(java.util.List<GraphCell> cells, java.util.List<GraphCell> selectedCells)


class_name: kd.bos.workflow.design.plugin.IWorkflowDesigner
method_name: afterInsertCells
param_types_key: GraphCell,String,GraphCell,String
signature_text:
public default void afterInsertCells(GraphCell edge, String sourceId, GraphCell target, String type)

comment:
新增节点
@param `edge`
@param `sourceId`
@param `target`
@param `type` 新增类型：连接并新增（增加节点和线）TYPE_CONNECT、仅连接（增加线）TYPE_CONNECT_ADD


class_name: kd.bos.workflow.engine.dynprocess.freeflow.WFFlowElement
method_name: addNextNode
param_types_key: WFFlowNode,WFSequenceFlow
signature_text:
public WFFlowElement addNextNode(WFFlowNode freeFlowNode, kd.bos.workflow.engine.dynprocess.freeflow.WFSequenceFlow wfSequenceFlow)


class_name: kd.bos.workflow.engine.dynprocess.freeflow.WFFlowNode
method_name: addSequenceFlow
param_types_key: WFSequenceFlow
signature_text:
public void addSequenceFlow(kd.bos.workflow.engine.dynprocess.freeflow.WFSequenceFlow wfSequenceFlow)


class_name: kd.bos.workflow.engine.dynprocess.freeflow.WFFlowNode
method_name: getExecutionListeners
signature_text:
public java.util.List<kd.bos.workflow.engine.dynprocess.freeflow.WFListener> getExecutionListeners()


class_name: kd.bos.workflow.engine.dynprocess.freeflow.WFFlowNode
method_name: getExtAttrGroup
signature_text:
public java.util.Map<String, kd.bos.workflow.engine.dynprocess.freeflow.WFExtendAttributeGroup> getExtAttrGroup()


class_name: kd.bos.workflow.engine.dynprocess.freeflow.WFFlowNode
method_name: getIncomings
signature_text:
public java.util.Map<String, kd.bos.workflow.engine.dynprocess.freeflow.WFSequenceFlow> getIncomings()


class_name: kd.bos.workflow.engine.dynprocess.freeflow.WFFlowNode
method_name: setExecutionListeners
param_types_key: List
signature_text:
public void setExecutionListeners(java.util.List<kd.bos.workflow.engine.dynprocess.freeflow.WFListener> executionListeners)


class_name: kd.bos.workflow.engine.dynprocess.freeflow.WFFlowNode
method_name: setExtAttrGroup
param_types_key: Map
signature_text:
public void setExtAttrGroup(java.util.Map<String, kd.bos.workflow.engine.dynprocess.freeflow.WFExtendAttributeGroup> extAttrGroup)


class_name: kd.bos.workflow.engine.dynprocess.freeflow.WFFlowNode
method_name: setIncomings
param_types_key: Map
signature_text:
public void setIncomings(java.util.Map<String, kd.bos.workflow.engine.dynprocess.freeflow.WFSequenceFlow> incomings)


class_name: kd.bos.workflow.engine.dynprocess.freeflow.WFProcess
method_name: getBillExceptionOp
comment: 单据例外 @return 单据例外 kd.bos.workflow.engine.dynprocess.freeflow.WFBillExceptionOp
signature_text:
public java.util.List<kd.bos.workflow.engine.dynprocess.freeflow.WFBillExceptionOp> getBillExceptionOp()


class_name: kd.bos.workflow.engine.dynprocess.freeflow.WFProcess
method_name: setBillExceptionOp
param_types_key: List
comment: 设置单据例外属性 @param `billExceptionOp` 单据例外 kd.bos.workflow.engine.dynprocess.freeflow.WFBillExceptionOp
signature_text:
public void setBillExceptionOp(java.util.List<kd.bos.workflow.engine.dynprocess.freeflow.WFBillExceptionOp> billExceptionOp)


class_name: kd.bos.workflow.engine.dynprocess.freeflow.WFProcess
method_name: setVariables
param_types_key: List
comment: 设置流程变量 @param `variables` kd.bos.workflow.engine.dynprocess.freeflow.WFVariable
signature_text:
public void setVariables(java.util.List<kd.bos.workflow.engine.dynprocess.freeflow.WFVariable> variables)


class_name: kd.bos.workflow.engine.dynprocess.freeflow.WFUserTask
method_name: setSkipCondition
param_types_key: WFConditionalRule
signature_text:
public void setSkipCondition(kd.bos.workflow.engine.dynprocess.freeflow.WFConditionalRule skipCondition)


class_name: kd.bos.workflow.engine.dynprocess.freeflow.WFUserTask
method_name: setTaskListeners
param_types_key: List
signature_text:
setTaskListeners(java.util.List<kd.bos.workflow.engine.dynprocess.freeflow.WFListener> taskListeners)


class_name: kd.bos.workflow.engine.extitf.ITaskPlugin
method_name: afterCancelTask
param_types_key: AgentTask,String,Map
signature_text:
public default void afterCancelTask(AgentTask agentTask, String eventName, java.util.Map<String, Object> params)


class_name: kd.bos.workflow.engine.extitf.ITaskPlugin
method_name: afterHandleTask
param_types_key: AgentTask,String,Map
signature_text:
public default void afterHandleTask(AgentTask agentTask, String eventName, java.util.Map<String, Object> params)


class_name: kd.bos.workflow.engine.extitf.IWorkflowModelPlugin
method_name: afterSave
param_types_key: Long,String,Map
signature_text:
public default void afterSave(Long modelId, String processNumber, java.util.Map<String, Object> paramter)

comment:
模型保存时调用该方法
@param `modelId` 流程模型ID
@param `processNumber` 流程编码
@param `paramter` 参数 {modelJson: 模型JSON字符串}


class_name: kd.bos.workflow.engine.extitf.IWorkflowPlugin
method_name: aggregateBills
param_types_key: AgentExecution,AggregateInfo
signature_text: public default AggregateResult aggregateBills(AgentExecution execution, AggregateInfo info)
comment:
获取单据累加后的信息
@param `execution` 执行实例对象 kd.bos.workflow.api.AgentExecution
@param `info` 累积信息对象，内部根据实体编码汇总，包含Map对象 key：实体编码 value：单据id列表 kd.bos.workflow.engine.extitf.AggregateInfo
@return AggregateResult kd.bos.workflow.engine.extitf.AggregateResult


class_name: kd.bos.workflow.engine.extitf.IWorkflowPlugin
method_name: calcUserIds
param_types_key: AgentExecution,DynamicObject,DynamicObject
signature_text:
public default java.util.List<Long> calcUserIds(AgentExecution execution, DynamicObject pme, DynamicObject businessModel)

comment:
扩展参与人Parser解析类实现的计算参与人方法
@param `execution` 流程执行实例 AgentExecution
@param `pme` 参与人模型数据
@param `businessModel` 业务model数据 - 可能为空
@return 计算的参与人id集合


class_name: kd.bos.workflow.engine.extitf.IWorkflowPlugin
method_name: canWithdraw
param_types_key: IBusinessContext
signature_text: public default boolean canWithdraw(kd.bos.workflow.api.IBusinessContext businessContext)
comment:
对节点是否可以撤回进行处理判断
@param `businessContext` 业务上下文信息，如可从上下文获取businessKey、entityNumber kd.bos.workflow.api.IBusinessContext
@return 是否可以撤回 默认值：true true-允许撤回 false-不允许撤回


class_name: kd.bos.workflow.engine.extitf.IWorkflowPlugin
method_name: filterApprovalRecordByAuth
param_types_key: List
signature_text: default java.util.List<Comment> filterApprovalRecordByAuth(java.util.List<Comment> comments)
comment:
获取审批记录列表
@param `comments` 审批信息对象 kd.bos.workflow.engine.task.Comment
@return List 过滤后的审批记录列表 kd.bos.workflow.engine.task.Comment


class_name: kd.bos.workflow.engine.extitf.IWorkflowPlugin
method_name: filterParticipant
param_types_key: AgentExecution,List
comment: 计算参与人时执行此方法 @param `execution` 执行实例 AgentExecution @param `userIds` 参与人用户ids @return 计算得到的参与人用户ids
signature_text:
public default java.util.List<Long> filterParticipant(AgentExecution execution, java.util.List<Long> userIds)


class_name: kd.bos.workflow.engine.extitf.IWorkflowPlugin
method_name: formatFlowRecords
param_types_key: List
comment: 共享节点记录格式化 @param `items` 审批记录项list IApprovalRecordItem @return 审批记录项list
signature_text:
public default java.util.List<IApprovalRecordItem> formatFlowRecords(java.util.List<IApprovalRecordItem> items)


class_name: kd.bos.workflow.engine.extitf.IWorkflowPlugin
method_name: formatTrdPrintRecords
param_types_key: Collection
comment: 格式化第三方打印记录 @param `comments` 打印记录 @return 修改后的打印记录
signature_text:
public default java.util.Collection<java.util.Map<String, String>> formatTrdPrintRecords(java.util.Collection<java.util.Map<String, String>> comments)


class_name: kd.bos.workflow.engine.extitf.IWorkflowPlugin
method_name: getBillPermissions
param_types_key: long,String,List
signature_text:
public default java.util.Map<Object, Boolean> getBillPermissions(long userId, String entityNumber, java.util.List<Object> businessKeys)

comment:
单据上下游关系图 - 获取单据是否有权限
@param `userId` 用户ID
@param `entityNumber` 单据编码
@param `businessKeys` 单据ID集合
@return 返回对象为Map key为单据ID，value为是否有权限 flase-无权限 true-有权限


class_name: kd.bos.workflow.engine.extitf.IWorkflowPlugin
method_name: getCallActivityMultiInstDimensionValues
param_types_key: AgentExecution
comment: 获取子流程多实例维度值 @param `execution` 执行实例 AgentExecution
signature_text:
default java.util.List<WFCallActivityMultiInstDimensionItem> getCallActivityMultiInstDimensionValues(AgentExecution execution)


class_name: kd.bos.workflow.engine.extitf.IWorkflowPlugin
method_name: getCustomApprovalRecordGroup
param_types_key: String,String,Map
signature_text:
public default java.util.List<IApprovalRecordGroup> getCustomApprovalRecordGroup(String businesskey, String entityNumber, java.util.Map<String, Object> params)

comment:
根据业务需求自定义审批记录的分组逻辑
@param `businesskey` 业务键，用于标识业务对象
@param `entityNumber` 实体编码
@param `params` 参数映射，用于传递额外的上下文信息
@return List 审批记录分组列表 kd.bos.workflow.component.approvalrecord.IApprovalRecordGroup


class_name: kd.bos.workflow.engine.extitf.IWorkflowPlugin
method_name: getJointAuditResult
param_types_key: AgentExecution,JointResultInfo
signature_text:
public default CustomizedAuditResult getJointAuditResult(AgentExecution execution, kd.bos.workflow.engine.dynprocess.JointResultInfo jointResultInfo)

comment:
会审自定义业务模式，返回是否完成的结果
@param `execution` 执行实例 kd.bos.workflow.api.AgentExecution
@param `jointResultInfo` 会审节点自定义业务模式的审批的参数 kd.bos.workflow.engine.dynprocess.JointResultInfo
@return CustomizedAuditResult 会审节点审批信息 kd.bos.workflow.engine.dynprocess.CustomizedAuditResult


class_name: kd.bos.workflow.engine.extitf.IWorkflowPlugin
method_name: getPushStatusInfo
param_types_key: String,String
signature_text: public default String[] getPushStatusInfo(String entityNumber, String businessKey)
comment:
单据上下游关系图 - 查看下推状态
@param `entityNumber` 实体编码
@param `businessKey` 业务主键（单据ID）
@return 获推状态信息 String字符串数组，返回内容由实现类决定


class_name: kd.bos.workflow.engine.extitf.IWorkflowPlugin
method_name: getTargetBills
param_types_key: String,List,String
signature_text:
public default java.util.Set<Long> getTargetBills(String srcEntityNumber, java.util.List<String> srcBusinesskeys, String destEntityNumber)

comment:
通过源单获取目标单据id列表
@param `srcEntityNumber` 源单实体编码
@param `srcBusinesskeys` 源单单据id列表
@param `destEntityNumber` 目标单实体编码
@return Set 目标单单据id列表


class_name: kd.bos.workflow.engine.extitf.IWorkflowPlugin
method_name: handleEvent
param_types_key: String,String,String,Map
signature_text:
public default Object handleEvent(String businesskey, String entityNumber, String operation, java.util.Map<String, Object> variables)

comment:
外部接口调用
@param `businesskey` 业务主键（单据ID）
@param `entityNumber` 实体编码
@param `operation` 事件操作
@param `variables` 事件参数
@return 处理事件返回结果


class_name: kd.bos.workflow.engine.extitf.IWorkflowPlugin
method_name: hasViewFlowChartPermProcessInstance
param_types_key: ViewFlowChartPermParam
signature_text:
default java.util.List<ProcessInstanceMainOrgView> hasViewFlowChartPermProcessInstance(kd.bos.workflow.api.ViewFlowChartPermParam param)

comment:
获取带组织的流程实例流程图列表
@param `param` 查看流程图参数 kd.bos.workflow.api.ViewFlowChartPermParam
@return List 主业务组织的流程实例视图列表 kd.bos.workflow.api.ProcessInstanceMainOrgView


class_name: kd.bos.workflow.engine.extitf.IWorkflowPlugin
method_name: validate
param_types_key: DynamicObject,Map
signature_text: public default boolean validate(DynamicObject billInfo, java.util.Map<String, Object> params)
comment:
单据信息校验
@param `billInfo` 单据信息对象 kd.bos.dataentity.entity.DynamicObject
@param `params` 参数
@return 校验结果 默认值：true true-校验通过 false-校验不通过


class_name: kd.bos.workflow.engine.extitf.IWorkflowPlugin
method_name: validatePlugin
param_types_key: Map
signature_text: default java.util.List<WFValidationError> validatePlugin(java.util.Map<String, Object> param)
comment:
流程节点校验时插件
@param `param` Map对象 ,具体的参数如下 processNumber 流程编码 entityNumber 实体编码 nodeTemplateNum 节点模板编码 sscApprovals ssc通过列表
@return List 校验失败错误信息 kd.bos.workflow.engine.dynprocess.freeflow.WFValidationError


class_name: kd.bos.workflow.engine.extitf.WorkflowPlugin
method_name: afterHandleTask
param_types_key: AgentTask,String,Map
signature_text:
public void afterHandleTask(AgentTask task, String evtName, java.util.Map<String, Object> executeParam)


class_name: kd.bos.workflow.engine.extitf.WorkflowPlugin
method_name: filterParticipant
param_types_key: AgentExecution,List
signature_text:
public java.util.List<Long> filterParticipant(AgentExecution execution, java.util.List<Long> userIds)


class_name: kd.bos.workflow.engine.extitf.WorkflowPlugin
method_name: getBillPermissions
param_types_key: long,String,List
signature_text:
public java.util.Map<Object, Boolean> getBillPermissions(long userId, String entityNumber, java.util.List<Object> businessKeys)


class_name: kd.bos.workflow.engine.extitf.WorkflowPlugin
method_name: getJointAuditResult
param_types_key: AgentExecution,JointResultInfo
signature_text:
public CustomizedAuditResult getJointAuditResult(AgentExecution execution, JointResultInfo jointResultInfo)


class_name: kd.bos.workflow.engine.impl.persistence.entity.task.TaskCenterNavigationEntity
method_name: getTaskCenterRuleEntity
signature_text:
public kd.bos.workflow.engine.impl.persistence.entity.task.TaskCenterRuleEntity getTaskCenterRuleEntity()


class_name: kd.bos.workflow.engine.impl.persistence.entity.task.TaskCenterNavigationEntity
method_name: setTaskCenterRuleEntity
param_types_key: TaskCenterRuleEntity
signature_text:
public void setTaskCenterRuleEntity(kd.bos.workflow.engine.impl.persistence.entity.task.TaskCenterRuleEntity taskCenterRuleEntity)


class_name: kd.bos.workflow.engine.msg.info.MessageAttachment
method_name: <init>
param_types_key: List,List
signature_text:
public MessageAttachment(java.util.List<byte[]> attachments, java.util.List<String> attachmentNames)


class_name: kd.bos.workflow.engine.msg.info.TaskEntityInfo
method_name: getBizType
signature_text: public BizType getBizType()
comment:
获取业务所属类型 运行期任务所属的业务类型，比如HR fi财务 供应链等 yzjgroupid 是一个基础资料数据，暂时调用方通过接口传递过来，动态插入到基础资料中
@return BizType kd.bos.workflow.engine.task.BizType


class_name: kd.bos.workflow.engine.msg.info.TaskEntityInfo
method_name: getHandleState
signature_text: public String getHandleState()
comment:
获取任务处理状态 有业务自定义，录入值范围应该在任务设计期模型中处理状态集合 针对crm阶段推进任务 支持 【待审批willApproval|已审批approve】两种
@return handleState


class_name: kd.bos.workflow.engine.task.BatchOperateResult
method_name: <init>
param_types_key: String,int,int,List
signature_text:
public BatchOperateResult(String validateMsg, int sucessCount, int failedCount, java.util.List<OperateResult> operateResults)


class_name: kd.bos.workflow.engine.task.OperateResult
method_name: <init>
param_types_key: String,String,String,Long,String
signature_text:
public OperateResult(String operateType, String operateStatus, String operateMsg, Long taskId, String billno)


class_name: kd.bos.workflow.engine.task.TaskInfo
method_name: setHandleState
param_types_key: String
signature_text: void setHandleState(String handleState)
comment:
设置处理状态 处理状态枚举 已同意 approve 已驳回 reject 已终止 terminate 已处理 handled 被驳回 dismissed 待审批 willApproval 已冻结 freeze 待处理 willHandled 已挂起 manualSuspended 已转换 converted 转换中 converting 待转换 unConverted
@param `handleState`


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: addAuditInfo
param_types_key: String,Map,DecisionOption
comment: 添加审批信息 @param `auditMessage` 审批意见 @param `params` 提交参数 @param `op` 决策项信息
signature_text:
protected void addAuditInfo(String auditMessage, java.util.Map<String, Object> params, DecisionOption op)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: addCommentByDecisionNumber
param_types_key: Long,String,String
comment: 待办任务增加审批信息 @param `taskId` 任务id @param `decisionNumber` 决策项编码 @param `commentMessage` 审批意见
signature_text:
protected void addCommentByDecisionNumber(Long taskId, String decisionNumber, String commentMessage)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: addDynParticipant
param_types_key: List,Map
comment: 添加动态参与人信息 @param `dynamicParticipateModels` 动态参与人模型 @param `params` 任务提交Map
signature_text:
public void addDynParticipant(java.util.List<kd.bos.workflow.taskcenter.plugin.DynamicParticipateModel> dynamicParticipateModels, java.util.Map<String, Object> variables)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: addPriorityForCompleteTask
param_types_key: String,List,Map
comment: 添加优先级 -- 完成任务时 @param `level` 紧急程度 @param `nodeIds` 节点ids @param `variables` 提交的变量
signature_text:
protected void addPriorityForCompleteTask(String level, java.util.List<String> nodeIds, java.util.Map<String, Object> variables)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: addRejectBackToNodeForCompleteTask
param_types_key: boolean,Map
comment: 添加 驳回后再次提交时直接回到本节点 @param `rejectBackToNode` 是否勾选 驳回时回到本节点 @param `variables` 提交的参数信息
signature_text:
public void addRejectBackToNodeForCompleteTask(boolean rejectBackToNode, java.util.Map<String, Object> variables)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: addRejectNodeIdForCompleteTask
param_types_key: String,Map
comment: 添加 驳回节点信息 @param `nextNodeId` 驳回节点id @param `variables` 提交的参数信息
signature_text:
public void addRejectNodeIdForCompleteTask(String nextNodeId, java.util.Map<String, Object> variables)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: agreeTask
param_types_key: String,String,Map,Long
signature_text:
protected void agreeTask(String decisionNumber, String auditMessage, java.util.Map<String, Object> variables, Long taskId)

comment:
任务提交
@param `decisionNumber` 决策项编码
@param `auditMessage` 审批意见
@param `variables` 提交变量
@param `taskId` 任务id


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: completeTask
param_types_key: Long,String,String,Map
signature_text:
public void completeTask(Long taskId, String decOptionNumber, String auditMessage, java.util.Map<String, Object> params)

comment:
完成任务
@param `taskId` 任务ID,可从pagecache中获取，key为TASKID
@param `decOptionNumber` 节点对应的决策项编码，可以为同意，也可以为驳回
@param `auditMessage` 审批意见
@param `params` 任务完成时携带相关参数，参数包括： VariableConstants.DYNPARTICIPANT:指定下一步参与人 VariableConstants.SUBSCRIBESIGN 会审时是否订阅


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: doAgreeTask
param_types_key: String,String,Map,Long
signature_text:
protected void doAgreeTask(String decisionNumber, String auditMessage, java.util.Map<String, Object> variables, Long taskId)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: doSignOperate
param_types_key: String,String,String
signature_text:
protected boolean doSignOperate(String entityNumber, String businessKey, String signOperateCallBackId)

comment:
任务审批 前做 签名操作：（如果 验签、签名 都配置）先 验签，验签通过后，再 签名
@param `entityNumber` 单据实体编码
@param `businessKey` 单据实体对应的主键值
@param `signOperateCallBackId` 签名回调对象id
@return 签名操作是否成功： false - 【含义】不做签名操作，任务可直接提交；【场景】传递的参数为null 或者 验签 成功，不需要 签名 true - 【含义】验签 签名，任务不可直接提交 ；【场景】验签 失败 或者 签名 操作成功 ；【补充】任务的提交是在 签名 的callback中处理 - 获取 签名 后的回调信息，判断 签名是否真正成功 【参考代码】如果不进行 签名 操作，则任务可以直接提交 if(!doSignOperate(entityNumber, businessKey, signOperateCallBackId){ // 任务正常审批 - 添加任务数据、逻辑校验、任务提交 this.beforeShowSubmitApprovalFunc(); };


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: getAttachmentInfoList
param_types_key: DynamicObjectCollection
comment: 名称: getAttachmentInfoList 描述: @param `attachments` @param `attachmentInfoList`
signature_text:
protected java.util.List<java.util.Map<String, Object>> getAttachmentInfoList(DynamicObjectCollection attachments)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: getBillShowParameter
param_types_key: Boolean,String,String,String,UserTask
signature_text:
protected BillShowParameter getBillShowParameter(Boolean isPCShow, String businesskey, String formId, String entitynumber, UserTask element)

comment:
获取打开单据的参数
@param `isPCShow` 是否为PC端
@param `businesskey` 单据主键
@param `formId` 单据formId
@param `entitynumber` 实体编码
@param `element` 审批节点信息


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: getCaptainForInitial
param_types_key: Map,Boolean
comment: 获取页面初始化时候的标题 -- 单据页面标题 @param `customParams` 打开审批处理页传递的参数 @param `isPCShow` 是否为PC端打开
signature_text:
public ILocaleString getCaptainForInitial(java.util.Map<String, Object> customParams, Boolean isPCShow)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: getCaptainForInitialCopy
param_types_key: Map,Boolean
comment: 获取页面初始化时候的标题 -- 单据页面标题 @param `customParams` 打开审批处理页传递的参数 @param `isPCShow` 是否为PC端打开
signature_text:
public ILocaleString getCaptainForInitialCopy(java.util.Map<String, Object> customParams, Boolean isPCShow)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: getEmbeddedPageParameterForSummary
param_types_key: String,String,UserTask,Boolean,Long,String
signature_text:
public FormShowParameter getEmbeddedPageParameterForSummary(String formkey, String businesskey, UserTask flowElement, Boolean isPCShow, Long applierId, String applierName)

comment:
获取内嵌页面参数 for 单据摘要
@param `formkey` 单据摘要formkey
@param `businesskey` 单据主键
@param `flowElement` 节点信息
@param `isPCShow` 是否PC端展现
@param `applierId` 申请人id
@param `applierName` 申请人姓名


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: getEmbeddedPageParameterForSummaryOld
param_types_key: String,String,List,String,String,String
signature_text:
public static FormShowParameter getEmbeddedPageParameterForSummaryOld(String entitynumber, String businesskey, java.util.List<String> disVisbleNumber, String billSummaryNumber, String bizApplierId, String bizApplierName)

comment:
获取内嵌单据页面参数_单据摘要_旧版
@param `entitynumber`
@param `businesskey`
@param `disVisbleNumber`
@param `billSummaryNumber`
@param `bizApplierId`
@param `bizApplierName`


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: getFlowElement
param_types_key: Long,Long,String
signature_text:
public FlowElement getFlowElement(Long processDefinitionId, Long processInstanceId, String taskDefinitionKey)

comment:
获取节点信息
@param `processDefinitionId` 流程定义id
@param `processInstanceId` 流程实例id
@param `taskDefinitionKey` 节点id


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: getNextNodeText
param_types_key: Map,long
signature_text: public String getNextNodeText(java.util.Map<String, Object> nextNodeMap, long taskId)
comment:
名称: getNextNodeText
描述: 根据不同节点显示不同信息的计算
@param `nextNodeMap` 预计算出来的下一步节点中的某一个
@param `taskId`
@param `nextNodeTextList` 承接文本的list


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: getNextNodeText
param_types_key: ILocaleString,VariableScope,List
signature_text:
protected StringBuilder getNextNodeText(ILocaleString displayInfo, VariableScope execution, java.util.List<Long> userIdList)

comment:
名称: getNextNodeText
描述:
@param `nextNodeText`
@param `users`
@param `displayInfo`
@param `execution`
@param `userIdList`


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: getNextUserTaskNode
param_types_key: String,String,FlowElement,String,Long,boolean
signature_text:
public java.util.List<java.util.Map<String, Object>> getNextUserTaskNode(String auditType, String auditNumber, FlowElement element, String businesskey, Long taskid, boolean throwException)

comment:
获取下一步节点信息
@param `auditType` 审批类型
@param `auditNumber` 审批编码
@param `element` 节点信息
@param `businesskey` 业务id
@param `taskid` 任务id
@param `throwException` 是否抛出异常


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: getNextUserTaskNode
param_types_key: String,String,FlowElement,String,Long
signature_text:
public java.util.List<java.util.Map<String, Object>> getNextUserTaskNode(String auditType, String auditNumber, FlowElement element, String businesskey, Long taskid)

comment:
获取下一步节点信息
@param `auditType` 审批类型
@param `auditNumber` 审批编码
@param `element` 节点信息
@param `businesskey` 业务id
@param `taskid` 任务id


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: getOperationLogsForCirculation
param_types_key: Long
comment: 获取传阅记录 @param `processInstanceId`
signature_text:
public java.util.List<java.util.Map<String, Object>> getOperationLogsForCirculation(Long processInstanceId)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: getPersonRangeForAllowNextPerson
param_types_key: String
signature_text: public java.util.Map<String, String> getPersonRangeForAllowNextPerson(String taskDefinitionKey)
comment:
获取允许修改下一步参与人 人员范围数据
@param `taskDefinitionKey` 下一步节点id
@return map信息参照ParticipantRangeUtil.BTNALLOWNEXTPERSON 相关数据


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: invokeBillOperationForExtenBtns
param_types_key: String,String,String
comment: 调用操作 for 扩展按钮 @param `operation` @param `billPageId` @param `entityNumber` @param `businessKey`
signature_text:
public void invokeBillOperationForExtenBtns(String operation, String entityNumber, String businessKey)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: isSignCallBackSucess
param_types_key: SignCallbackEvent
signature_text: public boolean isSignCallBackSucess(SignCallbackEvent evt)
comment:
调用【签名】后的回调方法，判断 签名 是否成功
@param `evt` 签名回调事件
@return 签名是否成功： false-【含义】签名 失败；【场景】返回的信息为null 或者 签名 明确给出 失败标志 true -【含义】签名 成功；【场景】签名 成功；【补充】签名 返回信息不为null，则放入 保存 签名 标志，用于任务提交时，进行 签名 信息的保存 【参考代码】签名 回调函数中调用，如果 签名 成功，则任务可以提交


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: queryAllApprovalRecord
param_types_key: Long,String
comment: 获取审批记录，包含协办记录等，当前版本只包含协办记录 @param `processInstanceId` 流程实例id @param `businesskey` 业务id
signature_text:
public java.util.List<ApprovalRecordItem> queryAllApprovalRecord(Long processInstanceId, String businesskey)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: queryAllApprovalRecord
param_types_key: Long,String,boolean
signature_text:
public java.util.List<ApprovalRecordItem> queryAllApprovalRecord(Long processInstanceId, String businesskey, boolean isDesc)

comment:
获取审批记录，包含协办记录等，当前版本只包含协办记录
@param `processInstanceId` 流程实例id
@param `businesskey` 业务id
@param `isDesc` 是否倒序排列


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: queryApprovalRecord
param_types_key: Long,String,String
comment: 获取审批记录，不包含协办记录等 @param `processInstanceId` 流程实例id @param `businesskey` 业务id @param `curTaskId` 当前节点
signature_text:
public java.util.List<IApprovalRecordGroup> queryApprovalRecord(Long processInstanceId, String businesskey, String curTaskId)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: queryApprovalRecord
param_types_key: Long,String,String,boolean
signature_text:
public java.util.List<IApprovalRecordGroup> queryApprovalRecord(Long processInstanceId, String businesskey, String curTaskId, boolean isDesc)

comment:
获取审批记录，不包含协办记录等
@param `processInstanceId` 流程实例id
@param `businesskey` 业务id
@param `curTaskId` 当前节点
@param `isDesc` 是否倒序排列


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: rejectTask
param_types_key: String,String,String,Map,Long
comment: 驳回某个代办任务 @param `decisionNumber` @param `auditMessage` @param `nextNodeId` @param `variables`
signature_text:
protected void rejectTask(String decisionNumber, String auditMessage, String nextNodeId, java.util.Map<String, Object> variables, Long taskId)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: senstiveFieldChangeShowForm
param_types_key: IFormView,IFormPlugin,TaskService,String,String,String
signature_text:
protected Boolean senstiveFieldChangeShowForm(IFormView view, IFormPlugin form, TaskService taskService, String decisionStr, String scene, String nodeType)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: showAdvAppSchemeInfo
param_types_key: String
signature_text: public boolean showAdvAppSchemeInfo(String schemeNumber)
comment:
设置“智能洞察”相关信息 mob PC端需要放置 “自定义控件”（customcontrolap） MOB端需要放置flexPanle面板（dynamicpanel）
@param `successForAddingPlugin` 添加插件是否成功


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: showModifyPersonForm
param_types_key: String
signature_text: public void showModifyPersonForm(String closeCallBackIdForModifyPerson)
comment:
打开修改下一步参与人页面（在closecallback中获取返回的数据，进行提交） TODO 页面打开报错，需要跟 峰哥 确定下
@param `closeCallBackIdForModifyPerson`


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: taskCirculation
param_types_key: Long,List,ILocaleString
comment: 消息传阅 @param `taskId` @param `circulationPersons` @param `circulationMsg`
signature_text:
public java.util.Map<String, Object> taskCirculation(Long taskId, java.util.List<Long> circulationPersons, ILocaleString circulationMsg)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: taskCoordinateReply
param_types_key: Long,ILocaleString,String
comment: 协办回复 @param `taskId` @param `taskCoordinateOpinion` @param `attch`
signature_text:
public void taskCoordinateReply(Long taskId, ILocaleString taskCoordinateOpinion, String attachmentKey)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: taskCoordinateReply
param_types_key: Long,ILocaleString,String,String
signature_text:
public void taskCoordinateReply(Long taskId, ILocaleString taskCoordinateOpinion, String attachmentKey, String signature)

comment:
协办回复
@param `taskId` 任务id
@param `taskCoordinateOpinion` 协办意见
@param `attachmentKey` 附件key
@param `signature` 手写签名


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: taskCoordinateReplyWithRichTextMessage
param_types_key: Long,ILocaleString,String,String
signature_text:
public void taskCoordinateReplyWithRichTextMessage(Long taskId, ILocaleString taskCoordinateOpinion, String richTextMessage, String attachmentKey)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: taskReminders
param_types_key: Long,ILocaleString,String
comment: 消息催办 @param `executionId` @param `reminderMsg` @param `type`
signature_text:
public java.util.Map<String, Object> taskReminders(Long processInstanceId, ILocaleString reminderMsg, String type)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: terminateTask
param_types_key: String,String,Map,Long
comment: 终止某个代办任务 @param `decOptionNumber` @param `auditMessage` @param `variables`
signature_text:
protected void terminateTask(String decOptionNumber, String auditMessage, java.util.Map<String, Object> variables, Long taskId)


class_name: kd.bos.workflow.management.plugin.ApprovalPageTpl
method_name: validateBillInfo
param_types_key: Long,Map,FlowElement
comment: 校验单据操作
signature_text:
protected boolean validateBillInfo(Long taskId, java.util.Map<String, String> variables, FlowElement flow)


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: batchComplateTasks
param_types_key: List,Long,ILocaleString,Map
comment: 批量处理任务 @param `taskIds` @param `userId` @param `opinion` @param `variables`
signature_text:
default java.util.Map<String, Object> batchComplateTasks(java.util.List<Long> taskIds, Long userId, ILocaleString opinion, java.util.Map<String, Object> variables)


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: batchSendMessages
param_types_key: List
comment: 批量推送消息接口 @param `messageInfos`
signature_text:
public default java.util.Map<String, Object> batchSendMessages(java.util.List<MessageInfo> messageInfos)


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: builMessageUrl
param_types_key: String,String,Long,Map
comment: 根据参数生成消息中心可以打开的链接 @param `formId` @param `mobFormId` @param `pkId` @param `param`
signature_text:
default java.util.Map<String, Object> builMessageUrl(String formId, String mobFormId, Long pkId, java.util.Map<String, Object> param)


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: getApplyedProcess
param_types_key: MessageCenterParams
signature_text:
public default java.util.Map<String, Object> getApplyedProcess(MessageCenterParams messageCenterParams)


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: getDelegateTasks
param_types_key: String,MessageCenterParams
signature_text:
public default java.util.Map<String, Object> getDelegateTasks(String taskType, MessageCenterParams messageCenterParams)


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: getHandledTasks
param_types_key: MessageCenterParams
signature_text:
public default java.util.Map<String, Object> getHandledTasks(MessageCenterParams messageCenterParams)


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: getMessageByFilter
param_types_key: String,String,String,String,boolean,int
comment: 通过过滤条件获取消息
signature_text:
java.util.List<java.util.Map<String, Object>> getMessageByFilter(String userId, String entityNumber, String tags, String msgType, boolean unread, int top)


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: getMessageByFilter
param_types_key: String,int,int,Map
comment: 通过过滤条件获取消息数据
signature_text:
default java.util.List<java.util.Map<String, Object>> getMessageByFilter(String userId, int start, int limit, java.util.Map<String, Object> filterPrarms)


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: getMessageData
param_types_key: MessageRequestInfo
comment: 获取消息内容 @param `messageRequestInfo`
signature_text:
default java.util.List<java.util.Map<String, Object>> getMessageData(MessageRequestInfo messageRequestInfo)


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: getMessageDatas
param_types_key: String,MessageCenterParams
signature_text:
default java.util.Map<String, Object> getMessageDatas(String messageType, MessageCenterParams messageCenterParams)


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: getMessageTemplateByFilters
param_types_key: String,String,String,String
signature_text:
java.util.List<String> getMessageTemplateByFilters(String type, String channel, String scenen, String entityNumber)

comment:
根据过滤条件获取消息模板
@param `type` 消息类型
@param `channel` 消息渠道
@param `scenen` 消息场景，为空取默认
@param `entityNumber` 实体编码


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: getMessageTemplateLocaleByFilters
param_types_key: String,String,String,String
signature_text:
default java.util.List<ILocaleString> getMessageTemplateLocaleByFilters(String type, String channel, String scenen, String entityNumber)

comment:
根据过滤条件获取消息模板(多语言)
@param `type` 消息类型
@param `channel` 消息渠道
@param `scenen` 消息场景，为空取默认
@param `entityNumber` 实体编码


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: getMsgCenterCardOptions
param_types_key: String,List
comment: 获取消息中心卡片需要的数据 @param `userId` 当前用户id @param `itemKey` 门户首页设置的消息卡片分类的key
signature_text:
public default java.util.List<java.util.Map<String, Object>> getMsgCenterCardOptions(String userId, java.util.List<String> itemKey)


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: getToApplyProcess
param_types_key: MessageCenterParams
signature_text:
public default java.util.Map<String, Object> getToApplyProcess(MessageCenterParams messageCenterParams)


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: getToHandleTasks
param_types_key: MessageCenterParams
signature_text:
public default java.util.Map<String, Object> getToHandleTasks(MessageCenterParams messageCenterParams)


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: getTransferTasks
param_types_key: String,MessageCenterParams
signature_text:
public default java.util.Map<String, Object> getTransferTasks(String taskType, MessageCenterParams messageCenterParams)


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: getUnreadActivityMessageByAppNum
param_types_key: Long,String[]
comment: 通过应用编码获取未读运营消息 @param `userId` 用户id @param `appNum` 应用编码
signature_text:
default java.util.List<java.util.Map<String, Object>> getUnreadActivityMessageByAppNum(Long userId, String[] appNum)


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: resendMessageByIds
param_types_key: List
signature_text: default void resendMessageByIds(java.util.List<Long> channelMsgIds)
comment:
消息推送失败之后，可以调用该接口手动重发渠道消息， 注意，msgId为被拆分后的渠道消息Id,可以通过消息推送监听获取到。 适用于业务只记录失败消息ID的场景
@param `channelMsgIds`


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: resendMessageByMsgInfos
param_types_key: List
signature_text: default void resendMessageByMsgInfos(java.util.List<MessageInfo> messageInfos)
comment:
消息推送失败之后，可以调用该接口手动重发渠道消息， 注意，messageInfos为业务根据失败的消息自己组装的失败消息集合 适用于业务自己记录消息详细日志的场景
@param `messageInfos`


class_name: kd.bos.workflow.message.api.IMessageCenterService
method_name: updateTaskParticipant
param_types_key: Long,List
comment: 更新任务参与人 @param `taskId` @param `userIds`
signature_text:
default java.util.Map<String, Object> updateTaskParticipant(Long taskId, java.util.List<Long> userIds)


class_name: kd.bos.workflow.service.WorkFlowFormServiceHelper
method_name: openCoordinateRequestView
param_types_key: IFormView,Long,boolean,CloseCallBack
signature_text:
public static void openCoordinateRequestView(IFormView formView, Long taskId, boolean isTaskCoordinate, CloseCallBack closeCallBack)

comment:
打开协办请求页面
@param `formView` 父页面视图
@param `taskId` 任务id
@param `isTaskCoordinate` 当前任务是否是协办任务
@param `closeCallBack` 页面关闭时的回调


class_name: kd.bos.workflow.service.WorkFlowFormServiceHelper
method_name: openMessageCenterList
param_types_key: String,String,Map
signature_text:
public static void openMessageCenterList(String pageId, String showType, java.util.Map<String, String> filterConditions)

comment:
打开消息中心列表
@param `pageId` 页面ID
@param `showType` 显示类型：toHandle 待办，handled 已办 ，toApply 在办申请，applyed 已办申请
@param `filterConditions` 过滤条件


class_name: kd.bos.workflow.service.WorkFlowFormServiceHelper
method_name: openTaskCirculateView
param_types_key: IFormView,Long,CloseCallBack
comment: 打开任务传阅页面 @param `formView` 父页面视图 @param `taskId` 任务id @param `closeCallBack` 页面关闭时的回调
signature_text:
public static void openTaskCirculateView(IFormView formView, Long taskId, CloseCallBack closeCallBack)


class_name: kd.bos.workflow.service.WorkFlowFormServiceHelper
method_name: openTransferView
param_types_key: IFormView,List,CloseCallBack
comment: 打开转交页面 @param `formView` 父页面视图 @param `taskIds` 任务id集合 @param `closeCallBack` 页面关闭时的回调
signature_text:
public static void openTransferView(IFormView formView, java.util.List<Long> taskIds, CloseCallBack closeCallBack)


class_name: kd.bos.workflow.service.WorkFlowFormServiceHelper
method_name: openUpdateTaskParticipantView
param_types_key: IFormView,List,CloseCallBack
comment: 打开更新任务参与人页面 @param `formView` 父页面视图 @param `taskIds` 任务ids @param `closeCallBack` 页面关闭时的回调
signature_text:
public static void openUpdateTaskParticipantView(IFormView formView, java.util.List<Long> taskIds, CloseCallBack closeCallBack)


class_name: kd.bos.workflow.taskcenter.plugin.validate.BeforeSubmitCustomEventArgs
method_name: <init>
param_types_key: Object,String,String,String,List,String,Map
signature_text:
public BeforeSubmitCustomEventArgs(Object source, String key, String eventName, String eventArgs, java.util.List<NextUserTaskNode> nextUserTaskNodes, String bizIdentifyKey, java.util.Map<String, Object> submitParams)


class_name: kd.bos.workflow.taskcenter.plugin.validate.BeforeSubmitCustomEventArgsClosedCallBack
method_name: <init>
param_types_key: Object,String,String,String
signature_text:
public BeforeSubmitCustomEventArgsClosedCallBack(Object source, String key, String eventName, String eventArgs)


class_name: kd.bos.workflow.taskcenter.plugin.validate.BeforeSubmitCustomEventArgsClosedCallBack
method_name: <init>
param_types_key: Object,String,String,String,boolean
signature_text:
public BeforeSubmitCustomEventArgsClosedCallBack(Object source, String key, String eventName, String eventArgs, boolean doSubmitTask)


class_name: kd.bos.workflow.taskcenter.plugin.validate.NextUserTaskNode
method_name: <init>
param_types_key: String,String,String,String,String,String,boolean,boolean
signature_text:
public NextUserTaskNode(String nodeValue, String nodeText, String nodeType, String personValue, String personName, String personAvatar, boolean endEvent, boolean joinNode)


class_name: kd.bos.xdb.hint.ShardingHintContext
method_name: create
param_types_key: String,HintCondition[]
comment: 创建强制路由 @param `hintTable` @param `hintConditions`
signature_text:
public static ShardingHintContext create(String hintTable, kd.bos.xdb.hint.HintCondition[] hintConditions)


class_name: kd.bos.xdb.hint.ShardingHintContext
method_name: createAndSet
param_types_key: String,HintCondition[]
comment: 创建强制路由并设置到当前线程上下文 @param `hintTable` @param `hintConditions`
signature_text:
public static ShardingHintContext createAndSet(String hintTable, kd.bos.xdb.hint.HintCondition[] hintConditions)


class_name: kd.bos.xdb.mservice.ShardingMetadataService
method_name: getModValuesByModField
param_types_key: String,String,List
signature_text:
java.util.Map<Integer, java.util.List<Object>> getModValuesByModField(String entityNumber, String shardingFieldName, java.util.List<Object> modFieldValues)

comment:
映射策略中含mapper时根据分片属性的值取出对应的mod值与字段值Map
@param `entityNumber` 单据编码
@param `shardingFieldName` 分片属性字段
@param `modFieldValues` 对应属性字段值集合
@return mod-modFieldValues


class_name: kd.bos.xdb.mservice.ShardingMetadataService
method_name: getShardingTableName
param_types_key: String,Map
signature_text:
java.util.List<String> getShardingTableName(String entityNumber, java.util.Map<String, Object> params)

comment:
获取分表,供集成平台调用微服务提供给外部客户使用
@param `entityNumber` 单据编码
@param `params` map的key=分片属性properity+间隔符$+计算符,value为Object


class_name: kd.bos.zip.io.outputstream.ZipOutputStream
method_name: <init>
param_types_key: OutputStream,Charset
signature_text:
public ZipOutputStream(java.io.OutputStream outputStream, java.nio.charset.Charset charset) throws java.io.IOException


class_name: kd.bos.zip.io.outputstream.ZipOutputStream
method_name: <init>
param_types_key: OutputStream,char[]
signature_text:
public ZipOutputStream(java.io.OutputStream outputStream, char[] password) throws java.io.IOException


class_name: kd.bos.zip.io.outputstream.ZipOutputStream
method_name: <init>
param_types_key: OutputStream,char[],Charset
signature_text:
public ZipOutputStream(java.io.OutputStream outputStream, char[] password, java.nio.charset.Charset charset) throws java.io.IOException


class_name: kd.bos.zip.io.outputstream.ZipOutputStream
method_name: <init>
param_types_key: OutputStream,char[],Zip4jConfig,ZipModel
signature_text:
public ZipOutputStream(java.io.OutputStream outputStream, char[] password, kd.bos.zip.model.Zip4jConfig zip4jConfig, kd.bos.zip.model.ZipModel zipModel) throws java.io.IOException


class_name: kd.bos.zip.io.outputstream.ZipOutputStream
method_name: closeEntry
signature_text: public kd.bos.zip.model.FileHeader closeEntry() throws java.io.IOException
comment:
关闭当前正在处理的压缩条目，并更新相关的文件头信息。 该方法会执行一系列操作来完成条目的关闭，包括关闭压缩输出流、设置压缩和未压缩的文件大小
@return 关闭条目的文件头对象，包含了该条目的详细信息，如文件名、压缩和未压缩大小、CRC 校验值等。
@throws `IOException` 如果在关闭压缩输出流、写入扩展本地头或其他 I/O 操作过程中发生错误。


class_name: kd.bos.zip.io.outputstream.ZipOutputStream
method_name: putNextEntry
param_types_key: ZipParameters
signature_text: public void putNextEntry(ZipParameters zipParameters) throws java.io.IOException
comment:
向压缩文件中添加下一个条目。 此方法用于将一个新的条目添加到压缩文件中，会对传入的压缩参数进行验证， 初始化并写入文件头，然后初始化压缩输出流。
@param `zipParameters` 压缩参数对象，包含了压缩条目的相关配置信息，如文件名、压缩方法等。
@throws `IOException` 如果在写入文件头或初始化压缩输出流过程中发生I/O错误。


class_name: kd.bos.zip.io.outputstream.ZipOutputStream
method_name: setComment
param_types_key: String
signature_text: public void setComment(String comment) throws java.io.IOException
comment:
设置 ZIP 文件的注释信息。 该方法用于为 ZIP 文件的中央目录结尾记录（End of Central Directory Record）设置注释内容。 在设置注释之前，会先调用 ensureStreamOpen 方法确保输出流处于打开状态，只有在流打开的情况下才能进行注释设置操作。
@param `comment` 要设置的注释内容，以字符串形式表示。
@throws `IOException` 如果输出流已关闭或者在设置注释过程中发生 I/O 错误。


class_name: kd.bos.zip.io.outputstream.ZipOutputStream
method_name: write
param_types_key: int
signature_text: public void write(int b) throws java.io.IOException
comment:
将指定的字节写入输出流。 该方法接收一个整数形式的字节，将其转换为单字节数组后调用另一个重载的 write 方法进行写入操作。
@param `b` 要写入的字节，以整数形式表示。范围通常是 0 - 255。
@throws `IOException` 如果在写入过程中发生 I/O 错误。


class_name: kd.bos.zip.io.outputstream.ZipOutputStream
method_name: write
param_types_key: byte[]
signature_text: public void write(byte[] b) throws java.io.IOException
comment:
将指定的字节数组写入输出流。 此方法会调用另一个重载的 write 方法，从字节数组的起始位置开始，写入整个字节数组的内容。
@param `b` 要写入的字节数组。
@throws `IOException` 如果在写入过程中发生 I/O 错误。


class_name: kd.bos.zip.io.outputstream.ZipOutputStream
method_name: write
param_types_key: byte[],int,int
signature_text: public void write(byte[] b, int off, int len) throws java.io.IOException
comment:
将指定字节数组的一部分写入输出流。 该方法首先确保输出流处于打开状态，然后更新 CRC32 校验值，接着将字节数组中指定偏移量和长度的部分写入压缩输出流， 最后更新当前条目的未压缩数据大小。
@param `b` 要写入的字节数组。
@param `off` 字节数组中的起始偏移量，从此位置开始读取数据进行写入。
@param `len` 要写入的字节数。
@throws `IOException` 如果在写入过程中发生 I/O 错误，或者输出流未打开。


class_name: kd.bos.zip.model.ZipParameters
method_name: <init>
param_types_key: ZipParameters
signature_text: public ZipParameters(ZipParameters zipParameters)
comment:
Create a clone of given ZipParameters instance
@param `zipParameters` the ZipParameters instance to clone


class_name: kd.bos.zip.model.ZipParameters
method_name: <init>
signature_text: public ZipParameters()
comment:
Create a ZipParameters instance with default values; CompressionMethod.DEFLATE, CompressionLevel.NORMAL, EncryptionMethod.NONE, AesKeyStrength.KEY_STRENGTH_256, AesVerson.Two, SymbolicLinkAction.INCLUDE_LINKED_FILE_ONLY, readHiddenFiles is true, readHiddenFolders is true, includeRootInFolder is true, writeExtendedLocalFileHeader is true, overrideExistingFilesInZip is true


class_name: kd.bos.zip.model.ZipParameters
method_name: getCompressionLevel
signature_text: public kd.bos.zip.model.enums.CompressionLevel getCompressionLevel()
comment:
Get the compression level used to compress files
@return the compression level used to compress files


class_name: kd.bos.zip.model.ZipParameters
method_name: getExcludeFileFilter
signature_text: public kd.bos.zip.model.ExcludeFileFilter getExcludeFileFilter()
comment:
Returns the file exclusion filter that is currently being used when adding files/folders to zip file
@return ExcludeFileFilter


class_name: kd.bos.zip.model.ZipParameters
method_name: getLastModifiedFileTime
signature_text: public long getLastModifiedFileTime()
comment:
Get the last modified time to be used for files written to the ZIP
@return the last modified time in milliseconds since the epoch


class_name: kd.bos.zip.model.ZipParameters
method_name: isIncludeRootFolder
signature_text: public boolean isIncludeRootFolder()
comment:
Test if the parent folder of the added files will be included in the ZIP
@return true if the parent folder of the added files will be included into the zip


class_name: kd.bos.zip.model.ZipParameters
method_name: isReadHiddenFiles
signature_text: public boolean isReadHiddenFiles()
comment:
Test if hidden files will be included during folder recursion
@return true if hidden files will be included when adding folders to the zip


class_name: kd.bos.zip.model.ZipParameters
method_name: isReadHiddenFolders
signature_text: public boolean isReadHiddenFolders()
comment:
Test if hidden folders will be included during folder recursion
@return true if hidden folders will be included when adding folders to the zip


class_name: kd.bos.zip.model.ZipParameters
method_name: isUnixMode
signature_text: public boolean isUnixMode()
comment:
Returns true if zip4j is using unix mode as default. Returns False otherwise.
@return true if zip4j is using unix mode as default, false otherwise


class_name: kd.bos.zip.model.ZipParameters
method_name: setAesKeyStrength
param_types_key: AesKeyStrength
signature_text: public void setAesKeyStrength(kd.bos.zip.model.enums.AesKeyStrength aesKeyStrength)
comment:
Set the key strength of the AES encryption key
@param `aesKeyStrength` the key strength of the AES encryption key


class_name: kd.bos.zip.model.ZipParameters
method_name: setCompressionLevel
param_types_key: CompressionLevel
signature_text: public void setCompressionLevel(kd.bos.zip.model.enums.CompressionLevel compressionLevel)
comment:
Set the compression level used to compress files
@param `compressionLevel` the compression level used to compress files


class_name: kd.bos.zip.model.ZipParameters
method_name: setEncryptFiles
param_types_key: boolean
signature_text: public void setEncryptFiles(boolean encryptFiles)
comment:
Set the flag indicating that files are to be encrypted
@param `encryptFiles` if true, files will be encrypted


class_name: kd.bos.zip.model.ZipParameters
method_name: setEncryptionMethod
param_types_key: EncryptionMethod
signature_text: public void setEncryptionMethod(kd.bos.zip.model.enums.EncryptionMethod encryptionMethod)
comment:
Set the encryption method used to encrypt files
@param `encryptionMethod` the encryption method to be used


class_name: kd.bos.zip.model.ZipParameters
method_name: setExcludeFileFilter
param_types_key: ExcludeFileFilter
signature_text: public void setExcludeFileFilter(kd.bos.zip.model.ExcludeFileFilter excludeFileFilter)
comment:
Set a filter to exclude any files from the list of files being added to zip. Mostly used when adding a folder to a zip, and if certain files have to be excluded from adding to the zip file.


class_name: kd.bos.zip.model.ZipParameters
method_name: setFileNameInZip
param_types_key: String
signature_text: public void setFileNameInZip(String fileNameInZip)
comment:
Set the filename that will be used to include a file into the ZIP file to a different name that given by the source filename added to the ZIP file. The filenameInZip must adhere to the ZIP filename specification, including the use of forward slash '/' as the directory separator, and it must also be a relative file. If the filenameInZip given is not null and not empty, the value specified by setRootFolderNameInZip() will be ignored.
@param `fileNameInZip` the filename to set in the ZIP. Use null or an empty String to set the default behavior


class_name: kd.bos.zip.model.ZipParameters
method_name: setIncludeRootFolder
param_types_key: boolean
signature_text: public void setIncludeRootFolder(boolean includeRootFolder)
comment:
Set the flag to indicate if the parent folder of added files will be included in the ZIP
@param `includeRootFolder` if true, the parent folder of added files will be included in the ZIP


class_name: kd.bos.zip.model.ZipParameters
method_name: setLastModifiedFileTime
param_types_key: long
signature_text: public void setLastModifiedFileTime(long lastModifiedFileTime)
comment:
Set the last modified time recorded in the ZIP file for the added files. If less than 0, the last modified time is cleared and the current time is used
@param `lastModifiedFileTime` the last modified time in milliseconds since the epoch


class_name: kd.bos.zip.model.ZipParameters
method_name: setOverrideExistingFilesInZip
param_types_key: boolean
signature_text: public void setOverrideExistingFilesInZip(boolean overrideExistingFilesInZip)
comment:
Set the behavior if a file is added that already exists in the ZIP.
@param `overrideExistingFilesInZip` if true, remove the existing file in the ZIP; if false do not add the new file


class_name: kd.bos.zip.model.ZipParameters
method_name: setReadHiddenFiles
param_types_key: boolean
signature_text: public void setReadHiddenFiles(boolean readHiddenFiles)
comment:
Indicate if hidden files will be included during folder recursion
@param `readHiddenFiles` if true, hidden files will be included when adding folders to the zip


class_name: kd.bos.zip.model.ZipParameters
method_name: setReadHiddenFolders
param_types_key: boolean
signature_text: public void setReadHiddenFolders(boolean readHiddenFolders)
comment:
Indicate if hidden folders will be included during folder recursion
@param `readHiddenFolders` if true, hidden folders will be included when added folders to the zip


class_name: kd.bos.zip.model.ZipParameters
method_name: setRootFolderNameInZip
param_types_key: String
signature_text: public void setRootFolderNameInZip(String rootFolderNameInZip)
comment:
Set the folder name that will be prepended to the filename in the ZIP. This value is ignored if setFileNameInZip() is specified with a non-null, non-empty string.
@param `rootFolderNameInZip` the name of the folder to be prepended to the filename in the ZIP archive


class_name: kd.bos.zip.model.ZipParameters
method_name: setSymbolicLinkAction
param_types_key: SymbolicLinkAction
signature_text:
public void setSymbolicLinkAction(kd.bos.zip.model.ZipParameters.SymbolicLinkAction symbolicLinkAction)

comment:
Set the behavior when adding a symbolic link
@param `symbolicLinkAction` the behavior when adding a symbolic link


class_name: kd.bos.zip.ZipFile
method_name: <init>
param_types_key: String,char[]
signature_text: public ZipFile(String zipFile, char[] password)
comment:
创建一个新的 ZipFile 实例，其位置由 zipFile 指定。输入的密码将用于任何 zip 操作，如添加文件或提取文件。此构造函数不会创建 zip 文件，创建操作发生在向此 ZipFile 实例添加文件时。


class_name: kd.bos.zip.ZipFile
method_name: addFile
param_types_key: String,ZipParameters
comment: 将输入源文件添加到 zip 文件中，并使用提供的 zip 参数。如果 zip 文件不存在，此方法会创建一个新的 zip 文件。
signature_text:
public void addFile(String fileToAdd, ZipParameters zipParameters) throws kd.bos.zip.exception.ZipException


class_name: kd.bos.zip.ZipFile
method_name: addFile
param_types_key: File,ZipParameters
comment: 将输入源文件添加到 zip 文件中。如果 zip 文件不存在，此方法会创建一个新的 zip 文件。可以在输入参数中设置压缩类型等参数。
signature_text:
public void addFile(java.io.File fileToAdd, ZipParameters parameters) throws kd.bos.zip.exception.ZipException


class_name: kd.bos.zip.ZipFile
method_name: addFiles
param_types_key: List
comment: 将输入文件列表添加到 zip 文件中，并使用默认的 zip 参数。如果 zip 文件不存在，此方法会创建一个新的 zip 文件。
signature_text:
public void addFiles(java.util.List<java.io.File> filesToAdd) throws kd.bos.zip.exception.ZipException


class_name: kd.bos.zip.ZipFile
method_name: addFiles
param_types_key: List,ZipParameters
signature_text:
public void addFiles(java.util.List<java.io.File> filesToAdd, ZipParameters parameters) throws kd.bos.zip.exception.ZipException

comment:
将输入文件列表添加到 zip 文件中。如果 zip 文件不存在，此方法会创建一个新的 zip 文件。可以在输入参数中设置压缩类型等参数。
@param `filesToAdd`
@param `parameters`
@throws ZipException


class_name: kd.bos.zip.ZipFile
method_name: addFolder
param_types_key: File,ZipParameters
comment: 将给定文件对象中的文件夹添加到 zip 文件中。如果 zip 文件不存在，则创建一个新的 zip 文件。如果输入文件夹无效，则抛出异常。可以通过输入参数设置要添加的文件夹中的文件的 zip 参数。
signature_text:
public void addFolder(java.io.File folderToAdd, ZipParameters zipParameters) throws kd.bos.zip.exception.ZipException


class_name: kd.bos.zip.ZipFile
method_name: addStream
param_types_key: InputStream,ZipParameters
signature_text:
public void addStream(java.io.InputStream inputStream, ZipParameters parameters) throws kd.bos.zip.exception.ZipException

comment:
在 zip 文件中创建一个新条目，并将输入流的内容添加到 zip 文件中。必须在输入参数中设置 ZipParameters.isSourceExternalStream 和 ZipParameters.fileNameInZip。如果文件名以 / 或 \ 结尾，此方法将内容视为目录。将标志 ProgressMonitor.setRunInThread 设置为 true 对此方法没有影响，因此此方法不能用于在线程模式下向 zip 添加内容。


class_name: kd.bos.zip.ZipFile
method_name: createSplitZipFile
param_types_key: List,ZipParameters,boolean,long
signature_text:
public void createSplitZipFile(java.util.List<java.io.File> filesToAdd, ZipParameters parameters, boolean splitArchive, long splitLength) throws kd.bos.zip.exception.ZipException

comment:
创建一个 zip 文件，并将源文件列表添加到 zip 文件中。如果 zip 文件已存在，则此方法会抛出异常。可以在输入参数中设置压缩类型等参数。虽然 addFile/addFiles 方法在 zip 文件不存在时也会创建 zip 文件，但此方法的主要功能是创建拆分的 zip 文件。要创建拆分的 zip 文件，请将 splitArchive 参数设置为 true，并提供一个有效的 splitLength。拆分长度必须大于 65536 字节。


class_name: kd.bos.zip.ZipFile
method_name: createSplitZipFileFromFolder
param_types_key: File,ZipParameters,boolean,long
signature_text:
public void createSplitZipFileFromFolder(java.io.File folderToAdd, ZipParameters parameters, boolean splitArchive, long splitLength) throws kd.bos.zip.exception.ZipException

comment:
创建一个 zip 文件，并将指定文件夹中的文件/文件夹添加到 zip 文件中。此方法与 addFolder 方法具有相同的功能，不同之处在于此方法在添加文件夹时也可以创建拆分的 zip 文件。要创建拆分的 zip 文件，请将 splitArchive 参数设置为 true 并指定 splitLength。拆分长度必须大于或等于 65536 字节。请注意，如果 zip 文件已经存在，此方法会抛出异常。


class_name: kd.bos.zip.ZipFile
method_name: extractAll
param_types_key: String,UnzipParameters
comment: 将 zip 文件中的所有条目提取到目标路径，同时考虑 UnzipParameters 中定义的选项。
signature_text:
public void extractAll(String destinationPath, kd.bos.zip.model.UnzipParameters unzipParameters) throws kd.bos.zip.exception.ZipException


class_name: kd.bos.zip.ZipFile
method_name: extractFile
param_types_key: FileHeader,String
comment: 从 zip 文件中提取特定文件到目标路径。如果目标路径无效，则此方法抛出异常。
signature_text:
public void extractFile(kd.bos.zip.model.FileHeader fileHeader, String destinationPath) throws kd.bos.zip.exception.ZipException


class_name: kd.bos.zip.ZipFile
method_name: extractFile
param_types_key: FileHeader,String,UnzipParameters
comment: 从 zip 文件中提取特定文件到目标路径。如果目标路径无效，则此方法抛出异常。
signature_text:
public void extractFile(kd.bos.zip.model.FileHeader fileHeader, String destinationPath, kd.bos.zip.model.UnzipParameters unzipParameters) throws kd.bos.zip.exception.ZipException


class_name: kd.bos.zip.ZipFile
method_name: extractFile
param_types_key: String,String
comment: 从 zip 文件中提取特定文件到目标路径。此方法首先从输入文件名中查找必要的文件头。
signature_text:
public void extractFile(String fileName, String destinationPath) throws kd.bos.zip.exception.ZipException


class_name: kd.bos.zip.ZipFile
method_name: extractFile
param_types_key: String,String,UnzipParameters
comment: 从 zip 文件中提取特定文件到目标路径。此方法首先从输入文件名中查找必要的文件头。
signature_text:
public void extractFile(String fileName, String destinationPath, kd.bos.zip.model.UnzipParameters unzipParameters) throws kd.bos.zip.exception.ZipException


class_name: kd.bos.zip.ZipFile
method_name: extractFile
param_types_key: String,String,String
comment: 从 zip 文件中提取特定文件到目标路径。
signature_text:
public void extractFile(String fileName, String destinationPath, String newFileName) throws kd.bos.zip.exception.ZipException


class_name: kd.bos.zip.ZipFile
method_name: extractFile
param_types_key: FileHeader,String,String
signature_text:
public void extractFile(kd.bos.zip.model.FileHeader fileHeader, String destinationPath, String newFileName) throws kd.bos.zip.exception.ZipException

comment:
Extracts a specific file from the zip file to the destination path. If destination path is invalid, then this method throws an exception. If newFileName is not null or empty, newly created file name will be replaced by the value in newFileName. If this value is null, then the file name will be the value in FileHeader.getFileName. If file being extract is a directory, the directory name will be replaced with the newFileName If fileHeader is a directory, this method extracts all files under this directory.
@param `fileHeader` file header corresponding to the entry which has to be extracted
@param `destinationPath` path to which the entries of the zip are to be extracted
@param `newFileName` if not null, this will be the name given to the file upon extraction
@throws `ZipException` when an issue occurs during extraction


class_name: kd.bos.zip.ZipFile
method_name: extractFile
param_types_key: String,String,String,UnzipParameters
signature_text:
public void extractFile(String fileName, String destinationPath, String newFileName, kd.bos.zip.model.UnzipParameters unzipParameters) throws kd.bos.zip.exception.ZipException

comment:
Extracts a specific file from the zip file to the destination path. This method first finds the necessary file header from the input file name. File name is relative file name in the zip file. For example if a zip file contains a file "a.txt", then to extract this file, input file name has to be "a.txt". Another example is if there is a file "b.txt" in a folder "abc" in the zip file, then the input file name has to be abc/b.txt If newFileName is not null or empty, newly created file name will be replaced by the value in newFileName. If this value is null, then the file name will be the value in FileHeader.getFileName. If file being extract is a directory, the directory name will be replaced with the newFileName If fileHeader is a directory, this method extracts all files under this directory. Any parameters that have to be considered during extraction can be passed in through unzipParameters Throws an exception of type ZipException.Type#FILE_NOT_FOUND if file header could not be found for the given file name. Throws an exception if the destination path is invalid.
@param `fileName` name of the entry which has to be extracted
@param `destinationPath` path to which the entries of the zip are to be extracted
@param `newFileName` if not null, this will be the name given to the file upon extraction
@param `unzipParameters` any parameters that have to be considered during extraction
@throws `ZipException` when an issue occurs during extraction


class_name: kd.bos.zip.ZipFile
method_name: extractFile
param_types_key: FileHeader,String,String,UnzipParameters
signature_text:
public void extractFile(kd.bos.zip.model.FileHeader fileHeader, String destinationPath, String newFileName, kd.bos.zip.model.UnzipParameters unzipParameters) throws kd.bos.zip.exception.ZipException

comment:
Extracts a specific file from the zip file to the destination path. If destination path is invalid, then this method throws an exception. If newFileName is not null or empty, newly created file name will be replaced by the value in newFileName. If this value is null, then the file name will be the value in FileHeader.getFileName. If file being extract is a directory, the directory name will be replaced with the newFileName If fileHeader is a directory, this method extracts all files under this directory. Any parameters that have to be considered during extraction can be passed in through unzipParameters
@param `fileHeader` file header corresponding to the entry which has to be extracted
@param `destinationPath` path to which the entries of the zip are to be extracted
@param `newFileName` if not null, this will be the name given to the file upon extraction
@param `unzipParameters` any parameters that have to be considered during extraction
@throws `ZipException` when an issue occurs during extraction


class_name: kd.bos.zip.ZipFile
method_name: getCharset
signature_text: public java.nio.charset.Charset getCharset()
comment:
Returns user defined charset that was set by setCharset() method. If no charset was explicitly defined (by calling setCharset()), this method returns the default charset which zip4j uses, which is utf-8.
@return user-defined charset or utf-8 if no charset explicitly set


class_name: kd.bos.zip.ZipFile
method_name: getFileHeader
param_types_key: String
signature_text:
public kd.bos.zip.model.FileHeader getFileHeader(String fileName) throws kd.bos.zip.exception.ZipException

comment:
Returns FileHeader if a file header with the given fileHeader string exists in the zip model: If not returns null
@param `fileName`
@return FileHeader
@throws ZipException


class_name: kd.bos.zip.ZipFile
method_name: getFileHeaders
signature_text:
public java.util.List<kd.bos.zip.model.FileHeader> getFileHeaders() throws kd.bos.zip.exception.ZipException

comment:
Returns the list of file headers in the zip file. Returns an empty list if the zip file does not exist.
@return list of file headers
@throws ZipException


class_name: kd.bos.zip.ZipFile
method_name: getInputStream
param_types_key: FileHeader
signature_text:
public kd.bos.zip.io.inputstream.ZipInputStream getInputStream(kd.bos.zip.model.FileHeader fileHeader) throws java.io.IOException

comment:
Returns an input stream for reading the contents of the Zip file corresponding to the input FileHeader. Throws an exception if the FileHeader does not exist in the ZipFile
@param `fileHeader`
@return ZipInputStream
@throws ZipException


class_name: kd.bos.zip.ZipFile
method_name: getSplitZipFiles
signature_text: public java.util.List<java.io.File> getSplitZipFiles() throws kd.bos.zip.exception.ZipException
comment:
Returns the full file path+names of all split zip files in an ArrayList. For example: If a split zip file(abc.zip) has a 10 split parts this method returns an array list with path + "abc.z01", path + "abc.z02", etc. Returns null if the zip file does not exist
@return List of Split zip Files
@throws ZipException


class_name: kd.bos.zip.ZipFile
method_name: isEncrypted
signature_text: public boolean isEncrypted() throws kd.bos.zip.exception.ZipException
comment:
Checks to see if the zip file is encrypted
@return true if encrypted, false if not
@throws ZipException


class_name: kd.bos.zip.ZipFile
method_name: isSplitArchive
signature_text: public boolean isSplitArchive() throws kd.bos.zip.exception.ZipException
comment:
Checks if the zip file is a split archive
@return true if split archive, false if not
@throws ZipException


class_name: kd.bos.zip.ZipFile
method_name: isValidZipFile
signature_text: public boolean isValidZipFile()
comment:
Checks to see if the input zip file is a valid zip file. This method will try to read zip headers. If headers are read successfully, this method returns true else false. Since v2.7.0: if the zip file is a split zip file, this method also checks to see if all the split files of the zip exists.
@return boolean - true if a valid zip file, i.e, zip4j is able to read the zip headers, and in case of a split zip file, all split files of the zip exists; false otherwise


class_name: kd.bos.zip.ZipFile
method_name: mergeSplitFiles
param_types_key: File
signature_text: public void mergeSplitFiles(java.io.File outputZipFile) throws kd.bos.zip.exception.ZipException
comment:
Merges split zip files into a single zip file without the need to extract the files in the archive
@param `outputZipFile`
@throws ZipException


class_name: kd.bos.zip.ZipFile
method_name: removeFile
param_types_key: FileHeader
signature_text:
public void removeFile(kd.bos.zip.model.FileHeader fileHeader) throws kd.bos.zip.exception.ZipException

comment:
Removes the file provided in the input file header from the zip file. If zip file is a split zip file, then this method throws an exception as zip specification does not allow for updating split zip archives. If this file header is a directory, all files and directories under this directory will be removed as well.
@param `fileHeader`
@throws ZipException


class_name: kd.bos.zip.ZipFile
method_name: removeFile
param_types_key: String
signature_text: public void removeFile(String fileName) throws kd.bos.zip.exception.ZipException
comment:
Removes the file provided in the input parameters from the zip file. This method first finds the file header and then removes the file. If file does not exist, then this method throws an exception. If zip file is a split zip file, then this method throws an exception as zip specification does not allow for updating split zip archives. If the entry representing this file name is a directory, all files and directories under this directory will be removed as well.
@param `fileName`
@throws ZipException


class_name: kd.bos.zip.ZipFile
method_name: removeFiles
param_types_key: List
signature_text: public void removeFiles(java.util.List<String> fileNames) throws kd.bos.zip.exception.ZipException
comment:
Removes all files from the zip file that match the names in the input list. If any of the file is a directory, all the files and directories under this directory will be removed as well If zip file is a split zip file, then this method throws an exception as zip specification does not allow for updating split zip archives.
@param `fileNames`
@throws ZipException


class_name: kd.bos.zip.ZipFile
method_name: renameFile
param_types_key: FileHeader,String
signature_text:
public void renameFile(kd.bos.zip.model.FileHeader fileHeader, String newFileName) throws kd.bos.zip.exception.ZipException

comment:
Renames file name of the entry represented by file header. If the file name in the input file header does not match any entry in the zip file, the zip file will not be modified. If the file header is a folder in the zip file, all sub-files and sub-folders in the zip file will also be renamed. Zip file format does not allow modifying a split zip file. Therefore if the zip file being dealt with is a split zip file, this method throws an exception
@param `fileHeader` file header to be changed
@param `newFileName` the file name that has to be changed to
@throws `ZipException` if fileHeader is null or newFileName is null or empty or if the zip file is a split file


class_name: kd.bos.zip.ZipFile
method_name: renameFile
param_types_key: String,String
signature_text:
public void renameFile(String fileNameToRename, String newFileName) throws kd.bos.zip.exception.ZipException

comment:
Renames file name of the entry represented by input fileNameToRename. If there is no entry in the zip file matching the file name as in fileNameToRename, the zip file will not be modified. If the entry with fileNameToRename is a folder in the zip file, all sub-files and sub-folders in the zip file will also be renamed. For a folder, the fileNameToRename has to end with zip file separator "/". For example, if a folder name "some-folder-name" has to be modified to "new-folder-name", then value of fileNameToRename should be "some-folder-name/". If newFileName does not end with a separator, zip4j will add a separator. Zip file format does not allow modifying a split zip file. Therefore if the zip file being dealt with is a split zip file, this method throws an exception
@param `fileNameToRename` file name in the zip that has to be renamed
@param `newFileName` the file name that has to be changed to
@throws `ZipException` if fileNameToRename is empty or newFileName is empty or if the zip file is a split file


class_name: kd.bos.zip.ZipFile
method_name: renameFiles
param_types_key: Map
signature_text:
public void renameFiles(java.util.Map<String, String> fileNamesMap) throws kd.bos.zip.exception.ZipException

comment:
Renames all the entries in the zip file that match the keys in the map to their corresponding values in the map. If there are no entries matching any of the keys from the map, the zip file is not modified. If any of the entry in the map represents a folder, all files and folders will be renamed so that their parent represents the renamed folder. Zip file format does not allow modifying a split zip file. Therefore if the zip file being dealt with is a split zip file, this method throws an exception
@param `fileNamesMap` map of file names that have to be changed with values in the map being the name to be changed to
@throws `ZipException` if map is null or if the zip file is a split file


class_name: kd.bos.zip.ZipFile
method_name: setBufferSize
param_types_key: int
signature_text: public void setBufferSize(int bufferSize)
comment:
Sets the size of buffer that should be used when reading streams. This size cannot be less than the value defined in InternalZipConstants.MIN_BUFF_SIZE
@param `bufferSize` size of the buffer that should be used when reading streams
@throws `IllegalArgumentException` if bufferSize is less than value configured in InternalZipConstants.MIN_BUFF_SIZE


class_name: kd.bos.zip.ZipFile
method_name: setCharset
param_types_key: Charset
signature_text: public void setCharset(java.nio.charset.Charset charset) throws IllegalArgumentException
comment:
Sets the charset to be used for encoding file names and comments
@param `charset` charset to use to encode file names and comments
@throws `IllegalArgumentException` if charset is null


class_name: kd.bos.zip.ZipFile
method_name: setPassword
param_types_key: char[]
signature_text: public void setPassword(char[] password)
comment:
Sets a password to be used for the zip file. Will override if a password supplied via ZipFile constructor
@param `password` \- char array of the password to be used


class_name: kd.hr.hbp.business.application.impl.newhismodel.HisModelAttachController
method_name: generateAttachmentMap
param_types_key: HisAttachmentParamBo
comment: 查询数据库中的附件数据，并组装成历史模型需要的附件格式 @param `hisAttachmentParamBo` 附件对外API入参
signature_text:
public HisResponse<HisAttachmentDataBo> generateAttachmentMap(HisAttachmentParamBo hisAttachmentParamBo)


class_name: kd.hr.hbp.business.application.impl.newhismodel.HisModelController
method_name: batchHisVersionChange
param_types_key: HisVersionParamListBo
comment: 批量历史版本修订，包括时序性，非时序性版本变更 @param `hisVersionParamListBo` @return 事务ID
signature_text:
public HisResponse<BatchVersionChangeRespData> batchHisVersionChange(HisVersionParamListBo hisVersionParamListBo)


class_name: kd.hr.hbp.business.application.impl.newhismodel.HisModelController
method_name: buildImportFilter
param_types_key: String,String,String
signature_text:
public HisInitReturnBo buildImportFilter(String mainEntityNumber, String f7FieldName, String baseEntityNumber)

comment:
构建导入Filter
@param `mainEntityNumber` 主实体
@param `f7FieldName` 主实体F7字段
@param `baseEntityNumber` F7字段的实体编码


class_name: kd.hr.hbp.business.application.impl.newhismodel.HisModelController
method_name: entityInhRelation
param_types_key: String
signature_text: public String entityInhRelation(String entityNumber)
comment:
判断实体继承关系：普通实体、历史时序型实体、历史非时序型实体
@param `entityNumber`
@return enum EnumEntityTpl { * COMMON_TPL("0"), // 普通实体 * LINETIMESEQ_TPL("1"), // 继承历史时序型实体 * NONLINETIMESEQ_TPL("2"); // 继承历史非时序型实体


class_name: kd.hr.hbp.business.application.impl.newhismodel.HisModelController
method_name: getReviseRecord
param_types_key: HisReviseRecordParamBo
comment: 获取修订记录 @param `hisVersionReviseParamBo` 版本修订参数
signature_text:
public <any> getReviseRecord(kd.hr.hbp.business.domain.model.newhismodel.api.revise.HisReviseRecordParamBo hisVersionReviseParamBo)


class_name: kd.hr.hbp.business.application.impl.newhismodel.HisModelController
method_name: hisVersionSaveCalc
param_types_key: HisVersionCalcApiParam
comment: 版本保存计算 @param `hisVersionCalcApiParam` 版本切割计算入参
signature_text:
public <any> hisVersionSaveCalc(kd.hr.hbp.business.domain.model.newhismodel.calc.api.HisVersionCalcApiParam hisVersionCalcApiParam)


class_name: kd.hr.hbp.business.application.impl.newhismodel.HisModelController
method_name: noLineTimeHisVersionChange
param_types_key: HisVersionParamBo
comment: 非时序历史版本修订，包括保存版本，立即生效版本 @param `hisVersionParamBo` 历史模型入参属性 @return HisResponse 返回参数
signature_text:
public HisResponse<VersionChangeRespData> noLineTimeHisVersionChange(HisVersionParamBo hisVersionParamBo)


class_name: kd.hr.hbp.business.application.impl.newhismodel.HisModelController
method_name: searchLaterEvent
param_types_key: HisSearchLaterEventParam
signature_text:
public <any> searchLaterEvent(kd.hr.hbp.business.domain.model.newhismodel.event.HisSearchLaterEventParam hisSearchLaterEventParam)

comment:
查询更晚事务kd.hr.hbp.business.domain.service.impl.newhismodel.event.HisModelEventSearchService#searchLaterEventApi(kd.hr.hbp.business.domain.model.newhismodel.event.HisSearchLaterEventParam)
@param `hisSearchLaterEventParam`


class_name: kd.hr.hbp.business.application.impl.newhismodel.HisModelInitController
method_name: initBo
param_types_key: HisInitBoApiParam
comment: 新增BO @param `hisInitBoApiParam` 初始化新增参数入库 @return 数据及错误信息
signature_text:
public <any> initBo(kd.hr.hbp.business.domain.model.newhismodel.calc.api.HisInitBoApiParam hisInitBoApiParam)


class_name: kd.hr.hbp.business.application.impl.newhismodel.HisModelInitController
method_name: initBoValidate
param_types_key: HisInitBoApiParam
comment: 新增BO校验服务 @param `hisInitBoApiParam` 初始化新增参数入库 @return 数据及错误信息
signature_text:
public <any> initBoValidate(kd.hr.hbp.business.domain.model.newhismodel.calc.api.HisInitBoApiParam hisInitBoApiParam)


