# doc_method

class_name: kd.hr.hbp.business.application.impl.newhismodel.HisModelInitController
method_name: initVersionConfirm
param_types_key: HisInitVersionApiParam
comment: 初始化新增版本，确认变更 @param `hisInitVersionApiParam` 初始化新增版本参数 @return 数据及错误信息
signature_text:
public <any> initVersionConfirm(kd.hr.hbp.business.domain.model.newhismodel.calc.api.HisInitVersionApiParam hisInitVersionApiParam)


class_name: kd.hr.hbp.business.application.impl.newhismodel.HisModelInitController
method_name: initVersionSave
param_types_key: HisInitVersionApiParam
comment: 初始化新增版本保存 @param `hisInitVersionApiParam` 初始化新增版本参数 @return 数据及错误信息
signature_text:
public <any> initVersionSave(kd.hr.hbp.business.domain.model.newhismodel.calc.api.HisInitVersionApiParam hisInitVersionApiParam)


class_name: kd.hr.hbp.business.application.impl.newhismodel.HisModelInitController
method_name: initVersionValidate
param_types_key: HisInitVersionApiParam
comment: 初始化新增版本校验 @param `hisInitVersionApiParam` 初始化新增版本参数 @return 数据及错误信息
signature_text:
public <any> initVersionValidate(kd.hr.hbp.business.domain.model.newhismodel.calc.api.HisInitVersionApiParam hisInitVersionApiParam)


class_name: kd.hr.hbp.business.domain.model.newhismodel.api.comparediff.CompareDiffApiBatchInputParam
method_name: setCompareDiffApiInputParamList
param_types_key: List
comment: 设置 数据差异接口入参列表 @param `compareDiffApiInputParamList` 数据差异接口入参列表
signature_text:
public void setCompareDiffApiInputParamList(java.util.List<CompareDiffApiInputParam> compareDiffApiInputParamList)


class_name: kd.hr.hbp.business.domain.model.newhismodel.api.comparediff.CompareDiffApiInputParam
method_name: getKeyField
signature_text: public String getKeyField()
comment:
获取 要比对差异的唯一性标识字段，通过此字段去查找数据库中的数据行 非历史模型默认 用 id 历史模型默认用 boId;
@return keyField 要比对差异的唯一性标识字段，通过此字段去查找数据库中的数据行 非历史模型默认 用 id 历史模型默认用 boId;


class_name: kd.hr.hbp.business.domain.model.newhismodel.api.comparediff.CompareDiffApiInputParam
method_name: setKeyField
param_types_key: String
signature_text: public void setKeyField(String keyField)
comment:
设置 要比对差异的唯一性标识字段，通过此字段去查找数据库中的数据行 非历史模型默认 用 id 历史模型默认用 boId;
@param `keyField` 要比对差异的唯一性标识字段，通过此字段去查找数据库中的数据行 非历史模型默认 用 id 历史模型默认用 boId;


class_name: kd.hr.hbp.business.domain.model.newhismodel.api.comparediff.CompareDiffApiInputParam
method_name: setStringNullEqualsEmpty
param_types_key: boolean
signature_text: public void setStringNullEqualsEmpty(boolean stringNullEqualsEmpty)
comment:
设置 字符型字段 null与 ""或者" " 是否相等， true：相等 false: 不相等
@param `stringNullEqualsEmpty` 字符型字段 null, ""或者" " 是否相等， true：相等 false: 不相等


class_name: kd.hr.hbp.business.domain.model.newhismodel.api.HisDiscardApiBo
method_name: getEventId
signature_text: public Long getEventId()
comment:
获取 事务ID 如果有已存在的事务ID则把事务数据存到该事务ID下 批量的事务id如果有值，则单个的事务id无效
@return eventId 事务ID 如果有已存在的事务ID则把事务数据存到该事务ID下 批量的事务id如果有值，则单个的事务id无效


class_name: kd.hr.hbp.business.domain.model.newhismodel.api.HisDiscardApiBo
method_name: setEventId
param_types_key: Long
signature_text: public void setEventId(Long eventId)
comment:
设置 事务ID 如果有已存在的事务ID则把事务数据存到该事务ID下 批量的事务id如果有值，则单个的事务id无效
@param `eventId` 事务ID 如果有已存在的事务ID则把事务数据存到该事务ID下 批量的事务id如果有值，则单个的事务id无效


class_name: kd.hr.hbp.business.domain.model.newhismodel.BatchVersionChangeRespData
method_name: setVersionChangeRespDataList
param_types_key: List
comment: 设置 新的版本实体编码、数据集合 @param `versionChangeRespDataList` 新的版本实体编码、数据集合
signature_text:
public void setVersionChangeRespDataList(java.util.List<VersionChangeRespData> versionChangeRespDataList)


class_name: kd.hr.hbp.business.domain.model.newhismodel.enable.HisEnableParamBo
method_name: setMapHisAttachmentBos
param_types_key: Map
comment: 设置 处理附件信息 @param `mapHisAttachmentBos` 处理附件信息
signature_text:
public void setMapHisAttachmentBos(java.util.Map<Long, java.util.List<HisAttachmentBo>> mapHisAttachmentBos)


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisBaseBo
method_name: getDyCurrents
signature_text: public DynamicObject[] getDyCurrents()
comment:
获取 当前业务实体动态对象 boIdList与 dyCurrents共存时，优先取 dyCurrents ，不再用 dyCurrents 查询当前数据. 增加参数目的， 启用时有需求要传入修改的数据，而不是通过id去查询
@return dyCurrents 当前业务实体动态对象 boIdList与 dyCurrents共存时，优先取 dyCurrents ，不再用 dyCurrents 查询当前数据. 增加参数目的， 启用时有需求要传入修改的数据，而不是通过id去查询


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisBaseBo
method_name: setDyCurrents
param_types_key: DynamicObject[]
signature_text: public void setDyCurrents(DynamicObject[] dyCurrents)
comment:
设置 当前业务实体动态对象 boIdList与 dyCurrents共存时，优先取 dyCurrents ，不再用 dyCurrents 查询当前数据. 增加参数目的， 启用时有需求要传入修改的数据，而不是通过id去查询
@param `dyCurrents` 当前业务实体动态对象 boIdList与 dyCurrents共存时，优先取 dyCurrents ，不再用 dyCurrents 查询当前数据. 增加参数目的， 启用时有需求要传入修改的数据，而不是通过id去查询


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisTransRevocationListBo
method_name: getEventGroupNumber
signature_text: public String getEventGroupNumber()
comment:
获取 事务组编码(优先从此获取事务组， 如果为空，则从应用ID中获取配置的事务组)
@return eventGroupNumber 事务组编码(优先从此获取事务组， 如果为空，则从应用ID中获取配置的事务组)


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisTransRevocationListBo
method_name: getResisterEventGroupAppId
signature_text: public String getResisterEventGroupAppId()
comment:
获取 注册了事务组的应用ID (如果为空，则从HisTransRevocationBo中获取实体编码，获取事务组，兼容第一次提供出去的接口参数定义)
@return resisterEventGroupAppId 注册了事务组的应用ID (如果为空，则从HisTransRevocationBo中获取实体编码，获取事务组，兼容第一次提供出去的接口参数定义)


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisTransRevocationListBo
method_name: getResisterEventGroupEntityNumber
signature_text: public String getResisterEventGroupEntityNumber()
comment:
获取 注册了事务组的实体编码，没有实体注册事务，也可以通过实体所在的应用找到事务组 (如果为空，则从entityNumber获取配置的事务组 )
@return resisterEventGroupEntityNumber 注册了事务组的实体编码，没有实体注册事务，也可以通过实体所在的应用找到事务组 (如果为空，则从entityNumber获取配置的事务组 )


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisTransRevocationListBo
method_name: setEventGroupNumber
param_types_key: String
signature_text: public void setEventGroupNumber(String eventGroupNumber)
comment:
设置 事务组编码(优先从此获取事务组， 如果为空，则从应用ID中获取配置的事务组)
@param `eventGroupNumber` 事务组编码(优先从此获取事务组， 如果为空，则从应用ID中获取配置的事务组)


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisTransRevocationListBo
method_name: setListHisTransRevocationBo
param_types_key: List
comment: 设置 事务撤销bo @param `listHisTransRevocationBo` 事务撤销bo
signature_text:
public void setListHisTransRevocationBo(java.util.List<HisTransRevocationBo> listHisTransRevocationBo)


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisTransRevocationListBo
method_name: setResisterEventGroupAppId
param_types_key: String
signature_text: public void setResisterEventGroupAppId(String resisterEventGroupAppId)
comment:
设置 注册了事务组的应用ID (如果为空，则从HisTransRevocationBo中获取实体编码，获取事务组，兼容第一次提供出去的接口参数定义)
@param `resisterEventGroupAppId` 注册了事务组的应用ID (如果为空，则从HisTransRevocationBo中获取实体编码，获取事务组，兼容第一次提供出去的接口参数定义)


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisTransRevocationListBo
method_name: setResisterEventGroupEntityNumber
param_types_key: String
signature_text: public void setResisterEventGroupEntityNumber(String resisterEventGroupEntityNumber)
comment:
设置 注册了事务组的实体编码，没有实体注册事务，也可以通过实体所在的应用找到事务组 (如果为空，则从entityNumber获取配置的事务组 )
@param `resisterEventGroupEntityNumber` 注册了事务组的实体编码，没有实体注册事务，也可以通过实体所在的应用找到事务组 (如果为空，则从entityNumber获取配置的事务组 )


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisVersionParamBo
method_name: getFirstVersionIds
signature_text: public long[] getFirstVersionIds()
comment:
获取 首个复制版本ID 调用者可以自定义首个数据版本ID，如果为空，默认自动生成ID跟动态对象 hisDyns 必须顺序对应上 hisDyns 个数与 firstVersionIds 个数必须相等才生效
@return firstVersionIds 首个复制版本ID 调用者可以自定义首个数据版本ID，如果为空，默认自动生成ID跟动态对象 hisDyns 必须顺序对应上 hisDyns 个数与 firstVersionIds 个数必须相等才生效


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisVersionParamBo
method_name: getPersonalDataType
signature_text: public int getPersonalDataType()
comment:
获取 是否包含个性化数据， 1:仅包含原始数据; 0: 两种兼有，或未可知，需查库校验4 不处理;
@return personalDataType 是否包含个性化数据， 1:仅包含原始数据; 0: 两种兼有，或未可知，需查库校验4 不处理;


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisVersionParamBo
method_name: isNeedValidateDate
signature_text: public boolean isNeedValidateDate()
comment:
获取 是否需要校验时间区间是否正确. 默认需要校验。 如果用了校验器校验，则无需再次校验(中台历史模型校验器 kd.hr.hbp.opplugin.web.hismodel.validator.HisSaveValidator)
@return needValidateDate 是否需要校验时间区间是否正确. 默认需要校验。 如果用了校验器校验，则无需再次校验(中台历史模型校验器 kd.hr.hbp.opplugin.web.hismodel.validator.HisSaveValidator)


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisVersionParamBo
method_name: setCustomizedFiledValue
param_types_key: List
comment: 设置 业务自定义字段值 @param `customizedFiledValue` 业务自定义字段值
signature_text:
public void setCustomizedFiledValue(java.util.List<java.util.Map<String, Object>> customizedFiledValue)


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisVersionParamBo
method_name: setFirstVersionIds
param_types_key: long[]
signature_text: public void setFirstVersionIds(long[] firstVersionIds)
comment:
设置 首个复制版本ID 调用者可以自定义首个数据版本ID，如果为空，默认自动生成ID跟动态对象 hisDyns 必须顺序对应上 hisDyns 个数与 firstVersionIds 个数必须相等才生效
@param `firstVersionIds` 首个复制版本ID 调用者可以自定义首个数据版本ID，如果为空，默认自动生成ID跟动态对象 hisDyns 必须顺序对应上 hisDyns 个数与 firstVersionIds 个数必须相等才生效


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisVersionParamBo
method_name: setNeedValidateDate
param_types_key: boolean
signature_text: public void setNeedValidateDate(boolean needValidateDate)
comment:
设置 是否需要校验时间区间是否正确. 默认需要校验。 如果用了校验器校验，则无需再次校验(中台历史模型校验器 kd.hr.hbp.opplugin.web.hismodel.validator.HisSaveValidator)
@param `needValidateDate` 是否需要校验时间区间是否正确. 默认需要校验。 如果用了校验器校验，则无需再次校验(中台历史模型校验器 kd.hr.hbp.opplugin.web.hismodel.validator.HisSaveValidator)


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisVersionParamBo
method_name: setPersonalDataType
param_types_key: int
signature_text: public void setPersonalDataType(int personalDataType)
comment:
设置 是否包含个性化数据， 1:仅包含原始数据; 0: 两种兼有，或未可知，需查库校验4 不处理;
@param `personalDataType` 是否包含个性化数据， 1:仅包含原始数据; 0: 两种兼有，或未可知，需查库校验4 不处理;


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisVersionReviseParamBo
method_name: getReviseDys
signature_text: public DynamicObject[] getReviseDys()
comment:
获取 动态对象数组 (支持同一个实体，多条数据批量，例如个性化数据的源数据修改，可能影响多个个性化的版本，批量导入场景)
@return reviseDys 动态对象数组 (支持同一个实体，多条数据批量，例如个性化数据的源数据修改，可能影响多个个性化的版本，批量导入场景)


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisVersionReviseParamBo
method_name: setPreHisAttachmentBos
param_types_key: Map
comment: 设置 操作前的附件信息 @param `preHisAttachmentBos` 操作前的附件信息
signature_text:
public void setPreHisAttachmentBos(java.util.Map<Long, java.util.List<HisAttachmentBo>> preHisAttachmentBos)


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisVersionReviseParamBo
method_name: setReviseDys
param_types_key: DynamicObject[]
signature_text: public void setReviseDys(DynamicObject[] reviseDys)
comment:
设置 动态对象数组 (支持同一个实体，多条数据批量，例如个性化数据的源数据修改，可能影响多个个性化的版本，批量导入场景)
@param `reviseDys` 动态对象数组 (支持同一个实体，多条数据批量，例如个性化数据的源数据修改，可能影响多个个性化的版本，批量导入场景)


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisVersionReviseReturnDataBo
method_name: getReturnData
signature_text: public DynamicObject[] getReturnData()
comment:
获取 动态对象数组 (支持同一个实体，多条数据批量，例如个性化数据的源数据修改，可能影响多个个性化的版本，批量导入场景)
@return returnData 动态对象数组 (支持同一个实体，多条数据批量，例如个性化数据的源数据修改，可能影响多个个性化的版本，批量导入场景)


class_name: kd.hr.hbp.business.domain.model.newhismodel.HisVersionReviseReturnDataBo
method_name: setReturnData
param_types_key: DynamicObject[]
signature_text: public void setReturnData(DynamicObject[] returnData)
comment:
设置 动态对象数组 (支持同一个实体，多条数据批量，例如个性化数据的源数据修改，可能影响多个个性化的版本，批量导入场景)
@param `returnData` 动态对象数组 (支持同一个实体，多条数据批量，例如个性化数据的源数据修改，可能影响多个个性化的版本，批量导入场景)


class_name: kd.hr.hbp.business.openservicehelper.activity.HRActivityServiceHelper
method_name: getActivityIns
param_types_key: Map
comment: 查询单个活动实例信息 @param `requestMap` 请求参数 @return 活动实例信息
signature_text:
public static java.util.Map<String, Object> getActivityIns(java.util.Map<String, Object> requestMap)


class_name: kd.hr.hbp.business.openservicehelper.activity.HRActivityServiceHelper
method_name: getActivityInstances
param_types_key: Map
comment: 查询多个活动实例信息 @param `requestMap` 请求参数 @return 活动实例信息集合
signature_text:
public static java.util.List<java.util.Map<String, Object>> getActivityInstances(java.util.Map<String, Object> requestMap)


class_name: kd.hr.hbp.business.openservicehelper.activity.HRActivityServiceHelper
method_name: getActivityScheme
param_types_key: Map
comment: 查询活动方案信息 @param `requestMap` 请求参数 @return 活动方案信息
signature_text:
public static java.util.Map<String, Object> getActivityScheme(java.util.Map<String, Object> requestMap)


class_name: kd.hr.hbp.business.openservicehelper.activity.HRActivityServiceHelper
method_name: getLatestActivityIns
param_types_key: Map
comment: 查询最新活动实例 @param `requestMap` 请求参数 @return 活动实例
signature_text:
public static java.util.Map<String, Object> getLatestActivityIns(java.util.Map<String, Object> requestMap)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HPRIPerBankCardServiceHelper
method_name: deletePerBankCard
param_types_key: Boolean,List
comment: 删除银行卡 @param `mapList` 银行卡列表map @return true-成功，false-失败
signature_text:
public static boolean deletePerBankCard(Boolean isHasRight, java.util.List<java.util.Map<String, Object>> mapList)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIApplyServiceHelper
method_name: addEmployee
param_types_key: List
signature_text:
public static java.util.Map<String, Object> addEmployee(java.util.List<java.util.Map<String, Object>> employeeListInfo)

comment:
通过接口新增HR人员 新增员工信息示例入参格式 | 参数名 | 参数类型 | 是否必填 | 说明 | | ------------------------ | ---------------------------- | ------------ | ------------------------------------------------ | | person | Long | 是 | 自然人ID | | number | String | 是 | 工号 | | name | String | 是 | 姓名 | | phone | String | 是 | 手机号码(格式 +86-15000000000) | | oldperson | Long | 否 | 上一个自然人id | | **\\*baseinfo\\*** | ***\\*Map\\**** | 是 | ***\\*员工基本信息\\**** | | >employee | Long | 是 | 企业人ID | | >depemp | Long | 是 | 组织人ID | | >cepmp | Long | 是 | 所属管理范围ID | | >oldempnumber | String | 否 | 前工号 | | >inheritnumber | String | 否 | 是否继承工号(1:否;2:是)用于再入职相关的业务 | | >startdate | Date | 是 | 入职日期 | | >enterprise | Long | 是 | 用人单位ID | | >laborreltype | Long | 是 | 用工关系类型ID | | >laborrelstatus | Long | 是 | 用工关系状态ID | | >labrelstatusprd | Long | 是 | 用工关系阶段ID(由laborrelstatus基础资料带出) | | >isprobation | Boolean | 是 | 是否有试用期 | | >managingscope | Long | 是 | 所属管理范围ID | | >***\\*empposorgrels\\**** | ***\\*List\\**** | 是 | ***\\*任职经历\\*(目前仅支持传一条任职经历数据)*** | | >>adminorg | Long | 是 | 行政组织ID | | >>posstatus | Long | 是 | 任职状态 | | >>postype | Long | 是 | 任职类型 | | >>startdate | Date | 是 | 任期开始日期 | | >>enddate | Date | 否 | 任职结束日期(不传则默认系统最大日期2999-12-31) | | >>isprimary | Boolean | 是 | 是否主任职 | | >>position | Long | 是 | 岗位(岗位/标准岗位/职位 至少一个) | | >>stdposition | Long | 是 | 标准岗位(岗位/标准岗位/职位 至少一个) | | >>job | Long | 是 | 职位(岗位/标准岗位/职位 至少一个) | | >>workplace | Long | 否 | 工作地 | | >>variationtype | Long | 否 | 变动类型 | | ***\\*pertsprop\\**** | Map | 否 | ***\\*人员时序信息(对应人员时序性属性表)\\**** | | >healthstatus | Long | 否 | 健康状况ID | | >marriagestatus | Long | 否 | 婚姻状况ID | | >procreatstatus | Long | 否 | 生育状况ID | | >childrennumber | Int | 否 | 子女数 | | ***\\*pernontsprop\\**** | Map | 是 | ***\\*人员基本信息(对应人员非时序性属性表)\\**** | | >gender | Long | 是 | 性别ID | | >nationality | Long | 是 | 国籍ID | | >birthday | Date | 否 | 出生日期 **(在6.0版本由必填修改为非必填)** | | >folk | Long | 否 | 民族ID | | >constellation | Long | 否 | 星座ID | | >bloodtype | String | 否 | 血型 | | >height | Int | 否 | 身高(cm) | | >lunarcalendarbirthday | Date | 否 | 农历生日 | | >***\\*formername\\**** | Map | 否 | ***\\*曾用名\\*(多语言字段)*** | | >>zh_CN | String | 否 | 简体中文 | | >>zh_TW | String | 否 | 繁体中文 | | >>en_US | String | 否 | English | | >***\\*title\\**** | Map | 否 | ***\\*头衔\\*(多语言字段)*** | | >>zh_CN | String | 否 | 简体中文 | | >>zh_TW | String | 否 | 繁体中文 | | >>en_US | String | 否 | English | | >enname | String | 否 | 英文名 | | >julianbirthday | Date | 否 | 公历生日 | | >symbolicanimals | Long | 否 | 生肖ID | | >nameen | String | 否 | 拼音名 | | >nativelngname | String | 否 | 本地语言姓名 | | >displayname | String | 否 | 显示名 | | >marriageregistdate | Date | 否 | 结婚登记日期 | | ***\\*percontact\\**** | ***\\*Map\\**** | ***\\*否\\**** | ***\\*联系信息(对应人员联系方式基础页面表)\\**** | | >otherphone | String | 否 | 其他手机(格式 +86-15000000000) | | >peremail | String | 否 | 个人邮箱 | | ***\\*perregion\\**** | Map | 否 | ***\\*人员其他信息(对应人员区域信息表)\\**** | | >politicalstatus | Long | 否 | 政治面貌ID | | >party | Long | 否 | 所属党派ID | | >joinpartydate | Date | 否 | 入党日期 | | >***\\*nativeplace\\**** | Map | 否 | ***\\*籍贯\\*(多语言字段)*** | | >>zh_CN | String | 否 | 简体中文 | | >>zh_TW | String | 否 | 繁体中文 | | >>en_US | String | 否 | English | | >***\\*birthplace\\**** | Map | 否 | ***\\*出生地\\*(多语言字段)*** | | >>zh_CN | String | 否 | 简体中文 | | >>zh_TW | String | 否 | 繁体中文 | | >>en_US | String | 否 | English |
@param `employeeListInfo` 参数列表 构造见上述示例
@return 处理的返回结果 | 参数名 | 参数类型 | 说明 | | ------------ | ------------------------- | ---------------------------------------------------------- | | data | Map | 通用接口返回的保存结果 | | success | boolean | 成功的标识；true：成功；false：失败 | | errorInfoMsg | List> | 错误信息集合（校验的错误信息不包含调用保存接口的错误返回） | | successInfo | Map | 包含成功的四层人id相关的信息 |


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIApplyServiceHelper
method_name: saveEmpOrgrels
param_types_key: List
signature_text:
public static java.util.Map<String, Object> saveEmpOrgrels(java.util.List<java.util.Map<String, Object>> empOrgrels)

comment:
任职经历维护 传入的depemp 为当前系统中已存在的id则走更新;否则新增 入参示例 | 参数名 | 参数类型 | 是否必填 | 说明 | | ------------- | -------- | -------- | --------------------------------------- | | depemp | Long | 是 | 组织人ID | | number | String | 是 | 工号 | | adminorg | Long | 是 | 行政组织ID | | posstatus | Long | 是 | 任职状态ID | | postype | Long | 是 | 任职类型ID | | position | Long | 是 | 岗位ID (岗位/标准岗位/职位 至少一个) | | stdposition | Long | 是 | 标准岗位ID(岗位/标准岗位/职位 至少一个) | | job | Long | 是 | 职位ID(岗位/标准岗位/职位 至少一个) | | workplace | Long | 是 | 工作地ID | | startdate | Date | 是 | 任职开始日期 | | enddate | Date | 是 | 任职结束日期 | | isprimary | Boolean | 是 | 是否主任职 | | variationtype | Long | 否 | 变动类型 |
@param `empOrgrels` 参数列表 构造见上述示例
@return 处理的返回结果 | 参数名 | 参数类型 | 说明 | | ------------ | ------------------------- | ---------------------------------------------------------- | | data | Map | 通用接口返回的保存结果 | | success | boolean | 成功的标识；true：成功；false：失败 | | errorInfoMsg | List> | 错误信息集合（校验的错误信息不包含调用保存接口的错误返回） | | successInfo | Map | 包含成功的四层人id相关的信息 |


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIApplyServiceHelper
method_name: saveEmpentrels
param_types_key: List
signature_text:
public static java.util.Map<String, Object> saveEmpentrels(java.util.List<java.util.Map<String, Object>> empenTrels)

comment:
职业信息维护,仅支持职业信息更新,无法单独新增职业信息 入参参数结构: | 参数名 | 参数类型 | 是否必填 | 说明 | | --------------- | -------- | ------------------------------------ | -------------------------------------------- | | employee | Long | 是 | 企业人ID | | number | String | 是 | 工号 | | inheritnumber | String | 否 | 是否继承工号(1：是；2：否) | | enterprise | Long | 否 | 用人单位ID | | laborreltype | Long | 否 | 用工关系类型ID | | laborrelstatus | Long | 否 | 用工关系状态ID | | labrelstatusprd | Long | 否 (laborrelstatus如果传值，则必传) | 用工关系阶段ID(由laborrelstatus基础资料带出) | | isprobation | Boolean | 否 | 是否有试用期 | | startdate | Date | 否 | 开始日期 | | enddate | Date | 否 | 结束日期 | | adjustlength | Double | 否 | 调整年限 |
@param `empenTrels` 参数列表 构造见上述示例
@return 处理的返回结果 | 参数名 | 参数类型 | 说明 | | ------------ | ------------------------- | ---------------------------------------------------------- | | data | Map | 通用接口返回的保存结果 | | success | boolean | 成功的标识；true：成功；false：失败 | | errorInfoMsg | List> | 错误信息集合（校验的错误信息不包含调用保存接口的错误返回） | | successInfo | Map | 包含成功的四层人id相关的信息 |


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIApplyServiceHelper
method_name: savePersonInfo
param_types_key: List
signature_text:
public static java.util.Map<String, Object> savePersonInfo(java.util.List<java.util.Map<String, Object>> personInfos)

comment:
基本信息维护 更新自然人相关的信息 入参参数结构示例: | 参数名 | 参数类型 | 是否必填 | 说明 | | ---------------------- | ------------------ | ------------ | ---------------------------------------------- | | person | Long | 是 | 自然人ID | | number | String | 是 | 工号 | | name | String | 是 | 姓名 | | phone | String | 是 | 手机号码(格式 +86-15000000000) | | ***\\*pertsprop\\**** | Map | 否 | ***\\*人员时序信息(对应人员时序性属性表)\\**** | | >healthstatus | Long | 否 | 健康状况ID | | >marriagestatus | Long | 否 | 婚姻状况ID | | >procreatstatus | Long | 否 | 生育状况ID | | >childrennumber | Int | 否 | 子女数 | | ***\\*pernontsprop\\**** | Map | 是 | ***\\*人员基本信息(对应人员非时序性属性表)\\**** | | >gender | Long | 是 | 性别ID | | >nationality | Long | 是 | 国籍ID | | >birthday | Date | 否 | 出生日期 **(在6.0版本由必填修改为非必填)** | | >folk | Long | 否 | 民族ID | | >constellation | Long | 否 | 星座ID | | >bloodtype | String | 否 | 血型 | | >height | Int | 否 | 身高(cm) | | >lunarcalendarbirthday | Date | 否 | 农历生日 | | >***\\*formername\\**** | Map | 否 | ***\\*曾用名\\*(多语言字段)*** | | >>zh_CN | String | 否 | 简体中文 | | >>zh_TW | String | 否 | 繁体中文 | | >>en_US | String | 否 | English | | >***\\*title\\**** | Map | 否 | ***\\*头衔\\*(多语言字段)*** | | >>zh_CN | String | 否 | 简体中文 | | >>zh_TW | String | 否 | 繁体中文 | | >>en_US | String | 否 | English | | >enname | String | 否 | 英文名 | | >julianbirthday | Date | 否 | 公历生日 | | >symbolicanimals | Long | 否 | 生肖ID | | >nameen | String | 否 | 拼音名 | | >nativelngname | String | 否 | 本地语言姓名 | | >displayname | String | 否 | 显示名 | | >marriageregistdate | Date | 否 | 结婚登记日期 | | ***\\*percontact\\**** | ***\\*Map\\**** | ***\\*否\\**** | ***\\*联系信息(对应人员联系方式基础页面表)\\**** | | >otherphone | String | 否 | 其他手机(格式 +86-15000000000) | | >peremail | String | 否 | 个人邮箱 | | ***\\*perregion\\**** | Map | 否 | ***\\*人员其他信息(对应人员区域信息表)\\**** | | >politicalstatus | Long | 否 | 政治面貌ID | | >party | Long | 否 | 所属党派ID | | >joinpartydate | Date | 否 | 入党日期 | | >***\\*nativeplace\\**** | Map | 否 | ***\\*籍贯\\*(多语言字段)*** | | >>zh_CN | String | 否 | 简体中文 | | >>zh_TW | String | 否 | 繁体中文 | | >>en_US | String | 否 | English | | >***\\*birthplace\\**** | Map | 否 | ***\\*出生地\\*(多语言字段)*** | | >>zh_CN | String | 否 | 简体中文 | | >>zh_TW | String | 否 | 繁体中文 | | >>en_US | String | 否 | English |
@param `personInfos` 参数列表 构造见上述示例
@return 处理的返回结果 | 参数名 | 参数类型 | 说明 | | ------------ | ------------------------- | ---------------------------------------------------------- | | data | Map | 通用接口返回的保存结果 | | success | boolean | 成功的标识；true：成功；false：失败 | | errorInfoMsg | List> | 错误信息集合（校验的错误信息不包含调用保存接口的错误返回） | | successInfo | Map | 包含成功的四层人id相关的信息 |


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIChargePersonServiceHelper
method_name: queryChargeWithParentByOrgId
param_types_key: List,Date,Long
signature_text:
public java.util.Map<Long, java.util.List<java.util.Map<String, Object>>> queryChargeWithParentByOrgId(java.util.List<Long> orgIds, java.util.Date queryDate, Long structProject)

comment:
根据组织id和架构方案id查询某日期组织和父层组织负责人信息
@param `orgIds` 组织id
@param `queryDate` 查询日期
@param `structProject` 架构方案id
@return 负责人信息


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIDepempServiceHelper
method_name: changePrimaryEmpPosOrgRel
param_types_key: List
signature_text:
public static java.util.Map<String, Object> changePrimaryEmpPosOrgRel(java.util.List<java.util.Map<String, Object>> changeParams)

comment:
传入非主任职的全职任职和结束时间，修改为主任职的全职任职，将原主任职的全职任职,切换为非主任职全职任职
@param `changeParams` 参数 id :任职经历主键 depempid : 组织人id (其中id 和 depempid 传其中一个即可，都传则用id) updatedate:更新时间
@return 状态码：200：成功 201：全部数据校验异常 202：部分数据校验异常，部分成功 203：保存有误 500：程序异常


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIDepempServiceHelper
method_name: countIntersectEmpOrgrels
param_types_key: Date,Date,Map
signature_text:
public static int countIntersectEmpOrgrels(java.util.Date gteDate, java.util.Date lteDate, java.util.Map<String, Object> paramMap)

comment:
组织的编制维度更改，需全量检查该组织的人员占编情况。 查询时间交集的数据： 1.startdate >= gteDate and startdate <= lteDate or 2.startdate <= gteDate and enddate >= lteDate or 3.enddate >= gteDate and enddate <= lteDate or 4.startdate >= gteDate and enddate <= lteDate
@param `gteDate` 查询起始日期（含）
@param `lteDate` 查询截止日期（含）
@param `paramMap` :` \-- orgteamIdList 组织团队ID集合 \-- postypeIdList 任职类型ID集合 \-- postcategoryIdList 任职类型分类ID集合
@return 业务版本数据集合


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIDepempServiceHelper
method_name: listDataEmpOrgrels
param_types_key: List
comment: 获取任职信息(历史模型生效数据) @param `depempIds` 组织人id集合 @return List> 任职信息
signature_text:
public static java.util.List<java.util.Map<String, Object>> listDataEmpOrgrels(java.util.List<Long> depempIds)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIDepempServiceHelper
method_name: listEmpOrgrels
param_types_key: List
comment: 获取任职信息 @param `depempIds` 组织人id集合 @return List>
signature_text:
public static java.util.List<java.util.Map<String, Object>> listEmpOrgrels(java.util.List<Long> depempIds)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIDepempServiceHelper
method_name: listEmpersonByDutyworkroles
param_types_key: List
signature_text:
public static java.util.List<java.util.Map<String, Object>> listEmpersonByDutyworkroles(java.util.List<Long> dutyworkrolesIdList)

comment:
根据职责分工角色ID查询目前该职责分工角色上的人员信息
@param `dutyworkrolesIdList` 职责分工角色ID列表
@return List> 人员信息：头像、姓名、工号、年龄、性别、工龄、司龄、职级、任职类型、岗位


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIDepempServiceHelper
method_name: listIntersectEmpOrgrels
param_types_key: Date,Date,Map,Long,int
signature_text:
public static java.util.List<java.util.Map<String, Object>> listIntersectEmpOrgrels(java.util.Date gteDate, java.util.Date lteDate, java.util.Map<String, Object> paramMap, Long id, int top)

comment:
组织的编制维度更改，需全量检查该组织的人员占编情况。 查询时间交集的数据： 1.startdate >= gteDate and startdate <= lteDate or 2.startdate <= gteDate and enddate >= lteDate or 3.enddate >= gteDate and enddate <= lteDate or 4.startdate >= gteDate and enddate <= lteDate
@param `gteDate` 查询起始日期（含）
@param `lteDate` 查询截止日期（含）
@param `paramMap` :` \-- orgteamIdList 组织团队ID集合 \-- postypeIdList 任职类型ID集合
@param `id` ID的大于条件
@param `top` 查询条数
@return List> 业务版本数据集合


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIEmployeeServiceHelper
method_name: countEmpentrelByByTypeclsAndStatusCls
param_types_key: List,List
signature_text:
public static int countEmpentrelByByTypeclsAndStatusCls(java.util.List<Long> labreltypeclsList, java.util.List<Long> labrelstatusclsList)

comment:
根据用工关系类型分类和用工关系状态分类查询生效的职业信息数
@param `labreltypeclsList` 用工关系类型分类ID列表（必填）
@param `labrelstatusclsList` 用工关系状态分类ID列表（必填）
@return int 生效的职业信息数


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIEmployeeServiceHelper
method_name: getEmployeeStatus
param_types_key: List
comment: 获取用工状态信息 @param `employeeIds` 企业人id集合 @return Map 用工状态信息
signature_text:
public static java.util.Map<Long, DynamicObject> getEmployeeStatus(java.util.List<Long> employeeIds)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIEmployeeServiceHelper
method_name: getOrgHisPerson
param_types_key: Date,List
comment: 组织结构图显示当前和历史时间的岗位下的人员数 @param `queryDate` 查询日期 @param `positionIds` 岗位id @return List> 查询到的人员信息
signature_text:
public static java.util.List<java.util.Map<String, Object>> getOrgHisPerson(java.util.Date queryDate, java.util.List<Long> positionIds)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIEmployeeServiceHelper
method_name: listBatchEmployeeAttachs
param_types_key: List,QFilter,String
signature_text:
public static java.util.List<java.util.Map<String, Object>> listBatchEmployeeAttachs(java.util.List<Long> employeeIds, QFilter qFilter, String attachEntityName)

comment:
批量获取企业人附表信息
@param `employeeIds` 企业人id集合
@param `qFilter` 自定义条件
@param `attachEntityName`
@return List>


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIEmployeeServiceHelper
method_name: listBatchEmployeeByPerson
param_types_key: List,QFilter,String
signature_text:
public static java.util.List<java.util.Map<String, Object>> listBatchEmployeeByPerson(java.util.List<Long> personIds, QFilter qFilter, String attachEntityName)

comment:
通过自然人批量获取企业人附表信息
@param `personIds` 自然人id
@param `qFilter`
@param `attachEntityName`
@return List> 企业人附表信息


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIEmployeeServiceHelper
method_name: listBatchPropEmployeeAttachs
param_types_key: List,String,String
comment: 企业人附表 @param `employeeIds` 企业人id @param `selectProps` @param `attachEntityName` @return List> 企业人附表
signature_text:
public static java.util.List<java.util.Map<String, Object>> listBatchPropEmployeeAttachs(java.util.List<Long> employeeIds, String selectProps, String attachEntityName)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIEmployeeServiceHelper
method_name: listEmpentrelByByTypeclsAndStatusCls
param_types_key: List,List,int,int
signature_text:
public static java.util.List<java.util.Map<String, Object>> listEmpentrelByByTypeclsAndStatusCls(java.util.List<Long> labreltypeclsList, java.util.List<Long> labrelstatusclsList, int start, int limit)

comment:
根据用工关系类型分类和用工关系状态分类查询生效的职业信息
@param `labreltypeclsList` 用工关系类型分类ID列表（必填）
@param `labrelstatusclsList` 用工关系状态分类ID列表（必填）
@param `start` 分页条件
@param `limit` 分页条件
@return List> 生效的职业信息


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIEmployeeServiceHelper
method_name: listEmployeeAttachs
param_types_key: Long,String
comment: 企业人附表 @param `employeeId` 企业人id @param `attachEntityName` @return List> 企业人附表
signature_text:
public static java.util.List<java.util.Map<String, Object>> listEmployeeAttachs(Long employeeId, String attachEntityName)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIEmployeeServiceHelper
method_name: listEmployees
param_types_key: List
comment: 获取企业人信息 @param `employeeIds` 企业人id集合 @return 企业人信息
signature_text:
public static java.util.List<java.util.Map<String, Object>> listEmployees(java.util.List<Long> employeeIds)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIEmployeeServiceHelper
method_name: listEmployeesByNumber
param_types_key: List
comment: 工号查询企业人 @param `numbers` 工号集合 @return List> 企业人
signature_text:
public static java.util.List<java.util.Map<String, Object>> listEmployeesByNumber(java.util.List<String> numbers)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIOrgWorkFlowServiceHelper
method_name: getLeaderId
param_types_key: List,String,String,Map
signature_text:
public static java.util.List<Long> getLeaderId(java.util.List<Long> referencePersons, String businessKey, String entityNumber, java.util.Map<String, Object> params)

comment:
负责人
@param `referencePersons`
@param `businessKey`
@param `entityNumber`
@param `params`
@return List 负责人id集合


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIOrgWorkFlowServiceHelper
method_name: getSuperiorLeaderId
param_types_key: List,String,String,Map
signature_text:
public static java.util.List<Long> getSuperiorLeaderId(java.util.List<Long> referencePersons, String businessKey, String entityNumber, java.util.Map<String, Object> params)

comment:
上级负责人
@param `referencePersons`
@param `businessKey`
@param `entityNumber`
@param `params`
@return List 上级负责人id集合


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonGenericServiceHelper
method_name: saveBatch
param_types_key: Map
signature_text: public static java.util.Map<String, Object> saveBatch(java.util.Map<String, Object> paramMap)
comment:
批量保存接口，默认将校验通过的数据进行写入
{
"caller": 调用方来源：initialize-初始化，hfps-事物变动
"mustAllSuccess": 允许部分成功标记：true-全部成功，false-部分成功
"eventId": 事物ID-批量接口的所有数据都放在这一个事物里,
"data": [
{  // 第一个需要保存的对象
"hisDyns": [{  // hisDyns = DynamicObjectCollection数据类型
"bsed": 版本计划生效日期（时序性历史实体）,
"bsled": 版本计划失效日期（时序性历史实体）,
"id": 主键,
"boid": 业务主键（如果是更新数据需要传，否则默认新增）
...(业务字段)
}]
},
{  // 第二个需要保存的对象
"hisDyns": [{
"bsed": 版本计划生效日期（时序性历史实体）,
"bsled": 版本计划失效日期（时序性历史实体）,
"id": 主键,
"boid": 业务主键（如果是更新数据需要传，否则默认新增）
...(业务字段)
}]
},
{...}
]
}
{
"success": 是否成功标记：true-接口全部成功，false-接口执行失败，包括数据校验失败、写入失败等异常场景
"message": 返回信息说明
"data": [
{
"code": 200, // 历史模型接口返回成功编码
"errorMessage": 历史模型接口返回错误信息
"data" : {
"eventId": 事物ID，
"versionChangeRespDataList": [
{
"eventId": 事物ID,
"entityNumber": 实体编码
"newDynamicObjects": [新的版本数据] // dynamicObject数组
}
]
}
}
],
"errInfos": [
{
"entityNumber": 实体编码,
"exceptionMessage": 实体操作异常返回的错误信息（不能精确到哪一条数据）
"errorDatas": [
{
"id": 主键ID,
"errMsg": 错误信息。
}
]
}
]
}
@param `paramMap` 保存数据的入参
@return Map 保存结果


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: checkPerson
param_types_key: List
comment: 校验是否存在指定人员的信息 @param `checkList` @return List>
signature_text:
public static java.util.List<java.util.Map<String, Object>> checkPerson(java.util.List<java.util.Map<String, Object>> checkList)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: checkPersonByOpt
param_types_key: List,String
signature_text:
public static java.util.List<java.util.Map<String, Object>> checkPersonByOpt(java.util.List<java.util.Map<String, Object>> checkList, String queryType)

comment:
校验员工是否存在 查询bos或者hr
@param `checkList` 查询信息
@param `queryType` 查询类型 0:所有包括平台和hr，1：只校验bos,2:只校验hr
@return 成功失败


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: getAllUsersOfDutyworkroles
param_types_key: String,List
signature_text:
public static java.util.Map<Long, java.util.Set<Long>> getAllUsersOfDutyworkroles(String posType, java.util.List<Long> dutyworkrolesIds)

comment:
获取指定职责分工角色下人员信息
@param `posType` 1：1：获取全部类型； 其他：根据传入的任职类型编码查询
@param `dutyworkrolesIds` 职责分工角色ids
@return 员工信息集合


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: getAllUsersOfOrg
param_types_key: String,List,boolean
signature_text:
public static java.util.Map<Long, java.util.Set<Long>> getAllUsersOfOrg(String posType, java.util.List<Long> orgIds, boolean includeSubOrg)

comment:
获取指定组织下所有生效的人员信息
@param `posType` 1：获取全部类型； 其他：根据传入的任职类型编码查询
@param `orgIds` 组织IDS
@param `includeSubOrg` 是否包含下级
@return Map>


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: getAllUsersOfOrgteam
param_types_key: String,List,boolean
signature_text:
public static java.util.Map<Long, java.util.Set<Long>> getAllUsersOfOrgteam(String posType, java.util.List<Long> orgteamIds, boolean includeSubOrg)

comment:
获取指定组织团队下所有生效的人员信息
@param `posType` 1：获取全部类型； 其他：根据传入的任职类型编码查询
@param `orgteamIds` 组织团队IDS
@param `includeSubOrg` 是否包含下级
@return Map>


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: getAllUsersOfPosition
param_types_key: String,List
signature_text:
public static java.util.Map<Long, java.util.Set<Long>> getAllUsersOfPosition(String posType, java.util.List<Long> positionIds)

comment:
获取指定岗位下人员信息
@param `posType` 1：1：获取全部类型； 其他：根据传入的任职类型编码查询
@param `positionIds` 岗位ids
@return Map> 员工信息集合


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: getPersonByOrgs
param_types_key: List,Date
comment: 获取当前组织下在职人员信息 @param `adminOrgIds` 行政组织Id @return List> 当前组织下在职人员信息
signature_text:
public static java.util.List<java.util.Map<String, Object>> getPersonByOrgs(java.util.List<Long> adminOrgIds, java.util.Date queryDate)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: getPersonByOrgteams
param_types_key: List,Date
comment: 获取当前组织团队下在职人员信息 @param `orgteamIds` 组织团队Id @return List> 当前组织团队下在职人员信息
signature_text:
public static java.util.List<java.util.Map<String, Object>> getPersonByOrgteams(java.util.List<Long> orgteamIds, java.util.Date queryDate)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: getPersonChargeInfo
param_types_key: List,Date
comment: 主负责人信息 @param `adminOrgIds` 组织 @param `queryDate` 查询日期 @return List>
signature_text:
public static java.util.List<java.util.Map<String, Object>> getPersonChargeInfo(java.util.List<Long> adminOrgIds, java.util.Date queryDate)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: getPersonCountAndChargeInfo
param_types_key: List,Date
comment: 获取当前组织下在职人员信息数量和负责人信息 @param `adminOrgIds` 行政组织Id @return List>
signature_text:
public static java.util.List<java.util.Map<String, Object>> getPersonCountAndChargeInfo(java.util.List<Long> adminOrgIds, java.util.Date queryDate)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: getUserIdByPersonInfo
param_types_key: Map
comment: 通过自然人或者企业人id查询系统用户 @return 系统用户
signature_text:
public static java.util.Map<String, Object> getUserIdByPersonInfo(java.util.Map<String, java.util.List<Long>> idMaps)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: isBelongOrg
param_types_key: Long,Long,boolean
signature_text: public static boolean isBelongOrg(Long personId, Long orgId, boolean checkSubOrg)
comment:
主任职部门是否属于指定行政组织
@param `personId` 人员ID
@param `orgId` 行政组织ID
@param `checkSubOrg` 是否校验下级
@return boolean 是否属于指定行政组织


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: listBatchPersonAttachs
param_types_key: List,QFilter,String
comment: 获取指定自然人附表信息 @param `personIds` @param `qFilter` @param `attachEntityName` @return List> 自然人附表信息
signature_text:
public static java.util.List<java.util.Map<String, Object>> listBatchPersonAttachs(java.util.List<Long> personIds, QFilter qFilter, String attachEntityName)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: listBatchPropHisPersonAttachs
param_types_key: List,String,QFilter,String
comment: 获取指定自然人附表信息 @param `personIds` @param `qFilter` @param `attachEntityName` @return List>
signature_text:
public static java.util.List<java.util.Map<String, Object>> listBatchPropHisPersonAttachs(java.util.List<Long> personIds, String selectProps, QFilter qFilter, String attachEntityName)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: listBatchPropPersonAttachs
param_types_key: List,String,QFilter,String
comment: 获取指定自然人附表信息 @param `personIds` @param `qFilter` @param `attachEntityName` @return List>
signature_text:
public static java.util.List<java.util.Map<String, Object>> listBatchPropPersonAttachs(java.util.List<Long> personIds, String selectProps, QFilter qFilter, String attachEntityName)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: listEmpposorgrels
param_types_key: String,List
comment: 根据任职类型批量获取人员的全部任职信息 @param `postType` 任职类型 @param `personIds` 自然人ids @return List> 任职信息
signature_text:
public static java.util.List<java.util.Map<String, Object>> listEmpposorgrels(String postType, java.util.List<Long> personIds)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: listPersonAttachs
param_types_key: Long,String
comment: 获取指定自然人附表信息 @param `personId` 自然人id @return List> 附表信息
signature_text:
public static java.util.List<java.util.Map<String, Object>> listPersonAttachs(Long personId, String attachEntityName)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: listPersonInfos
param_types_key: List
comment: 批量获取人员基本信息 @param `personIds` 人员ids @return List> 人员基本信息集合
signature_text:
public static java.util.List<java.util.Map<String, Object>> listPersonInfos(java.util.List<Long> personIds)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: listPersonModelIds
param_types_key: Long,Boolean
comment: 获取人员模型ID @param `personId` 人员id @param `isAll` 是否获取全部(包含业务状态为已失效) @return List> 人员的各层模型ID
signature_text:
public static java.util.List<java.util.Map<String, Long>> listPersonModelIds(Long personId, Boolean isAll)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: saveOrUpdateInfo
param_types_key: Map
comment: 批量保存人员附表信息 @param `attachMap` @return Map
signature_text:
public static java.util.Map<String, Object> saveOrUpdateInfo(java.util.Map<String, DynamicObjectCollection> attachMap)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: saveTempAttachments
param_types_key: String,Object,String,Map
comment: 附件保存 @param `formId` @param `pkId` @param `appid` @param `att` @return DynamicObjectCollection
signature_text:
public static DynamicObjectCollection saveTempAttachments(String formId, Object pkId, String appid, java.util.Map<String, Object> att)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: syncPersonToSysUer
param_types_key: List
comment: HR人员同步平台 @param `userList` 用户信息 map的key 为工号、同步类型 @return Map
signature_text:
public static java.util.Map<String, Object> syncPersonToSysUer(java.util.List<java.util.Map<String, Object>> userList)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIPersonServiceHelper
method_name: updateLaborRelRecord
param_types_key: List
signature_text:
public static java.util.Map<String, Object> updateLaborRelRecord(java.util.List<java.util.Map<String, Object>> updateList)

comment:
更新用工关系记录
@param `updateList` ` personid:自然人id orgid:用工组织id lawentityid:法律实体id startdate：开始日期
@return Map 成功失败


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIWorkRoleServiceHelper
method_name: addSuperior
param_types_key: List
signature_text:
public static java.util.List<java.util.Map<String, Object>> addSuperior(java.util.List<java.util.Map<String, Object>> addSuperiorList)

comment:
新增汇报关系
@param `addSuperiorList` 汇报关系数据
@return HrApiResponse> code： 200成功 202：部分校验失败 success：true、false data:错误信息


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIWorkRoleServiceHelper
method_name: delSuperior
param_types_key: List
signature_text:
public static java.util.List<java.util.Map<String, Object>> delSuperior(java.util.List<java.util.Map<String, Object>> delSuperiorList)

comment:
删除汇报关系
@param `delSuperiorList` 汇报关系数据
@return HrApiResponse> code： 200成功 202：部分校验失败 success：true、false data:错误信息


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIWorkRoleServiceHelper
method_name: expireSuperior
param_types_key: List
signature_text:
public static java.util.List<java.util.Map<String, Object>> expireSuperior(java.util.List<java.util.Map<String, Object>> expireSuperiorList)

comment:
失效汇报关系
@param `expireSuperiorList` 汇报关系数据
@return HrApiResponse> code： 200成功 202：部分校验失败 success：true、false data:错误信息


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIWorkRoleServiceHelper
method_name: getDirectSuperior
param_types_key: List
comment: 综合查询汇报人上级 @param `personIds` 自然人id @return Map>> 汇报人上级
signature_text:
public static java.util.Map<Long, java.util.List<java.util.Map<String, Object>>> getDirectSuperior(java.util.List<Long> personIds)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIWorkRoleServiceHelper
method_name: getDirectSuperiorByDepempId
param_types_key: List
comment: 通过组织人综合查询汇报人上级 @param `depempIds` 组织人 @return Map>> 汇报人上级
signature_text:
public static java.util.Map<Long, java.util.List<java.util.Map<String, Object>>> getDirectSuperiorByDepempId(java.util.List<Long> depempIds)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIWorkRoleServiceHelper
method_name: getMainChargeByOrg
param_types_key: List
comment: 获取生效中行政组织主负责人信息 @param `orgIdList` 组织集合 @return List> 生效中行政组织主负责人信息
signature_text:
public static java.util.List<java.util.Map<String, Object>> getMainChargeByOrg(java.util.List<Long> orgIdList)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIWorkRoleServiceHelper
method_name: getMainChargeInfoByOrg
param_types_key: List,Date
comment: 根据查询时间获取行政组织主负责人信息 @param `orgIdList` 组织集合 @return List> 行政组织主负责人信息
signature_text:
public static java.util.List<java.util.Map<String, Object>> getMainChargeInfoByOrg(java.util.List<Long> orgIdList, java.util.Date queryDate)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIWorkRoleServiceHelper
method_name: getSuperiorByOrg
param_types_key: List
comment: 上级行政组织汇报人 @param `orgIds` 行政组织 @return List> 上级行政组织汇报人
signature_text:
public static java.util.List<java.util.Map<String, Object>> getSuperiorByOrg(java.util.List<Long> orgIds)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIWorkRoleServiceHelper
method_name: getSuperiorByRole
param_types_key: List
comment: 查找上级工作角色的汇报人 @param `roles` 角色id集合 @return List> 上级工作角色的汇报人
signature_text:
public static java.util.List<java.util.Map<String, Object>> getSuperiorByRole(java.util.List<Long> roles)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIWorkRoleServiceHelper
method_name: listSuperiorByOrg
param_types_key: List
comment: 上级工作角色汇报人 @param `roleIds` 角色id @return Map>> 上级工作角色汇报人
signature_text:
public static java.util.Map<Long, java.util.List<java.util.Map<String, Object>>> listSuperiorByOrg(java.util.List<Long> roleIds)


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPIWorkRoleServiceHelper
method_name: updateSuperior
param_types_key: List
signature_text:
public static java.util.List<java.util.Map<String, Object>> updateSuperior(java.util.List<java.util.Map<String, Object>> updateSuperiorList)

comment:
变更汇报关系
@param `updateSuperiorList` 汇报关系数据
@return HrApiResponse> code： 200成功 202：部分校验失败 success：true、false data:错误信息


class_name: kd.hr.hbp.business.openservicehelper.hrpi.HRPTMMServiceHelper
method_name: listTeamMemberRole
param_types_key: Map
comment: 根据人员的企业人id，查询出对应人员的所有项目团队任职履历信息 @param `inParam` 请求参数，企业人id集合 @return 任职履历详情
signature_text:
public static java.util.Map<String, Object> listTeamMemberRole(java.util.Map<String, Object> inParam)


class_name: kd.hr.hbp.business.openservicehelper.msgcollaboration.HRMsgCollaborationServiceHelper
method_name: getDataBySub
param_types_key: Long,QFilter,String
comment: 订阅方通过中台获取消息变动信息 @param `apiId` api id @param `qFilter` 过滤器 @param `orderBy` 排序 @return 人员信息
signature_text:
public static java.util.List<java.util.Map<String, Object>> getDataBySub(Long apiId, QFilter qFilter, String orderBy)


class_name: kd.hr.hbp.business.openservicehelper.msgcollaboration.HRMsgCollaborationServiceHelper
method_name: getMsgCenterInfo
param_types_key: String,long
signature_text:
public static java.util.List<java.util.Map<String, Object>> getMsgCenterInfo(String msgNumber, long actionId)

comment:
根据消息中心编号获取消息中心消费者消费反馈信息
@param `msgNumber` :` 消息中心编号
@param `actionId` :` 活动id
@return 消息中心消费者消息反馈信息


class_name: kd.hr.hbp.business.openservicehelper.msgcollaboration.HRMsgCollaborationServiceHelper
method_name: getMsgCenterListInfo
param_types_key: List
comment: 根据消息中心编号获取消息中心消费者消费反馈信息 @param `paramsList` 消息编号和活动id列表 @return 消息中心消费者消息反馈信息
signature_text:
public static java.util.List<java.util.Map<String, Object>> getMsgCenterListInfo(java.util.List<java.util.Map<String, Object>> paramsList)


class_name: kd.hr.hbp.business.openservicehelper.msgcollaboration.HRMsgCollaborationServiceHelper
method_name: publishAction
param_types_key: Map
signature_text: public static void publishAction(java.util.Map<String, Object> actionInfo)
comment:
业务领域将需要协作的活动信息推送至中台服务 （1）校验活动的合法性 （2）根据活动信息获取活动发布信息、活动订阅信息 （3）将活动信息、活动发布信息推送消息中心 （3）将活动信息、活动发布信息、活动订阅信息均写入生产者队列 将发布者需要发送给订阅方的消息通过MQ发送到中台
@param `actionInfo` 活动信息


class_name: kd.hr.hbp.business.openservicehelper.msgcollaboration.HRMsgCollaborationServiceHelper
method_name: publishAction
param_types_key: List
comment: 将发布者需要发送给订阅方的消息，以批量方式通过MQ发送到中台 @param `actionInfoList` : @return 消息发送结果
signature_text:
public static HRMSendMsgResult publishAction(java.util.List<java.util.Map<String, Object>> actionInfoList)


class_name: kd.hr.hbp.business.openservicehelper.msgcollaboration.HRMsgCollaborationServiceHelper
method_name: updateConsumeMsgInfo
param_types_key: Map
signature_text: public static void updateConsumeMsgInfo(java.util.Map<String, Object> consumeMsgMap)
comment:
将消费方反馈的消费信息更新到消费中心的消息中
@param `consumeMsgMap` :反馈的消费信息(msgCenterId:消息中心id,businessTypeId:业务类型id,consumeMsg:消费方反馈的文本消息,handleStatus:消费方业务处理的状态)


class_name: kd.hr.hbp.business.openservicehelper.odc.AdminOrgServiceHelper
method_name: addAdminOrg
param_types_key: ArrayList
comment: 行政组织 - 新增 @param `adminOrgs` @return resultMap
signature_text:
public static java.util.Map<String, Object> addAdminOrg(java.util.ArrayList<DynamicObject> adminOrgs)


class_name: kd.hr.hbp.business.openservicehelper.odc.AdminOrgServiceHelper
method_name: adminOrgInfoQuery
param_types_key: List,Date
comment: 行政组织基本信息查询（按照BOID） @param `orgIdList` 业务组织 BOID @param `date` 查询日期
signature_text:
public static java.util.Map<String, java.util.Map<String, Object>> adminOrgInfoQuery(java.util.List<Long> orgIdList, java.util.Date date)


class_name: kd.hr.hbp.business.openservicehelper.odc.AdminOrgServiceHelper
method_name: disable
param_types_key: List,Long,Date
comment: 行政组织 - 禁用 @param `idList` 行政组织BOID @param `buId` 业务组织 @param `effectDate` 生效日期
signature_text:
public static java.util.Map<String, Object> disable(java.util.List<Long> idList, Long buId, java.util.Date effectDate)


class_name: kd.hr.hbp.business.openservicehelper.odc.AdminOrgServiceHelper
method_name: enable
param_types_key: List,Long,Date
comment: 行政组织 - 启用 @param `idList` 行政组织BOID @param `buId` 业务组织 @param `effectDate` 生效日期
signature_text:
public static java.util.Map<String, Object> enable(java.util.List<Long> idList, Long buId, java.util.Date effectDate)


class_name: kd.hr.hbp.business.openservicehelper.odc.AdminOrgServiceHelper
method_name: getAdminOrgInfoByNumber
param_types_key: List,Date
comment: 行政组织基本信息查询（按照编码） @param `orgNumberList` 行政组织编码 @param `date` 查询日期
signature_text:
public static java.util.Map<String, java.util.Map<String, Object>> getAdminOrgInfoByNumber(java.util.List<String> orgNumberList, java.util.Date date)


class_name: kd.hr.hbp.business.openservicehelper.odc.AdminOrgServiceHelper
method_name: getAdminOrgInfoByNumber
param_types_key: List,List,Integer,Date
signature_text:
public static java.util.Map<String, java.util.Map<String, Object>> getAdminOrgInfoByNumber(java.util.List<Long> orgIds, java.util.List<String> orgNumbers, Integer level, java.util.Date date)

comment:
根据boId或编码查询指定层级的组织信息
@param `orgIds` 组织boId
@param `orgNumbers` 组织编码
@param `level` 指定层级
@param `date` 查询日期
@return 组织信息


class_name: kd.hr.hbp.business.openservicehelper.odc.AdminOrgServiceHelper
method_name: merge
param_types_key: DynamicObject,List,Map
signature_text:
public static java.util.Map<String, Object> merge(DynamicObject billDy, java.util.List<DynamicObject> dyList, java.util.Map<String, DynamicObject> mergeMap)

comment:
组织合并接口
@param `billDy` 单据对象
@param `dyList` 需要新增，信息变更，上级调整的动态对象
@param `mergeMap` key为合并后组织编码，value为合并组织动态对象


class_name: kd.hr.hbp.business.openservicehelper.permission.HRPermissionServiceHelper
method_name: getAuthorizedAdminOrgSet
param_types_key: Long,String,String,String,String
signature_text:
public static AuthorizedOrgResult getAuthorizedAdminOrgSet(Long userId, String appId, String entityNumber, String permItemId, String propKey)

comment:
获取列表上有权限的行政组织范围，ID明细列表
@param `userId` :用户ID
@param `appId` :应用ID
@param `entityNumber` :实体编码
@param `permItemId` :权限项，可参考PermissionStatus
@param `propKey` :属性key
@return 有权限的组织结果集


class_name: kd.hr.hbp.business.openservicehelper.permission.HRPermissionServiceHelper
method_name: getAuthorizedAdminOrgsF7
param_types_key: Long,String,String,String,String
signature_text:
public static AuthorizedOrgResult getAuthorizedAdminOrgsF7(Long userId, String appId, String entityNumber, String permItemId, String propKey)

comment:
获取F7上有权限的行政组织范围，ID明细列表
@param `userId` 用户ID
@param `appId` 应用ID
@param `entityNumber` 实体编码
@param `permItemId` 权限项
@param `propKey` 基础资料属性key
@return 有权限的组织结果集


class_name: kd.hr.hbp.business.openservicehelper.permission.HRPermissionServiceHelper
method_name: getAuthorizedAdminOrgsF7WithSubInfo
param_types_key: Long,String,String,String,String
signature_text:
public static AuthorizedOrgResultWithSub getAuthorizedAdminOrgsF7WithSubInfo(Long userId, String appId, String entityNumber, String permItemId, String propKey)

comment:
获取F7上有权限的行政组织范围，带包含下级信息
@param `userId` 用户ID
@param `appId` 应用ID
@param `entityNumber` 实体编码
@param `permItemId` 权限项
@param `propKey` 基础资料属性key
@return 有权限的组织结果集


class_name: kd.hr.hbp.business.openservicehelper.permission.HRPermissionServiceHelper
method_name: getAuthorizedAdminOrgsWithSub
param_types_key: Long,String,String,String,String
signature_text:
public static AuthorizedOrgResultWithSub getAuthorizedAdminOrgsWithSub(Long userId, String appId, String entityNumber, String permItemId, String propKey)

comment:
获取列表上有权限的行政组织范围，带包含下级信息
@param `userId` 用户ID
@param `appId` 应用ID
@param `entityNumber` 实体编码
@param `permItemId` 权限项
@param `propKey` 基础资料属性key
@return 有权限的组织结果集


class_name: kd.hr.hbp.business.openservicehelper.permission.HRPermissionServiceHelper
method_name: getAuthorizedOrgTeams
param_types_key: Long,String,String,String,String
signature_text:
public AuthorizedOrgTeamResult getAuthorizedOrgTeams(Long userId, String appId, String entityNumber, String permItemId, String propKey)

comment:
获取列表上有权限的组织团队，ID明细列表
@param `userId` :用户ID
@param `appId` :应用ID
@param `entityNumber` :实体编码
@param `permItemId` :权限项
@param `propKey` :f7属性key
@return 有权限的组织结果集


class_name: kd.hr.hbp.business.openservicehelper.permission.HRPermissionServiceHelper
method_name: getAuthorizedOrgTeamsF7
param_types_key: Long,String,String,String,String
signature_text:
public AuthorizedOrgTeamResult getAuthorizedOrgTeamsF7(Long userId, String appId, String entityNumber, String permItemId, String propKey)

comment:
获取F7上有权限的组织团队, ID明细列表
@param `userId` :用户ID
@param `appId` :应用ID
@param `entityNumber` :实体编码
@param `permItemId` :权限项
@param `propKey` :f7属性key
@return 有权限的组织结果集


class_name: kd.hr.hbp.business.openservicehelper.permission.HRPermissionServiceHelper
method_name: userAssignRole
param_types_key: Long,String,Date,Date,boolean,Map,Long
signature_text:
public HrApiResponse userAssignRole(Long userId, String roleNumber, java.util.Date validStart, java.util.Date validEnd, boolean isCustomData, java.util.Map<Long, UserBucaPermDataParam> bucaPermData, Long creatorId)

comment:
用户分配角色（不包含高级配置及字段权限）
@param `userId` 用户id
@param `roleNumber` 角色编码
@param `validStart` 有效期开始日期
@param `validEnd` 有效期结束日期
@param `isCustomData` 用户是否自定义范围
@param `bucaPermData` 用户是否自定义范围
@param `creatorId` 业务管理视图id：职能数据范围
@return 操作返回结果


class_name: kd.hr.hbp.business.openservicehelper.prompt.PromptServiceHelper
method_name: queryPromptContent
param_types_key: String,String,DynamicObject
signature_text:
public static java.util.List<String> queryPromptContent(String entityId, String controlKey, DynamicObject dataModel)

comment:
根据当前控件及数据模型获取对应规则下的提示语
@param `entityId` 实体编码
@param `controlKey` 控件编码
@param `dataModel` 动态对象
@return 符合条件的提示语内容


class_name: kd.hr.hbp.business.openservicehelper.prompt.PromptServiceHelper
method_name: queryPromptForString
param_types_key: String,String,DynamicObject
signature_text:
public static java.util.List<String> queryPromptForString(String entityId, String controlKey, DynamicObject dataModel)

comment:
查询规则下提示语纯文本内容
@param `entityId` 实体编码
@param `controlKey` 控件标识
@param `dataModel` 数据对象
@return 提示语Map集合


class_name: kd.hr.hbp.business.openservicehelper.prompt.PromptServiceHelper
method_name: queryPromptIdAndContent
param_types_key: String,String,DynamicObject
signature_text:
public static java.util.Map<Long, String> queryPromptIdAndContent(String entityId, String controlKey, DynamicObject dataModel)

comment:
查询规则下提示语id和内容
@param `entityId` 实体编码
@param `controlKey` 控件标识
@param `dataModel` 数据对象
@return 提示语Map集合


class_name: kd.hr.hbp.business.openservicehelper.ruleengine.RuleEngineServiceHelper
method_name: addPolicyWithStatus
param_types_key: Map
comment: 新增一个策略 @param `policyMap` 策略 @return 结果
signature_text:
public static java.util.Map<String, Object> addPolicyWithStatus(java.util.Map<String, Object> policyMap)


class_name: kd.hr.hbp.business.openservicehelper.ruleengine.RuleEngineServiceHelper
method_name: batchAddPolicyWithStatus
param_types_key: List
comment: 批量新增策略 @param `policyMapList` 策略列表 @return 结果
signature_text:
public static java.util.Map<String, Object> batchAddPolicyWithStatus(java.util.List<java.util.Map<String, Object>> policyMapList)


class_name: kd.hr.hbp.business.openservicehelper.ruleengine.RuleEngineServiceHelper
method_name: batchCallRuleEngine
param_types_key: List
signature_text:
public static java.util.List<java.util.Map<String, Object>> batchCallRuleEngine(java.util.List<java.util.Map<String, Object>> requestMapList)

comment:
批量执行规则引擎
@param `requestMapList` 请求参数列表
@return 执行结果列表（如果出参中有配置动态对象会转换为动态对象，调用方可以直接用DynamicObject；如果没有配置动态对象，则不会有任何转换）


class_name: kd.hr.hbp.business.openservicehelper.ruleengine.RuleEngineServiceHelper
method_name: batchModifyPolicyWithStatus
param_types_key: List
comment: 批量修改策略 @param `policyMapList` 策略列表 @return 结果
signature_text:
public static java.util.Map<String, Object> batchModifyPolicyWithStatus(java.util.List<java.util.Map<String, Object>> policyMapList)


class_name: kd.hr.hbp.business.openservicehelper.ruleengine.RuleEngineServiceHelper
method_name: callRuleEngine
param_types_key: Map
signature_text:
public static java.util.Map<String, Object> callRuleEngine(java.util.Map<String, Object> requestMap)

comment:
根据输入参数，单次执行规则引擎
@param `requestMap` 请求参数
@return 执行结果（如果出参中有配置动态对象会转换为动态对象，调用方可以直接用DynamicObject；如果没有配置动态对象，则不会有任何转换）


class_name: kd.hr.hbp.business.openservicehelper.ruleengine.RuleEngineServiceHelper
method_name: callRuleEngineForOriginal
param_types_key: Map
comment: 根据输入参数，单次执行规则引擎 @param `requestMap` 请求参数 @return 执行原始结果（如果出参中有配置动态对象不会转换，需要调用方自己转换为DynamicObject）
signature_text:
public static java.util.Map<String, Object> callRuleEngineForOriginal(java.util.Map<String, Object> requestMap)


class_name: kd.hr.hbp.business.openservicehelper.ruleengine.RuleEngineServiceHelper
method_name: modifyPolicyWithStatus
param_types_key: Map
comment: 修改一个策略 @param `policyMap` 策略对象 @return 结果
signature_text:
public static java.util.Map<String, Object> modifyPolicyWithStatus(java.util.Map<String, Object> policyMap)


class_name: kd.hr.hbp.business.service.formula.cal.service.AbsHRMPCalcService
method_name: calc
param_types_key: CalAllParamVO,List
signature_text:
public java.util.Map<String, kd.hr.hbp.business.service.formula.cal.vo.CalResultDetailVO> calc(kd.hr.hbp.business.service.formula.cal.vo.CalAllParamVO paramVO, java.util.List<String> paramIdList) throws Exception


class_name: kd.hr.hbp.business.service.formula.cal.service.AbsHRMPCalcService
method_name: calc
param_types_key: FormulaParse,FormulaParse,CalAllParamVO,List
signature_text:
public java.util.Map<String, kd.hr.hbp.business.service.formula.cal.vo.CalResultDetailVO> calc(kd.hr.hbp.business.service.formula.cal.template.FormulaParse formulaParse, kd.hr.hbp.business.service.formula.cal.template.FormulaParse calProportionClass, kd.hr.hbp.business.service.formula.cal.vo.CalAllParamVO paramVO, java.util.List<String> paramIdList) throws Exception


class_name: kd.hr.hbp.business.service.formula.cal.service.AbsHRMPCalcService
method_name: createBizClassImpl
param_types_key: String,CalAllParamVO
signature_text:
public kd.hr.hbp.business.service.formula.cal.template.FormulaParse createBizClassImpl(String className, kd.hr.hbp.business.service.formula.cal.vo.CalAllParamVO paramVO) throws Exception


class_name: kd.hr.hbp.business.service.formula.cal.service.AbsHRMPCalcService
method_name: createBizProportionClassImpl
param_types_key: String,CalAllParamVO
signature_text:
public kd.hr.hbp.business.service.formula.cal.template.FormulaParse createBizProportionClassImpl(String className, kd.hr.hbp.business.service.formula.cal.vo.CalAllParamVO paramVO) throws Exception


class_name: kd.hr.hbp.business.service.formula.cal.service.AbsHRMPCalcService
method_name: createClassImpl
param_types_key: String,List,List
signature_text:
public kd.hr.hbp.business.service.formula.cal.template.FormulaParse createClassImpl(String className, java.util.List<kd.hr.hbp.business.service.formula.cal.vo.FormulaVO> formulaInfoList, java.util.List<kd.hr.hbp.business.service.formula.cal.vo.FunctionVO> fcDetailList) throws Exception

comment:
动态创建计算类
@param `className` :` 公式类名称标识
@param `formulaInfoList` :` 公式详情集合
@param `fcDetailList` :` 函数详情集合
@return kd.hr.hbp.business.service.formula.cal.template.FormulaParse


class_name: kd.hr.hbp.business.service.formula.cal.service.AbsHRMPCalcService
method_name: getCalItemData
param_types_key: CalAllParamVO
signature_text:
public abstract void getCalItemData(kd.hr.hbp.business.service.formula.cal.vo.CalAllParamVO paramVO)


class_name: kd.hr.hbp.business.service.formula.cal.service.AbsHRMPCalcService
method_name: handleCal
param_types_key: FormulaParse,FormulaParse,CalAllParamVO,List
signature_text:
public java.util.Map<String, kd.hr.hbp.business.service.formula.cal.vo.CalResultDetailVO> handleCal(kd.hr.hbp.business.service.formula.cal.template.FormulaParse formulaParse, kd.hr.hbp.business.service.formula.cal.template.FormulaParse calProportionClass, kd.hr.hbp.business.service.formula.cal.vo.CalAllParamVO paramVO, java.util.List<String> paramIdList)


class_name: kd.hr.hbp.business.service.formula.FormulaParseService
method_name: checkDetailNode
param_types_key: OriginalNode,List,List,FormulaInfo
signature_text:
protected void checkDetailNode(kd.hr.hbp.business.service.formula.entity.node.OriginalNode currentNode, java.util.List<kd.hr.hbp.business.service.formula.entity.node.OriginalNode> totalNodeList, java.util.List<kd.hr.hbp.business.service.formula.entity.expression.Expression> expressions, kd.hr.hbp.business.service.formula.entity.FormulaInfo formulaInfo)

comment:
埋点检查当前节点数据相关信息
@param `currentNode` :` 当前节点数据
@param `totalNodeList` :` 当前解析式中所有节点的list
@param `expressions` :` 已经解析后的解析式集合
@param `formulaInfo` :` 解析上下文
@return void


class_name: kd.hr.hbp.business.service.formula.FormulaParseService
method_name: childSetFormulaInfo
param_types_key: DynamicObject,FormulaInfo,IFormView
signature_text:
protected void childSetFormulaInfo(DynamicObject formula, kd.hr.hbp.business.service.formula.entity.FormulaInfo formulaInfo, IFormView view)

comment:
子类可从缓存设置上下文自定义数据
@param `formula` :前端公式配置的动态对象
@param `formulaInfo` :上下文
@param `view` :` 当前公式视图对象
@return void


class_name: kd.hr.hbp.business.service.formula.FormulaParseService
method_name: getBaseDataOrStrExpression
param_types_key: OriginalNode,CalItem
signature_text:
public static kd.hr.hbp.business.service.formula.entity.expression.Expression getBaseDataOrStrExpression(kd.hr.hbp.business.service.formula.entity.node.OriginalNode node, kd.hr.hbp.business.service.formula.entity.item.CalItem calItem)

comment:
在数据库查询构建selectItem表达式
@param `node` :` 节点对象
@param `calItem` :` 计算项目对象
@return kd.hr.hbp.business.service.formula.entity.expression.Expression


class_name: kd.hr.hbp.business.service.formula.FormulaParseService
method_name: getEnumOrStrExpression
param_types_key: OriginalNode,CalItem
signature_text:
public static kd.hr.hbp.business.service.formula.entity.expression.Expression getEnumOrStrExpression(kd.hr.hbp.business.service.formula.entity.node.OriginalNode node, kd.hr.hbp.business.service.formula.entity.item.CalItem calItem)

comment:
去元数据缓存获取枚举类型的selectItem对象
@param `node` :` 节点对象
@param `calItem` :` 计算项目对象
@return kd.hr.hbp.business.service.formula.entity.expression.Expression


class_name: kd.hr.hbp.business.service.formula.FormulaParseService
method_name: getExpression
param_types_key: ConditionExpression,List,FormulaInfo
signature_text:
public java.util.List<kd.hr.hbp.business.service.formula.entity.expression.Expression> getExpression(kd.hr.hbp.business.service.formula.entity.expression.ConditionExpression conditionExpression, java.util.List<kd.hr.hbp.business.service.formula.entity.node.OriginalNode> nodes, kd.hr.hbp.business.service.formula.entity.FormulaInfo formula)

comment:
获取表达式的具体类型
@param `conditionExpression` :` 当前条件表达式
@param `nodes` :` 节点集合
@param `formula` :` 公式解析上下文
@return java.util.List解析式集合


class_name: kd.hr.hbp.business.service.formula.FormulaParseService
method_name: parseFormula
param_types_key: DynamicObject,long,IFormView
signature_text:
public final kd.hr.hbp.business.service.formula.entity.FormulaInfo parseFormula(DynamicObject formula, long formulaId, IFormView view)

comment:
解析公式方法入口
@param `formula` :` 公式页面动态对象
@param `formulaId` :` 公式对象主键
@param `view` :` 当前页面视图对象
@return kd.hr.hbp.business.service.formula.entity.FormulaInfo


class_name: kd.hr.hbp.business.service.formula.FormulaParseService
method_name: parseFormulaDy
param_types_key: DynamicObject,long,String,List,List,List,boolean
signature_text:
public final DynamicObject parseFormulaDy(DynamicObject formula, long formulaId, String bizAppNumber, java.util.List<kd.hr.hbp.business.service.formula.entity.item.TreeNodeItem> treeNodeItems, java.util.List<kd.hr.hbp.business.service.formula.entity.item.ResultItem> resultItems, java.util.List<kd.hr.hbp.business.service.formula.entity.item.TreeNodeItem> dataGradeItems, boolean isParseByUniqueCodeExp)

comment:
公式解析sdk
@param `formula` :` 公式页面动态对象
@param `formulaId` :` 公式id
@param `bizAppNumber` :` 公式所在应用编码
@param `treeNodeItems` :` 计算项目集合
@param `resultItems` :` 结果项目集合
@param `dataGradeItems` :` 分级数据集合
@param `isParseByUniqueCodeExp` :` 是否根据uniqueCodeeExp解析
@return kd.bos.dataentity.entity.DynamicObject


class_name: kd.hr.hbp.business.servicehelper.HRQueryEntityHelper
method_name: getQueryDataSet
param_types_key: QueryEntityType,String,QFilter[],String
signature_text:
public DataSet getQueryDataSet(QueryEntityType queryEntityType, String queryFileds, QFilter[] qFilters, String orderBys)

comment:
查询数据，返回DataSet（默认不分页）
@param `queryEntityType` 查询实体模型
@param `queryFileds` 查询字段，多个字段通过“,”分割
@param `qFilters` 查询过滤条件
@param `orderBys` 排序字段，多个字段之间用英文","分开，排序方式和排序字段之间用空格分割，例如："name desc,number"
@return DataSet


class_name: kd.hr.hbp.business.servicehelper.HRQueryEntityHelper
method_name: getQueryDataSet
param_types_key: QueryEntityType,String,QFilter[],String,int,int
signature_text:
public DataSet getQueryDataSet(QueryEntityType queryEntityType, String queryFileds, QFilter[] qFilters, String orderBys, int start, int limit)

comment:
查询数据，返回DataSet（默认分页）
@param `queryEntityType` 查询实体模型
@param `queryFileds` 查询字段，多个字段通过“,”分割
@param `qFilters` 查询过滤条件
@param `orderBys` 排序字段，多个字段之间用英文","分开，排序方式和排序字段之间用空格分割，例如："name desc,number"
@param `start` 分页开始下标
@param `limit` 每页条数
@return DataSet


class_name: kd.hr.hbp.business.servicehelper.HRQueryEntityHelper
method_name: getQueryDyoColl
param_types_key: QueryEntityType,String,QFilter[],String
signature_text:
public DynamicObjectCollection getQueryDyoColl(QueryEntityType queryEntityType, String queryFileds, QFilter[] qFilters, String orderBys)

comment:
查询数据，返回DynamicObjectCollection（默认不分页）
@param `queryEntityType` 查询实体模型
@param `queryFileds` 查询字段，多个字段通过“,”分割
@param `qFilters` 查询过滤条件
@param `orderBys` 排序字段，多个字段之间用英文","分开，排序方式和排序字段之间用空格分割，例如："name desc,number"
@return DynamicObjectCollection


class_name: kd.hr.hbp.business.servicehelper.HRQueryEntityHelper
method_name: getQueryDyoColl
param_types_key: QueryEntityType,String,QFilter[],String,int,int
signature_text:
public DynamicObjectCollection getQueryDyoColl(QueryEntityType queryEntityType, String queryFileds, QFilter[] qFilters, String orderBys, int start, int limit)

comment:
查询数据，返回DynamicObjectCollection（默认分页）
@param `queryEntityType` 查询实体模型
@param `queryFileds` 查询字段，多个字段通过“,”分割
@param `qFilters` 查询过滤条件
@param `orderBys` 排序字段，多个字段之间用英文","分开，排序方式和排序字段之间用空格分割，例如："name desc,number"
@param `start` 分页开始下标
@param `limit` 每页条数
@return DynamicObjectCollection


class_name: kd.hr.hbp.business.servicehelper.HRQueryEntityHelper
method_name: queryAllPkByKSql
param_types_key: QueryEntityType,QFilter[],String,int,int
signature_text:
public java.util.List<Object> queryAllPkByKSql(QueryEntityType queryEntityType, QFilter[] qFilters, String orderBys, int start, int limit)

comment:
分页查询主实体主键
@param `queryEntityType` 查询实体模型
@param `qFilters` 查询过滤条件
@param `orderBys` 排序字段，多个字段之间用英文","分开，排序方式和排序字段之间用空格分割，例如："name desc,number"
@param `start` 分页开始下标
@param `limit` 每页条数
@return 主实体主键集合


class_name: kd.hr.hbp.business.servicehelper.HRQueryEntityHelper
method_name: queryAllPkByKSql
param_types_key: QueryEntityType,QFilter[],String
signature_text:
public java.util.List<Object> queryAllPkByKSql(QueryEntityType queryEntityType, QFilter[] qFilters, String orderBys)

comment:
查询所有主实体主键
@param `queryEntityType` 查询实体模型
@param `qFilters` 查询过滤条件
@param `orderBys` 排序字段，多个字段之间用英文","分开，排序方式和排序字段之间用空格分割，例如："name desc,number"
@return 所有主实体主键集合


class_name: kd.hr.hbp.common.log.HRLog
method_name: export
param_types_key: AbstractFormPlugin,String,String,QFilter[],String
signature_text:
void export(AbstractFormPlugin plugin, String exportActionId, String selectFields, QFilter[] filters, String fileName)

comment:
导出日志
@param `plugin` 创建导出任务插件
@param `exportActionId` 导入日志任务ID，用于回调处理
@param `selectFields` 导出字段参数名
@param `filters` 导出任务条件


class_name: kd.hr.hbp.common.log.HRLog
method_name: query
param_types_key: String,QFilter[],int,int
signature_text: DynamicObjectCollection query(String selectFields, QFilter[] filters, int limit, int offset)
comment:
查询日志信息
@param `selectFields` 选择的列
@param `filters` 过滤器
@param `limit` 取出数据量
@param `offset` 起始位
@return 日志数据集合


class_name: kd.hr.hbp.common.log.HRLog
method_name: trace
param_types_key: String,String,String
signature_text: long trace(String message, String processId, String processType)
comment:
以trace级别写入日志
@param `message` 日志信息
@param `processId` 日志节点ID
@param `processType` 日志节点类型
@return 日志ID


class_name: kd.hr.hbp.common.log.impl.HRLogORMImpl
method_name: export
param_types_key: AbstractFormPlugin,String,String,QFilter[],String
signature_text:
public void export(AbstractFormPlugin plugin, String exportActionId, String selectFields, QFilter[] filters, String fileName)


class_name: kd.hr.hbp.common.model.AuthorizedOrgResultWithSub
method_name: <init>
param_types_key: boolean,List
comment: 构造方法 @param `hasAllOrgPerm` 是否拥有全部组织权限 @param `hasPermOrgsWithSub` 拥有权限的组织列表
signature_text:
public AuthorizedOrgResultWithSub(boolean hasAllOrgPerm, java.util.List<OrgSubInfo> hasPermOrgsWithSub)


class_name: kd.hr.hbp.common.model.AuthorizedOrgTeamResult
method_name: <init>
param_types_key: boolean,Map
comment: 构造方法 @param `hasAllOrgPerm` 是否拥有全部组织权限 @param `hasPermOrgTeamMap` 拥有权限的组织列表
signature_text:
public AuthorizedOrgTeamResult(boolean hasAllOrgPerm, java.util.Map<Long, java.util.List<Long>> hasPermOrgTeamMap)


class_name: kd.hr.hbp.common.model.OrgSubInfo
method_name: <init>
param_types_key: Long,boolean,String,String
signature_text: public OrgSubInfo(Long orgId, boolean containsSub, String structNumber, String longStructNumber)
comment:
构造方法
@param `orgId` 组织id
@param `containsSub` 是否包含下级
@param `structNumber` 结构编码
@param `longStructNumber` 结构长编码


class_name: kd.hr.hbp.common.model.OrgTeamSubInfo
method_name: <init>
param_types_key: Long,boolean,String,String
signature_text:
public OrgTeamSubInfo(Long orgId, boolean containsSub, String structNumber, String longStructNumber)

comment:
构造方法
@param `orgId` 组织id
@param `containsSub` 是否包含下级
@param `structNumber` 结构编码
@param `longStructNumber` 结构长编码


class_name: kd.hr.hbp.common.model.perm.DimValueParam
method_name: <init>
param_types_key: boolean,String,boolean,boolean,Long
signature_text:
public DimValueParam(boolean isAll, String dimVal, boolean containsSub, boolean adminContainsSub, Long structProject)

comment:
构造方法
@param `isAll` 是否不限
@param `dimVal` 维度值
@param `containsSub` 是否包含下级
@param `adminContainsSub` 依赖架构是否包含下级
@param `structProject` 架构方案id


class_name: kd.hr.hbp.common.model.perm.UserBucaPermDataParam
method_name: <init>
param_types_key: Long,Map,List
signature_text:
public UserBucaPermDataParam(Long bucaId, java.util.Map<Long, Boolean> orgInfos, java.util.List<DimGroupParam> userDimGroupData)

comment:
构造方法
@param `bucaId` 职能id
@param `orgInfos` 业务组织范围：key为组织id，value为是否包含下级
@param `userDimGroupData` 维度值组列表


class_name: kd.hr.hbp.common.mservice.HRMSendMsgResult
method_name: setResult
param_types_key: Boolean,String,int,int,String
comment: 设置返回结果 @param `isSuccess` @param `returnCode` @param `successedCnt` @param `failedCnt` @param `msg`
signature_text:
public void setResult(Boolean isSuccess, String returnCode, int successedCnt, int failedCnt, String msg)


class_name: kd.hr.hbp.common.mservice.HRMServiceResult
method_name: fail
param_types_key: String,String
signature_text: public static HRMServiceResult fail(String message, String errorCode)
comment:
通过返回描述和返回的失败编码创建调用失败的返回结果对象
@param `message` :` 返回的描述
@param `errorCode` :` 返回的失败编码
@return kd.hr.hbp.common.mservice.HRMServiceResult


class_name: kd.hr.hbp.common.mservice.HRMServiceResult
method_name: success
param_types_key: Object
signature_text: public static HRMServiceResult success(Object returnData)
comment:
通过返回数据对象创建调用成功的返回结果对象
@param `returnData` :` 返回数据对象
@return kd.hr.hbp.common.mservice.HRMServiceResult


class_name: kd.hr.hbp.common.mservice.HRMServiceResult
method_name: success
param_types_key: Object,String
signature_text: public static HRMServiceResult success(Object returnData, String returnCode)
comment:
通过返回数据对象和调用成功编码创建调用成功的返回结果对象
@param `returnData` :` 返回数据对象
@param `returnCode` :` 返回的成功编码
@return kd.hr.hbp.common.mservice.HRMServiceResult


class_name: kd.hr.hbp.formplugin.web.formula.FormulaSettingEdit
method_name: initDataGradeTree
param_types_key: List,boolean
comment: 初始化数据分级树 @param `treeNodeCacheList` :` 树节点list @param `isUpdateCache` :` 是否更新缓存 @return void
signature_text:
protected void initDataGradeTree(java.util.List<TreeNodeItem> treeNodeCacheList, boolean isUpdateCache)


class_name: kd.hr.hbp.formplugin.web.formula.FormulaSettingEdit
method_name: initFuncTree
param_types_key: List,boolean
signature_text: protected void initFuncTree(java.util.List<TreeNodeItem> treeNodeCacheList, boolean isUpdateCache)
comment:
初始化函数树(暂时设置不能复写)
@param `treeNodeCacheList` :` 树节点list
@param `isUpdateCache` :` 是否更新缓存
@return void


class_name: kd.hr.hbp.formplugin.web.formula.FormulaSettingEdit
method_name: initResultItemCache
param_types_key: List,boolean
comment: 公式结果数据初始化 @param `resultItemList` :` 结果参数对象 @param `isUpdateCache` :` 是否更新缓存 @return void
signature_text:
protected void initResultItemCache(java.util.List<ResultItem> resultItemList, boolean isUpdateCache)


class_name: kd.sdk.annotation.SdkScriptWrapper
method_name: includeSubTypes
signature_text: public boolean includeSubTypes()
comment:
是否封装javaType的子类：当javaType为接口时，才生效， 见TypeConvertInterceptor#getTypeAdapterConfigItem assignableCls.isInterface()。 非接口时不生效的原因，例：ControlWrapper封装了Control，若非接口也包含子类的封装，则有些子控件未有wrapper，被封装为ControlWrapper，导致子控件的接口无法访问(只能访问Wrapper接口)。


class_name: kd.sdk.annotation.SdkScriptWrapper
method_name: javaType
signature_text: public Class javaType()
comment:
自动配置转换adapter：java->js TypeAdapterConfig 而js-->java则用ScriptObjectWrapper#unwrap
@return 封装的java类型，用于java->js时自动封装，值为Object.class或本类则表示不自动封装。 缺省值Object.class，表示不封装别的java类：不是封装类型，而是直接试用本类(功能性类型，被DynamicScriptProxy.wrap自动封装)。


class_name: kd.sdk.fi.am.extpoint.bankacct.IBankAccountFilter
method_name: addIFilterColumn
param_types_key: FilterContainerInitArgs,IDataModel,IFormView
signature_text:
default void addIFilterColumn(FilterContainerInitArgs args, IDataModel dataModel, IFormView formView)

comment:
Title: IBankAccountFilter.java
Description: 银行账户增加“是否虚拟账户”字段　测试
@param `args`
@param `dataModel`
@param `formView`
@return void


class_name: kd.sdk.fi.am.extpoint.bankacct.IBankAccountFilter
method_name: setIFilters
param_types_key: SetFilterEvent,IDataModel,IFormView
signature_text: default void setIFilters(SetFilterEvent e, IDataModel dataModel, IFormView formView)
comment:
Title: IBankAccountFilter.java
Description: 银行账户增加“是否虚拟账户”字段　测试
@param `e`
@param `dataModel`
@param `formView`
@return void


class_name: kd.sdk.fi.am.extpoint.report.IDormantFormListFilter
method_name: setIFilters
param_types_key: List,FilterInfo
signature_text: default void setIFilters(java.util.List<QFilter> qFilters, FilterInfo filter)
comment:
Title: IDormantFormListFilter.java
Description: 久悬户查询增加过滤条件可”是否包含虚拟户”　测试
@param `qFilters`
@param `filter`
@return void


class_name: kd.sdk.fi.ap.extpoint.dap.IAfterGenerateVoucherExt
method_name: afterGenerateVoucher
param_types_key: String,String,Map
signature_text:
void afterGenerateVoucher(String voucherOpValue, String billEntityNumber, java.util.Map<Long, Long> billPkMap)

comment:
生成凭证后，将入账信息同步费第三方
扩展示例如下
publicvoidafterGenerateVoucher(String voucherOpValue, String billEntityNumber, Map billPkMap) {
MessagePublisherpub= MQFactory.get().createSimplePublisher("XX", "xxxxxxx");
try {
Mapparams=newHashMap<>();
params.put("voucherOpValue", voucherOpValue);
params.put("billPkMap", billPkMap);
pub.publish(params);
} finally {
pub.close();
}
}
@param `voucherOpValue` 凭证操作编码
@param `billEntityNumber` 单据类型
@param `billPkMap` k：billPk,` v:voucherPk


class_name: kd.sdk.fi.ap.extpoint.importext.IAfterImportDataExt
method_name: afterImportData
param_types_key: ImportDataEventArgs,IDataModel
signature_text: void afterImportData(ImportDataEventArgs e, IDataModel model)
comment:
支持可覆盖的afterimportdata
扩展示例如下
publicvoidafterImportData(ImportDataEventArgs e, IDataModel model) {
MapsourceData= e.getSourceData();
//判断是新增引入还是更新引入:true新增引入，false更新引入booleanisNew=false;
if (e.getOption().get("importtype") == null) {
isNew = ObjectUtils.isEmpty(sourceData.get("_pkid_")) ? true : false;
}else{
Stringimporttype= (String) e.getOption().get("importtype");
isNew = "new".equals(importtype) ? true : false;
}
DynamicObjectorg= (DynamicObject) model.getValue("org");
if (ObjectUtils.isEmpty(org)) return;
if (isNew){
// 进行计算赋值等
model.setValue("remark", "扩展插件");
}else {
// 进行计算赋值等
}
}
@param `e` 引入数据参数
@param `model` 单据数据模型 `


class_name: kd.sdk.fi.ap.extpoint.list.IAfterBizProcess
method_name: afterBizProcess
param_types_key: IFormView,String
signature_text: void afterBizProcess(IFormView view, String bizName)
comment:
扩展示例如下
publicvoidafterBizProcess(IFormView view, String bizName) {
// 只处理应付有源采集场景if (!AfterBizExtendConst.FINAP_COLLECT_INVOICE.equals(bizName)) return;
// Demo样例，把有源采集的票发票代码赋值给表头的备注字段IDataModelmodel= view.getModel();
DynamicObjectCollectioninventry= model.getEntryEntity("inventry");
if (!inventry.isEmpty()){
StringinvoiceCode= inventry.get(0).getString("i_invoicecode");
model.setValue("remark",invoiceCode);
}
}
@param `view` 列表或者表单view
@param `bizName` 当前业务标识，用于判断走对应哪个sdk


class_name: kd.sdk.fi.ap.extpoint.list.IApproverSetting
method_name: showApproverCaptionExt
signature_text: String showApproverCaptionExt()
comment:
列表展示当前处理人自定义字段名称
扩展示例如下
public String showApproverCaptionExt() {
return"当前审核人";
}
@return String: 自定义的列表字段名


class_name: kd.sdk.fi.ap.extpoint.list.IApproverSetting
method_name: showApproverExt
param_types_key: List
signature_text: default java.util.Map<String, String> showApproverExt(java.util.List<String> billIds)
comment:
列表展示当前处理人自定义显示内容
扩展示例如下
public Map showApproverExt() {
// key: 单据id(转成String类型) value: 这张单据列表上字段显示的值MapnodeMap=newHashMap<>(8);
// 若需要查询 请在这里批量查询for (String billId : billIds) {
// 请在这里构造nodeMap 自定义每一张单据当前处理人的值if ("1782516835053234176".equals(billId)) {
nodeMap.put(billId, "测试人");
}
}
}
@return 自定义的显示内容 Map key: 单据id(转成String类型) value: 这张单据列表上字段显示的值


class_name: kd.sdk.fi.ap.extpoint.payapply.ICasPayBillPayCallback
method_name: afterProcess
param_types_key: Object
signature_text: public void afterProcess(Object params)
comment:
开票回调后处理
扩展示例如下
package kd.fi.arapcommon.customer;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.db.tx.TX;
import kd.bos.db.tx.TXHandle;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.fi.arapcommon.consts.EntityConst;
import kd.sdk.fi.ap.extpoint.payapply.ICasPayBillPayCallback;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
publicclassCasPayBillPayCallbaclImpl_DemoimplementsICasPayBillPayCallback {
``
@param `params` 付款单付款之后调用付款申请单反写接口json


class_name: kd.sdk.fi.ap.extpoint.push.IPushAssignField
method_name: getAfterPushAssignField
signature_text: java.util.Map<String, java.util.List<String>> getAfterPushAssignField()
comment:
publicclassPushAssignFieldDemoimplementsIPushAssignField {
public Map> getAfterPushAssignField() {
Map> assignMap = newHashMap<>(2);
// 调用应付转付的API接口IPushBillServicepushBillService= ArApServiceAPIFactory.getPushBillService(ServiceNameEnum.FINAPTRANSFER.getValue());
ListapExtendField=newArrayList<>(2);
apExtendField.add("purchaser"); // 采购员
apExtendField.add("purorg"); // 采购组织// key 就是对应实现的ServiceName标识
assignMap.put(pushBillService.getServiceName(), apExtendField);
return assignMap;
}
}
@return key:下推单据目标单业务标识，如ap_finapbill value:需要支持的扩展字段 [{pushfinap=[salesman, salesorg], pushfinar=[purchaser, purorg]}] 样例：


class_name: kd.sdk.fi.ap.extpoint.settle.IAfterSettleProcess
method_name: afterProcess
param_types_key: String,String
signature_text: void afterProcess(String schemeJson, String recordJson)
comment:
类描述:应收应付结算后处理扩展
扩展示例如下
import com.alibaba.fastjson.JSONObject;
import kd.bos.db.tx.TX;
import kd.bos.db.tx.TXHandle;
import kd.fi.arapcommon.vo.SettleRecordVO;
import kd.fi.arapcommon.vo.SettleSchemeVO;
import kd.sdk.fi.ap.extpoint.settle.ArApAfterSettleProcess;
import java.util.ArrayList;
import java.util.List;
// 类描述:应收应付结算后处理扩展publicclassAfterSettleDemoDemoimplementsArApAfterSettleProcess {
publicvoidafterProcess(String schemeJson, String recordJson) {
// Json转换成 SettleRecordVO 对象，里面存储着结算记录所有信息ListjsonList= JSONObject.parseObject(recordJson, List.class);
ListrecordList=newArrayList<>();
for (JSONObject json : jsonList) {
recordList.add(JSONObject.parseObject(json.toJSONString(), SettleRecordVO.class));
}
// Json转换成 SettleSchemeVO ，里面存储了进行结算反结算需要的逻辑参数SettleSchemeVOscheme= JSONObject.parseObject(schemeJson, SettleSchemeVO.class);
// 可能跨库操作，开启新事务处理try (TXHandletx= TX.requiresNew("invokeAfterSettleCallback.afterProcess")) {
try {
// 处理结算后处理，现场根据场景进行个性化开发
} catch(Exception ex) {
tx.markRollback();
throw ex;
}
}
}
}
@param `recordJson` SettleRecordVO 对象kd.fi.arapcommon.vo.SettleRecordVO的json
@param `schemeJson` SettleSchemeVO 对象kd.fi.arapcommon.vo.SettleSchemeVO的json


class_name: kd.sdk.fi.ap.extpoint.settle.IManualSettleCheck
method_name: check
param_types_key: IFormView
signature_text: boolean check(IFormView view)
comment:
手工结算点击结算按钮前的校验扩展
package kd.fi.arapcommon.customer.ext;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.resource.ResManager;
import kd.bos.form.IFormView;
import kd.bos.form.control.EntryGrid;
import kd.sdk.fi.ap.extpoint.settle.IManualSettleCheck;
import java.util.HashSet;
import java.util.Set;
publicclassManualSettleCheck_DemoimplementsIManualSettleCheck {
publicbooleancheck(IFormView view) {
EntryGridmainGrid= view.getControl("mainbill");//主方表格int[] mainSelectRows = mainGrid.getSelectRows();//主方选中行EntryGridasstGrid= view.getControl("asstbill");//辅方表格int[] asstSelectRows = asstGrid.getSelectRows();//辅方选中行SetmainContactSet=newHashSet<>(1);
for (int mainSelectRow : mainSelectRows) {
DynamicObjectmainRow= view.getModel().getEntryRowEntity("mainbill", mainSelectRow);
mainContactSet.add(mainRow.getString("maincontact"));
}
if (mainContactSet.size() > 1){
//ResManager.loadKDString()多语言支持
view.showTipNotification(ResManager.loadKDString("主方的合同号必须相同", "ManualSettleCheck_Demo_1", "fi-arapcommon"));
returnfalse;
}
SetasstContactSet=newHashSet<>(1);
for (int asstSelectRow : asstSelectRows) {
DynamicObjectasstRow= view.getModel().getEntryRowEntity("asstbill", asstSelectRow);
asstContactSet.add(asstRow.getString("asstcontact"));
}
if (asstContactSet.size() > 1){
//ResManager.loadKDString()多语言支持
view.showTipNotification(ResManager.loadKDString("辅方的合同号必须相同", "ManualSettleCheck_Demo_2", "fi-arapcommon"));
returnfalse;
}
if(mainContactSet.size() == 1 && asstContactSet.size() == 1 &&
mainContactSet.iterator().next().equals(asstContactSet.iterator().next())){
returntrue;
}else{
//ResManager.loadKDString()多语言支持
view.showTipNotification(ResManager.loadKDString("主方和辅方的合同号必须一致才能结算", "ManualSettleCheck_Demo_3", "fi-arapcommon"));
returnfalse;
}
}
}
@param `view` 页面模型对象
@return 校验通过还是失败


class_name: kd.sdk.fi.ap.extpoint.settle.ISettleMatchExt
method_name: match
param_types_key: String,String,String
signature_text: boolean match(String mainBillSettleVoJson, String asstBillSettleVoJson, String schemeJson)
comment:
结算前匹配条件扩展
package kd.fi.arapcommon.writeback;
import com.alibaba.fastjson.JSONObject;
import kd.fi.arapcommon.vo.BillSettleVO;
import kd.fi.arapcommon.vo.SettleSchemeVO;
import kd.sdk.fi.ap.extpoint.settle.ISettleMatchExt;
publicclasssettleExtMatchServiceimplementsISettleMatchExt {
``
@param `mainBillSettleVoJson` 主方结算信息
@param `asstBillSettleVoJson` 辅方结算信息
@param `schemeJson` 结算相关参数信息
@return 匹配通过还是失败


class_name: kd.sdk.fi.ap.extpoint.woff.IAfterWoffProcess
method_name: afterProcess
param_types_key: boolean,String,Set,Set,List
signature_text:
void afterProcess(boolean isWoff, String woffMode, java.util.Set<Long> finBillIds, java.util.Set<Long> srcBusBillIds, java.util.List<Object> woffBillIds)

comment:
扩展示例如下
publicclassAfterWoffProcessDemoimplementsIAfterWoffProcess {
``
@param `isWoff` true代表冲回，false代表取消冲回
@param `woffMode` 冲回模式，WoffModeEnum.value
@param `finBillIds` 触发单到冲回的财务单ID
@param `srcBusBillIds` 最初被冲回的源暂估单ID
@param `woffBillIds` 生成的冲回单ID


class_name: kd.sdk.fi.ap.extpoint.woff.IWoffMatchExt
method_name: moreMatchField
param_types_key: String,String
signature_text: java.util.Map<String, String> moreMatchField(String woffMode, String finEntityKey)
comment:
对冲回匹配条件追加个性化匹配条件，支持表头和物料明细属性，物料明细属性请携带分录标识
扩展示例如下
publicclassWoffMatchExtDemoimplementsIWoffMatchExt {
``
@param `woffMode` 冲回模式，WoffModeEnum.value
@param `finEntityKey` 财务单单据标识，可用于应收应付区分及标识处理
@return <财务单字段标识, 暂估单字段标识>


class_name: kd.sdk.fi.ar.extpoint.IInvIssueCallback
method_name: afterProcess
param_types_key: String
signature_text: public void afterProcess(String callBackVoJson)
comment:
扩展示例如下
package kd.fi.arapcommon.customer.ext;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.utils.ObjectUtils;
import kd.bos.db.tx.TX;
import kd.bos.db.tx.TXHandle;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.botp.BFTrackerServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.fi.arapcommon.consts.EntityConst;
import kd.fi.arapcommon.util.EmptyUtils;
import kd.imc.bdm.common.dto.FiBotpCallBackArBillVo;
import kd.imc.bdm.common.dto.FiBotpCallBackVo;
import kd.sdk.fi.ar.extpoint.IInvIssueCallback;
publicclassInvIssueCallbackImpl_DemoimplementsIInvIssueCallback {
``
@param `callBackVoJson` 对象kd.imc.bdm.common.dto.FiBotpCallBackVo.class的json


class_name: kd.sdk.fi.ar.extpoint.invoice.IInvIssueCallback
method_name: afterProcess
param_types_key: String
signature_text: public void afterProcess(String callBackVoJson)
comment:
开票回调后处理
扩展示例如下
import java.util.*
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import kd.bos.db.tx.TX;
import kd.bos.db.tx.TXHandle;
import kd.bos.servicehelper.botp.BFTrackerServiceHelper;
import kd.fi.arapcommon.consts.EntityConst;
import kd.fi.arapcommon.util.EmptyUtils;
import kd.imc.bdm.common.dto.FiBotpCallBackArBillVo;
import kd.imc.bdm.common.dto.FiBotpCallBackVo;
import kd.sdk.fi.ar.extpoint.invoice.IInvIssueCallback;
publicclassInvIssueCallbackImpl_DemoimplementsIInvIssueCallback {
publicvoidafterProcess(String callBackVoJson) {
FiBotpCallBackVocallBackVo= JSONObject.parseObject(callBackVoJson, FiBotpCallBackVo.class);
StringinvoiceCode= callBackVo.getInvoiceCode(); //发票代码StringinvoiceNo= callBackVo.getInvoiceNo(); //发票号码ListarBillVos= callBackVo.getArs(); //应收单据集合ListfinPks= arBillVos.stream().map(FiBotpCallBackArBillVo::getArBillPk).collect(Collectors.toList());
//可能跨库操作，开启新事务处理try (TXHandletx= TX.requiresNew("InvIssueCallback.afterProcess")) {
try {
//找上游单据
Map> linkBills = BFTrackerServiceHelper.findSourceBills(EntityConst.ENTITY_FINARBILL, finPks.toArray(newLong[]{}));
//上游单据SetsrcPks= linkBills.get("sm_xxxbill");
if (EmptyUtils.isNotEmpty(srcPks)) {
// 查询上游单据，并更新上游单据// ...
}
} catch(Exception ex) {
tx.markRollback();
throw ex;
}
}
}
}
@param `callBackVoJson` 对象kd.imc.bdm.common.dto.FiBotpCallBackVo.class的json


class_name: kd.sdk.fi.ar.extpoint.plan.IPlanRowSplit
method_name: splitPlanEntry
param_types_key: IFormView
signature_text: public void splitPlanEntry(IFormView view)
comment:
计划行拆分扩展点，支持可覆盖
扩展示例如下
publicclassPlanRowSplitImpl_DemoimplementsIPlanRowSplit {
publicvoidsplitPlanEntry(IFormView view) {
IDataModelm= view.getModel();
m.beginInit();
DynamicObjectdataEntity= m.getDataEntity(true);//获取页面模型的整个值对象StringentityName= dataEntity.getDataEntityType().getName();//单据标识BillModelbm= BillModelFactory.getModel(entityName);//单据字段标识对象//1、删除计划行的所有数据
m.deleteEntryData(bm.P_ENTRY);
//2、根据业务处理计划行for (inti=0; i < 2; i++) {
//创建计划行intiRow= m.createNewEntryRow(bm.P_ENTRY, i, null);
//计划行赋值
m.setValue(bm.P_PLANDUEDATE, m.getValue(bm.HEAD_DUEDATE), iRow);
m.setValue(bm.P_PLANSETTLETYPE, m.getValue(bm.HEAD_SETTLEMENTTYPE), iRow);
BigDecimalpriceTaxTotal=newBigDecimal("100");
m.setValue(bm.P_PLANPRICETAX, priceTaxTotal, iRow);
// ...
}
m.endInit();
view.updateView(bm.P_ENTRY);
}
}
@param `view` 表单视图模型


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: apArAssignSettle
param_types_key: AssignSettleParam
comment: 应付冲应收指定金额结算 @param `assignSettleParam` 指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult apArAssignSettle(kd.sdk.fi.arapcommon.param.AssignSettleParam assignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: apArNoAssignSettle
param_types_key: NoAssignSettleParam
comment: 应付冲应收非指定金额结算 @param `noAssignSettleParam` 非指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult apArNoAssignSettle(kd.sdk.fi.arapcommon.param.NoAssignSettleParam noAssignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: apPayAssignSettle
param_types_key: AssignSettleParam
comment: 应付付款指定金额结算 @param `assignSettleParam` 指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult apPayAssignSettle(kd.sdk.fi.arapcommon.param.AssignSettleParam assignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: apPayNoAssignSettle
param_types_key: NoAssignSettleParam
comment: 应付付款非指定金额结算 @param `noAssignSettleParam` 非指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult apPayNoAssignSettle(kd.sdk.fi.arapcommon.param.NoAssignSettleParam noAssignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: apSelfAssignSettle
param_types_key: AssignSettleParam
comment: 应付红蓝对冲指定金额结算 @param `assignSettleParam` 指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult apSelfAssignSettle(kd.sdk.fi.arapcommon.param.AssignSettleParam assignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: apSelfNoAssignSettle
param_types_key: NoAssignSettleParam
comment: 应付红蓝对冲非指定金额结算 @param `noAssignSettleParam` 非指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult apSelfNoAssignSettle(kd.sdk.fi.arapcommon.param.NoAssignSettleParam noAssignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: arApAssignSettle
param_types_key: AssignSettleParam
comment: 应收冲应付指定金额结算 @param `assignSettleParam` 指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult arApAssignSettle(kd.sdk.fi.arapcommon.param.AssignSettleParam assignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: arApNoAssignSettle
param_types_key: NoAssignSettleParam
comment: 应收冲应付非指定金额结算 @param `noAssignSettleParam` 非指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult arApNoAssignSettle(kd.sdk.fi.arapcommon.param.NoAssignSettleParam noAssignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: arRecAssignSettle
param_types_key: AssignSettleParam
comment: 应收收款指定金额结算 @param `assignSettleParam` 指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult arRecAssignSettle(kd.sdk.fi.arapcommon.param.AssignSettleParam assignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: arRecNoAssignSettle
param_types_key: NoAssignSettleParam
comment: 应收收款非指定金额结算 @param `noAssignSettleParam` 非指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult arRecNoAssignSettle(kd.sdk.fi.arapcommon.param.NoAssignSettleParam noAssignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: arSelfAssignSettle
param_types_key: AssignSettleParam
comment: 应收红蓝对冲指定金额结算 @param `assignSettleParam` 指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult arSelfAssignSettle(kd.sdk.fi.arapcommon.param.AssignSettleParam assignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: arSelfNoAssignSettle
param_types_key: NoAssignSettleParam
comment: 应收红蓝对冲非指定金额结算 @param `noAssignSettleParam` 非指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult arSelfNoAssignSettle(kd.sdk.fi.arapcommon.param.NoAssignSettleParam noAssignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: payRecAssignSettle
param_types_key: AssignSettleParam
comment: 付款冲收款指定金额结算 @param `assignSettleParam` 指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult payRecAssignSettle(kd.sdk.fi.arapcommon.param.AssignSettleParam assignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: payRecNoAssignSettle
param_types_key: NoAssignSettleParam
comment: 付款冲收款非指定金额结算 @param `noAssignSettleParam` 非指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult payRecNoAssignSettle(kd.sdk.fi.arapcommon.param.NoAssignSettleParam noAssignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: paySelfAssignSettle
param_types_key: AssignSettleParam
comment: 付款红蓝对冲指定金额结算 @param `assignSettleParam` 指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult paySelfAssignSettle(kd.sdk.fi.arapcommon.param.AssignSettleParam assignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: paySelfNoAssignSettle
param_types_key: NoAssignSettleParam
comment: 付款红蓝对冲非指定金额结算 @param `noAssignSettleParam` 非指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult paySelfNoAssignSettle(kd.sdk.fi.arapcommon.param.NoAssignSettleParam noAssignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: recPayAssignSettle
param_types_key: AssignSettleParam
comment: 收款冲付款指定金额结算 @param `assignSettleParam` 指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult recPayAssignSettle(kd.sdk.fi.arapcommon.param.AssignSettleParam assignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: recPayNoAssignSettle
param_types_key: NoAssignSettleParam
comment: 收款冲付款非指定金额结算 @param `noAssignSettleParam` 非指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult recPayNoAssignSettle(kd.sdk.fi.arapcommon.param.NoAssignSettleParam noAssignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: recSelfAssignSettle
param_types_key: AssignSettleParam
comment: 收款红蓝对冲指定金额结算 @param `assignSettleParam` 指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult recSelfAssignSettle(kd.sdk.fi.arapcommon.param.AssignSettleParam assignSettleParam)


class_name: kd.sdk.fi.arapcommon.helper.SettleServiceSDKHelper
method_name: recSelfNoAssignSettle
param_types_key: NoAssignSettleParam
comment: 收款红蓝对冲非指定金额结算 @param `noAssignSettleParam` 非指定结算参数 @return 结算返回结果
signature_text:
public static kd.sdk.fi.arapcommon.param.SettleResult recSelfNoAssignSettle(kd.sdk.fi.arapcommon.param.NoAssignSettleParam noAssignSettleParam)


class_name: kd.sdk.fi.bd.service.cdc.CDCServiceGLIntegratorSDK
method_name: raiseCDCEvent
param_types_key: CDCRecOperationTypeEnum,Collection
signature_text:
public static boolean raiseCDCEvent(kd.sdk.fi.bd.service.cdc.CDCRecOperationTypeEnum operationType, java.util.Collection<Long> voucherIdColl)

comment:
触发凭证摘要集成
凭证更新事务提交后，请求同步ES，内部异步实现，无需关注结果
@param `operationType` 变动类型
@param `voucherIdColl` 凭证ID集合
@return 触发成功？


class_name: kd.sdk.fi.bd.service.cdc.CDCServiceGLIntegratorSDK
method_name: registerCDCChangedRecord
param_types_key: CDCRecOperationTypeEnum,Collection
signature_text:
public boolean registerCDCChangedRecord(kd.sdk.fi.bd.service.cdc.CDCRecOperationTypeEnum operationType, java.util.Collection<Long> voucherIdColl)

comment:
注册凭证摘要变动记录
凭证更新事务中,凭证保存执行完毕，调用同步注册凭证变动记录
@param `operationType` 变动类型
@param `voucherIdColl` 凭证ID集合
@return 注册成功？


class_name: kd.sdk.fi.cal.extpoint.calintime.ICalMoveGroupCost
method_name: doCalGroupCostEx
param_types_key: Map,String,Set
signature_text:
void doCalGroupCostEx(java.util.Map<String, java.math.BigDecimal> acctRecIdEleCostMap, String entity, java.util.Set<Long> bizBillIds)

comment:
package kd.sdk.fi.cal.extpoint.calintime;
import kd.bos.algo.DataSet;
import kd.bos.algo.Row;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.QueryServiceHelper;
import java.math.BigDecimal;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
publicclassCalMoveGroupCostTestimplementsICalMoveGroupCost{
``
@param `acctRecIdEleCostMap` ` 分项：key：成本账簿ID+ "|" + 成本记录分录id + "|" + 成本子要素ID 不分项：key：成本账簿ID+ "|" + 成本记录分录id + "|" + “materialcost”（材料成本） 或 “processcost”（加工费） 或 “fee”（费用） 或 “manufacturecost”（制造费用） 或 “RESOURCE”（资源费用） value：对应金额
@param `entity` 库存业务对象编码
@param `bizBillIds` 业务单据id
@return void


class_name: kd.sdk.fi.cal.extpoint.costrecord.IQueueTypeMatch
method_name: getQueueType
param_types_key: Long,String,Long
signature_text: public String getQueueType(Long costAccountId, String bizEntityObject, Long billId)
comment:
获取序列类型
扩展示例如下
package kd.sdk.fi.cal.extpoint.costrecord;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.QueryServiceHelper;
import kd.bos.util.StringUtils;
import kd.sdk.fi.cal.extpoint.costrecord.IQueueTypeMatch;
publicclassSrcBill4QueuePlugin_TestimplementsIQueueTypeMatch {
public String getQueueType(Long costAccountId, String bizEntityObject, Long billId) {
//非销售出库单 或者 账簿不等于指定账簿，直接返回if(!bizEntityObject.equals("im_saloutbill") || costAccountId != 88888888L){
returnnull;
}
QFilterq=newQFilter("bizbillid", "=", billId);
q.and("costaccount.ismainaccount", "=", true);
DynamicObjectinfo= QueryServiceHelper.queryOne("cal_costrecord", "id,period,entry.srcbillentity,entry.srcbillid", q.toArray());
//没有成本记录，则无需判断插件逻辑，直接返回if(info == null){
returnnull;
}
StringsrcMainEntity= info.getString("entry.srcbillentity");
//来源单类型为空，直接返回if(StringUtils.isEmpty(srcMainEntity)){
returnnull;
}
longperiod= info.getLong("period");
longsrcBillId= info.getLong("entry.srcbillid");
DynamicObjectsrcInfo=null;
//源单类型相同，都是销售出库单if(bizEntityObject.equals(srcMainEntity)){
q = newQFilter("bizbillid", "=", srcBillId);
q.and("costaccount.ismainaccount", "=", true);
//源单
srcInfo = QueryServiceHelper.queryOne("cal_costrecord", "id,period,entry.srcbillentity,entry.srcbillid", q.toArray());
//VMI红字销售出库单源单蓝字销售出库单为物流单不进核算if(srcInfo == null){
returnnull;
}
longsrcPeriod= srcInfo.getLong("period");
//源单类型=销售出库单且源单为往期（期间不等）if(period != srcPeriod){
//返回为入库序列return"0";
}
}
returnnull;
}
}
@param `costAccountId` 成本账簿ID
@param `bizEntityObject` 业务对象
@param `billId` 业务单据ID
@return queueType: "0"为入库序列，"1"为出库序列，其余结果无效


class_name: kd.sdk.fi.cas.extpoint.claimbill.BankAutoMatchCheck
method_name: setBankAutoMatchCheck
param_types_key: List
signature_text:
setBankAutoMatchCheck(java.util.List<java.util.List<kd.sdk.fi.cas.extpoint.claimbill.CompareCheckRule>> ruleList)


class_name: kd.sdk.fi.cas.extpoint.claimbill.IClaimbillFilter
method_name: setIFilters
param_types_key: ListFilterParameter,DynamicObject
signature_text: default void setIFilters(ListFilterParameter lfp, DynamicObject claimBill)
comment:
Title: IClaimbillFilter.java
Description: 收款认领单过滤条件扩展插件,用于二开项目扩展过滤条件
@param `lfp` 列表过滤条件参数
@param `claimBill` 页面单据
@return void


class_name: kd.sdk.fi.cas.extpoint.claimbill.IClaimHandlePluginSDK
method_name: dealResult
param_types_key: Map,DynamicObject
signature_text: void dealResult(java.util.Map<Long, java.util.Map<String, Object>> idValue, DynamicObject rowData)
comment:
处理数据集
@param `idValue` 存放查询的id及对应数据集
@param `rowData` 分录数据对象 public void dealResult(Map> idValue, DynamicObject rowData) { Long id = (Long)rowData.get("e_corebillid"); rowData.set("e_fee", idValue.get(id).get("e_fee")); }


class_name: kd.sdk.fi.cas.extpoint.claimbill.IClaimHandlePluginSDK
method_name: fillResult
param_types_key: String,Set,Map
signature_text:
void fillResult(String coreBillType, java.util.Set<Long> ids, java.util.Map<Long, java.util.Map<String, Object>> idValue)

comment:
填充数据集
@param `coreBillType` 核心单据类型
@param `ids` 选择的核心单据id
@param `idValue` 存放查询的id及对应数据集 public void fillResult(String coreBillType, Set ids, Map> idValue) { DynamicObject obj = QueryServiceHelper.queryOne(coreBillType,"e_fee",new QFiter("id",QCP.in,ids)); Map s = new HashMap<>(); s.put("e_fee", obj.get("e_fee")); idValue.put(obj.getLong("id"),s); }


class_name: kd.sdk.fi.cas.extpoint.claimbill.IClaimHandlePluginSDK
method_name: getSelectFieldWithEntry
param_types_key: String,String,String
signature_text:
java.util.Set<String> getSelectFieldWithEntry(String coreBillType, String entryEntityKey, String srcSelectField)

comment:
@param `coreBillType` 核心单据类型
@param `entryEntityKey` 分录标识
@param `srcSelectField` 标品原始查询属性
@return 添加二开查询属性 pubilc String getSelectFieldWithEntry(String coreBillType, String entryEntityKey,String srcSelectField){ String field = ",amt,entry.e_fee";// 可以根据coreBillType、entryEntityKey返回二开需要查询的属性 return field; }


class_name: kd.sdk.fi.cas.extpoint.paybill.IGenBankBillSDKService
method_name: extFillBankBill
param_types_key: String,List
signature_text:
java.util.Map<Long, java.util.Map<String, Object>> extFillBankBill(String entityName, java.util.List<DynamicObject> billList)

comment:
扩展示例如下
package kd.sdk.tmc.ext.extpoint.committobe;
import kd.bos.dataentity.entity.DynamicObject;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
publicclassGenBankBillServiceimplementsIGenBankBillSDKService{
``
@param `entityName` 单据实体名
@param `billList` 业务单据集合
@return key->银行单据id；value->二开字段名和值的键值对


class_name: kd.sdk.fi.cas.extpoint.paybill.IPaybillWriteback
method_name: loadExtendInfo
param_types_key: Long
signature_text: java.util.Map<Long, java.util.Map<String, Object>> loadExtendInfo(Long payBillId)
comment:
付款单反写参数扩展属性返回,用于二开项目返回扩展字段反写
扩展示例如下
publicclassPaybillWritebackImplimplementsIPaybillWriteback{
public Map> loadExtendInfo(Long payBillId) {
Map> extendInfoMap = newHashMap<>();
try {
DynamicObjectpayWriteConfig= ExtendConfigHelper.getExtendConfig(ExtendConfigHelper.CONFIG_WRITEBACK_PAY);
if(payWriteConfig != null && StringUtils.isNotBlank(payWriteConfig.getString("configvalue"))){
IPaybillWritebackiPaybillWriteback= (IPaybillWriteback) Class.forName(payWriteConfig.getString("configvalue")).newInstance();
extendInfoMap.putAll(iPaybillWriteback.loadExtendInfo(payBillId));
}
} catch (Exception e) {
logger.info("加载扩展服务异常，%s",e.toString());
}
return extendInfoMap;
}
}
@param `payBillId` 付款单id
@return Map> key:分录ID value:扩展属性 (以键值对形式返回)


class_name: kd.sdk.fi.cas.extpoint.paybill.IPayeeBankInfoFilter
method_name: setIFilters
param_types_key: ListFilterParameter,DynamicObject
signature_text: default void setIFilters(ListFilterParameter lfp, DynamicObject payBill)
comment:
付款处理客商收款账号过滤条件扩展插件
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.list.ListFilterParameter;
publicclassPayeeBankInfoFilterimplementsIPayeeBankInfoFilter {
publicvoidsetIFilters(ListFilterParameter lfp, DynamicObject payBill) {
IPayeeBankInfoFilter.super.setIFilters(lfp, payBill);
lfp.setFilter(newQFilter("accountingorg", QCP.equals, payBill.getString("billstatus")));
}
}
**
****
@param `lfp` 列表过滤条件参数
@param `payBill` 页面单据
@return void **扩展示例如下


class_name: kd.sdk.fi.cas.extpoint.paysche.IPayScheSecondaryFieldFill
method_name: fillSecondaryFields
param_types_key: Map,DynamicObject
signature_text:
default void fillSecondaryFields(java.util.Map<String, Object> secondaryFields, DynamicObject paybill)

comment:
开票回调后处理
扩展示例如下
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.ext.fi.botp.consts.PaymentBillModel;
import java.util.Map;
publicclassIPayScheSecondaryFieldFill_DemoimplementsIPayScheSecondaryFieldFill {
publicvoidfillSecondaryFields(Map secondaryFields, DynamicObject paybill) {
IPayScheSecondaryFieldFill.super.fillSecondaryFields(secondaryFields, paybill);
paybill.set(PaymentBillModel.HEAD_USAGE, secondaryFields.get("a1"));
}
}
@param `secondaryFields` 付款排程单下带的二开字段与值 Map 集合
@param `paybill` 付款处理单动态对象


class_name: kd.sdk.fi.cas.extpoint.recbill.IRecbillFilter
method_name: setIFilters
param_types_key: ListFilterParameter,DynamicObject
signature_text: default void setIFilters(ListFilterParameter lfp, DynamicObject recBill)
comment:
Title: IRecbillFilter.java
Description: 收款单过滤条件扩展插件,用于二开项目扩展过滤条件
@param `lfp` 列表过滤条件参数
@param `recBill` 页面单据
@return void


class_name: kd.sdk.fi.dhc.extpoint.ISynchronizationDataExtPlugin
method_name: addMappingFields
param_types_key: String
signature_text: default java.util.Map<String, String> addMappingFields(String billType)
comment:
接口调用时机：各场景下同步数据前获取映射配置关系时
扩展示例如下
publicclassSynchronizationDataExtTestPluginimplementsISynchronizationDataExtPlugin {
``
@param `billType` 要同步数据的单据类型。接入报账工作台的单据的实体编码
@return 自定义增加的{billType}单与{dhc_mybilllist}的同步映射关系


class_name: kd.sdk.fi.er.extpoint.dailyreimbursebill.IAmountControl
method_name: cancelAmountControl
param_types_key: DynamicObject
signature_text: Boolean cancelAmountControl(DynamicObject dynamicObject)
comment:
提交时是否要超额判断逻辑
扩展示例如下
publicclassAmountControlimplementsIAmountControl {
publicbooleancancelAmountControl(DynamicObject dynamicObject) {
//要超额判断returntrue;
}
}
@param `DynamicObject` 单据页面提交时的元数据
@return boolean


class_name: kd.sdk.fi.er.extpoint.dailyreimbursebill.IChangeReceiveAmount
method_name: afterChangeReciveAmount
param_types_key: IDataModel,String
signature_text: public default Object afterChangeReciveAmount(IDataModel dataModel, String writeOffType)
comment:
允许二开在收款信息分录联动结束后，重新计算收款信息分录金额 作用于 kd.fi.er.formplugin.daily.web.util.WriteOffMoneyUtils.refreshReceiveAmount kd.fi.er.formplugin.daily.web.util.WriteOffMoneyUtils#refreshReceiveAmount
@param `dataModel` 页面model
@param `writeOffType` 冲销方式
@return kd.fi.er.business.daily.reimburse.AmountObject对象


class_name: kd.sdk.fi.er.extpoint.dailyreimbursebill.IChangeReceiveAmount
method_name: isChangeReceiveAmount
param_types_key: IFormView
signature_text: public boolean isChangeReceiveAmount(IFormView view)
comment:
扩展示例如下
publicbooleanisChangeReceiveAmount(IFormView iFormView) {
returnfalse;
}
@param `view` 单据界面
@return 是否联动收款金额


class_name: kd.sdk.fi.er.extpoint.dailyreimbursebill.IEntryMustInput
method_name: checkAssetEntryMustInput
param_types_key: DynamicObject
signature_text: Boolean checkAssetEntryMustInput(DynamicObject bill)
comment:
返回true时，校验资产报账单资产分录必填，false不校验
扩展示例如下
publicclassAssetentryMustInputimplementsIEntryMustInput {
``
@param `bill`


class_name: kd.sdk.fi.er.extpoint.dailyreimbursebill.IInitBillInfo
method_name: initBillInfo
param_types_key: IFormView
signature_text: void initBillInfo(IFormView view)
comment:
费用报销单据新增初始化单据信息
扩展示例如下
publicclassInitBillInfoimplementsIInitBillInfo{
publicvoidinitBillInfo(IFormView view) {
if (view == null){
return;
}
LongcompanyId=1247657405731330048L;//根据具体业务获取公司id
view.getModel().setValue("company", companyId);
}
}
@param `view` 单据页面
@return void


class_name: kd.sdk.fi.er.extpoint.dailyreimbursebill.IPayAmountCal
method_name: payAmountCalc
param_types_key: IFormView
signature_text: public Object payAmountCalc(IFormView view)
comment:
扩展示例如下
public Object payAmountCalc(IFormView view) {
if (view == null) {
returnnull;
}
BigDecimalorgiPayAmount= (BigDecimal) view.getModel().getValue("orgiPayAmount");
BigDecimalcurrPayAmount= (BigDecimal) view.getModel().getValue("orgiPayAmount");
AmountObjectresult=newAmountObject(orgiPayAmount, currPayAmount);
return result;
}
@param `view` 单据及界面
@return 付现金额 返回类型为kd.fi.er.business.daily.reimburse.AmountObject 否则标准逻辑获取不到


class_name: kd.sdk.fi.er.extpoint.dailyreimbursebill.IReimburseAmount
method_name: getEmployeeCurrentInReimbursedAmountBetween
param_types_key: Map
signature_text:
public java.math.BigDecimal getEmployeeCurrentInReimbursedAmountBetween(java.util.Map<String, Object> param)

comment:
获取某个员工，某项费用项目，在某个时间区间内 正在报销流程中的单据金额（状态：已提交B，审核中C）
扩展示例如下
public BigDecimal getEmployeeCurrentInReimbursedAmountBetween(Map map) {
BigDecimalresult= BigDecimal.ZERO;
Stringamount= ErStdConfig.get("Amont.Ctrl.Ext.Dept");
result = newBigDecimal(amount);
if(result == null) {
result = BigDecimal.ZERO;
}
return result;
}
@param `param` 额度处理参数key分别为 company 公司 dept/userid 部门或人员id expenseitem 费用项目 currency 本位币 begindate 开始时间 enddate 结束时间 existids
@return 额度


class_name: kd.sdk.fi.er.extpoint.dailyreimbursebill.IReimburseAmount
method_name: getEmployeeReimbursedAmountDetailBetween
param_types_key: Map
comment: 获取某个员工，某项费用项目，在某个时间区间内已报销的额度详情 @param `param`
signature_text:
public java.math.BigDecimal getEmployeeReimbursedAmountDetailBetween(java.util.Map<String, Object> param)


class_name: kd.sdk.fi.er.extpoint.dailyreimbursebill.ISuperClosedCallBack
method_name: beforeClosedCallBack
param_types_key: Class,String,Boolean,Object[]
comment: 为true，执行标准逻辑；为false，则执行完此方法跳过标准逻辑 @return 是否执行标准的closedCallBack
signature_text:
default boolean beforeClosedCallBack(Class<?> clazz, String actionId, Boolean isPc, Object[] params)


class_name: kd.sdk.fi.er.extpoint.dailyreimbursebill.ISuperClosedCallBack
method_name: beforeShowFrom
param_types_key: Class,String,Boolean,Object[]
signature_text: default boolean beforeShowFrom(Class<?> clazz, String foromid, Boolean isPc, Object[] params)
comment:
@param `clazz` ShowFrom 所在的插件
@param `foromid` ShowFrom 即将打开的界面标识
@param `isPc` 是否为PC端
@param `params` 可变传参，
@return 是否执行标准的view.showfrom; 为true，执行标准逻辑；为false，则执行完此方法跳过标准逻辑


class_name: kd.sdk.fi.er.extpoint.dailyreimbursebill.ITripStandardControl
method_name: controlTripStandard
param_types_key: DynamicObject
signature_text: Boolean controlTripStandard(DynamicObject dynamicObject)
comment:
提交时是否要启用差旅标准
扩展示例如下
publicclassTripStandardControlimplementsITripStandardControl {
public Boolean controlTripStandard(DynamicObject dynamicObject) {
returntrue;
}
}
@param `DynamicObject` 单据页面提交时的元数据
@return boolean


class_name: kd.sdk.fi.er.extpoint.dailyreimbursebill.IWriteBackService
method_name: getSelfBackService
signature_text: Object getSelfBackService()
comment:
出纳付款单反写
扩展示例如下
publicclassWriteBackServiceimplementsIWriteBackService {
public Object getSelfBackService() {
returnnewDailyLoanBillWriteBackService();
}
}
@return Object 必须实现kd.fi.er.mservice.botp.writeback.AbstractWriteBackServcie


class_name: kd.sdk.fi.er.extpoint.draw.IDrawRuleService
method_name: getRuleId
param_types_key: String,String,IFormView,ListSelectedRowCollection,String
signature_text:
String getRuleId(String srcEntity, String tarEntity, IFormView tarView, ListSelectedRowCollection rows, String ruleId)

comment:
对于标准产品代码里写死的ruleid，允许现场通过此方法修改掉。
扩展示例如下
public String getRuleId(String srcEntity, String tarEntity, IFormView tarView, ListSelectedRowCollection rows,
String ruleId) {
//如果是二开的报销单上拉二开的借款单if("4b3z_er_dailyloanbill_inh".equals(srcEntity) && "4b3z_er_dailyreimbursebill_inh".equals(tarEntity)){
return"123622523888";
}
//其他情况走原有规则不动return ruleId;
}
@param `srcEntity` 上拉的实体
@param `tarEntity` 目标实体
@param `tarView` 目标view
@param `rows` 选择的数据
@param `ruleId` 现有的ruleId
@return 期望的ruleId


class_name: kd.sdk.fi.er.extpoint.invoicecloud.AfterSelectInvoice
method_name: cacheJsonFromInvoiceCloud
param_types_key: String
signature_text: default void cacheJsonFromInvoiceCloud(String jsonFromInvoiceCloud)
comment:
选择发票后，缓存发票云传回的原始的发票json信息。
扩展示例如下
publicclassAfterSelectInvoiceDemoimplementsAfterSelectInvoice {
privateStringjsonFromInvoiceCloud=null;
`
@param `jsonFromInvoiceCloud` 选择发票后，发票云传回的原始的发票json信息。


class_name: kd.sdk.fi.er.extpoint.invoicecloud.AfterSelectInvoice
method_name: finish
param_types_key: IFormView
signature_text: default void finish(IFormView view)
comment:
标准产品的代码根据发票信息完成发票信息分录、发票明细分录、费用/差旅明细分录等一切界面字段的填充后，调用此方法。
扩展示例如下
publicclassAfterSelectInvoiceDemoimplementsAfterSelectInvoice {
privatestaticfinalLoglogger= LogFactory.getLog(AfterSelectInvoiceDemo.class);
// 定义成员变量，缓存cacheJsonFromInvoiceCloud所传入的参数privateStringjsonFromInvoiceCloud=null;
```
@param `view` 单据界面的view


class_name: kd.sdk.fi.fatvs.extpoint.skill.ISkillRunnableExtPlugin
method_name: pullData
param_types_key: SkillRunExtContext
comment: 获取技能运行数据 @param `runExtContext` ` 技能运行数据入参 @return 技能运行数据
signature_text:
default kd.sdk.fi.fatvs.extpoint.skill.SkillRunExtResult pullData(kd.sdk.fi.fatvs.extpoint.skill.SkillRunExtContext runExtContext)


class_name: kd.sdk.fi.fatvs.extpoint.skill.ISkillRunnableExtPlugin
method_name: showSkillRunAnalysisPage
param_types_key: SkillRunAnalysisPageParam
comment: 展示技能运行分析页 @param `pageParam` ` 技能分析页入参
signature_text:
default void showSkillRunAnalysisPage(kd.sdk.fi.fatvs.extpoint.skill.SkillRunAnalysisPageParam pageParam)


class_name: kd.sdk.fi.fcm.extpoint.checkitem.CheckResult
method_name: setOnlineQueryParams
param_types_key: String
signature_text: public void setOnlineQueryParams(String onlineQueryParams)
comment:
联查页面数据过滤条件(参数), 该值做为联查页面视图的过滤条件，请确保该联查参数跟联查页面视图是匹配的 该参数的可能取值类型为: 1. 该参数可以为外部URL的查询参数，在`onlineViewId` 为URL协议开头时， 该参数会拼接到其后面，构成整个联查页面的 URL， 参见 kd.bos.ext.fi.fcm.mservice.CheckItemDetail#buildExternalUrl() 2. 该参数如果为应用内的过滤条件，其为QFilter的序列化字符串


class_name: kd.sdk.fi.fcm.extpoint.checkitem.IClosePeriodCheckPlugin
method_name: execute
param_types_key: CheckContext
signature_text: CheckResult execute(CheckContext context) throws Throwable
comment:
根据指定的结账检查上下文 context，实现特定的业务检查。 Note: 插件必须提供一个无参构造函数，由执行程序通过反射进行调用
@param `context` 结账检查上下文， 包含检查项定义的信息
@return 结账检查结果
@throws `Throwable` 检查项的逻辑异常


class_name: kd.sdk.fi.gl.extpoint.amort.IAmountAllocate
method_name: dealDestEntries
param_types_key: List,List,DynamicObject
signature_text:
void dealDestEntries(java.util.List<DynamicObject> destEntries, java.util.List<DynamicObject> targetEntries, DynamicObject schemeDyn)

comment:
根据待摊凭证分录自定义转入的凭证分录
publicclassAmortExtTestimplementsIAmountAllocate {
publicvoiddealDestEntries(List>DynamicObject< destEntries, List targetEntries, DynamicObject schemeDyn) {
destEntries.forEach(destRow->{
for (DynamicObject targetRow: targetEntries){
if (destRow.getLong("assgrp_id") == targetRow.getLong("assgrp_id")){
destRow.set("debitori", targetRow.getBigDecimal("creditori"));
destRow.set("debitlocal", targetRow.getBigDecimal("creditlocal"));
}
}
});
}
}
@param `destEntries` 转入凭证分录，可进行自定义修改
@param `targetEntries` 待摊凭证分录，对其的修改将无效
@param `schemeDyn` 凭证摊销方案对象，可用来判断参数，对其的修改将无效


class_name: kd.sdk.fi.gl.extpoint.notice.INoticeCheck
method_name: extCheck
param_types_key: ReportList,ReportList
signature_text: boolean extCheck(ReportList sendList, ReportList receiveList)
comment:
自定义校验接口
`扩展示例如下 `
package hx.fi.gl.extpoint.notice;
import kd.bos.report.ReportList;
import kd.sdk.fi.gl.extpoint.notice.INoticeCheck;
publicclassHxNoticeCHeckimplementsINoticeCheck {
publicbooleanextCheck(ReportList sendList, ReportList receiveList) {
if(sendList ==null||receiveList==null){
returnfalse;
}
...
returnfalse;
}
}
@param `sendList` 发送通知单列表,receiveList 接收通知单列表
@return 是，检查通过，否，检查不通过
@throws ``


class_name: kd.sdk.fi.gl.extpoint.notice.INoticeVoucherIdsProvider
method_name: customFilterVchIds
param_types_key: Set
signature_text: java.util.Set<Long> customFilterVchIds(java.util.Set<Long> voucherIds)
comment:
不需要过滤，需要返回参数参入的voucherIds。
扩展示例如下
package kd.sdk.fi.gl.extpoint.notice;
import java.util.Set;
publicclassNoticeVoucherIdsProviderImplimplementsINoticeVoucherIdsProvider{
``
@param `voucherIds` 标准产品需要发送通知单的凭证ids
@return 扩展插件过滤后需要发送通知单的凭证ids


class_name: kd.sdk.fi.gl.extpoint.notice.INoticeVoucherSourceType
method_name: noSendNoticeSourceType
signature_text: java.util.List<String> noSendNoticeSourceType()
comment:
自定义校验接口
`扩展示例如下 `
package kd.sdk.fi.gl.extpoint.notice;
import java.util.ArrayList;
import java.util.List;
publicclassNoticeVoucherSourceTypeCtlimplementsINoticeVoucherSourceType{
``
@return 不发送通知单的凭证来源类型集合。目前标准产品结转损益类型的凭证不发通知，无需再控制。
@throws ``


class_name: kd.sdk.fi.gl.extpoint.report.IReportQuery
method_name: auxSubLedger
param_types_key: DataSet,ReportQueryParam,Object
comment: 多组织辅助明细账扩展
signature_text:
DataSet auxSubLedger(DataSet standardDataSet, ReportQueryParam reportQueryParam, Object selectedObj)


class_name: kd.sdk.fi.gl.extpoint.report.IReportQuery
method_name: subLedger
param_types_key: DataSet,ReportQueryParam,Object
signature_text: DataSet subLedger(DataSet standardDataSet, ReportQueryParam reportQueryParam, Object selectedObj)
comment:
辅助明细账扩展
扩展示例如下
import kd.bos.algo.DataSet;
import kd.bos.entity.report.FilterInfo;
import kd.bos.entity.report.ReportQueryParam;
publicclassExtReportQueryimplementsIReportQuery{
``
@param `standardDataSet` 标准产品报表查询数据集合
@param `reportQueryParam` 报表查询参数
@param `selectedObj` 左表选中对象(如有)
@return 扩展处理后数据集合


class_name: kd.sdk.fi.gl.extpoint.report.IReportRowHideSpi
method_name: needHide
param_types_key: ReportParam,RowType
signature_text: Boolean needHide(ReportParam param, RowType rowType)
comment:
扩展示例如下
package kd.sdk.fi.gl.extpoint.report;
import kd.bos.algo.DataSet;
import kd.bos.entity.report.FilterInfo;
publicclassSummaryFilterimplementsIReportRowHideSpi {
``
@param `param` 报表查询上下文
@param `rowType` 行类型
@return 返回Ture则隐藏该报表查询结果集中对应rowType的所有列


class_name: kd.sdk.fi.gl.extpoint.report.ReportParam
method_name: <init>
param_types_key: ReportType,ReportQueryParam
signature_text:
public ReportParam(kd.sdk.fi.gl.extpoint.report.ReportParam.ReportType reportType, ReportQueryParam queryParam)


class_name: kd.sdk.fi.gl.extpoint.syncbookvch.IAccountAssgrpMapping
method_name: dealMapping
param_types_key: AccountAssgrpMappingParam
comment: @param `param` 映射关系表依赖的参数 @return 二开自定义的科目映射关系List
signature_text:
java.util.List<kd.sdk.fi.gl.extpoint.syncbookvch.AccountAssgrpMapping> dealMapping(kd.sdk.fi.gl.extpoint.syncbookvch.AccountAssgrpMappingParam param)


class_name: kd.sdk.fi.ssc.extpoint.achieve.ICustomAchieveFactorPlugin
method_name: getCustomAchieveFactor
param_types_key: Long,String,Long,Date,Date
signature_text:
Object getCustomAchieveFactor(Long mainOrg, String accessType, Long accessObject, java.util.Date startDate, java.util.Date endDate)

comment:
单个考核对象的计算因子计算
@param `mainOrg` 主业务组织（绩效指标/绩效方案中的共享中心；意为增加该共享中心约束条件）
@param `accessType` 考核对象类型 1-用户组（暂不支持） 2-表示员工
@param `accessObject` 考核对象 用户组id 或者 用户id
@param `startDate` 开始日期 考核周期的开始时间
@param `endDate` 结束日期 考核周期的结束时间
@return 计算因子的值


class_name: kd.sdk.fi.ssc.extpoint.achieve.ICustomAchieveFactorPlugin
method_name: getCustomAchieveFactorBatch
param_types_key: Long,String,Set,Date,Date
signature_text:
java.util.Map<Long, Object> getCustomAchieveFactorBatch(Long mainOrg, String accessType, java.util.Set<Long> accessObjectList, java.util.Date startDate, java.util.Date endDate)

comment:
多个考核对象的同一个计算因子计算
@param `mainOrg` 主业务组织 （绩效指标/绩效方案中的共享中心；意为增加该共享中心约束条件）
@param `accessType` 考核对象类型
@param `accessObjectList` 考核对象集合
@param `startDate` 开始日期
@param `endDate` 结束日期
@return 考核对象结果map，key为考核对象，value为计算因子的值


class_name: kd.sdk.fi.ssc.extpoint.create.ITaskCreateService
method_name: afterCreateTask
param_types_key: DynamicObject,DynamicObject,DynamicObject,String,DynamicObject
signature_text:
default void afterCreateTask(DynamicObject taskDyo, DynamicObject billTypeDyo, DynamicObject taskTypeDyo, String assignID, DynamicObject billDataDyo)

comment:
创建任务成功后调用此方法。可在此增加二开业务逻辑，例如通知某个管理员、第三方系统等。
@param `taskDyo` 共享任务中心--任务动态对象
@param `billTypeDyo` 共享任务中心--业务单据基础资料
@param `taskTypeDyo` 共享任务中心--任务类型基础资料
@param `assignID` 工作流id
@param `billDataDyo` 单据动态对象


class_name: kd.sdk.fi.ssc.extpoint.create.ITaskCreateService
method_name: beforeSaveTask
param_types_key: DynamicObject,DynamicObject,DynamicObject,String,DynamicObject
signature_text:
default void beforeSaveTask(DynamicObject taskDyo, DynamicObject billTypeDyo, DynamicObject taskTypeDyo, String assignID, DynamicObject billDataDyo)

comment:
任务动态对象构建完成，保存入库之前调用此方法。可在此增加二开业务逻辑，例如对任务二开字段赋值
@param `taskDyo` 共享任务中心--任务动态对象
@param `billTypeDyo` 共享任务中心--业务单据基础资料
@param `taskTypeDyo` 共享任务中心--任务类型基础资料
@param `assignID` 工作流id
@param `billDataDyo` 单据动态对象


class_name: kd.sdk.fi.ssc.extpoint.disRebuild.IAfterDisService
method_name: afterDisBatch
param_types_key: DisTypeEnum,List
comment: 分配后，批处理执行 @param `disType` 任务分配类型 @param `disTaskList` 待分配任务List
signature_text:
void afterDisBatch(kd.sdk.fi.ssc.extpoint.disRebuild.disenum.DisTypeEnum disType, java.util.List<DynamicObject> disTaskList)


class_name: kd.sdk.fi.ssc.extpoint.disRebuild.IAfterDisService
method_name: afterDisSingle
param_types_key: DisTypeEnum,DynamicObject,boolean
comment: 分配后，单任务处理执行 @param `disType` 任务分配类型 @param `disTask` 待分配任务 @param `isSuccess` 分配是否成功
signature_text:
void afterDisSingle(kd.sdk.fi.ssc.extpoint.disRebuild.disenum.DisTypeEnum disType, DynamicObject disTask, boolean isSuccess)


class_name: kd.sdk.fi.ssc.extpoint.disRebuild.IDataPrepareService
method_name: prepareData
param_types_key: QFilter,DisTaskSourceEnum
comment: 加载待分配任务数据 @param `unDisFilter` 待分配任务，过滤条件 @param `disTaskSource` 加载待分配任务数据扩展接口，调用来源
signature_text:
java.util.List<DynamicObject> prepareData(QFilter unDisFilter, kd.sdk.fi.ssc.extpoint.disRebuild.disenum.DisTaskSourceEnum disTaskSource)


class_name: kd.sdk.fi.ssc.extpoint.disRebuild.INotifyWfService
method_name: notifyWf
param_types_key: DisTypeEnum,DynamicObject,boolean
comment: 通知工作流 @param `disType` 任务分配类型 @param `disTask` 待分配任务 @param `isSuccess` 分配是否成功
signature_text:
void notifyWf(kd.sdk.fi.ssc.extpoint.disRebuild.disenum.DisTypeEnum disType, DynamicObject disTask, boolean isSuccess)


class_name: kd.sdk.fi.ssc.extpoint.disRebuild.IStateChangeService
method_name: stateChange
param_types_key: DisTypeEnum,DynamicObject,boolean,Map
signature_text:
void stateChange(kd.sdk.fi.ssc.extpoint.disRebuild.disenum.DisTypeEnum disType, DynamicObject disTask, boolean isSuccess, java.util.Map<String, Object> disTaskOldValue)

comment:
修改任务状态变更记录
@param `disType` 任务分配类型
@param `disTask` 待分配任务
@param `isSuccess` 分配是否成功
@param `disTaskOldValue` 待分配的任务分配成功后，旧值


class_name: kd.sdk.fi.ssc.extpoint.disRebuild.ITaskSaveService
method_name: saveTask
param_types_key: DisTypeEnum,DynamicObject,boolean
comment: 保存任务 @param `disType` 任务分配类型 @param `disTask` 待分配任务 @param `isSuccess` 分配是否成功
signature_text:
void saveTask(kd.sdk.fi.ssc.extpoint.disRebuild.disenum.DisTypeEnum disType, DynamicObject disTask, boolean isSuccess)


class_name: kd.sdk.fi.ssc.util.task.PartaskUniversalUtil
method_name: isParTaskCompleted
param_types_key: long
signature_text: public static boolean isParTaskCompleted(long taskId) throws KDBizException
comment:
根据已完成任务id，判断是否是多级任务
调用示例:kd.sdk.fi.ssc.util.task.PartaskUniversalUtil.isParTaskCompleted(123456789L)
@param `taskId` ` 任务id
@return true：多级任务，false：非多级任务
@throws `KDBizException ` 是否是多级任务判断错误


class_name: kd.sdk.fi.ssc.util.task.PartaskUniversalUtil
method_name: isParTaskOnProcessing
param_types_key: long
signature_text: public static boolean isParTaskOnProcessing(long taskId) throws KDBizException
comment:
根据在途任务id，判断是否是多级任务
调用示例:kd.sdk.fi.ssc.util.task.PartaskUniversalUtil.isParTaskOnProcessing
(123456789L)
@param `taskId` ` 任务id
@return true：多级任务，false：非多级任务
@throws `KDBizException ` 是否是多级任务判断错误


class_name: kd.sdk.fi.ssc.util.task.PartaskUniversalUtil
method_name: isStartInProcessing
param_types_key: long
signature_text: public static boolean isStartInProcessing(long taskId) throws KDBizException
comment:
根据在途任务id，判断处理中任务是否是初审任务
调用示例:kd.sdk.fi.ssc.util.task.PartaskUniversalUtil.isStartInProcessing(123456789L)
@param `taskId` ` 任务id
@return true：初审任务，false：非初审任务
@throws `KDBizException ` 是否是初审任务判断错误


class_name: kd.sdk.hdtc.hrdi.adaptor.api.IBizSyncSceneAdaptor
method_name: sync
param_types_key: DynamicObject[]
signature_text: java.util.Map<String, String> sync(DynamicObject[] dys)
comment:
业务场景适配同步 入参为中间表对应业务实体动态对象数组，出参为业务数据同步失败信息
@param `dys` 业务实体动态对象
@return Map 同步业务数据校验失败信息 key为业务数据编码，value为同步结果信息，例如{["1010","名称不能为空"],["1020","上级不能为空"]}


class_name: kd.sdk.hdtc.hrdi.adaptor.extend.IBizPersonDataMappingExtendUpdate
method_name: afterGenerateFourFloorPersonId
param_types_key: List
signature_text:
void afterGenerateFourFloorPersonId(java.util.List<kd.sdk.hdtc.hrdi.adaptor.model.BizPersonDataMappingArgs> argsList)

comment:
人员四层人id生成之后埋点 四层人ID生成后，可通过该埋点替换四层人ID 如：实习生转正场景，默认生成不同的四层人ID，如果想要自然人ID与之前一致，可在该埋点的扩展插件中替换自然人ID
@param `argsList` 四层人映射关系扩展埋点入参


class_name: kd.sdk.hdtc.hrdi.adaptor.extend.IPersonMainEntityExtend
method_name: getPersonMainExtEntity
signature_text: java.util.Map<String, String> getPersonMainExtEntity()
comment:
获取人员主数据扩展实体 返回类型为Map，key为实体标识，value为实体在人事业务档案（hspm_ermanfile）上对应的字段 例如:("hrpi_depemp", "depemp") 如果在人员档案上没有对应字段，则value设置为person.id 例如:("hrpi_perregion", "person.id")
@return 人员主数据扩展实体Map


class_name: kd.sdk.hdtc.hrdi.adaptor.service.HrdiBizDataSyncServiceHelper
method_name: syncMidTableData
param_types_key: String,String,String,List
signature_text:
public static kd.sdk.hdtc.hrdbs.model.ApiResponse syncMidTableData(String tableNumber, String batchNumber, String sourceSys, java.util.List<java.util.Map<String, Object>> data)

comment:
集成中心业务数据同步服务
@param `tableNumber` 集成中间表实体编码
@param `batchNumber` 批次号
@param `sourceSys` 外部系统编码
@param `data` 待同步数据
@return 同步结果


class_name: kd.sdk.hr.hdm.business.mservice.helper.HDMPartBillServiceHelper
method_name: queryPositionInfoById
param_types_key: Long
signature_text: public static java.util.Map<String, Object> queryPositionInfoById(Long billPKId)
comment:
查询兼职岗位、标准岗位信息 **兼职申请单中 岗位和职位在1128版本已经切换为带历史版本的基础资料控件 所以取出来的对象是需要用fboid还是直接fid 需要产品给出定义**
@param `billPKId` 兼职申请单id
@return key -> positiontype(任岗模式：1-岗位，0-标准岗位, 2-职位)，position（兼职岗位），stdposition（兼职标准岗位） . job(兼职职位) adminorg(兼职部门)


class_name: kd.sdk.hr.hdm.business.mservice.helper.HDMRegBillServiceHelper
method_name: executePersonQuitEffect
param_types_key: Map
signature_text:
public static java.util.Map<String, Object> executePersonQuitEffect(java.util.Map<String, Object> personQuitMessage)

comment:
离职生效调用RPC接口处理领域内业务
@param `personQuitMessage` 离职员工信息封装
@return success true|false ; msg null|"desc ..."


class_name: kd.sdk.hr.hlcm.business.mservice.helper.ContractServiceHelper
method_name: generateContract
param_types_key: List
comment: 生成档案接口 @param `dynamicObjects`
signature_text:
public static java.util.Map<String, Object> generateContract(java.util.List<DynamicObject> dynamicObjects)


class_name: kd.sdk.hr.hlcm.business.mservice.helper.ContractServiceHelper
method_name: replaceKeywordGenFile
param_types_key: Long,int,boolean,boolean
signature_text:
public static java.util.Map<String, String> replaceKeywordGenFile(Long signBillId, int index, boolean isAlterFileName, boolean isToPdf)

comment:
合同模板替换的SDK
@param `signBillId` 签署单据ID
@param `index` 模板行数
@param `isAlterFileName` 是否修改文件名称
@param `isToPdf` 是否需要将替换后的文件转化的PDF
@return URL 替换后生成的文件的URL


class_name: kd.sdk.hr.hom.business.onbrd.IConfirmOnbrdService
method_name: tpiInfo
param_types_key: List,List,String,boolean,DynamicObject
signature_text:
boolean tpiInfo(java.util.List<String> errMsglist, java.util.List<String> emptyFileds, String operateKey, boolean isMobile, DynamicObject onbrdBillDetailInfo)

comment:
自定义确认入职的错误提示信息
@param `errMsglist` 错误信息
@param `emptyFileds` 空字段标识
@param `operateKey` 操作按钮
@param `isMobile` 是否移动端
@param `onbrdBillDetailInfo` 入职单据详情
@return true/false 二开方案默认false


class_name: kd.sdk.hr.hom.business.onbrd.IOnbrdService
method_name: beforeWrapOriginalJson
param_types_key: List,Map,String
signature_text:
void beforeWrapOriginalJson(java.util.List<ImportBillData> rowdatas, java.util.Map<String, ImportLogger> importLoggerMap, String optionCode)

comment:
多实体导入-实现自定义赋值。如：候选人编号
@param `rowdatas` rowdatas
@param `importLoggerMap` importLoggerMap
@param `optionCode` optionCode


class_name: kd.sdk.hr.hom.business.onbrd.IPerChgBizParam
method_name: setPerChgBizParam
param_types_key: DynamicObject,Map
comment: 设置参数 @param `onbrdBillInfo` 入职单信息确认入职埋点 @param `dataRow` 数据信息，key为页面标识，value为数据id
signature_text:
void setPerChgBizParam(DynamicObject onbrdBillInfo, java.util.Map<String, java.util.List<Long>> dataRow)


class_name: kd.sdk.hr.hom.business.onbrd.IShareTaskService
method_name: dealShareTask
param_types_key: String,String,List
signature_text: void dealShareTask(String operationType, String entityName, java.util.List<Long> ids)
comment:
处理共享任务
@param `operationType` 操作类型 confirm-确认 breakup-终止
@param `entityName` 实体名称
@param `ids` 业务IDs


class_name: kd.sdk.hr.hom.business.personinfo.IEducationExpService
method_name: initViewForExt
param_types_key: IFormView,DynamicObject,DynamicObjectCollection
signature_text:
void initViewForExt(IFormView formView, DynamicObject currentEduInfo, DynamicObjectCollection currentEduCertInfos)

comment:
初始化页面，给页面的扩展字段赋值
@param `formView` 页面视图
@param `currentEduInfo` 教育经历主体信息
@param `currentEduCertInfos` 教育经历证件信息


class_name: kd.sdk.hr.hom.mservice.helper.HOMServiceHelper
method_name: createOnboardBill
param_types_key: Map
comment: 创建入职单 @param `requestMap` 入职单参数 @return 结果
signature_text:
public static java.util.Map<String, Object> createOnboardBill(java.util.Map<String, Object> requestMap)


class_name: kd.sdk.hr.hom.service.IOnbrdInfoService
method_name: createCodeRuleHandler
param_types_key: DynamicObject,List,int,int
comment: 入职单生成工号 @param `dy` 入职单 @param `numberList` 工号 @param `count` 计数 @param `expectNum` 期望数字
signature_text:
void createCodeRuleHandler(DynamicObject dy, java.util.List<String> numberList, int count, int expectNum)


class_name: kd.sdk.hr.hom.service.IOnbrdInfoService
method_name: validateMultiOnbrd
param_types_key: String,String,List,ImportLogger
signature_text:
default void validateMultiOnbrd(String entityName, String optionCode, java.util.List<MultiEntityRowData> sheetRowDataList, ImportLogger importLogger)

comment:
多实体引入校验埋点
@param `entityName` 实体名称
@param `optionCode` 操作编码
@param `sheetRowDataList` 数据
@param `importLogger` 日志


class_name: kd.sdk.hr.hpfs.business.file.MultiViewTempService
method_name: commonForm
param_types_key: FormShowParameter,String,String,ShowType
signature_text:
public void commonForm(FormShowParameter formShowParameter, String formId, String targetKey, ShowType showType)

comment:
公共form
@param `formShowParameter` formShowParameter
@param `formId` formId
@param `targetKey` 目标
@param `showType` 类型


class_name: kd.sdk.hr.hpfs.business.file.MultiViewTempService
method_name: getInfoGroupAuthListByAppId
param_types_key: Map,FormShowParameter
comment: 批量调用权限接口 @param `infoGroupConfig` 多视图信息
signature_text:
public void getInfoGroupAuthListByAppId(java.util.Map<String, Object> infoGroupConfig, FormShowParameter formShowParameter)


class_name: kd.sdk.hr.hpfs.business.file.MultiViewTempService
method_name: setLabelClick
param_types_key: OnGetControlArgs,FormView,AbstractFormPlugin,String
comment: 设置标签点击 @param `args` args @param `formView` formView @param `plugin` plugin @param `param`
signature_text:
public void setLabelClick(OnGetControlArgs args, FormView formView, AbstractFormPlugin plugin, String param)


class_name: kd.sdk.hr.hpfs.business.file.MultiViewTempService
method_name: setLabelEvent
param_types_key: OnGetControlArgs,FormView,AbstractFormPlugin,List
comment: 设置标签事件 @param `args` args @param `formView` 视图 @param `plugin` 插件 @param `mainEntryList` 数据
signature_text:
public void setLabelEvent(OnGetControlArgs args, FormView formView, AbstractFormPlugin plugin, java.util.List<java.util.Map<String, Object>> mainEntryList)


class_name: kd.sdk.hr.hpfs.business.file.MultiViewTempService
method_name: showHeadFrom
param_types_key: FormShowParameter,List,AbstractFormPlugin,String,IFormView
signature_text:
public void showHeadFrom(FormShowParameter dyFrom, java.util.List<java.util.Map<String, Object>> headEntryList, AbstractFormPlugin plugin, String targetKey, IFormView view)

comment:
show页面
@param `dyFrom` form
@param `headEntryList` 数据
@param `plugin` 插件
@param `targetKey` 模板页
@param `view` view


class_name: kd.sdk.hr.hpfs.business.mservice.helper.HPFSPersonChgServiceHelper
method_name: crossValidateBatch
param_types_key: List
comment: 批量事务交叉校验接口 @param `params` 事务参数 @return 交叉校验结果
signature_text:
public static java.util.Map<String, Object> crossValidateBatch(java.util.List<java.util.Map<String, Object>> params)


class_name: kd.sdk.hr.hpfs.business.mservice.helper.HPFSPersonChgServiceHelper
method_name: executeActionPersonalChange
param_types_key: Map
comment: 操作型事务生效接口 @param `params` 生效参数 @return 事务执行结果
signature_text:
public static java.util.Map<String, Object> executeActionPersonalChange(java.util.Map<String, Object> params)


class_name: kd.sdk.hr.hpfs.business.mservice.helper.HPFSPersonChgServiceHelper
method_name: getActionPersonalChange
param_types_key: Map
comment: 操作型事务配置查询接口 @param `params` 查询参数 @return 配置结果
signature_text:
public static java.util.Map<String, Object> getActionPersonalChange(java.util.Map<String, Object> params)


class_name: kd.sdk.hr.hpfs.business.mservice.helper.HPFSPersonChgServiceHelper
method_name: getChgRuleByActionIds
param_types_key: List
signature_text: public static java.util.Map<String, Object> getChgRuleByActionIds(java.util.List<Long> actionIds)
comment:
根据变动操作获取变动规则制定字段的数据范围 目前范围：用工关系类型、用工关系状态、任职类型、任职状态
@param `actionIds` 变动操作id集合
@return key->字段，value->固定值或者取值范围


class_name: kd.sdk.hr.hpfs.business.mservice.helper.HPFSPersonChgServiceHelper
method_name: getCrossValidateBills
param_types_key: Map
comment: 查询事务变动交叉校验单据接口 @param `params` 参数 @return 单据信息
signature_text:
public static java.util.Map<String, Object> getCrossValidateBills(java.util.Map<String, Object> params)


class_name: kd.sdk.hr.hpfs.business.perchg.bizentity.PerChgBizInfo
method_name: setAttachmentData
param_types_key: Map
comment: @param `attachmentData` kd.sdk.hr.hpfs.business.perchg.bizentity.PerChgBizInfo#attachmentData
signature_text:
public void setAttachmentData(java.util.Map<String, java.util.List<PerChgAttachment>> attachmentData)


class_name: kd.sdk.hr.hpfs.business.perchg.bizentity.PerChgBizInfo
method_name: setEntityName2ErrorIfVerificationFail
param_types_key: Set
signature_text:
public void setEntityName2ErrorIfVerificationFail(java.util.Set<String> entityName2ErrorIfVerificationFail)

comment:
@param `entityName2ErrorIfVerificationFail` kd.sdk.hr.hpfs.business.perchg.bizentity.PerChgBizInfo#entityName2ErrorIfVerificationFail


class_name: kd.sdk.hr.hpfs.business.perchg.bizentity.PerChgBizResult
method_name: fail
param_types_key: Long,String,String
signature_text: public static PerChgBizResult fail(Long billId, String billSource, String errMsg)
comment:
返回失败
@param `billId` PerChgBizResult#billId
@param `billSource` PerChgBizResult#billSource
@param `errMsg` PerChgBizResult#errMsg
@return PerChgBizResult


class_name: kd.sdk.hr.hpfs.business.perchg.bizentity.PerChgBizResult
method_name: success
param_types_key: Long,String,Long
signature_text: public static PerChgBizResult success(Long billId, String billSource, Long recordId)
comment:
返回成功
@param `billId` PerChgBizResult#billId
@param `billSource` PerChgBizResult#billSource
@return PerChgBizResult


class_name: kd.sdk.hr.hpfs.business.perchg.bizentity.PerChgBizResult
method_name: success
param_types_key: Long,String,Long,Long,Long,Long,Long,Long
signature_text:
public static PerChgBizResult success(Long billId, String billSource, Long recordId, Long newPersonId, Long newEmployeeId, Long newComEmpId, Long newDepEmpId, Long newErfileId)

comment:
返回成功
@param `billId` PerChgBizResult#billId
@param `billSource` PerChgBizResult#billSource
@param `recordId` PerChgBizResult#recordId
@param `newPersonId` PerChgBizResult#newPersonId
@param `newEmployeeId` PerChgBizResult#newEmployeeId
@param `newComEmpId` PerChgBizResult#newComEmpId
@param `newDepEmpId` PerChgBizResult#newDepEmpId
@param `newErfileId` PerChgBizResult#newErfileId
@return PerChgBizResult


class_name: kd.sdk.hr.hpfs.business.perchg.executor.model.ChgLogEntryDto
method_name: init
param_types_key: String,long,long
signature_text: public static ChgLogEntryDto init(String entityName, long chgTacticId, long dataId)
comment:
创建 ChgLogEntryDto
@param `entityName` 元数据页面标识
@param `chgTacticId` 信息组规则id
@param `dataId` 数据id
@return ChgLogEntryDto


class_name: kd.sdk.hr.hpfs.business.perchg.executor.model.ChgRecordEntryDto
method_name: formatNewRecord
param_types_key: Long,String,DynamicObject
comment: 组装新增的变动记录 @param `idAfter` 新生成boid @param `flowType` 流动类型 ChgFlowTypeEnum @return 新增的变动记录
signature_text:
public static ChgRecordEntryDto formatNewRecord(Long idAfter, String flowType, DynamicObject dataDy)


class_name: kd.sdk.hr.hpfs.business.perchg.executor.model.ChgRecordEntryDto
method_name: formatRecord
param_types_key: Long,Long,Long,Long,String,String
signature_text:
public static ChgRecordEntryDto formatRecord(Long idBefore, Long vidBefore, Long idAfter, Long vidAfter, String chgMode, String flowType)

comment:
组装变动记录
@param `idBefore` 前bois
@param `vidBefore` 前vid
@param `idAfter` 后boid
@param `vidAfter` 后vid
@param `chgMode` 变动方式 ChgModeEnum
@param `flowType` 流动类型 ChgFlowTypeEnum
@return 变动记录


class_name: kd.sdk.hr.hpfs.business.perchg.executor.model.ChgRecordEntryDto
method_name: formatRecord
param_types_key: Long,Long,Long,Long,String,String,DynamicObject
signature_text:
public static ChgRecordEntryDto formatRecord(Long idBefore, Long vidBefore, Long idAfter, Long vidAfter, String chgMode, String flowType, DynamicObject dataDy)

comment:
组装变动记录
@param `idBefore` 前bois
@param `vidBefore` 前vid
@param `idAfter` 后boid
@param `vidAfter` 后vid
@param `chgMode` 变动方式 ChgModeEnum
@param `flowType` 流动类型 ChgFlowTypeEnum
@param `dataDy` 数据dy
@return 变动记录


class_name: kd.sdk.hr.hpfs.business.perchg.executor.model.ChgRecordEntryDto
method_name: recordEntrySetValue
param_types_key: DynamicObject,String,ChgRecordEntryDto
comment: dto写入dyn @param `dynNew` dyn对象 @param `entityName` 元数据页面标识 @param `chgRecord` 记录分录dto
signature_text:
public static void recordEntrySetValue(DynamicObject dynNew, String entityName, ChgRecordEntryDto chgRecord)


class_name: kd.sdk.hr.hrmp.hbpm.extpoint.IPositionCompareEntryServiceExtend
method_name: getEntryComparentResult
param_types_key: DynamicObject,DynamicObject,String
comment: 岗位分录对比 @param `before` 变动前的版本 @param `after` 变动后的版本 @param `entryKey` 分录标识 @return 对比结果
signature_text:
kd.sdk.hr.hrmp.hbpm.extpoint.PositionCompareEntryResult getEntryComparentResult(DynamicObject before, DynamicObject after, String entryKey)


class_name: kd.sdk.hr.hspm.business.helper.ApprovalHelper
method_name: dealApprovalCacheForDel
param_types_key: IFormView,String,Long,DynamicObject,Map
comment: 删除操作时缓存处理 @param `view` @param `entityName` @param `pk` @param `dyArr` @param `tabList`
signature_text:
public static boolean dealApprovalCacheForDel(IFormView view, String entityName, Long pk, DynamicObject dyArr, java.util.Map<String, Object> tabList)


class_name: kd.sdk.hr.hspm.business.helper.ApprovalHelper
method_name: dealAuditBeforeDel
param_types_key: IFormView,String,Long,DynamicObject,Map
comment: @param `view` @param `entityName` @param `pk` @param `dyArr` @param `tabList`
signature_text:
public static boolean dealAuditBeforeDel(IFormView view, String entityName, Long pk, DynamicObject dyArr, java.util.Map<String, Object> tabList)


class_name: kd.sdk.hr.hspm.business.helper.ApprovalHelper
method_name: getAuditFieldMap
param_types_key: IFormView
comment: 获取审核字段信息 @param `view` 首页ivew @return 审核字段信息
signature_text:
public static java.util.Map<String, java.util.List<java.util.Map<String, Object>>> getAuditFieldMap(IFormView view)


class_name: kd.sdk.hr.hspm.business.helper.ApprovalHelper
method_name: isNotPasss
param_types_key: IFormView,String
signature_text: public static boolean isNotPasss(IFormView view, String regNumber)
comment:
该信息组是否有被驳回的字段(isNotPasss两个参数的方法已经被废弃，目前应该还有二开用到这块，为了构建不报错，保留该方法)
@param `view` 我的档案首页view
@param `regNumber` 信息组页面注册编码


class_name: kd.sdk.hr.hspm.business.helper.ApprovalHelper
method_name: showNotPassInfoComfirm
param_types_key: IFormView,String,String,String
comment: 提示不可通过信息 @param `view` @param `entityName` @param `pkId`
signature_text:
public static void showNotPassInfoComfirm(IFormView view, String key, String entityName, String pkId)


class_name: kd.sdk.hr.hspm.business.helper.BasedataHelper
method_name: getLanguagecertByLanguagetype
param_types_key: long
comment: 查询语言证书 @param `languagetypeId` 语言种类ID @return 单个基础资料的数据
signature_text:
public static java.util.Map<Object, DynamicObject> getLanguagecertByLanguagetype(long languagetypeId)


class_name: kd.sdk.hr.hspm.business.helper.CommonQFilterHelper
method_name: getLaborrelstatusByClsList
param_types_key: String,List
signature_text:
public static QFilter getLaborrelstatusByClsList(String selectProperty, java.util.List<Long> labrelstatusclsList)

comment:
根据用工关系状态分类查询用工关系状态
@param `selectProperty` 查询字段
@param `labrelstatusclsList` 用工关系状态分类
@return QFilter


class_name: kd.sdk.hr.hspm.business.helper.CommonQFilterHelper
method_name: getLaborreltypeByClsList
param_types_key: String,List
comment: 根据用工关系类型分类查询用工关系类型 @param `selectProperty` 查询字段 @param `labreltypeclsList` 用工关系类型分类 @return QFilter
signature_text:
public static QFilter getLaborreltypeByClsList(String selectProperty, java.util.List<Long> labreltypeclsList)


class_name: kd.sdk.hr.hspm.business.helper.HpfsChgexternalrecordQueueHelper
method_name: createBatchHisNonLineDeleteMsg
param_types_key: DynamicObject[],String,String
signature_text:
public static java.util.Map<Long, HpfsChgexternalrecordQueueDto> createBatchHisNonLineDeleteMsg(DynamicObject[] dataEntities, String entityNumber, String sourceNumber)

comment:
非时序表删除成功，批量发送消息 获取人事物变动进行消息同步对象
@param `dataEntities` 非时序表删除的实体集合
@param `entityNumber` 实体编码
@param `sourceNumber` 操作实体
@return 人事物变动进行消息同步对象


class_name: kd.sdk.hr.hspm.business.helper.HpfsChgexternalrecordQueueHelper
method_name: createBatchHisNonLineInsertOrUpdateMsg
param_types_key: long,Map,HrpiServiceOperateResult,String
signature_text:
public static HpfsChgexternalrecordQueueDto createBatchHisNonLineInsertOrUpdateMsg(long personId, java.util.Map<String, DynamicObjectCollection> paramMap, HrpiServiceOperateResult operateResult, String sourceEntity)

comment:
非时序表更新成功，批量发送消息（定制） 创建人事物变动进行消息同步对象
@param `personId` 自然人ID
@param `paramMap` 发送保存的入参
@param `operateResult` 调用历史模型接口返回包装类
@param `sourceEntity` 实体
@return 人事物变动进行消息同步对象


class_name: kd.sdk.hr.hspm.business.helper.HpfsChgexternalrecordQueueHelper
method_name: createNoPropInsertOrUpdateMsg
param_types_key: long,Map,String
signature_text:
public static void createNoPropInsertOrUpdateMsg(long personId, java.util.Map<String, DynamicObjectCollection> paramMap, String sourceEntity)

comment:
档案列表的非时序表姓名修改，同步hrpi_person（定制） 创建人事物变动进行消息同步对象
@param `personId` 自然人ID
@param `paramMap` 发送保存的入参
@param `sourceEntity` 实体
@return 人事物变动进行消息同步对象


class_name: kd.sdk.hr.hspm.business.helper.HpfsChgexternalrecordQueueHelper
method_name: initHpfsChgexternalrecordQueueDto
param_types_key: long,String
comment: 初始化报文参数对象 @param `personId` 自然人ID @param `sourceNumber` 实体 @return 报文参数
signature_text:
public static HpfsChgexternalrecordQueueDto initHpfsChgexternalrecordQueueDto(long personId, String sourceNumber)


class_name: kd.sdk.hr.hspm.business.helper.HpfsChgexternalrecordQueueHelper
method_name: mergeRecordAndSend
param_types_key: Map,Map
signature_text:
public static void mergeRecordAndSend(java.util.Map<Long, HpfsChgexternalrecordQueueDto> pereduexpHpfsChgexternalrecordQueueDtoMap, java.util.Map<Long, HpfsChgexternalrecordQueueDto> pereduexpcertBatchHisNonLineDeleteMsg)

comment:
教育信息更新或删除完成后，合并报文并发送报文（定制） 调用人事物变动进行消息同步
@param `pereduexpHpfsChgexternalrecordQueueDtoMap` 教育经历更新/删除操作已经产生的报文
@param `pereduexpcertBatchHisNonLineDeleteMsg` 教育证件删除操作已经产生的报文


class_name: kd.sdk.hr.hspm.business.helper.HpfsChgexternalrecordQueueHelper
method_name: sendBatchHisNonLineDeleteMsg
param_types_key: DynamicObject[],String,String
signature_text:
public static void sendBatchHisNonLineDeleteMsg(DynamicObject[] dataEntities, String entityNumber, String sourceNumber)

comment:
非时序表删除成功，批量发送消息 调用人事物变动进行消息同步
@param `dataEntities` 非时序表删除的实体集合
@param `entityNumber` 实体编码
@param `sourceNumber` 操作实体


class_name: kd.sdk.hr.hspm.business.helper.HpfsChgexternalrecordQueueHelper
method_name: sendBatchHisNonLineInsertMsg
param_types_key: DynamicObject[],String,String
signature_text:
public static void sendBatchHisNonLineInsertMsg(DynamicObject[] dataEntities, String entityNumber, String sourceNumber)

comment:
非时序表新增成功，批量发送消息 调用人事物变动进行消息同步
@param `dataEntities` 实体的动态数据对象集
@param `entityNumber` 实体编码
@param `sourceNumber` 操作实体


class_name: kd.sdk.hr.hspm.business.helper.HpfsChgexternalrecordQueueHelper
method_name: sendBatchHisNonLineInsertOrUpdateMsg
param_types_key: long,Map,HrpiServiceOperateResult,String
signature_text:
public static void sendBatchHisNonLineInsertOrUpdateMsg(long personId, java.util.Map<String, DynamicObjectCollection> paramMap, HrpiServiceOperateResult operateResult, String sourceEntity)

comment:
非时序表更新成功，批量发送消息（定制） 调用人事物变动进行消息同步
@param `personId` 自然人ID
@param `paramMap` 发送保存的入参
@param `operateResult` 调用历史模型接口返回包装类
@param `sourceEntity` 实体


class_name: kd.sdk.hr.hspm.business.helper.HpfsChgexternalrecordQueueHelper
method_name: sendBatchHisNonLineUpdateMsg
param_types_key: DynamicObject[],String,String
signature_text:
public static void sendBatchHisNonLineUpdateMsg(DynamicObject[] dataEntities, String entityNumber, String sourceNumber)

comment:
非时序表更新成功，批量发送消息 调用人事物变动进行消息同步
@param `dataEntities` 实体的动态数据对象集
@param `entityNumber` 实体编码
@param `sourceNumber` 操作实体


class_name: kd.sdk.hr.hspm.business.helper.HpfsChgexternalrecordQueueHelper
method_name: sendCustomerHisNonLineMsgBySavePereduexpinfo
param_types_key: long,Map,DynamicObjectCollection,HrpiServiceOperateResult
signature_text:
public static void sendCustomerHisNonLineMsgBySavePereduexpinfo(long personId, java.util.Map<String, DynamicObjectCollection> paramMap, DynamicObjectCollection pereduexpcertDyCollection, HrpiServiceOperateResult operateResult)

comment:
教育信息新增成功，发送消息（定制） 调用人事物变动进行消息同步
@param `personId` 自然人ID
@param `paramMap` 发送保存的入参
@param `pereduexpcertDyCollection` 教育证件表待保存的数据
@param `operateResult` 调用历史模型接口返回包装类


class_name: kd.sdk.hr.hspm.business.helper.HpfsChgexternalrecordQueueHelper
method_name: sendCustomerHisNonLineUpdateMsgByPersoninfo
param_types_key: long,Map,DynamicObject,Map,HrpiServiceOperateResult
signature_text:
public static void sendCustomerHisNonLineUpdateMsgByPersoninfo(long personId, java.util.Map<String, DynamicObjectCollection> paramMap, DynamicObject hrpiPertspropDy, java.util.Map<Long, DynamicObject> ermanFileDbMap, HrpiServiceOperateResult operateResult)

comment:
个人基本信息表更新成功，发送消息（定制） 调用人事物变动进行消息同步
@param `personId` 自然人ID
@param `paramMap` 发送保存的入参
@param `hrpiPertspropDy` 时序性表数据保存前的最新记录
@param `ermanFileDbMap` 存放修改前人事业务档案数据的集合
@param `operateResult` 调用历史模型接口返回包装类


class_name: kd.sdk.hr.hspm.business.helper.HpfsChgexternalrecordQueueHelper
method_name: sendHisNonLineInsertMsg
param_types_key: DynamicObject,String,String
signature_text:
public static void sendHisNonLineInsertMsg(DynamicObject dataEntity, String entityNumber, String sourceNumber)

comment:
非时序表新增成功，发送消息 调用人事物变动进行消息同步
@param `dataEntity` 实体的动态数据对象
@param `entityNumber` 实体编码
@param `sourceNumber` 操作实体


class_name: kd.sdk.hr.hspm.business.helper.HpfsChgexternalrecordQueueHelper
method_name: sendHisNonLineUpdateMsg
param_types_key: DynamicObject,String,String
signature_text:
public static void sendHisNonLineUpdateMsg(DynamicObject dataEntity, String entityNumber, String sourceNumber)

comment:
非时序表更新成功，发送消息 调用人事物变动进行消息同步
@param `dataEntity` 实体的动态数据对象
@param `entityNumber` 实体编码
@param `sourceNumber` 操作实体


class_name: kd.sdk.hr.hspm.business.helper.HSPMBusinessDataServiceHelper
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, QFilter[], String, int, int)
@param `entityName` 实体名称
@param `selectProperties` 查询字段
@param `filters` 查询条件
@param `orderBy` 查询排序
@param `top` 分页大小
@return 查询数据


class_name: kd.sdk.hr.hspm.business.helper.HSPMBusinessDataServiceHelper
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, QFilter[], String, int, int)
@param `entityName` 实体名称
@param `selectProperties` 查询字段
@param `filters` 查询条件
@param `orderBy` 查询排序
@param `pageIndex` 起始页
@param `pagesize` 分页大小
@return 查询数据


class_name: kd.sdk.hr.hspm.business.helper.InfoGroupHelper
method_name: changeToSubEntryPropsMap
param_types_key: List
comment: SubEntryProp list列表转出map @param `subEntryProps` 子分录 @return map
signature_text:
public static java.util.Map<String, SubEntryProp> changeToSubEntryPropsMap(java.util.List<SubEntryProp> subEntryProps)


class_name: kd.sdk.hr.hspm.business.helper.InfoGroupHelper
method_name: getSubGroupIds
param_types_key: DynamicObjectCollection,String
comment: 获取子组id集合 @param `dynamicObjects` 分录 @param `nodeId` 焦点节点 @return 子组id集合
signature_text:
public static java.util.List<String> getSubGroupIds(DynamicObjectCollection dynamicObjects, String nodeId)


class_name: kd.sdk.hr.hspm.business.mservice.helper.HSPMServiceHelper
method_name: countErmanFilesByTypeclsAndStatuscls
param_types_key: List,List
signature_text:
public static int countErmanFilesByTypeclsAndStatuscls(java.util.List<Long> labreltypeclsList, java.util.List<Long> labrelstatusclsList)

comment:
根据用工关系类型分类和用工关系状态分类查询生效的档案总数
@param `labreltypeclsList` 用工关系类型分类ID列表（必填）
@param `labrelstatusclsList` 用工关系状态分类ID列表（必填）
@return 生效的档案总数


class_name: kd.sdk.hr.hspm.business.mservice.helper.HSPMServiceHelper
method_name: getCardFields
param_types_key: List
comment: 获取人员卡片头部信息 @param `ermanfileId` 档案id @return 档案信息
signature_text:
public static java.util.List<java.util.Map<String, Object>> getCardFields(java.util.List<Long> ermanfileId)


class_name: kd.sdk.hr.hspm.business.mservice.helper.HSPMServiceHelper
method_name: getErmanFileIdByEmporgRel
param_types_key: List
comment: 根据任职信息获取档案ID @param `importList` 任职信息 @return 档案信息
signature_text:
public static java.util.List<java.util.Map<String, Object>> getErmanFileIdByEmporgRel(java.util.List<java.util.Map<String, Object>> importList)


class_name: kd.sdk.hr.hspm.business.mservice.helper.HSPMServiceHelper
method_name: listErmanFilesByTypeclsAndStatuscls
param_types_key: List,List,String,long,int
signature_text:
public static DynamicObject[] listErmanFilesByTypeclsAndStatuscls(java.util.List<Long> labreltypeclsList, java.util.List<Long> labrelstatusclsList, String selectProperties, long id, int top)

comment:
根据用工关系类型分类和用工关系状态分类查询生效的档案信息
@param `labreltypeclsList` 用工关系类型分类ID列表（必填）
@param `labrelstatusclsList` 用工关系状态分类ID列表（必填）
@param `selectProperties` 查询字段（必填，参考hspm_ermanfile元数据）
@param `id` ID的大于条件
@param `top` 查询条数
@return 生效的档案信息


class_name: kd.sdk.hr.hspm.business.mservice.helper.HSPMServiceHelper
method_name: listPrimaryErmanFile
param_types_key: List
comment: 根据自然人ID批量获取主档案信息 @param `personIds` 自然人Id @return 档案信息
signature_text:
public static java.util.Map<Long, DynamicObject> listPrimaryErmanFile(java.util.List<Long> personIds)


class_name: kd.sdk.hr.hspm.business.mservice.helper.HSPMServiceHelper
method_name: listPrimaryErmanFilesByEmpnumber
param_types_key: List
comment: 根据工号获取主任职的主档案信息 @param `empnumberList` 工号列表 @return 主档案信息
signature_text:
public static DynamicObject[] listPrimaryErmanFilesByEmpnumber(java.util.List<String> empnumberList)


class_name: kd.sdk.hr.hspm.business.repository.ErmanFileRepository
method_name: getAllErmanFileIdByEmporgRel
param_types_key: Set,Set,Set,Set,Set
comment: 根据任职信息获取（适配劳动合同初始化，引入场景）人员在职人事档案 @return kd.bos.dataentity.entity.DynamicObject[] 人员档案结果
signature_text:
public static DynamicObject[] getAllErmanFileIdByEmporgRel(java.util.Set<String> numbers, java.util.Set<String> orgNums, java.util.Set<String> positionNums, java.util.Set<String> stdPositionNums, java.util.Set<String> jobNums)


class_name: kd.sdk.hr.hspm.business.repository.ErmanFileRepository
method_name: getErmanFileIdByEmporgRel
param_types_key: Set,Set,Set,Set,Set
comment: 根据任职信息获取
signature_text:
public static DynamicObject[] getErmanFileIdByEmporgRel(java.util.Set<String> numbers, java.util.Set<String> orgNums, java.util.Set<String> positionNums, java.util.Set<String> stdPositionNums, java.util.Set<String> jobNums)


class_name: kd.sdk.hr.hspm.business.repository.ErmanFileRepository
method_name: getPrimaryErmanFileIdByEmployeeId
param_types_key: List
comment: 根据任职信息获取listEmpposorgrels
signature_text:
public static DynamicObject[] getPrimaryErmanFileIdByEmployeeId(java.util.List<Long> employeeIdList)


class_name: kd.sdk.hr.hspm.business.repository.ErmanFileRepository
method_name: listErmanFilesByTypeclsAndStatuscls
param_types_key: List,List,String,int,int
signature_text:
public static DynamicObject[] listErmanFilesByTypeclsAndStatuscls(java.util.List<Long> labreltypeclsList, java.util.List<Long> labrelstatusclsList, String selectProperties, int start, int limit)

comment:
根据用工关系类型分类和用工关系状态分类查询生效的档案信息
@param `labreltypeclsList` 用工关系类型分类ID列表（必填）
@param `labrelstatusclsList` 用工关系状态分类ID列表（必填）
@param `selectProperties` 查询字段（必填，参考hspm_ermanfile元数据）
@param `start` 分页条件
@param `limit` 分页条件
@return 生效的档案信息


class_name: kd.sdk.hr.hspm.business.repository.ErmanFileRepository
method_name: listErmanFilesByTypeclsAndStatuscls
param_types_key: List,List,String,long,int
signature_text:
public static DynamicObject[] listErmanFilesByTypeclsAndStatuscls(java.util.List<Long> labreltypeclsList, java.util.List<Long> labrelstatusclsList, String selectProperties, long id, int top)

comment:
根据用工关系类型分类和用工关系状态分类查询生效的档案信息
@param `labreltypeclsList` 用工关系类型分类ID列表（必填）
@param `labrelstatusclsList` 用工关系状态分类ID列表（必填）
@param `selectProperties` 查询字段（必填，参考hspm_ermanfile元数据）
@param `id` 查询数据在这个ID后
@param `top` 查询数据条件
@return 生效的档案信息


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: buildUniqueParam
param_types_key: FormShowParameter,String
comment: 改变多实体的页面标识 @param `formShowParameter` formShowParameter @param `entityId` 实体 @return 修改数据
signature_text:
public java.util.Map<String, Object> buildUniqueParam(FormShowParameter formShowParameter, String entityId)


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: checkIllegalInput
param_types_key: IFormView,IDataModel,List,Set,String
signature_text:
public String checkIllegalInput(IFormView view, IDataModel model, java.util.List<DrawFormFieldDto> drawFormFields, java.util.Set<String> ignoreField, String acrossEntity)

comment:
校验截包的必填性、长度、非法字符 等校验
@param `view`
@param `model`
@param `drawFormFields`
@param `ignoreField` 过滤不处理的字段
@param `acrossEntity`


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: closeView
param_types_key: IFormView,Map,IFormView
comment: 关闭页面 @param `view` view @param `resultMap` resultMap @param `parentView` parentView
signature_text:
public void closeView(IFormView view, java.util.Map<String, Object> resultMap, IFormView parentView)


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: executeActionPersonalChange
param_types_key: Map
comment: 职级职等的保存操作处理：调用事务变动操作型事务生效接口 @return java.util.Map 出参
signature_text:
public java.util.Map<String, Object> executeActionPersonalChange(java.util.Map<String, Object> params)


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: getPageCustomParam
param_types_key: FormShowParameter,String
comment: 获取配置参数 @param `formShowParameter` formShowParameter @param `entityId` entityId @return map
signature_text:
public java.util.Map<String, Object> getPageCustomParam(FormShowParameter formShowParameter, String entityId)


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: handleRuleEngine
param_types_key: IFormView,long,DynamicObject,String,String,Map,boolean
signature_text:
public <any> handleRuleEngine(IFormView view, long erFileId, DynamicObject erFileDy, String relFormId, String type, java.util.Map<String, Object> rpcMap, boolean rpcType)

comment:
处理规则引擎
@param `view` 视图
@param `erFileId` 档案id
@param `erFileDy` 档案
@param `relFormId` 标识
@param `type` 类型
@param `rpcType` rpcType
@return 配置id


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: handlerFieldValueChange
param_types_key: IFormView,Map,String
signature_text:
public java.util.Map<String, DynamicObjectCollection> handlerFieldValueChange(IFormView view, java.util.Map<String, DynamicObjectCollection> attachMap, String acrossEntity)


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: invokeAttachment
param_types_key: String,Object,String,Map
comment: 附件保存 @param `formId` 实体名称 @param `pkId` 主键 @param `appId` appid @param `attachmentMap` 附件信息
signature_text:
public DynamicObjectCollection invokeAttachment(String formId, Object pkId, String appId, java.util.Map<String, Object> attachmentMap)


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: invokeCollegeCountryRuleEngine
param_types_key: DynamicObject,DynamicObject,DynamicObject,String
signature_text:
public java.util.Map<String, Object> invokeCollegeCountryRuleEngine(DynamicObject nonProp, DynamicObject erFileDy, DynamicObject collegeCountry, String sceneNumber)

comment:
调用院校所在国家/地区的规则引擎
@param `erFileDy` erFileDy
@param `collegeCountry` 院校所在国家/地区
@param `sceneNumber` sceneNumber
@return map


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: invokeDel
param_types_key: List,String,Boolean
signature_text:
public java.util.Map<String, Object> invokeDel(java.util.List<Long> pkIdList, String entityName, Boolean delBoFlag)

comment:
删除
@param `pkIdList` 删除的主键
@param `entityName` 实体名称
@param `delBoFlag` 删除历史的需求、根据bo删除、不是只根据fid删
@return 成功或者失败


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: invokeHisImportDataByBatchEventid
param_types_key: Map,long
signature_text:
public java.util.Map<String, Object> invokeHisImportDataByBatchEventid(java.util.Map<String, DynamicObjectCollection> attachMap, long eventId)

comment:
历史模型引入 引入时需要保证所有的引入数据均在同一个事务组里，因此这里需要传入同一个eventId
@param `attachMap` 多个附表数据
@param `eventId` 事物ID,同一份excel的数据需要传同一个eventId
@return 接口返回结果


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: invokeHisNonLineImportData
param_types_key: String,DynamicObject[]
comment: 非时序性引入 @param `importtype` 引入类型 @param `importSaveDys` 引入数据集 @return 接口返回结果
signature_text:
public java.util.Map<String, Object> invokeHisNonLineImportData(String importtype, DynamicObject[] importSaveDys)


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: invokeRuleEngine
param_types_key: DynamicObject,String,String
signature_text:
public java.util.Map<String, Object> invokeRuleEngine(DynamicObject erFileDy, String source, String sceneNumber)

comment:
调用规则引擎
@param `erFileDy` erFileDy
@param `source` source
@param `sceneNumber` sceneNumber
@return map


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: invokeSaveOrUpdate
param_types_key: Map
comment: 保存和更新 @param `attachMap` 多个附表数据 @return 成功或者失败
signature_text:
public java.util.Map<String, Object> invokeSaveOrUpdate(java.util.Map<String, DynamicObjectCollection> attachMap)


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: invokeSaveOrUpdate
param_types_key: IFormView,Map,boolean,String,String
signature_text:
public java.util.Map<String, Object> invokeSaveOrUpdate(IFormView view, java.util.Map<String, DynamicObjectCollection> attachMap, boolean closeView, String entityName, String type)

comment:
保存或更新数据
@param `view` view
@param `attachMap` 附表信息
@param `closeView` 是否关闭页面
@param `entityName` 实体名
@param `type` -1:目前特指职级职等调整,1:新增, 0:单实体修改,2:跨实体修改
@return 信息


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: sendHpfsChgSaveOrUpdateRecord
param_types_key: Map,Set,String
comment: 新增和修改插入人事事物变动记录 @param `attachMap` 附表信息 @param `updateBoId` 更新的boid @param `formId` 操作页面
signature_text:
public void sendHpfsChgSaveOrUpdateRecord(java.util.Map<String, DynamicObjectCollection> attachMap, java.util.Set<Long> updateBoId, String formId)


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: setBorder
param_types_key: FlexPanelAp,String,String,String,String
signature_text: public Style setBorder(FlexPanelAp mainSubAp, String top, String bot, String left, String right)
comment:
设置面板setBorder
@param `mainSubAp` 面板
@param `top` top
@param `bot` bot
@param `left` left
@param `right` right
@return style


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: setMargin
param_types_key: FlexPanelAp,String,String,String,String
signature_text: public Style setMargin(FlexPanelAp centerMainAp, String top, String bot, String left, String right)
comment:
设置面板margin
@param `centerMainAp` 面板
@param `top` top
@param `bot` bot
@param `left` left
@param `right` right
@return style


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: setPadding
param_types_key: FlexPanelAp,String,String,String,String
signature_text:
public Style setPadding(FlexPanelAp centerMainAp, String top, String bot, String left, String right)

comment:
设置面板setPadding
@param `centerMainAp` 面板
@param `top` top
@param `bot` bot
@param `left` left
@param `right` right
@return style


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: validateSyncFieldsDelChange
param_types_key: String,DynamicObject[]
comment: 校验字段是否变化，需要调用同步平台（单个），在未入库时候调用 @param `entityName` 多行表实体名 @param `dataEntities` 多行表数据集 @return yes
signature_text:
public java.util.List<Long> validateSyncFieldsDelChange(String entityName, DynamicObject[] dataEntities)


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: validateSyncFieldsDelChange
param_types_key: String,Map
signature_text:
public java.util.List<Long> validateSyncFieldsDelChange(String entityName, java.util.Map<Long, Long> pkPersonIdMap)

comment:
校验字段是否变化，需要调用同步平台（单个），在未入库时候调用
@param `entityName` 多行表实体名
@param `pkPersonIdMap` 多行表主键和personId
@return yes


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: validateSyncFieldsUpdateChange
param_types_key: String,DynamicObject[],long
signature_text:
public boolean validateSyncFieldsUpdateChange(String entityName, DynamicObject[] dataEntities, long personId)

comment:
校验字段是否变化，需要调用同步平台（单个），在未入库时候调用
@param `entityName` 实体对象
@param `dataEntities` 实体数据
@param `personId` 自然人id
@return yes


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: validateSyncFieldsUpdateChange
param_types_key: Map,long,boolean
signature_text:
public boolean validateSyncFieldsUpdateChange(java.util.Map<String, DynamicObjectCollection> datas, long personId, boolean validDb)

comment:
校验字段是否变化，需要调用同步平台（单个），在未入库时候调用
@param `datas` 校验数据 key 实体名称，value 页面数据
@param `personId` 自然人id
@param `validDb` 是否校验数据库 false 不校验（暂存新增的时候） true 校验
@return yes


class_name: kd.sdk.hr.hspm.business.service.AttacheHandlerService
method_name: wrapHandleRuleEngine
param_types_key: IFormView,long,String,String,boolean
signature_text:
public java.util.Map<String, Object> wrapHandleRuleEngine(IFormView view, long erFileId, String listFormId, String type, boolean rpcType)

comment:
处理规则引擎
@param `view` 视图
@param `erFileId` 档案id
@param `listFormId` 标识
@param `type` 类型
@param `rpcType` 是否为RPC调用
@return formShowParameter


class_name: kd.sdk.hr.hspm.business.service.PageRegConfigService
method_name: getConfCacheKey
param_types_key: String,Long,String,Lang
signature_text: public static String getConfCacheKey(String source, Long cnfId, String modTime, Lang lang)
comment:
获取多视图方案缓存key
@param `source` 客户端类型
@param `cnfId` 多视图方案id
@param `modTime` 多视图方案修改时间
@param `lang` 语言
@return 多视图方案缓存key


class_name: kd.sdk.hr.hspm.common.dto.HpfsChgexternalrecordQueueDto
method_name: addDataRow
param_types_key: String,Consumer
comment: 添加报文数据行 @param `entityNumber` 实体编码 @param `consumer` 报文数据提供器 @return HpfsChgexternalrecordQueueDto
signature_text:
public HpfsChgexternalrecordQueueDto addDataRow(String entityNumber, java.util.function.Consumer<java.util.List<kd.sdk.hr.hspm.common.dto.HpfsChgexternalrecordQueueDto.DataRowEntity>> consumer)


class_name: kd.sdk.hr.hspm.common.dto.HpfsChgexternalrecordQueueDto
method_name: buildDataRowEntityForHisLineInsert
param_types_key: Long,Long
signature_text:
public static kd.sdk.hr.hspm.common.dto.HpfsChgexternalrecordQueueDto.DataRowEntity buildDataRowEntityForHisLineInsert(Long idAfter, Long vidAfter)

comment:
时序性 新增: "idBefore": 0, "vidBefore": 0, "idAfter": 新增接口返回ID=fboid, "vidAfter": 新增接口返回的历史ID,
@param `idAfter` 新增接口返回ID=fboid
@param `vidAfter` 新增接口返回的历史ID
@return 报文中的datarow中的内容


class_name: kd.sdk.hr.hspm.common.dto.HpfsChgexternalrecordQueueDto
method_name: buildDataRowEntityForHisLineUpdate
param_types_key: Long,Long,Long,Long
signature_text:
public static kd.sdk.hr.hspm.common.dto.HpfsChgexternalrecordQueueDto.DataRowEntity buildDataRowEntityForHisLineUpdate(Long idBefore, Long vidBefore, Long idAfter, Long vidAfter)

comment:
时序性 更新: "idBefore": 当前记录更新前的fboid, "vidBefore": 当前记录更新前的fsourcevid, "idAfter": 新增接口返回ID=fboid, "vidAfter": 新增接口返回的历史ID,
@param `idBefore` 当前记录更新前的fboid
@param `vidBefore` 当前记录更新前的fsourcevid
@param `idAfter` 新增接口返回ID=fboid
@param `vidAfter` 新增接口返回的历史ID
@return 报文中的datarow中的内容


class_name: kd.sdk.hr.hspm.common.dto.HpfsChgexternalrecordQueueDto
method_name: buildDataRowEntityForHisNonLineDelete
param_types_key: Long,Long
signature_text:
public static kd.sdk.hr.hspm.common.dto.HpfsChgexternalrecordQueueDto.DataRowEntity buildDataRowEntityForHisNonLineDelete(Long idBefore, Long vidBefore)

comment:
非时序 删除: "idBefore": fboid, "vidBefore": 当前记录删除前的fsourcevid, "idAfter": 0, "vidAfter":0,
@param `idBefore` 当前记录更新前的fboid
@param `vidBefore` 当前记录更新前的fsourcevid
@return 报文中的datarow中的内容


class_name: kd.sdk.hr.hspm.common.dto.HpfsChgexternalrecordQueueDto
method_name: buildDataRowEntityForHisNonLineInsert
param_types_key: Long
signature_text:
public static kd.sdk.hr.hspm.common.dto.HpfsChgexternalrecordQueueDto.DataRowEntity buildDataRowEntityForHisNonLineInsert(Long idAfter)

comment:
非时序 新增: "idBefore":0, "vidBefore":0, "idAfter":新增接口返回ID=fboid, "vidAfter":0,
@param `idAfter` 新增接口返回ID
@return 报文中的datarow中的内容


class_name: kd.sdk.hr.hspm.common.dto.HpfsChgexternalrecordQueueDto
method_name: buildDataRowEntityForHisNonLineUpdate
param_types_key: Long,Long,Long
signature_text:
public static kd.sdk.hr.hspm.common.dto.HpfsChgexternalrecordQueueDto.DataRowEntity buildDataRowEntityForHisNonLineUpdate(Long idBefore, Long vidBefore, Long idAfter)

comment:
非时序 更新: "idBefore": fboid, "vidBefore": 当前记录更新前的fsourcevid, "idAfter": fboid, "vidAfter":0,
@param `idBefore` 当前记录更新前的fboid
@param `vidBefore` 当前记录更新前的fsourcevid
@param `idAfter` fboid
@return 报文中的datarow中的内容


class_name: kd.sdk.hr.hspm.common.dto.HpfsChgexternalrecordQueueDto
method_name: getDataRow
signature_text:
public java.util.List<java.util.Map<String, java.util.List<kd.sdk.hr.hspm.common.dto.HpfsChgexternalrecordQueueDto.DataRowEntity>>> getDataRow()


class_name: kd.sdk.hr.hspm.common.dto.PereduexpcertDynDto
method_name: <init>
param_types_key: long,String,List
signature_text:
public PereduexpcertDynDto(long certtype, String name, java.util.List<DrawFormFieldDto> certFieldList)


class_name: kd.sdk.hr.hspm.common.entity.PercreField
method_name: <init>
param_types_key: String,String,String,String,Set
signature_text:
public PercreField(String faceUrl, String reverseUrl, String mobileFaceUrl, String mobileReverseUrl, java.util.Set<String> fieldSet)


class_name: kd.sdk.hr.hspm.common.enums.InfoClassifyFormOperateEnum
method_name: getInfoClassifyListOperateEnumByOperateKey
param_types_key: String
comment: 根据 操作编码 查找枚举 @param `operateKey` 操作编码 @return 枚举对象
signature_text:
public static InfoClassifyFormOperateEnum getInfoClassifyListOperateEnumByOperateKey(String operateKey)


class_name: kd.sdk.hr.hspm.common.enums.InfoClassifyListOperateEnum
method_name: getInfoClassifyListOperateEnumByOperateKey
param_types_key: String
comment: 根据 操作编码 查找枚举 @param `operateKey` 操作编码 @return 枚举对象
signature_text:
public static InfoClassifyListOperateEnum getInfoClassifyListOperateEnumByOperateKey(String operateKey)


class_name: kd.sdk.hr.hspm.common.ext.file.CardBindDataDTO
method_name: <init>
param_types_key: IDataModel,IFormView,EventObject,CardViewCompareVo,BeforeCreatVo,AfterCreatVo,boolean,Map
signature_text:
public CardBindDataDTO(IDataModel model, IFormView view, java.util.EventObject eventObject, CardViewCompareVo compareVo, BeforeCreatVo beforeCreatVo, AfterCreatVo afterCreatVo, boolean drawFlag, java.util.Map<String, Object> timeMap)


class_name: kd.sdk.hr.hspm.common.ext.file.CardBindDataDTO
method_name: <init>
param_types_key: IDataModel,IFormView,EventObject,CardViewCompareVo,Map
signature_text:
public CardBindDataDTO(IDataModel model, IFormView view, java.util.EventObject eventObject, CardViewCompareVo compareVo, java.util.Map<String, Object> timeMap)


class_name: kd.sdk.hr.hspm.common.ext.file.CardBindDataDTO
method_name: <init>
param_types_key: IDataModel,IFormView,BeforeCreatVo,boolean
signature_text:
public CardBindDataDTO(IDataModel model, IFormView view, BeforeCreatVo beforeCreatVo, boolean drawFlag)


class_name: kd.sdk.hr.hspm.common.ext.file.CardBindDataDTO
method_name: <init>
param_types_key: IDataModel,IFormView,EventObject,Map
signature_text:
public CardBindDataDTO(IDataModel model, IFormView view, java.util.EventObject eventObject, java.util.Map<String, Object> timeMap)


class_name: kd.sdk.hr.hspm.common.ext.file.CardBindDataDTO
method_name: <init>
param_types_key: IDataModel,IFormView,EventObject,CardViewCompareVo,Map,QueryDbVo
signature_text:
public CardBindDataDTO(IDataModel model, IFormView view, java.util.EventObject eventObject, CardViewCompareVo compareVo, java.util.Map<String, Object> timeMap, QueryDbVo queryDbVo)


class_name: kd.sdk.hr.hspm.common.ext.file.DialogBindDataDTO
method_name: <init>
param_types_key: IFormView,DrawFormFieldDto,FlexPanelAp,Map,FlexPanelAp,FlexPanelAp,Style,Padding,Margin,FieldAp
signature_text:
public DialogBindDataDTO(IFormView view, DrawFormFieldDto drawFormFieldDto, FlexPanelAp fieldsetPanelAp, java.util.Map<String, Object> diffMap, FlexPanelAp flexAp, FlexPanelAp totalFieldsetPanelAp, Style style, Padding padding, Margin margin, FieldAp fieldAp)

comment:
有参构造
@param `view` view
@param `drawFormFieldDto` drawFormFieldDto
@param `fieldsetPanelAp` fieldsetPanelAp
@param `diffMap` diffMap
@param `flexAp` flexAp
@param `totalFieldsetPanelAp` totalFieldsetPanelAp
@param `style` style
@param `padding` padding
@param `margin` margin
@param `fieldAp` fieldAp


class_name: kd.sdk.hr.hspm.common.ext.file.EmpReportExtCalculateDTO
method_name: <init>
param_types_key: DataSet,FilterInfo,Set
signature_text:
public EmpReportExtCalculateDTO(DataSet dataSet, FilterInfo filterInfo, java.util.Set<String> queryFieldSet)


class_name: kd.sdk.hr.hspm.common.ext.file.EmpReportExtColumnDTO
method_name: <init>
param_types_key: ReportColumn,Object,String,DynamicObject
signature_text:
public EmpReportExtColumnDTO(ReportColumn column, <any> entityItem, String mapKey, DynamicObject mapValue)


class_name: kd.sdk.hr.hspm.common.ext.file.EmpReportExtReletionFilterDTO
method_name: <init>
param_types_key: FilterInfo,Map
signature_text:
public EmpReportExtReletionFilterDTO(FilterInfo filterInfo, java.util.Map<String, java.util.List<QFilter>> reletionMap)


class_name: kd.sdk.hr.hspm.common.ext.file.MobileHomeVectorDTO
method_name: setColorAndSizeMap
param_types_key: Map
signature_text:
public void setColorAndSizeMap(java.util.Map<String, java.util.Map<String, String>> colorAndSizeMap)


class_name: kd.sdk.hr.hspm.common.ext.file.QuitEmpReportExtCalculateDTO
method_name: <init>
param_types_key: DataSet,FilterInfo,Set
signature_text:
QuitEmpReportExtCalculateDTO(DataSet dataSet, FilterInfo filterInfo, java.util.Set<String> queryFieldSet)


class_name: kd.sdk.hr.hspm.common.ext.file.QuitEmpReportExtColumnDTO
method_name: <init>
param_types_key: ReportColumn,Object,String,DynamicObject
signature_text:
QuitEmpReportExtColumnDTO(ReportColumn column, <any> entityItem, String mapKey, DynamicObject mapValue)


class_name: kd.sdk.hr.hspm.common.ext.file.QuitEmpReportExtReletionFilterDTO
method_name: <init>
param_types_key: FilterInfo,Map
signature_text:
QuitEmpReportExtReletionFilterDTO(FilterInfo filterInfo, java.util.Map<String, java.util.List<QFilter>> reletionMap)


class_name: kd.sdk.hr.hspm.common.ext.file.SideBarDataDTO
method_name: <init>
param_types_key: Map,FormShowParameter
signature_text:
public SideBarDataDTO(java.util.Map<String, Object> infoGroupConfig, FormShowParameter showParameter)


class_name: kd.sdk.hr.hspm.common.model.FileRelationModel
method_name: <init>
param_types_key: List,List
signature_text:
public FileRelationModel(java.util.List<java.util.Map<String, Object>> superList, java.util.List<java.util.Map<String, Object>> depChargeInfoList)


class_name: kd.sdk.hr.hspm.common.result.HrpiServiceOperateResult
method_name: validate
param_types_key: Map,ErrorCode,String
comment: 校验返回报文 如果返回失败则抛出异常 @param `resultMap` 返回报文 @param `errorCode` 异常码 @param `errorMsg` 异常原因
signature_text:
public static void validate(java.util.Map<String, Object> resultMap, ErrorCode errorCode, String errorMsg)


class_name: kd.sdk.hr.hspm.common.result.HrpiServiceOperateResult
method_name: validateAfterBuild
param_types_key: Map,ErrorCode,String
signature_text:
public static HrpiServiceOperateResult validateAfterBuild(java.util.Map<String, Object> resultMap, ErrorCode errorCode, String errorMsg)

comment:
校验返回报文 如果返回失败则抛出异常
@param `resultMap` 返回报文
@param `errorCode` 异常码
@param `errorMsg` 异常原因
@return 报文包装对象


class_name: kd.sdk.hr.hspm.common.utils.ApprovalEntityUtils
method_name: dealDataAfterDeleteEntry
param_types_key: List,DynamicObject,Long,boolean
signature_text:
public static void dealDataAfterDeleteEntry(java.util.List<Long> entryIdList, DynamicObject entry, Long pkid, boolean isFromBill)

comment:
删除暂存数据
@param `entryIdList` 分录id 没分录不用传 目前只有教育经历需要
@param `entry` 单据
@param `pkid` 主数据id
@param `isFromBill` 是否从移动端单据界面调用 true是、false否


class_name: kd.sdk.hr.hspm.common.utils.ApprovalEntityUtils
method_name: initCacheFromEntry
param_types_key: IFormView,Map
comment: 初始化审核缓存 @param `view` 页面
signature_text:
public static void initCacheFromEntry(IFormView view, java.util.Map<String, Object> infoGroupConfig)


class_name: kd.sdk.hr.hspm.common.utils.BusinessUtils
method_name: addHighestDegree
param_types_key: HRBaseServiceHelper,Long,DynamicObjectCollection,DynamicObject
comment: 新增非最高学历切换 @param `helper` @param `personId` @param `updateCollection`
signature_text:
public static void addHighestDegree(HRBaseServiceHelper helper, Long personId, DynamicObjectCollection updateCollection, DynamicObject old)


class_name: kd.sdk.hr.hspm.common.utils.BusinessUtils
method_name: addMajorDegree
param_types_key: HRBaseServiceHelper,Long,DynamicObjectCollection,DynamicObject
comment: 新增非主证件 @param `helper` @param `personId` @param `updateCollection`
signature_text:
public static void addMajorDegree(HRBaseServiceHelper helper, Long personId, DynamicObjectCollection updateCollection, DynamicObject old)


class_name: kd.sdk.hr.hspm.common.utils.BusinessUtils
method_name: addMapToCollect
param_types_key: IFormView,Long,String,Object,Object,List,String
signature_text:
public static void addMapToCollect(IFormView view, Long pkId, String attachKey, Object newValue, Object oldValue, java.util.List<java.util.HashMap<String, Object>> collection, String entityName)

comment:
头像缓存更新
@param `pkId`
@param `attachKey`
@param `newValue`
@param `oldValue`
@param `collection`
@param `entityName`


class_name: kd.sdk.hr.hspm.common.utils.BusinessUtils
method_name: buildAttachmentDataFromEdit
param_types_key: String,Map
comment: 根据附件字段数据构造附件面板数据 @param `entityNum` 元数据标识 @param `attachObj` 附件字段数据 @return List> 附件面板数据
signature_text:
public static java.util.List<java.util.Map<String, Object>> buildAttachmentDataFromEdit(String entityNum, java.util.Map<String, Object> attachObj)


class_name: kd.sdk.hr.hspm.common.utils.BusinessUtils
method_name: changeAdjustTime
param_types_key: DynamicObject,String,Map,IFormView,boolean,boolean,boolean
comment: 服务年限：工龄司龄同步 @param `dbDy` @param `entityName` @param `saveOrUpdateMap`
signature_text:
public static void changeAdjustTime(DynamicObject dbDy, String entityName, java.util.Map<String, DynamicObjectCollection> saveOrUpdateMap, IFormView view, boolean isAdComTimeAudit, boolean isAdWorkTimeAudit, boolean isJoinWorkTimeAudit)


class_name: kd.sdk.hr.hspm.common.utils.BusinessUtils
method_name: changeBeginServiceDate
param_types_key: DynamicObject,String,Map,IFormView,boolean
comment: 基本信息：参加工作日期同步 @param `dbDy` @param `entityName` @param `saveOrUpdateMap`
signature_text:
public static void changeBeginServiceDate(DynamicObject dbDy, String entityName, java.util.Map<String, DynamicObjectCollection> saveOrUpdateMap, IFormView view, boolean audit)


class_name: kd.sdk.hr.hspm.common.utils.BusinessUtils
method_name: changeBeginServiceDateAfterAudit
param_types_key: DynamicObject,DynamicObject,Map,DynamicObject
signature_text:
public static void changeBeginServiceDateAfterAudit(DynamicObject dbDy, DynamicObject newDy, java.util.Map<String, DynamicObjectCollection> saveOrUpdateMap, DynamicObject field)

comment:
基本信息：参加工作日期同步(审批通过后)
@param `dbDy` 非时序实体数据
@param `newDy` 非时序实体数据-待更新
@param `saveOrUpdateMap`
@param `field` 单据分录行数据


class_name: kd.sdk.hr.hspm.common.utils.BusinessUtils
method_name: closeHighestDegree
param_types_key: HRBaseServiceHelper,Long,DynamicObjectCollection,DynamicObject
comment: 最高学历切换 @param `helper` @param `personId` @param `updateCollection`
signature_text:
public static void closeHighestDegree(HRBaseServiceHelper helper, Long personId, DynamicObjectCollection updateCollection, DynamicObject old)


class_name: kd.sdk.hr.hspm.common.utils.BusinessUtils
method_name: closeMajor
param_types_key: HRBaseServiceHelper,Long,DynamicObjectCollection
comment: 关闭主证件 @param `helper` @param `personId` @param `updateCollection`
signature_text:
public static void closeMajor(HRBaseServiceHelper helper, Long personId, DynamicObjectCollection updateCollection)


class_name: kd.sdk.hr.hspm.common.utils.BusinessUtils
method_name: dateChangedAfterSelected
param_types_key: IFormView,String,String,boolean
signature_text:
public static void dateChangedAfterSelected(IFormView view, String selectedField, String dateField, boolean isEditView)

comment:
是否长期有效和有效期至字段联动
@param `view` 页面view
@param `selectedField` 是否长期有效key
@param `dateField` 有效期至key
@param `isEditView` 是否编辑查看页面加载时打开


class_name: kd.sdk.hr.hspm.common.utils.BusinessUtils
method_name: getTempUrl
param_types_key: String,Map
comment: 根据附件字段数据构造附件面板数据 @param `entityNum` 元数据标识 @param `attachObj` 附件字段数据 @return List> 附件面板数据
signature_text:
public static java.util.List<java.util.Map<String, Object>> getTempUrl(String entityNum, java.util.Map<String, Object> attachObj)


class_name: kd.sdk.hr.hspm.common.utils.BusinessUtils
method_name: getUpdateBoIdGenPkId
param_types_key: Map,boolean
comment: 获取当前保存的全部的boid @param `attachMap` 數據 @param `genPkId` 是否生成主鍵 @return set
signature_text:
public static java.util.Set<Long> getUpdateBoIdGenPkId(java.util.Map<String, DynamicObjectCollection> attachMap, boolean genPkId)


class_name: kd.sdk.hr.hspm.common.utils.BusinessUtils
method_name: openHighestDegree
param_types_key: HRBaseServiceHelper,Long,DynamicObjectCollection
comment: 旧的最高学历变成非最高学历 @param `helper` @param `personId` @param `updateCollection`
signature_text:
public static void openHighestDegree(HRBaseServiceHelper helper, Long personId, DynamicObjectCollection updateCollection)


class_name: kd.sdk.hr.hspm.common.utils.BusinessUtils
method_name: openMajor
param_types_key: HRBaseServiceHelper,Long,DynamicObjectCollection
comment: 打开主证件 @param `helper` @param `personId` @param `updateCollection`
signature_text:
public static void openMajor(HRBaseServiceHelper helper, Long personId, DynamicObjectCollection updateCollection)


class_name: kd.sdk.hr.hspm.common.utils.BusinessUtils
method_name: reSetAttachmentUrl
param_types_key: FileService,TempFileCache,Map
signature_text:
public static void reSetAttachmentUrl(FileService attachmentFileService, TempFileCache tempFileCache, java.util.Map<String, Object> attachment)

comment:
重置url
@param `attachmentFileService` attachmentFileService
@param `tempFileCache` tempFileCache
@param `attachment` 附件信息


class_name: kd.sdk.hr.hspm.common.utils.BusinessUtils
method_name: setDateLimit
param_types_key: IFormView,String,boolean,boolean
comment: 字段输入限制 @param `field` 字段 @param `includeCurrentDay` 是否包含当前日期 @param `isMax` 最大日期/最小日期
signature_text:
public static void setDateLimit(IFormView view, String field, boolean includeCurrentDay, boolean isMax)


class_name: kd.sdk.hr.hspm.common.utils.CommonUtil
method_name: customObjectEquals
param_types_key: Object,Object,String
comment: 是否相等 @param `obj1` obj @param `obj2` obj @param `dateFormat` form @return 是否 @throws `Exception` 异常
signature_text:
public static boolean customObjectEquals(Object obj1, Object obj2, String dateFormat) throws Exception


class_name: kd.sdk.hr.hspm.common.utils.CommonUtil
method_name: getBigDecimalIfExist
param_types_key: IDataModel,String,Long,String
signature_text:
public static java.math.BigDecimal getBigDecimalIfExist(IDataModel model, String key, Long personId, String selProp)

comment:
判断字段是否存在，存在则按照输入的字段值算，否则去0
@param `model` model
@param `key` 标识
@param `personId` 人员id
@return BigDecimal


class_name: kd.sdk.hr.hspm.common.utils.CommonUtil
method_name: hasPerm
param_types_key: String,String
signature_text: public static boolean hasPerm(String entityName, String permItemId)
comment:
判断用户是否拥有指定实体指定权限项(职能类型/管理视图为HR)
@param `entityName` 实体
@param `permItemId` 权限项ID
@return 验证有权则为true ，否则为false


class_name: kd.sdk.hr.hspm.common.utils.CommonUtil
method_name: hasPerm
param_types_key: String,String,String
signature_text: public static boolean hasPerm(String entityName, String permItemId, String appId)
comment:
判断用户是否拥有指定实体指定权限项(职能类型/管理视图为HR)
@param `entityName` 实体
@param `permItemId` 权限项ID
@param `appId` 应用ID
@return 验证有权则为true ，否则为false


class_name: kd.sdk.hr.hspm.common.utils.CommonUtil
method_name: hasPerm
param_types_key: String,String,String,IFormView
signature_text: public static boolean hasPerm(String entityName, String permItemId, String appId, IFormView view)
comment:
判断用户是否拥有指定实体指定权限项(职能类型/管理视图为HR)
@param `entityName` 实体
@param `permItemId` 权限项ID
@param `appId` 如果IFormView能拿到APPID，以拿到的为准，拿不到用appId
@return 验证有权则为true ，否则为false


class_name: kd.sdk.hr.hspm.common.utils.CommonUtil
method_name: permShowClickError
param_types_key: IFormView,String,BeforeClickEvent,String
signature_text:
public static boolean permShowClickError(IFormView view, String permItemId, BeforeClickEvent evt, String currentPage)

comment:
判断用户是否拥有指定实体指定权限项(职能类型/管理视图为HR)
@param `view` 实体
@param `permItemId` 权限项ID
@param `evt` evt
@param `currentPage` 2：有父页面 1：是当前页面 0 ：没有弹框的当前页面
@return 验证有权则为true ，否则为false


class_name: kd.sdk.hr.hspm.common.utils.DynamicPropUtil
method_name: getSelectProperties
param_types_key: DataEntityPropertyCollection,DataEntityPropertyCollection,DataEntityPropertyCollection,String
signature_text:
public static String getSelectProperties(DataEntityPropertyCollection mainProperties, DataEntityPropertyCollection compareProperties, DataEntityPropertyCollection properties, String extraSelectProperties)

comment:
获取非主实体的查询字段
@param `mainProperties` 主实体的字段类型集
@param `compareProperties` 比较实体的字段类型集
@param `properties` 非主实体的字段类型集
@param `extraSelectProperties` 额外要查询的字段
@return 非主实体的查询字段


class_name: kd.sdk.hr.hspm.common.utils.DynamicPropUtil
method_name: getSelectProperties
param_types_key:
DataEntityPropertyCollection,DataEntityPropertyCollection,DataEntityPropertyCollection,String,String

signature_text:
public static String getSelectProperties(DataEntityPropertyCollection mainProperties, DataEntityPropertyCollection compareProperties, DataEntityPropertyCollection properties, String extraSelectProperties, String excludeProperties)

comment:
获取非主实体的查询字段
@param `mainProperties` 主实体的字段类型集
@param `compareProperties` 比较实体的字段类型集
@param `properties` 非主实体的字段类型集
@param `extraSelectProperties` 额外要查询的字段
@param `excludeProperties` 需要被排除的字段
@return 非主实体的查询字段


class_name: kd.sdk.hr.hspm.common.utils.DynamicPropUtil
method_name: getSelectProperties
param_types_key: DataEntityPropertyCollection,DataEntityPropertyCollection
comment: 获取实体的查询字段 @param `mainProperties` 主实体的字段类型集 @param `properties` 实体的字段类型集 @return 实体的查询字段
signature_text:
public static String getSelectProperties(DataEntityPropertyCollection mainProperties, DataEntityPropertyCollection properties)


class_name: kd.sdk.hr.hspm.common.utils.DynamicPropValidateUtil
method_name: checkChanged
param_types_key: DynamicObject,DynamicObject,String
signature_text:
public static boolean checkChanged(DynamicObject dataEntity, DynamicObject dbDy, String dynamicPropString)

comment:
判断数据是否发生变更
@param `dataEntity` 待更新数据
@param `dbDy` 数据库最新数据
@param `dynamicPropString` 匹配是否发生变更的字段集
@return 是否改变


class_name: kd.sdk.hr.hspm.common.utils.DynamicPropValidateUtil
method_name: checkChangedPropMap
param_types_key: DynamicObject,DynamicObject
comment: 判断数据是否发生变更,并返回变化和未变化的map集合 @param `dataEntity` 待更新数据 @param `dbDy` 数据库最新数据 @return 变化和未变化的map集合
signature_text:
public static java.util.Map<String, java.util.List<String>> checkChangedPropMap(DynamicObject dataEntity, DynamicObject dbDy)


class_name: kd.sdk.hr.hspm.common.utils.DynamicPropValidateUtil
method_name: checkChangedPropMap
param_types_key: DynamicObject,DynamicObject,String
signature_text:
public static java.util.Map<String, java.util.List<String>> checkChangedPropMap(DynamicObject dataEntity, DynamicObject dbDy, String dynamicPropString)

comment:
判断数据是否发生变更
@param `dataEntity` 待更新数据
@param `dbDy` 数据库最新数据
@param `dynamicPropString` 匹配是否发生变更的字段集
@return 变化和未变化的map集合


class_name: kd.sdk.hr.hspm.common.utils.DynamicTransformUtil
method_name: setLocalProp
param_types_key: MainEntityType,DynamicObject,Entry
comment: 设置值 @param `dataEntityType` @param `baseInstance` @param `keyValue` 基础资料ID必须为Long
signature_text:
public static void setLocalProp(MainEntityType dataEntityType, DynamicObject baseInstance, java.util.Map.Entry<String, Object> keyValue)


class_name: kd.sdk.hr.hspm.common.utils.HrpiServiceOperateParam
method_name: getInvokeSave
param_types_key: HRBaseServiceHelper,DynamicObject,DynamicObjectCollection
signature_text:
public static void getInvokeSave(HRBaseServiceHelper serviceHelper, DynamicObject dataEntity, DynamicObjectCollection dynamicObjectCollection)

comment:
拼接新增数据
@param `serviceHelper` 实体基础服务帮助类
@param `dataEntity` 表单数据
@param `dynamicObjectCollection` 包装数据集


class_name: kd.sdk.hr.hspm.common.utils.HrpiServiceOperateParam
method_name: getInvokeUpdate
param_types_key: HRBaseServiceHelper,DynamicObject,DynamicObject,DynamicObjectCollection
signature_text:
public static void getInvokeUpdate(HRBaseServiceHelper serviceHelper, DynamicObject dataEntity, DynamicObject dbDy, DynamicObjectCollection dynamicObjectCollection)

comment:
拼接更新数据
@param `serviceHelper` 实体基础服务帮助类
@param `dataEntity` 表单数据
@param `dbDy` 数据库数据
@param `dynamicObjectCollection` 包装数据集


class_name: kd.sdk.hr.hspm.common.utils.HrpiServiceOperateParam
method_name: getUpdateDy
param_types_key: HRBaseServiceHelper,DynamicObject,DynamicObject
signature_text:
public static DynamicObject getUpdateDy(HRBaseServiceHelper serviceHelper, DynamicObject dataEntity, DynamicObject dbDy)

comment:
构造编辑时使用的数据
@param `serviceHelper` 实体基础服务帮助类
@param `dataEntity` 表单数据
@param `dbDy` 数据库数据
@return 实体数据


class_name: kd.sdk.hr.hspm.common.utils.InfoClassifyOpenWindowUtil
method_name: openWindowForHisNonLineImportStartPage
param_types_key: ListView,String
comment: 打开中台带历史模型单实体导入模板 非时序性历史导入
signature_text:
public static FormShowParameter openWindowForHisNonLineImportStartPage(ListView view, String importPlugin)


class_name: kd.sdk.hr.hspm.common.utils.InfoClassifyOpenWindowUtil
method_name: openWindowForListBtnNew
param_types_key: InfoClassifyEntityKeyDTO,String
comment: 点击列表新增按钮弹出层 @param `infoClassifyEntityKeyDTO` 页面标识 @param `caption` 弹出层标题 @return 弹出层
signature_text:
public static FormShowParameter openWindowForListBtnNew(kd.sdk.hr.hspm.common.dto.InfoClassifyEntityKeyDTO infoClassifyEntityKeyDTO, String caption)


class_name: kd.sdk.hr.hspm.common.utils.InfoClassifyOpenWindowUtil
method_name: openWindowForListHyperLink
param_types_key: Long,InfoClassifyEntityKeyDTO,String
signature_text:
public static BaseShowParameter openWindowForListHyperLink(Long pkId, kd.sdk.hr.hspm.common.dto.InfoClassifyEntityKeyDTO infoClassifyEntityKeyDTO, String caption)

comment:
点击列表超链接弹出层 --编辑
@param `pkId` 主键ID
@param `infoClassifyEntityKeyDTO` 页面标识
@param `caption` 弹出层标题
@return 弹出层


class_name: kd.sdk.hr.hspm.common.utils.InfoGroupApprovalUtil
method_name: findDynamicObjects
param_types_key: DynamicObjectCollection,long
comment: 查找相关的审批的字段 @param `dynamicObjects` 所有审批字段 @param `dataRefId` 当前操作的分离ID @return 审批的字段
signature_text:
public static java.util.List<DynamicObject> findDynamicObjects(DynamicObjectCollection dynamicObjects, long dataRefId)


class_name: kd.sdk.hr.hspm.common.utils.PageCacheUtils
method_name: removeDataIfNeedUpdate
param_types_key: List,Long,String,String
comment: 更新字段缓存 @param `collection` @param `boid` @param `fieldName`
signature_text:
public static void removeDataIfNeedUpdate(java.util.List<java.util.HashMap<String, Object>> collection, Long boid, String fieldName, String groupNumber)


class_name: kd.sdk.hr.hspm.common.utils.PageCacheUtils
method_name: updateTempData
param_types_key: DynamicObject[],Map,String,Object,String,IFormView,HRBaseServiceHelper
signature_text:
public static void updateTempData(DynamicObject[] tempInfo, java.util.Map<String, Object> resultMap, String field, Object newValue, String entityName, IFormView view, HRBaseServiceHelper helper)

comment:
暂存态的数据刷新
@param `tempInfo` 当前暂存数据集合
@param `resultMap` 当前页面保存响应
@param `field` 切换依据字段
@param `newValue` 切换后的值
@param `entityName` 实体
@param `view` 当前页面
@param `helper` helper


class_name: kd.sdk.hr.hspm.common.utils.ParamAnalysisUtil
method_name: getFields
param_types_key: Map
signature_text:
public static java.util.List<java.util.Map<String, Object>> getFields(java.util.Map<String, Object> group)


class_name: kd.sdk.hr.hspm.common.utils.ParamAnalysisUtil
method_name: getGroups
param_types_key: Map
signature_text:
public static java.util.List<java.util.Map<String, Object>> getGroups(java.util.Map<String, Object> tabList)


class_name: kd.sdk.hr.hspm.common.utils.PermUtil
method_name: getAllPermOrgs
param_types_key: long,String,String,String
signature_text:
public static HasPermOrgResult getAllPermOrgs(long userId, String appId, String entityNumber, String permItemId)

comment:
查询主业务组织的权限
@param `userId` 用户ID
@param `appId` appId
@param `entityNumber` 实体
@param `permItemId` 权限项ID
@return 查询结果


class_name: kd.sdk.hr.hspm.common.utils.PermUtil
method_name: getDataRule
param_types_key: long,String,String,String,Map
signature_text:
public static QFilter getDataRule(long userId, String appId, String entityNumber, String permItemId, java.util.Map<String, Object> customParam)

comment:
获取数据权限
@param `userId` 用户ID
@param `appId` appId
@param `entityNumber` 实体
@param `permItemId` 权限项ID
@param `customParam` 自定义参数
@return 查询条件


class_name: kd.sdk.hr.hspm.common.utils.PersonModelUtil
method_name: getQFilterForHeadArea
param_types_key: String,Map
comment: 获取附表过滤对象 @param `pageNumber` 元数据标识 @param `values` 值 @return QFilter
signature_text:
public static QFilter getQFilterForHeadArea(String pageNumber, java.util.Map<String, Object> values)


class_name: kd.sdk.hr.hspm.common.utils.PersonModelUtil
method_name: setPersonModelValue
param_types_key: DynamicObject,Map
comment: 保存四层人员信息 @param `dynamicObject` dy对象 @param `values` 值
signature_text:
public static void setPersonModelValue(DynamicObject dynamicObject, java.util.Map<String, Object> values)


class_name: kd.sdk.hr.hspm.common.vo.AfterCreatVo
method_name: <init>
param_types_key: Map,LabelAp,String,Map,FlexPanelAp
signature_text:
public AfterCreatVo(java.util.Map<String, Object> filedMap, LabelAp fieldAp, String labType, java.util.Map<String, Object> dataMap, FlexPanelAp mainAp)


class_name: kd.sdk.hr.hspm.common.vo.BeforeCreatVo
method_name: <init>
param_types_key: Map,Map,String,Map,int
signature_text:
public BeforeCreatVo(java.util.Map<String, Object> labMap, java.util.Map<String, String> relMap, String labType, java.util.Map<String, Object> dataMap, int index)


class_name: kd.sdk.hr.hspm.common.vo.BeforeCreatVo
method_name: <init>
param_types_key: Map,Map,String,Map,int,FlexPanelAp
signature_text:
public BeforeCreatVo(java.util.Map<String, Object> labMap, java.util.Map<String, String> relMap, String labType, java.util.Map<String, Object> dataMap, int index, FlexPanelAp topLeftMainAp)


class_name: kd.sdk.hr.hspm.common.vo.CardViewCompareVo
method_name: <init>
param_types_key: String,String,String,String
signature_text:
public CardViewCompareVo(String timeFields, String headFields, String textFields, String contentFields)


class_name: kd.sdk.hr.hspm.common.vo.CardViewCompareVo
method_name: <init>
param_types_key: String,String,String,String,String
signature_text:
public CardViewCompareVo(String timeFields, String headFields, String textFields, String contentFields, String attachFields)


class_name: kd.sdk.hr.hspm.common.vo.CardViewVo
method_name: <init>
param_types_key: List,List,List,List,List
signature_text:
public CardViewVo(java.util.List<java.util.Map<String, Object>> timeFields, java.util.List<java.util.Map<String, Object>> headFields, java.util.List<java.util.Map<String, Object>> textFields, java.util.List<java.util.Map<String, Object>> contentFields, java.util.List<java.util.Map<String, Object>> attachFields)


class_name: kd.sdk.hr.hspm.common.vo.ContentApVo
method_name: <init>
param_types_key: Map,FlexPanelAp,int,int
signature_text:
public ContentApVo(java.util.Map<String, Object> dataMap, FlexPanelAp contentAp, int index, int dataSize)


class_name: kd.sdk.hr.hspm.common.vo.ContentApVo
method_name: <init>
param_types_key: Map,FlexPanelAp,int,int,int
signature_text:
public ContentApVo(java.util.Map<String, Object> dataMap, FlexPanelAp contentAp, int index, int dataSize, int outIndex)


class_name: kd.sdk.hr.hspm.common.vo.DefineSpecialVo
method_name: <init>
param_types_key: boolean,String,String,String,String
signature_text:
public DefineSpecialVo(boolean timeFlag, String timeEdit, String timeDel, String headEdit, String headDel)


class_name: kd.sdk.hr.hspm.common.vo.DefineSpecialVo
method_name: <init>
param_types_key: boolean,boolean,String,String
signature_text:
public DefineSpecialVo(boolean timeFlag, boolean timeOutBut, String viewContractBut, String headEdit)


class_name: kd.sdk.hr.hspm.common.vo.PreBindDataVo
method_name: <init>
param_types_key: Map,FormView,FormShowParameter
signature_text:
public PreBindDataVo(java.util.Map<String, Object> dataMap, FormView view, FormShowParameter formShowParameter)


class_name: kd.sdk.hr.hspm.common.vo.QueryDbVo
method_name: <init>
param_types_key: QFilter[],List,String,Boolean
signature_text:
public QueryDbVo(QFilter[] filters, java.util.List<String> fields, String entityId, Boolean setToList)


class_name: kd.sdk.hr.hspm.common.vo.TimeApVo
method_name: <init>
param_types_key: Map,FlexPanelAp,int,int
signature_text:
public TimeApVo(java.util.Map<String, Object> dataMap, FlexPanelAp contentAp, int index, int outIndex)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractCardDrawEdit
method_name: createAttContentAp
param_types_key: int,FlexPanelAp,List,Map,int,Boolean,String,Map
signature_text:
public void createAttContentAp(int index, FlexPanelAp attachPanelAp, java.util.List<java.util.Map<String, Object>> attachments, java.util.Map<String, Object> filedMap, int idx, Boolean isImageAttachment, String page, java.util.Map<String, Object> dataMap)

comment:
附件信息
@param `index` index
@param `attachPanelAp` attachPanelAp
@param `attachments` attachments
@param `filedMap` filedMap
@param `idx` idx
@param `isImageAttachment` isImageAttachment
@param `page` page
@param `dataMap` dataMap


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractCardDrawEdit
method_name: doSetCustomParam
param_types_key: FormShowParameter,String,FormShowParameter
comment: 设置弹框参数 @param `oldForm` oldForm @param `labelName` labelName @param `form` form
signature_text:
protected void doSetCustomParam(FormShowParameter oldForm, String labelName, FormShowParameter form)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractCardDrawEdit
method_name: loadCardAp
param_types_key: List,FlexPanelAp,String,int,int
signature_text:
protected void loadCardAp(java.util.List<java.util.Map<String, Object>> dataList, FlexPanelAp contentAp, String contentApStr, int outIndex, int maxsize)

comment:
绘制卡片
@param `dataList` 数据库数据
@param `contentAp` 内容
@param `contentApStr` 标识
@param `outIndex` 多组的外层idx


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractCardDrawEdit
method_name: setLeftTimeAxis
param_types_key: FlexPanelAp,Style,int,ContentApVo
signature_text:
protected void setLeftTimeAxis(FlexPanelAp mainSubAp, Style style, int index, ContentApVo contentApVo)

comment:
时间轴
@param `mainSubAp` mainSubAp
@param `style` style
@param `index` index
@param `contentApVo` contentApVo


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractCardDrawEdit
method_name: suffixHandlerBeforeBindData
param_types_key: EventObject,List
comment: 子类实现封装数据 子类后置处理数据 @param `args` args @param `dataList` dataList
signature_text:
protected void suffixHandlerBeforeBindData(java.util.EventObject args, java.util.List<java.util.Map<String, Object>> dataList)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractCardDrawEdit
method_name: supplementDataList
param_types_key: QueryDbVo,List
comment: 补充数据，可以批量查询数据 @param `queryDbVo` queryDbVo @param `result` result
signature_text:
protected void supplementDataList(QueryDbVo queryDbVo, java.util.List<java.util.Map<String, Object>> result)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: addAttachData
param_types_key: String,IFormView,DynamicObject,DynamicObjectCollection,boolean
signature_text:
protected java.util.Map<String, Object> addAttachData(String entityName, IFormView view, DynamicObject pageDy, DynamicObjectCollection dynamicObjects, boolean closeView)

comment:
新增保存多条数据
@param `entityName` 实体名
@param `view` view
@param `pageDy` 页面数据
@param `dynamicObjects` 对象
@param `closeView` 关闭页面
@return 返回


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: addAttachData
param_types_key: String,IFormView,DynamicObject,boolean
comment: 新增保存数据 保存单条 @param `entityName` @param `view`
signature_text:
protected java.util.Map<String, Object> addAttachData(String entityName, IFormView view, DynamicObject pageDy, boolean closeView)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: assembleValue
param_types_key: String,List,DynamicObject,String,List
signature_text:
protected void assembleValue(String typeConstant, java.util.List<DrawFormFieldDto> allFieldList, DynamicObject dynamicObject, String entityId, java.util.List<String> fieldList)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: buildAddBatchAttachData
param_types_key: Map,String,String
signature_text:
protected java.util.Map<String, DynamicObjectCollection> buildAddBatchAttachData(java.util.Map<String, DynamicObjectCollection> sendMap, String entityName, String acrossEntity)

comment:
构建批量新增数据,再直接调用 AttacheHandlerService.getInstance().invokeSaveOrUpdate(attachMap)即可
@param `sendMap` sendMap
@param `entityName` entityName
@param `acrossEntity` 是否跨实体
@return map


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: buildAddSingleAttachData
param_types_key: String,IFormView,DynamicObject,DynamicObjectCollection,String
comment: 构建单个新增数据
signature_text:
protected java.util.Map<String, DynamicObjectCollection> buildAddSingleAttachData(String entityName, IFormView view, DynamicObject pageDy, DynamicObjectCollection dynamicObjects, String acrossEntity)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: buildUpdateBatchAttachData
param_types_key: Map,String,String,String
signature_text:
protected java.util.Map<String, DynamicObjectCollection> buildUpdateBatchAttachData(java.util.Map<String, DynamicObjectCollection> objectCollection, String entityName, String type, String acrossEntity)

comment:
构建批量更新数据,再直接调用 AttacheHandlerService.getInstance().invokeSaveOrUpdate(attachMap)即可
@param `objectCollection` 数据
@param `entityName` 实体名称
@param `type` 类型
@param `acrossEntity` 是否跨实体
@return 数据


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: buildUpdateSingleAttachData
param_types_key: String,IFormView,String,String
signature_text:
protected DynamicObjectCollection buildUpdateSingleAttachData(String entityName, IFormView view, String type, String acrossEntity)

comment:
构建批量更新数据
@param `entityName` 实体名
@param `view` view
@param `type` 类型
@param `acrossEntity` 跨实体
@return 对象


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: createCurrentDy
param_types_key: String,IFormView,String,String
comment: 获取页面数据 @param `entityName` 实体 @param `view` view @param `type` type @return 对象
signature_text:
protected DynamicObject createCurrentDy(String entityName, IFormView view, String type, String acrossEntity)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: drawFormTitleFlex
param_types_key: int,List,FlexPanelAp,boolean
signature_text:
protected void drawFormTitleFlex(int index, java.util.List<java.util.Map<String, Object>> groups, FlexPanelAp flexPanelAp, boolean isNeedTitle)

comment:
表单面板的标题
@param `index` i
@param `groups` 信息组
@param `flexPanelAp` 信息组面板
@param `isNeedTitle` 是否需要标题标签


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: drawMainFlex
param_types_key: List,FlexPanelAp,Map,IFormView
signature_text:
protected void drawMainFlex(java.util.List<java.util.Map<String, Object>> groups, FlexPanelAp flexPanelAp, java.util.Map<String, Object> tabList, IFormView view)

comment:
组装绘画面板 默认一个信息组一个信息组面板，多个信息组面板组装成一个页面面板 如遇最终一个面板不能满足，附表可重写，如证件信息
@param `groups` 信息组数据
@param `flexPanelAp` 页面面板
@param `tabList` 数据
@param `view` 视图


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: formatFlexFields
param_types_key: Map,Map
comment: 多视图传来的信息组字段组装成规定的数据格式 @param `group` 信息组 @param `tabList` @return 字段列表
signature_text:
public java.util.List<DrawFormFieldDto> formatFlexFields(java.util.Map<String, Object> group, java.util.Map<String, Object> tabList)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: getComboItemMap
param_types_key: Map
comment: 获取下拉列表的预置数据，生成字段属性的时候必须 key->字段id，value->字段的下拉列表数据 @return 下拉列表的预置数据
signature_text:
protected java.util.Map<String, java.util.List<ComboItem>> getComboItemMap(java.util.Map<String, Object> tabList)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: getGroupAp
param_types_key: Map,int,Map,IFormView,FlexPanelAp
signature_text:
protected FlexPanelAp getGroupAp(java.util.Map<String, Object> group, int index, java.util.Map<String, Object> tabList, IFormView view, FlexPanelAp fieldsetPanelAp)

comment:
组装每个信息组的页面
@param `group` 字段组
@param `index` 标识
@param `tabList` 数据
@param `view` 视图
@param `fieldsetPanelAp` 主页字段面板
@return 信息组的页面


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: getHisVersions
param_types_key: String,Long,boolean,boolean
signature_text:
public DynamicObject[] getHisVersions(String baseEntityName, Long employeeId, boolean queryRevise, boolean containsCurVersion)

comment:
查询历史数据
@param `baseEntityName` 基础页面
@param `employeeId` 企业人id
@param `queryRevise` 是否查询
@return 返回对应的数据


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: getPersonEntityData
param_types_key: FormShowParameter,String,String,String,HRBaseServiceHelper,QFilter
signature_text:
protected DynamicObject getPersonEntityData(FormShowParameter formShowParameter, String entityId, String typeConstant, String queryFields, HRBaseServiceHelper helper, QFilter qFilter)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: operateBeforeUpdateAttachData
param_types_key: Map
comment: 更新数据前操作 @param `attachMap`
signature_text:
protected void operateBeforeUpdateAttachData(java.util.Map<String, DynamicObjectCollection> attachMap)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: setCopyUpdateDy
param_types_key: DynamicObject,String,DynamicObject,Set,DynamicObject
signature_text:
protected void setCopyUpdateDy(DynamicObject dbDy, String type, DynamicObject senDy, java.util.Set<String> ignoreSet, DynamicObject pageDy)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: setValueFromDb
param_types_key: FormShowParameter,String,String
signature_text:
protected void setValueFromDb(FormShowParameter formShowParameter, String entityId, String typeConstant)

comment:
数据库读取数据设置到页面
@param `formShowParameter` formShowParameter
@param `entityId` 实体标识
@param `typeConstant` 空标识为单表查询，否则为跨实体处理


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: successAfterSave
param_types_key: Object,Map,String,String
comment: 成功 @param `pkValue` 主键 @param `resultMap` 返回 @param `attachKey` 实体名 @param `formId` form
signature_text:
protected void successAfterSave(Object pkValue, java.util.Map<String, Object> resultMap, String attachKey, String formId)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: updateAttachData
param_types_key: String,IFormView,boolean,String
comment: 更新数据，通过页面的model @param `entityName` @param `view` @param `closeView` 关闭页面 @param `type` 是否自然人附表
signature_text:
protected java.util.Map<String, Object> updateAttachData(String entityName, IFormView view, boolean closeView, String type)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: updateAttachData
param_types_key: String,IFormView,DynamicObjectCollection,boolean
signature_text:
protected java.util.Map<String, Object> updateAttachData(String entityName, IFormView view, DynamicObjectCollection dynamicObjects, boolean closeView)

comment:
更新多条数据 直接传对象
@param `entityName` entityName
@param `view` view
@param `dynamicObjects` dynamicObjects
@param `closeView` 关闭页面
@return map


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.base.AbstractFormDrawEdit
method_name: validDate
param_types_key: Date,Date,boolean,String
signature_text:
protected boolean validDate(java.util.Date before, java.util.Date after, boolean isTip, String tipString)

comment:
校验时间
@param `before` 前
@param `after` 后
@param `isTip` 是否提示
@param `tipString` 提示内容
@return true通过 false 不通过


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.drawutil.CustomDrawUtils
method_name: customGetEntityTypeRegProps
param_types_key: DrawFormFieldDto,MainEntityType
signature_text:
public boolean customGetEntityTypeRegProps(DrawFormFieldDto drawFormFieldDto, MainEntityType mainType)

comment:
是否自定义注册 entitytype
@param `drawFormFieldDto` drawFormFieldDto
@param `mainType` mainType
@return false :由原有逻辑绘制 true:自定义逻辑


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.drawutil.CustomDrawUtils
method_name: customOnGetControl
param_types_key: OnGetControlArgs,AbstractFormPlugin,DrawFormFieldDto
signature_text:
public boolean customOnGetControl(OnGetControlArgs args, AbstractFormPlugin abstractFormDrawEdit, DrawFormFieldDto drawFormFieldDto)

comment:
@param `args` 事件
@param `abstractFormDrawEdit` abstractFormDrawEdit
@param `drawFormFieldDto` 配置对象
@return false :由原有逻辑绘制 true:自定义逻辑


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.drawutil.DynamicPanelUtils
method_name: registDynamicProps
param_types_key: MainEntityType,List
comment: 注册 @param `mainType` mainType @param `fieldList` 字段list
signature_text:
public static void registDynamicProps(MainEntityType mainType, java.util.List<DrawFormFieldDto> fieldList)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.drawutil.DynamicPanelUtils
method_name: registMobileDynamicProps
param_types_key: MainEntityType,List,IPageCache
comment: 注册 @param `mainType` mainType @param `fieldList` 字段list @param `pageCache` 动态对象
signature_text:
public static void registMobileDynamicProps(MainEntityType mainType, java.util.List<DrawFormFieldDto> fieldList, IPageCache pageCache)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.drawutil.FieldContainerViewService
method_name: redrawAdconAp
param_types_key: List,String,String,String,Map,IFormView,FlexPanelAp
signature_text:
public FlexPanelAp redrawAdconAp(java.util.List<DrawFormFieldDto> drawFormFieldList, String key, String name, String type, java.util.Map<String, Object> diffMap, IFormView view, FlexPanelAp fieldsetPanelAp)

comment:
组装flex页面
@param `drawFormFieldList` 字段列表
@param `key` 面板标识
@param `name` name
@param `type` type
@param `diffMap` diffMap
@param `view` 视图
@param `fieldsetPanelAp` 主页字段面板
@return 面板


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.drawutil.FieldContainerViewService
method_name: redrawAdconApForPic
param_types_key: DynamicObject[],List,String,String,String,Map,IFormView,FlexPanelAp,Long,String
signature_text:
public FlexPanelAp redrawAdconApForPic(DynamicObject[] dyArray, java.util.List<DrawFormFieldDto> drawFormFieldList, String key, String name, String type, java.util.Map<String, Object> diffMap, IFormView view, FlexPanelAp fieldsetPanelAp, Long dataid, String groupNumber)

comment:
组装flex页面
@param `drawFormFieldList` 字段列表
@param `key` 面板标识
@param `name` name
@param `type` type
@param `diffMap` diffMap
@param `view` 视图
@param `fieldsetPanelAp` 主页字段面板
@return 面板


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.drawutil.FieldContainerViewService
method_name: redrawAdconApMobile
param_types_key: DynamicObject[],IFormView,List,String,String,String,Long,String
signature_text:
public FlexPanelAp redrawAdconApMobile(DynamicObject[] dyArray, IFormView view, java.util.List<DrawFormFieldDto> drawFormFieldList, String key, String name, String type, Long dataid, String groupNumber)

comment:
组装flex页面
@param `dyArray` 单据
@param `drawFormFieldList` 字段列表
@param `key` 面板标识
@param `groupNumber` 信息组编码
@param `view` view
@return 面板


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.drawutil.FieldContainerViewService
method_name: redrawAdconApMobileEdit
param_types_key: DynamicObject[],IFormView,List,String,String,String,Long,String,String
comment: 组装flex页面 @param `dyArray` 单据 @param `drawFormFieldList` 字段列表 @param `key` 面板标识 @return 面板
signature_text:
public FlexPanelAp redrawAdconApMobileEdit(DynamicObject[] dyArray, IFormView view, java.util.List<DrawFormFieldDto> drawFormFieldList, String key, String name, String type, Long dataid, String groupNumber, String status)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.drawutil.FieldContainerViewService
method_name: redrawAdconApPCEdit
param_types_key: DynamicObject[],IFormView,List,String,String,String,Long,String,String
comment: 组装flex页面 @param `dyArray` 单据 @param `drawFormFieldList` 字段列表 @param `key` 面板标识 @return 面板
signature_text:
public FlexPanelAp redrawAdconApPCEdit(DynamicObject[] dyArray, IFormView view, java.util.List<DrawFormFieldDto> drawFormFieldList, String key, String name, String type, Long dataid, String groupNumber, String status)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.drawutil.TemplateEditUtils
method_name: addGetControl
param_types_key: String,String,OnGetControlArgs,AbstractFormPlugin
comment: 增加control @param `key` 字段类型 @param `field` 字段标识 @param `args` 事件 @param `abstractFormDrawEdit` 插件页面
signature_text:
public static void addGetControl(String key, String field, OnGetControlArgs args, AbstractFormPlugin abstractFormDrawEdit)


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.drawutil.TemplateEditUtils
method_name: addGetControlForMobile
param_types_key: String,String,OnGetControlArgs,AbstractMobileFormDrawEdit
signature_text:
public static void addGetControlForMobile(String key, String field, OnGetControlArgs arg, kd.sdk.hr.hspm.formplugin.mobile.file.base.AbstractMobileFormDrawEdit abstractMobileFormDrawEdit)

comment:
增加control
@param `key` 字段类型
@param `field` 字段标识
@param `arg` 事件
@param `abstractMobileFormDrawEdit` 插件页面


class_name: kd.sdk.hr.hspm.formplugin.web.file.ermanfile.drawutil.TemplateEditUtils
method_name: getBasedataProp
param_types_key: BasedataProp,String,String
comment: 基础资料字段属性 @param `entityProperty` 实体属性 @param `displayName` 显示名称 @param `apKey` 字段标识key @return 字段属性
signature_text:
public static BasedataProp getBasedataProp(BasedataProp entityProperty, String displayName, String apKey)


class_name: kd.sdk.hr.htm.business.mservice.helper.HTMQuitBillServiceHelper
method_name: submitQuitBill
param_types_key: List,String
comment: 提交离职单据 @param `quitBillObjs` 离职单据 @param `applyType` 0代办申请，2员工申请 @return OperationResult
signature_text:
public static OperationResult submitQuitBill(java.util.List<DynamicObject> quitBillObjs, String applyType)


class_name: kd.sdk.kingscript.debug.DebugOptions
method_name: setThreadLocalRestorer
param_types_key: DebugThreadLocalRestorer
comment: 设置调试线程上下文恢复器
signature_text:
public void setThreadLocalRestorer(kd.sdk.kingscript.debug.DebugThreadLocalRestorer threadLocalRestorer)


class_name: kd.sdk.kingscript.lib.LibModule
method_name: getScriptPath
param_types_key: String
signature_text: String getScriptPath(String lookupPath)
comment:
@param `lookupPath` 全路径 如 D:\ws\ws.kingscript\sdk-module-all\@cosmic\sdk-bos-kingscript\src\test\java\kd\sdk\kingscript\debug\command\script.ts 也可能是@cosmic/xxx/abc
@return 标准脚本模块路径，如@cosmic/xxx/abc


class_name: kd.sdk.kingscript.lib.LibModule
method_name: ofMemory
param_types_key: String,Map
signature_text: static LibModule ofMemory(String name, java.util.Map<String, String> scriptMap)
comment:
创建基于内存映射的临时模块
@see kd.sdk.kingscript.lib.LibModuleOfMemory
@param `name` 模块标识名（如："@temp/memory-module"）
@param `scriptMap` 内存脚本映射表，Key为脚本路径，Value为脚本内容
@return 支持动态更新的内存模块实例


class_name: kd.sdk.kingscript.lib.LibModule
method_name: ofResource
param_types_key: String,String
signature_text: static LibModule ofResource(String name, String resourceRootPath)
comment:
创建基于类路径资源的模块
@see kd.sdk.kingscript.lib.LibModuleOfResource
@param `name` 模块标识名（如："@cosmic/bos-core"）
@param `resourceRootPath` 资源根路径（如："classpath:/scripts/"）
@return 从JAR包或类目录加载资源的模块实例


class_name: kd.sdk.kingscript.lib.LibModule
method_name: ofStore
param_types_key: String
signature_text: static LibModule ofStore(String storePath)
comment:
创建基于物理存储的模块实例
@see kd.sdk.kingscript.lib.LibModuleOfStore
@param `storePath` 模块在文件系统中的绝对路径（如：/opt/modules/store）
@return 关联指定存储路径的模块实例


class_name: kd.sdk.kingscript.pool.KingScriptEnginePool
method_name: acquire
signature_text: public kd.sdk.kingscript.engine.KingScriptEngine acquire()
comment:
注意，务必哪个线程中acquire引擎，引擎就要在这个线程中close，不可在别的线程进行close。 原因：内部调用的context.leave()、context.leave()务必在线程中成对出现。
@return 脚本引擎


class_name: kd.sdk.kingscript.pool.KingScriptEnginePool
method_name: initialize
param_types_key: int,int,ScriptInitializer
comment: 初始化引擎池
signature_text:
public void initialize(int activeSize, int maxSize, kd.sdk.kingscript.engine.ScriptInitializer initializer)


class_name: kd.sdk.kingscript.pool.KingScriptEnginePool
method_name: initialize
param_types_key: int,int,ScriptInitializer,boolean
comment: 初始化引擎池
signature_text:
public void initialize(int activeSize, int maxSize, kd.sdk.kingscript.engine.ScriptInitializer initializer, boolean autoRecreate)


class_name: kd.sdk.kingscript.pool.KingScriptEnginePool
method_name: initialize
param_types_key: int,int,ScriptInitializer,boolean,long
comment: 初始化引擎池
signature_text:
public void initialize(int initSize, int maxSize, kd.sdk.kingscript.engine.ScriptInitializer initializer, boolean autoRecreate, long recreateAfterFreeTS)


class_name: kd.sdk.kingscript.types.builtins.ScriptDate
method_name: <init>
param_types_key: int,int,Integer,Integer,Integer,Integer,Integer
comment: 通过本地时间分量构造实例
signature_text:
public ScriptDate(int year, int monthIndex, Integer date, Integer hours, Integer minutes, Integer seconds, Integer ms)


class_name: kd.sdk.kingscript.types.builtins.ScriptDate
method_name: UTC
param_types_key: int,int,Integer,Integer,Integer,Integer,Integer
comment: 构造UTC时间戳
signature_text:
public static long UTC(int year, int monthIndex, Integer date, Integer hours, Integer minutes, Integer seconds, Integer ms)


class_name: kd.sdk.kingscript.types.builtins.ScriptDate
method_name: getMember
param_types_key: String
signature_text: public Object getMember(String key)
comment:
根据key获取成员
@param `key` 参考typescript/lib/lib.es5.d.ts UTC、GMT、CST：https://blog.csdn.net/sco5282/article/details/118933944


class_name: kd.sdk.occ.ocbsoc.extpoint.IReturnOrderMoblie
method_name: afterCreateNewData
param_types_key: IDataModel
signature_text: default void afterCreateNewData(IDataModel datamodel)
comment:
新增移动端要货订单时进行业务逻辑处理, 新增订单时会调用此方法,主要是对二开字段赋默认初始及对其它字段进行处理，可以通过datamodel.setValue(key,value), 如datamodel.setValue("fq_text","")来设置默认值
@param `datamodel` ` 当前页面数据模型


class_name: kd.sdk.occ.ocbsoc.extpoint.IReturnOrderMoblie
method_name: afterLoadEditData
param_types_key: IDataModel,DynamicObject
signature_text: default void afterLoadEditData(IDataModel datamodel, DynamicObject returnOrder)
comment:
修改移动端要货订单时进行业务逻辑处理, 只有在修改订单的时候才会调用此方法,主要用于将数据库中的订单数据赋值给要货订单的页面模型中，如datamodel.setValue("fq_text",order.get("fq_text"))
@param `datamodel` ` 当前页面数据模型
@param `order` ` 从数据库中加载的订单数据，通过BusinessDataServiceHelper.loadSingle(orderId, "ocbsoc_saleorder")加载的订单数据


class_name: kd.sdk.occ.ocbsoc.extpoint.IReturnOrderMoblie
method_name: beforeSubmit
param_types_key: IDataModel,DynamicObject
signature_text: default void beforeSubmit(IDataModel datamodel, DynamicObject returnOrder)
comment:
提交订单时进行业务逻辑处理, 主要在提交订单之前把页面上的数据赋值给要货订单对象，如order.set("fq_text",datamodel.getValue("fq_text"));
@param `datamodel` ` 当前页面数据模型
@param `order` ` 从页面数据生成的订单数据，需要保存到数据库中的订单数据


class_name: kd.sdk.occ.ocbsoc.extpoint.ISaleOrderSetEntryRecDiscount
method_name: setAutoModelType
param_types_key: DynamicObject,Map
signature_text: default void setAutoModelType(DynamicObject billDynObj, java.util.Map<Long, Boolean> modelTypeMap)
comment:
设置抵扣账户执行要货订单收款分摊折扣自动分摊逻辑的方式（标准模式或二开模式）
@param `billDynObj` 要货订单对象
@param `modelTypeMap` key:抵扣账户Id value:true:表示执行二开扩展点的逻辑 false:表示执行标准的自动分摊逻辑


class_name: kd.sdk.occ.ocbsoc.extpoint.ISaleOrderSetEntryRecDiscount
method_name: setRecDiscountAmount
param_types_key: DynamicObject,Map
signature_text:
default void setRecDiscountAmount(DynamicObject billDynObj, java.util.Map<Long, java.util.Map<Integer, java.math.BigDecimal>> recDiscountMap)

comment:
根据抵扣账户Id设置商品明细行需要分摊的收款分摊折扣(不支持相同抵扣账户进行收款分摊折扣)
@param `billDynObj` 要货订单对象
@param `recDiscountMap` key:抵扣账户Id Map:(key:商品明细行的行号，value:收款分摊折扣)


class_name: kd.sdk.occ.ocbsoc.extpoint.ISaleOrderSetEntryRecDiscount
method_name: setRecDiscountAmountByRecEntryId
param_types_key: DynamicObject,Map
signature_text:
default void setRecDiscountAmountByRecEntryId(DynamicObject billDynObj, java.util.Map<Long, java.util.Map<Integer, java.math.BigDecimal>> recDiscountMap)

comment:
根据收款抵扣行Id设置商品明细行需要分摊的收款分摊折扣（支持相同抵扣账户进行收款分摊折扣）
@param `billDynObj` 要货订单对象
@param `recDiscountMap` key:收款抵扣分录行Id Map:(key:商品明细行的行号，value:收款分摊折扣)


class_name: kd.sdk.occ.occba.extpoint.ICheckAccountCreate
method_name: beforCreateCheckAccount
param_types_key: DynamicObject,DynamicObject
comment: 描述： @param `reportDataRow` 报表汇总行数据 @param `checkAccount` 待生成的对账单单头数据
signature_text:
default void beforCreateCheckAccount(DynamicObject sourceReportDataRow, DynamicObject targetCheckAccount)


class_name: kd.sdk.occ.occba.extpoint.ICheckAccountCreate
method_name: beforCreateCheckAccountEntry
param_types_key: DynamicObject,DynamicObject
comment: 描述： @param `reportDataRow` 报表行数据 @param `checkAccountEntry` 待生成的对账单分录
signature_text:
default void beforCreateCheckAccountEntry(DynamicObject sourceReportDataRow, DynamicObject targetCheckAccountEntry)


class_name: kd.sdk.occ.ocdbd.extpoint.IPriceService
method_name: batchGetItemPrice
param_types_key: String
signature_text: default java.util.Map batchGetItemPrice(String priceParamStr)
comment:
自定义批量获取价格
@param `priceParamStr` 为List的json序列化字符串, 通过List priceParamList = kd.bos.util.JSONUtils.cast(priceParamStr,List.class,PriceFetchParam.class)进行反序列化
@return 返回 Map类型


class_name: kd.sdk.occ.ocdbd.extpoint.ISaleControlRuleExtSaveOp
method_name: setSaleControlRuleInfo
param_types_key: DynamicObject,DynamicObject,DynamicObject
signature_text:
default void setSaleControlRuleInfo(DynamicObject saveRuleInfo, DynamicObject saleRuleBillInfo, DynamicObject saleRuleEntryInfo)

comment:
可销控制保存之前对二开字段进行数据赋值处理
@param `saveRuleInfo` 需要保存的可销控制基础资料对象
@param `saleRuleBillInfo` 可销控制动态表单整单对象
@param `saleRuleEntryInfo` 可销控制动态表单中可销规则单体行对象


class_name: kd.sdk.scm.common.extpoint.IPurInstockCheckMappingService
method_name: wrapCustomFilterMap
param_types_key: Map,String
comment: 包容历史扩展代码 @param `params` @param `entityKey`
signature_text:
public java.util.Map<String, java.util.Map<String, Object>> wrapCustomFilterMap(java.util.Map<String, Object> params, String entityKey)


class_name: kd.sdk.scm.common.extpoint.ISupChgFilterService
method_name: supplierChgFilter
param_types_key: Long
signature_text: default java.util.Map<String, Object> supplierChgFilter(Long supId)
comment:
自定义发起变更的过滤条件，若不符合，则返回的map中success = false 、msg = 提示消息
@return Map 1、key : success value : true or false 2 、 key : message value : message content or null


class_name: kd.sdk.scm.pbd.extpoint.IBusinessRulesCallBackService
method_name: adapterByResult
param_types_key: Object
signature_text: default Object adapterByResult(Object standardResult)
comment:
一些特殊字段解析，比如related_companies=[{"role": "原告", "name": "C 某某", "item": "", "type": "P", "pure_role": "原告"}, {"role": "被告", "name": "宜宾华泓物业管理有限公司", "item":"2c6bebcd-9356-4cd2-b6eb-ee15241817f6", "type": "E", "pure_role": "被告"}] 解析成原告字段，和被告字段
@param `standardResult`


class_name: kd.sdk.scm.pbd.extpoint.IBusinessRulesCheckParseService
method_name: checkDyByResult
param_types_key: DynamicObject,Object
signature_text: java.util.Map<String, Object> checkDyByResult(DynamicObject dy, Object standardResult)
comment:
外部数据对接时有些字段可能没办法通过字段映射简单映射校验，比如字段类型不匹配，字符串转基础资料（辅助资料）、或者字符串转数字。
@param `dy` 业务调用方案中配置的单据或组件绑定的操作的动态对象
@param `standardResult` 第三方接口返回值映射到接口标准化管理中的字段映射
@return 返回校验结果，及失败原因。如：result.put("success", false); result.put("message", "check error");


class_name: kd.sdk.scm.pbd.extpoint.IBusinessRulesFillParseService
method_name: fillDyByResult
param_types_key: DynamicObject,Object
signature_text: java.util.Map<String, Object> fillDyByResult(DynamicObject dy, Object standardResult)
comment:
外部数据对接时有些字段可能没办法通过字段映射简单映射，比如字段类型不匹配，字符串转基础资料（辅助资料）、或者字符串转数字。
@param `dy` 业务调用方案中配置的单据或组件绑定的操作的动态对象
@param `standardResult` 第三方接口返回值映射到接口标准化管理中的字段映射
@return 返回处理结果。如：result.put("success", false);


class_name: kd.sdk.scm.pbd.extpoint.IBusinessRulesRequestParseService
method_name: assembelRequest
param_types_key: DynamicObject
signature_text: java.util.Map<String, Object> assembelRequest(DynamicObject dy)
comment:
业务规则扩展第三方请求参数，map返回值为第三方平台接口参数，使用场景：营业执照从附件中获取然后转成base64当做输入参数传给第三方平台
@param `dy` 业务调用方案中配置的单据或组件绑定的操作的动态对象
@return 返回第三方请求参数map。如：result.put("keyword", "xxx");


class_name: kd.sdk.scm.pmm.extpoint.IOperateMonitorRuleService
method_name: isMatchMonitorRule
param_types_key: MonitorRuleServiceParam,BigDecimal
comment: 是否匹配运营监控规则 @param `param` 规则参数参数 @param `val` 阈值 @return true：满足 false：不满足
signature_text:
kd.sdk.scm.pmm.extpoint.MonitorRuleServiceResult isMatchMonitorRule(kd.sdk.scm.pmm.extpoint.MonitorRuleServiceParam param, java.math.BigDecimal val)


class_name: kd.sdk.scm.pssc.packagegroup.pojo.PsscPackageGroupContext
method_name: initContext
param_types_key: Map,long
signature_text:
public static final PsscPackageGroupContext initContext(java.util.Map<Long, com.alibaba.fastjson.JSONObject> unDealTask, long schemaId)


class_name: kd.sdk.scm.pssc.packagegroup.pojo.PsscPackageGroupContext
method_name: setLongNumMapByCategory
param_types_key: Map
signature_text:
public void setLongNumMapByCategory(java.util.Map<Long, java.util.LinkedList<PsscMaterialGroupInfo>> longNumMapByCategory)


class_name: kd.sdk.scm.pssc.packagegroup.pojo.PsscPackageGroupContext
method_name: setMaterialGroupInfoMap
param_types_key: Map
signature_text:
public void setMaterialGroupInfoMap(java.util.Map<Long, PsscMaterialGroupInfo> materialGroupInfoMap)


class_name: kd.sdk.scm.pssc.packagegroup.pojo.PsscTagGroupRuleOrderInfo
method_name: doMatch
param_types_key: PsscPackageGroupContext,Entry
comment: @param `context` 打包分组上下文 @param `next` 待匹配数据
signature_text:
public abstract void doMatch(PsscPackageGroupContext context, java.util.Map.Entry<Long, com.alibaba.fastjson.JSONObject> next)


class_name: kd.sdk.scm.pssc.task.IReqContactOrderHandler
method_name: wrapBOTPParam
param_types_key: DynamicObject,Map,Map
signature_text:
void wrapBOTPParam(DynamicObject task, java.util.Map<String, Object> entryParam, java.util.Map<String, String> headParam)

comment:
@param `task` 按合同下单动态表单分录数据
@param `entryParam` 分录参数，携带到下游订单，并将数据赋值到订单
@param `headParam` 单据头部信息，写到到下游订单，并将数据赋值到订单头部信息


class_name: kd.sdk.scm.pur.extpoint.IBatchStockSupport
method_name: assembleExtPro
signature_text: default java.util.Map<String, String> assembleExtPro()
comment:
构造的数据包标准仅支持携带到分录中，如果需要把字段携带到对接系统的单据的单头，需要在对接系统接收数据处理逻辑上干预。
@return key：苍穹表单实体字段标识 value：异构系统采购收货单实体字段标识


class_name: kd.sdk.scm.pur.extpoint.IPurHandCheckSupport
method_name: getEntityExtendFieldsMap
signature_text: default java.util.Map<String, java.util.List<String>> getEntityExtendFieldsMap()
comment:
单据新增的字段 pur_return(入库退货); pur_instock(采购入库); scp_instock(采购入库); scp_return(入库退货); pur_receipt(采购收货); scp_receipt(采购收货)


class_name: kd.sdk.scm.pur.extpoint.IPurHandCheckSupport
method_name: getExtendFields
signature_text: default java.util.List<String> getExtendFields()
comment:
pur_return(入库退货); pur_instock(采购入库); scp_instock(采购入库); scp_return(入库退货); pur_receipt(采购收货); scp_receipt(采购收货)


class_name: kd.sdk.scm.pur.extpoint.IPurHandCheckSupport
method_name: getFilterMap
param_types_key: Map,String
signature_text:
default java.util.Map<String, java.util.Map<String, Object>> getFilterMap(java.util.Map<String, Object> paramsMap, String entityKey)

comment:
设置 对账中心查询的过滤条件
@param `paramsMap` 从单据pur_checkcenter携带到单据pur_handcheck的传入参数，内容包含接口getParamsMap提供的内容
@param `entityKey` 需要查询的单据体编码


class_name: kd.sdk.scm.pur.extpoint.IPurHandCheckSupport
method_name: putCheckEntryFields
param_types_key: DynamicObject,DynamicObject
comment: 设置 对账单收货/入库分录扩展字段信息 @param `checkEntryDetail` 对账单收货/入库单据分录对象 @param `sourceDetail` 对账单收货/入库分录字段来源对象
signature_text:
default DynamicObject putCheckEntryFields(DynamicObject checkEntryDetail, DynamicObject sourceDetail)


class_name: kd.sdk.scm.pur.extpoint.IPurOrderChangeSupport
method_name: putOrderEntryFields
param_types_key: DynamicObject,DynamicObject
signature_text: default void putOrderEntryFields(DynamicObject purorderEntry, DynamicObject ordchangeEntry)
comment:
将采购变更单分录purorderEntry上的扩展变更字段回写到采购订单分录上purorderEntry
@param `purorderEntry` 采购订单单据分录,元数据类型：pur_order.materialentry
@param `ordchangeEntry` 采购订单变更单单据分录,元数据类型：pm_xpurorderbill.billentry


class_name: kd.sdk.scm.pur.extpoint.IPurOrderChangeSupport
method_name: setOrderHeadFields
param_types_key: DynamicObject,DynamicObject
signature_text: default void setOrderHeadFields(DynamicObject purorder, DynamicObject ordchange)
comment:
将采购变更单单据头ordchange上的扩展变更字段回写到采购订单purorder单据头上
@param `purorder` 采购订单单据头，元数据类型：pur_order
@param `ordchange` 采购订单变更单单据头，元数据类型:pm_xpurorderbill


class_name: kd.sdk.scm.quo.extpoint.IQuoInquiryVerify
method_name: getQuoMaxEntry
param_types_key: DynamicObject,List,Map
comment: 获取当前用户对应供应商报名分录 @param `inquiryBill` @param `supplierIds`
signature_text:
default DynamicObject getQuoMaxEntry(DynamicObject inquiryBill, java.util.List<Long> supplierIds, java.util.Map<String, DynamicObject> entryTrunsMap)


class_name: kd.sdk.scm.quo.extpoint.IQuoInquiryVerify
method_name: verifyQuote
param_types_key: Map,DynamicObject,List
comment: 校验供应商是否能进行报价 @param `inquiryBill` 询价信息 @param `supplierIds` 供应商ID集合
signature_text:
default void verifyQuote(java.util.Map<String, Object> returnMap, DynamicObject inquiryBill, java.util.List<Long> supplierIds)


class_name: kd.sdk.scm.scp.extpoint.IAutoStockSupport
method_name: assembleExtPro
signature_text: default java.util.Map<String, String> assembleExtPro()
comment:
构造的数据包标准逻辑处理的逻辑是发货单单头扩展的字段，仅携带到堆积诶系统收货单的单据头、发货单分录扩展字段仅携带到对接系统收货单的分录中； 如果需要把字段携带到对接系统的单据的单头，需要在对接系统接收数据处理逻辑上干预。
@return key：苍穹表单实体字段标识 value：异构系统采购收货单实体字段标识


class_name: kd.sdk.scm.scp.extpoint.IScpOrderChangeSupport
method_name: putOrderEntryFields
param_types_key: DynamicObject,DynamicObject
signature_text: default void putOrderEntryFields(DynamicObject scporderEntry, DynamicObject ordchange)
comment:
将采购变更单单据头ordchange上的扩展变更字段回写到采购订单单据行上scporderEntry
@param `scporderEntry` 采购订单单据分录,垂直数据结构，元数据类型：scp_order.materialentry
@param `ordchange` 采购订单变更单单据分录,水平数据结构，元数据类型：scp_ordchange


class_name: kd.sdk.scm.scp.extpoint.IScpOrderChangeSupport
method_name: setOrderHeadFields
param_types_key: DynamicObject,DynamicObject
signature_text: default void setOrderHeadFields(DynamicObject scporder, DynamicObject ordchange)
comment:
将采购变更单单据头ordchange上的扩展变更字段回写到采购订单scporder单据头上
@param `scporder` 采购订单单据头,垂直数据结构，元数据类型：scp_order
@param `ordchange` 采购订单变更单单据头,水平数据结构，元数据类型：scp_ordchange


class_name: kd.sdk.scm.sou.entity.AdoptionRule
method_name: initRule
param_types_key: DynamicObjectCollection,Map
comment: @param `quoteInfoMap` 报价分录集合：key为报价单来源分录ID，value为相同报价单来源分录ID的报价分录集合
signature_text:
public final void initRule(DynamicObjectCollection quoteEntry, java.util.Map<String, DynamicObject> quoteInfoMap)


class_name: kd.sdk.scm.sou.entity.SouCompareAssiRecentPriceArgs
method_name: <init>
param_types_key: List,String,Map,Set
signature_text:
public SouCompareAssiRecentPriceArgs(java.util.List<Object> materialPkIds, String monthnumStr, java.util.Map<String, Character> blackListMap, java.util.Set<String> selects)

comment:
比价助手获取最近交易价格参数构造器
@param `materialPkIds` 物料Ids
@param `monthnumStr` 获取交易月数，可以为空
@param `blackListMap` 查询属性黑名单信息：添加入该名单的属性将不会被添加selects
@param `selects` 查询字段列表


class_name: kd.sdk.scm.sou.entity.SouCompareAssistantDoingArgs
method_name: <init>
param_types_key: String,Map,String,Map,Set
signature_text:
public SouCompareAssistantDoingArgs(String entityName, java.util.Map<String, java.util.Map<String, Object>> params, String orderBys, java.util.Map<String, Character> blackListMap, java.util.Set<String> selects)

comment:
比价助手参数构造器
@param `params` 查询参数
@param `orderBys` 排序字段
@param `blackListMap` 属性黑名单
@param `selects` 属性选择（用于查询）


class_name: kd.sdk.scm.sou.extpoint.ISouBidBillToEasXKOrder
method_name: dealEntry
param_types_key: DynamicObject,DynamicObject,Map
comment: @param `bill` 星瀚单据实体信息 @param `entryMap` 处理后分录参数信息
signature_text:
default void dealEntry(DynamicObject entryCol, DynamicObject bill, java.util.Map<String, Object> entryMap)


class_name: kd.sdk.scm.sou.extpoint.ISouCompareAssistantDataSource
method_name: doGetData
param_types_key: SouCompareAssistantDoingArgs
signature_text: void doGetData(SouCompareAssistantDoingArgs args)
comment:
获取比价单数据源 1、扩展插件执行优先于标准插件
@see kd.sdk.scm.sou.entity.SouCompareAssistantDoingArgs 参数实体属性进行修改实现对标准产品数据获取逻辑进行干预。</br> 2、具体使用说明，请参考</br> <a href='javascript:open_linkdoc('/240-供应商协同云/04-询价与竞价/001-比价助手/001-数据源获取.html', 'Cosmic V8.0.1');' target='_self' target='_blank'>比价助手数据源获取帮助文档</a>


class_name: kd.sdk.scm.sou.extpoint.ISouCompareAssistantRecentPriceSource
method_name: doGetData
param_types_key: SouCompareAssiRecentPriceArgs
signature_text: void doGetData(SouCompareAssiRecentPriceArgs args)
comment:
获取比价助手最近交易价格参考数据源 1、扩展插件执行优先于标准插件
@see kd.sdk.scm.sou.entity.SouCompareAssiRecentPriceArgs 参数实体属性进行修改实现对标准产品数据获取逻辑进行干预。</br> 2、具体使用说明，请参考</br> <a href='javascript:open_linkdoc('/240-供应商协同云/04-询价与竞价/001-比价助手/004-最近交易价格获取.html', 'Cosmic V8.0.1');' target='_self' target='_blank'>最近交易价格获取</a>


class_name: kd.sdk.scm.sou.extpoint.ISouCompareToolSupColumn
method_name: buildInquirySumColumns
param_types_key: IDataModel,String,Map,List
signature_text:
void buildInquirySumColumns(IDataModel model, String sumTitle, java.util.Map<String, String> supColumnRelation, java.util.List<String> supColumns)

comment:
构建询价明细合计信息行
@param `sumTitle` 合计标题
@param `supColumnRelation` 供应商列标识与供应商ID集合
@param `supColumns` 供应商标识集合


class_name: kd.sdk.scm.sou.extpoint.ISouCompareToolSupColumn
method_name: dealSupColumn
param_types_key: List,Map,Map,DynamicObject
signature_text:
void dealSupColumn(java.util.List<String> supColumnInfo, java.util.Map<String, String> supColumnRelation, java.util.Map<String, java.math.BigDecimal> priceMap, DynamicObject addInquiry)

comment:
比价助手询价明细供应商列信息处理
@param `supColumnRelation` 供应商列标识与供应商ID集合
@param `priceMap` 供应商报价信息 供应商ID->对应物料报价信息
@param `addInquiry` 物料询价信息


class_name: kd.sdk.scm.srm.extpoint.dto.SrmAutoScoreReq
method_name: setData
param_types_key: List
comment: 设置评估计划细则 @param `data` 评估计划细则
signature_text:
public void setData(java.util.List<kd.sdk.scm.srm.extpoint.dto.SrmAutoScoreReq.SrmAutoCalData> data)


class_name: kd.sdk.scm.srm.extpoint.ISrmAccessNodeService
method_name: pushBill
param_types_key: String,List
signature_text: default String pushBill(String objectnumber, java.util.List<DynamicObject> aptitudeObjs)
comment:
准入节点单据下推接口：从资质评审单下推到目标单据
@param `objectnumber` :供应商准入节点的业务单据的单据标识
@param `aptitudeObjs` ：将要下推到准入类型objectnumber的资质评审单列表，该数据结构可以保存
@return 如有错误，返回错误内容


class_name: kd.sdk.scm.srm.extpoint.ISrmAccessNodeService
method_name: setAptitudeNodeStatus
param_types_key: String,Long,boolean,Date
signature_text:
default String setAptitudeNodeStatus(String objectnumber, Long aptitudeId, boolean finished, java.util.Date billdate)

comment:
准入节点审核,回写设置资质评审单节点分录状态与单据id，业务日期
@param `objectnumber` 当前单据标识：供应商准入节点的业务单据的单据标识
@param `aptitudeId` 资质评审单ID
@param `finished` 是否完成
@param `billdate` 当前单据的业务日期
@return 如有错误，返回错误内容


class_name: kd.sdk.scm.srm.extpoint.ISrmAccessNodeService
method_name: setNodeBillnoAndStatus
param_types_key: String,Long,DynamicObject,DynamicObject
signature_text:
default void setNodeBillnoAndStatus(String objectnumber, Long aptitudeId, DynamicObject target, DynamicObject approveentry)

comment:
功能描述：供应商生效单据页面填写资质评审单，自动填写供应商生效单母子分录子分录的nodebillno与nodestatus两个字段 1.根据资质评审单aptitudeId查找单据标识objectnumber对应的审核通过的数据 2.根据供应商生效单品类分录approveentry的条件，设置target的nodebillno与nodestatus两个字段值
@param `objectnumber` 准入节点单据标识
@param `aptitudeId` 资质评审单ID
@param `target` 需要设置数据值的目标对象
@param `approveentry` 供应商引入品类分录


class_name: kd.sdk.scm.srm.extpoint.ISrmAccessNodeService
method_name: setSupapproveNodeStatus
param_types_key: String,DynamicObject[],boolean
signature_text:
default String setSupapproveNodeStatus(String objectnumber, DynamicObject[] objects, boolean isAudit)

comment:
准入节点审核，回写设置供应商生效单母子分录的子分录节点状态
@param `objectnumber` 供应商准入节点的业务单据的单据标识
@param `objects` 当前单据列表
@param `isAudit` 是否审核:true为审核，false为反审核
@return 如有错误，返回错误内容


class_name: kd.sdk.scm.srm.extpoint.ISrmAccessNodeService
method_name: verifyAptitudeNo
param_types_key: String,Long
signature_text: default String verifyAptitudeNo(String objectnumber, Long aptitudeId)
comment:
当前准入单据在资质评审单节点状态否完成校验：检查当前单据的单据标识与资质评审单号在资质评审单准入节点是否存在并完成
@param `objectnumber` 供应商准入节点的业务单据的单据标识
@param `aptitudeId` 资质评审单ID
@return 如有错误，返回错误内容


class_name: kd.sdk.scm.srm.extpoint.ISrmAllScorerScoredService
method_name: doExecExt
param_types_key: Map,long,BigDecimal
comment: @param `resultMap` 评估任务过程数据 @param `scoreBillId` 评估任务id @param `score` 总分
signature_text:
default void doExecExt(java.util.Map<String, Object> resultMap, long scoreBillId, java.math.BigDecimal score)


class_name: kd.sdk.scm.srm.extpoint.ISrmAssignUserRoleService
method_name: getSubOrgInfo
param_types_key: String
signature_text: default java.util.Map<Long, Boolean> getSubOrgInfo(String bizKey)
comment:
分配的角色组织是否包含下级
@param `bizKey` 业务流程的标识 supplierreg或supapprove 注册资料审批流程或供应商生效流程
@return key：组织id value：是否包含下级


class_name: kd.sdk.scm.srm.extpoint.ISrmAssignUserRoleService
method_name: getUserRoleExt
param_types_key: String
signature_text: default java.util.Map<Long, java.util.List<String>> getUserRoleExt(String bizKey)
comment:
获取额外分配的组织及组织下的角色
@param `bizKey` 业务流程的标识 supplierreg或supapprove 注册资料审批流程或供应商生效流程
@return key：组织id value：角色id集合


class_name: kd.sdk.scm.srm.extpoint.ISrmCalEvaGradeService
method_name: calGrade
param_types_key: Map,long,long,BigDecimal
signature_text:
default DynamicObject calGrade(java.util.Map<String, Object> resultMap, long scoreBillId, long scoreGradeId, java.math.BigDecimal score)

comment:
自定义评估报告的评估等级
@param `scoreBillId` 评估任务ID
@param `scoreGradeId` 分级方案ID
@param `score` 评估得分
@return DynamicObject 评估等级


class_name: kd.sdk.scm.srm.extpoint.ISrmSupChgPurUserAdminModifyService
method_name: changePurUser
param_types_key: DynamicObject,Object,String,String,String,String,String
signature_text:
default void changePurUser(DynamicObject changeBillObj, Object bizpartnerPkValue, String paramchguser, String srcLinkman, String srcPhone, String newLinkMan, String newPhone)

comment:
根据所选的同步供应商用户方案，修改数据
@param `changeBillObj` 注册资料变更单
@param `bizpartnerPkValue` 商务伙伴id
@param `paramchguser` 同步供应商用户方案
@param `srcLinkman` 原管理员名称
@param `srcPhone` 原账号
@param `newLinkMan` 新管理原名称
@param `newPhone` 新账号


class_name: kd.sdk.scm.srm.extpoint.portait.AbstractSrmPortraitDataSetStatistic
method_name: createStatisticInfo
param_types_key: Row,Map
signature_text:
protected final SrmPortraitStatisticInfo createStatisticInfo(Row row, java.util.Map<String, SrmPortraitStatisticInfo> statisticInfoMap)

comment:
@param `statisticInfoMap`
@return kd.scm.srm.formplugin.edit.portrait.statistic.SrmPortraitStatisticInfo


class_name: kd.sdk.scm.srm.extpoint.portait.AbstractSrmPortraitDataSetStatistic
method_name: dealQueryTime
param_types_key: SrmPortraitContext,Date,Date
comment: @param `dateFrom` 查询开始时间 @param `dateTo` 查询结束时间 @return java.lang.String 提示信息
signature_text:
public static final String dealQueryTime(SrmPortraitContext context, java.util.Date dateFrom, java.util.Date dateTo)


class_name: kd.sdk.scm.srm.extpoint.portait.AbstractSrmPortraitDataSetStatistic
method_name: process
param_types_key: SrmPortraitContext,SrmPortraitStatisticContainer
comment: @param `container` 统计容器 @return SrmPortraitStatisticContainer 供应商画像统计容器
signature_text:
public final kd.sdk.scm.srm.extpoint.dto.indicator.SrmPortraitStatisticContainer process(SrmPortraitContext context, kd.sdk.scm.srm.extpoint.dto.indicator.SrmPortraitStatisticContainer container)


class_name: kd.sdk.scm.srm.extpoint.portait.AbstractSrmPortraitDataSetStatistic
method_name: setBeforeMonth
param_types_key: SrmPortraitContext,Date,int
comment: @param `dateTo` 查询结束时间 @param `month` 月份
signature_text:
public static final void setBeforeMonth(SrmPortraitContext context, java.util.Date dateTo, int month)


class_name: kd.sdk.scm.srm.extpoint.portait.AbstractSrmPortraitDataSetStatistic
method_name: startStatistic
param_types_key: SrmPortraitContext,SrmPortraitStatisticContainer
signature_text:
public abstract void startStatistic(SrmPortraitContext context, kd.sdk.scm.srm.extpoint.dto.indicator.SrmPortraitStatisticContainer container)


class_name: kd.sdk.scm.srm.extpoint.portait.AbstractSrmPortraitDataSetStatistic
method_name: wrapCommonFilter
param_types_key: String,String,String,SrmPortraitContext
signature_text:
public static QFilter wrapCommonFilter(String supplier, String org, String billDate, SrmPortraitContext context)

comment:
@param `org` 组织标识
@param `billDate` 时间标识
@param `context` 查询上下文
@return kd.bos.orm.query.QFilter 查询条件QFilter


class_name: kd.sdk.scm.srm.extpoint.portait.AbstractSrmPortraitDataSetStatistic
method_name: wrapStatisticMap
param_types_key: Map,String,String,Object
comment: @param `supplierValue` 供应商ID值 @param `statisticLable` 统计指标标签 @param `statisticValue` 统计指标数值
signature_text:
protected final void wrapStatisticMap(java.util.Map<String, java.util.Map<String, Object>> statisticInfoMap, String supplierValue, String statisticLable, Object statisticValue)


class_name: kd.sdk.scm.srm.extpoint.portait.AbstractSrmPortraitDataSetStatistic
method_name: wrapStatisticMapWidthSet
param_types_key: DataSet,Map,String,String
comment: @param `statisticInfoMap` 统计信息集合 @param `statisticLable` 统计指标标签标识 @param `statisticValue` 统计指标数值
signature_text:
protected final void wrapStatisticMapWidthSet(DataSet dataSet, java.util.Map<String, java.util.Map<String, Object>> statisticInfoMap, String statisticLable, String statisticValue)


class_name: kd.sdk.scmc.conm.extpoint.IXContractPlugin
method_name: activeSynContractStatus
param_types_key: DynamicObject[],DynamicObject[]
signature_text: default boolean activeSynContractStatus(DynamicObject[] srcBills, DynamicObject[] xBills)
comment:
合同变更单生效，同步修改原合同分录和单头状态
@param `srcBills` 原单数据，采购合同、销售合同
@param `xBills` 变更单数据，采购合同变更单、销售合同变更单
@return 同步结果，默认返回true, 要求同步成功返回：true 失败返回：false


class_name: kd.sdk.scmc.im.acct.AuxQtyAndUnitHelper
method_name: getAssistMUListResult
param_types_key: List,String
comment: 批量获取物料计量单位 @param `materialIds` @param `convertType`
signature_text:
public java.util.Map<Long, java.util.List<Long>> getAssistMUListResult(java.util.List<Long> materialIds, String convertType)


class_name: kd.sdk.scmc.im.acct.AuxQtyAndUnitHelper
method_name: setAuxBizQtyAndUnit
param_types_key: IPageCache,IDataModel,int,String,Object
signature_text:
public Object setAuxBizQtyAndUnit(IPageCache pageCache, IDataModel bill, int rowindex, String fieldName, Object newValue)

comment:
处理主（次）辅计量单位、数量
@param `pageCache` 页面缓存
@param `bill` 单据数据模型
@param `rowindex` 行号
@param `fieldName` 改变字段
@param `newValue` 新值


class_name: kd.sdk.scmc.im.acct.BillQtyAndUnitHelper
method_name: getQty
comment: 描述：计算数量 已知：物料、基本数量、基本单位、计价单位、计价单位换算率 计算：计量数量、计量单位、计量换算率、业务数量、业务单位、业务换算率、计价数量
param_types_key:
DynamicObject,BigDecimal,DynamicObject,DynamicObject,BigDecimal,DynamicObject,BigDecimal,DynamicObject,BigDecimal

signature_text:
public static java.util.Map<String, Object> getQty(DynamicObject material, java.math.BigDecimal baseQty, DynamicObject baseUnit, DynamicObject unit, java.math.BigDecimal unitRate, DynamicObject bizUnit, java.math.BigDecimal bizUnitRate, DynamicObject priceUnit, java.math.BigDecimal priceUnitRate)


class_name: kd.sdk.scmc.im.acct.BillQtyAndUnitHelper
method_name: setBizQtyAndUnit
param_types_key: IDataModel,int,String,Object
comment: 数据和计量单位的变化， 引发基本单位、基本数量、业务单位、业务数量、换算率、业务单位换算率的变化 - TODO 盘点表未改造，使用中，盘点表改造后可删除
signature_text:
public static void setBizQtyAndUnit(IDataModel bill, int rowindex, String fieldName, Object newValue)


class_name: kd.sdk.scmc.im.acct.BillUnitAndQtytHelper
method_name: getDesQtyConv
param_types_key: DynamicObject,DynamicObject,BigDecimal,DynamicObject
signature_text:
public static java.math.BigDecimal getDesQtyConv(DynamicObject material, DynamicObject srcUnit, java.math.BigDecimal srcQty, DynamicObject desUnit)


class_name: kd.sdk.scmc.im.acct.BillUnitAndQtytHelper
method_name: setBizQtyAndUnitWithAuditQty
param_types_key: IDataModel,int,String,Object
comment: 数据和计量单位的变化， 引发审核数量，基本单位、基本数量、业务单位、业务数量、换算率、业务单位换算率的变化
signature_text:
public static void setBizQtyAndUnitWithAuditQty(IDataModel bill, int rowindex, String fieldName, Object newValue)


class_name: kd.sdk.scmc.im.acct.InvBillCalcHelper
method_name: entryAuxptyQtyCalc
param_types_key: DynamicObject,String,Map
comment: BOTP 使用计算辅助数量 @param `entrycoll` @param `entityID` @param `cacheMap`
signature_text:
public static void entryAuxptyQtyCalc(DynamicObject entry, String entityID, java.util.Map<String, String> cacheMap)


class_name: kd.sdk.scmc.im.acct.SdkAppParameterHelper
method_name: getAppParameterByAppNumber
param_types_key: String,String,Long,String
comment: 按应用编码对应的应用参数
signature_text:
public Object getAppParameterByAppNumber(String appNumber, String orgViewType, Long orgId, String key)


class_name: kd.sdk.scmc.im.acct.SdkAppParameterHelper
method_name: getBatchAppParameterByFormId
param_types_key: String,List
comment: 按实体获得实体所在的应用参数
signature_text:
public java.util.Map<String, java.util.Map<String, Object>> getBatchAppParameterByFormId(String formId, java.util.List<Long> orgIds)


class_name: kd.sdk.scmc.im.extpoint.IInvEntrustExpand
method_name: fillSaloutBillEntryField
param_types_key: DynamicObject,Map
comment: 填充销售出库单单体字段 @param `salOutBillEntry` 分录对象
signature_text:
void fillSaloutBillEntryField(DynamicObject salOutBillEntry, java.util.Map<String, Object> entrustEntry)


class_name: kd.sdk.scmc.im.extpoint.IInvMatchruleoutExpand
method_name: getFilter
param_types_key: Function,String,String
signature_text:
default java.util.List<QFilter> getFilter(java.util.function.Function<String, Object> getValue, String formId, String entryKey)

comment:
扩展匹配规则出库时的库存即时余额过滤条件
@param `getValue` 获取单据值方法，通过getEntryValue.apply(分录.分录字段)，即可获取当前行的分录值，getEntryValue.apply(单头字段)，可获取单头字段值
@param `formId` 单据实体
@param `entryKey` 分录键值
@return 库存即时余额过滤条件集合


class_name: kd.sdk.scmc.im.extpoint.IInvMatchruleoutExpand
method_name: getHandleNeedFields
param_types_key: String,String
signature_text: default java.util.List<String> getHandleNeedFields(String billtype, String entrykey)
comment:
指定额外需要传递到handleAfter方法中的、执行匹配规则出库操作前的字段原值的字段标识。 例如，二开扩展希望在拆分后对新增的扩展字段“重量”进行重新计算，计算时需要使用到拆分前的重量的原值,可在本方法中指定该字段标识，字段原值会额外添加到handleAfter的returnRows中
@param `billtype` 单据类型
@param `entrykey` 分录标识
@return 需要额外需要传递到后续handleAfter方法中的、执行匹配规则出库操作前的字段原值的字段标识


class_name: kd.sdk.scmc.im.extpoint.IInvMatchruleoutExpand
method_name: handleAfter
param_types_key: IFormView,String,List
signature_text:
default void handleAfter(IFormView view, String entrykey, java.util.List<java.util.Map<String, Object>> returnRows)

comment:
库存单据匹配规则出库后处理扩展,本扩展方法用于支持在标准匹配规则出库返回单据字段处理完成后、页面执行刷新显示以前,二开场景可对其它字段进行额外赋值处理
@param `view` 界面视图对象
@param `entrykey` 分录标识
@param `returnRows` 匹配规则出库后涉及的行信息 returnRows传参示例如下: 假设分录下已有5个分录行,操作用户选择了第1,2,4行(index分别为0,1,3),点击匹配规则出库,此三行分别匹配返回了2行/0行(没有匹配到库存)/1行 返回后,将在原第1行(原index=0)后新增1行(返回2行,1行匹配,1行在对应选中行后新增),变成6个分录行，由于在第一行后插入了行.原index=1之后的行index将逐个加1 returnRows中的信息即包括了匹配拆行后,对应的行标识和匹配行数信息以及相应的字段拆分前原值,如上例,将返回一个长度为3的List [{returnRowNums=2, returnRowIndex=0, qty=5.0000, qtyCol="qty", expandNeedFieldValues={weight=30,volumn=12} }, {returnRowNums=0, returnRowIndex=2, qty=10.0000, qtyCol="qty", expandNeedFieldValues={} }, {returnRowNums=1, returnRowIndex=4, qty=3.0000, qtyCol="qty", expandNeedFieldValues={weight=50,volumn=15} }] 其中,returnRowNums代表原第一个选中行匹配到的返回行数,分别为2/0/1 returnRowIndex代表,匹配后的原选中行新的index，分别为0/2/4(即第1/3/5行,因中间插入了一行,原选中的第2和4行匹配后变成了第3和第5行) qty代表,匹配前原选中行的数量,即拆分前的数量 qtyCol代表,该行匹配时使用的数量字段标识,通常是"qty" expandNeedFieldValues代表,匹配前原选中行的其它额外需要的字段的原值(需要的字段在getHandleNeedFields中指定，如getHandleNeedFields中指定了"weight"和"volumn",则会将这两个字段拆分前的值传递到returnRows中) 此外,returnRowNums=0时,expandNeedFieldValues为空集合(无匹配行，无需拆分行)


class_name: kd.sdk.scmc.im.extpoint.IInvQueryExpand
method_name: afterReturnRow
param_types_key: IFormView,String,int,int,String
signature_text:
default void afterReturnRow(IFormView view, String entrykey, int chooseRow, int currentRow, String operatekey)

comment:
库存查询返回行后的处理,常用于在库存查询返回后再对界面数据做一些额外处理，例如希望触发某些值的值改变，以及返回值后需要再对某些值进行更新且取值逻辑比较复杂(不是来自于即时库存查询字段或固定值)
@param `view` 界面视图对象
@param `entrykey` 选中的单据分录标识
@param `chooseRow` 用户选中的行号(如未选中行,则值等于-1)
@param `currentRow` 当前处理的行号
@param `operatekey` 操作代码(如直接调拨单的调入和调出库存查询对应不同的操作代码)


class_name: kd.sdk.scmc.im.extpoint.IInvQueryExpand
method_name: beforeCreateRow
param_types_key: IFormView,String,int,int,String
signature_text:
default void beforeCreateRow(IFormView view, String entrykey, int chooseRow, int currentRow, String operatekey)

comment:
库存查询返回新增行前的处理,常用于在库存查询返回新增行前对新增行赋默认值,且默认值取值逻辑比较复杂(不是来自于即时库存查询字段或固定值)
@param `view` 界面视图对象
@param `entrykey` 选中的单据分录标识
@param `chooseRow` 用户选中的行号(如未选中行,则值等于-1)
@param `currentRow` 当前新增的行号
@param `operatekey` 操作代码(如直接调拨单的调入和调出库存查询对应不同的操作代码)


class_name: kd.sdk.scmc.im.extpoint.IInvQueryExpand
method_name: getExpandFilter
param_types_key: IFormView,String,int,String,Map
signature_text:
default void getExpandFilter(IFormView view, String entrykey, int row, String operatekey, java.util.Map<String, QFilter> filterMap)

comment:
获取库存查询扩展QFilter,此部分扩展的过滤条件来自于打开库存查询前的单据页面 用于当标准库存查询配置设置的字段映射不足以满足的特殊业务需求,例如某些特殊单据,需要控制只能选择特定属性的物料/仓库等(例如,希望只能选择"可资产"类型的物料)
@param `view` 打开库存查询前的单据页面视图对象
@param `entrykey` 选中的单据分录标识
@param `row` 选中的行号(如当前未选中行,则row值等于-1)
@param `operatekey` 操作代码(如直接调拨单的调入和调出库存查询对应不同的操作代码)
@param `filterMap` 处理后的filter对象(使用key="filter"获取),可在后续插件中叠加处理上一个插件返回的QFilter 可以通过QFilter filter = filterMap.get(FILTER)得到当前的扩展QFilter对象,对filter处理完毕后,再使用filterMap.put(FILTER, filter)写回至map中,以改写扩展的过滤条件 注意,不可以改写通过库存查询配置中字段映射设置的过滤条件,如有需要请直接在规则中进行配置，本扩展仅可对无法通过库存查询配置进行配置的过滤条件进行扩展


class_name: kd.sdk.scmc.im.extpoint.IInvQueryExpand
method_name: getExpandFilterFromQueryView
param_types_key: IFormView
signature_text: default QFilter getExpandFilterFromQueryView(IFormView view)
comment:
获取库存查询扩展QFilter,此部分扩展的过滤条件来自于"物料即时库存查询"页面本身扩展的查询条件字段
@param `view` "物料即时库存查询"页面视图对象
@return "物料即时库存查询"页面上扩展查询条件字段所增加的过滤条件


class_name: kd.sdk.scmc.im.extpoint.IInvQueryExpand
method_name: getExpandUpdateFields
param_types_key: IFormView,String,int,String
signature_text:
default java.util.List<java.util.Map<String, String>> getExpandUpdateFields(IFormView view, String entrykey, int row, String operatekey)

comment:
获取库存查询扩展返回单据字段逻辑集合 用于当标准库存查询配置设置的返回单据字段不足以满足的特殊业务需求 例如,希望返回数据时固定将某个字段赋值,希望将一个即时库存查询字段返回到多个单据字段上(标准配置只支持一个字段返回到一个单据字段)
@param `view` 界面视图对象
@param `entrykey` 选中的单据分录标识
@param `row` 选中的行号(如当前未选中行,则row值等于-1)
@param `operatekey` 操作代码(如直接调拨单的调入和调出库存查询对应不同的操作代码)
@return 需要返回到单据的字段逻辑集合(如果没有扩展则返回一个空集合,如Collections.emptyList()) 返回对象是一个Map集合,支持返回固定值和从即时库存字段取值两种形式,示例如下： 如果需要在返回数据时,将价格字段固定设置为"1000",以及库存查询的批号字段除了返回到单据上的批号字段(已在标准规则中配置)以外,还希望同时返回到备注上 则返回 [{key="billentry.entrycomment", type="acc",formula="lotnum"}, {key="billentry.price", type="fix",formula="1000"}] 其中,key代表单据字段,type当前支持acc(从库存查询字段返回)和fix(固定值)。 当type="acc"时,formula代表对应的库存查询字段;当type="fix"时,formula代表当前的固定值


class_name: kd.sdk.scmc.im.service.LotnumService
method_name: getLifeDateFromLotIntrack
param_types_key: List,List,List
signature_text:
public java.util.Map<String, java.util.Map<String, java.util.Date>> getLifeDateFromLotIntrack(java.util.List<Object> orgIds, java.util.List<Object> materialIds, java.util.List<String> lotNumbers)

comment:
根据库存组织ID、物料库存信息ID和批号的集合，查询批号入库跟踪表，返回查询范围的生产日期和到期日期信息集合
示例如下
kd.sdk.scmc.im.service.LotnumServicelotnumService= kd.sdk.scmc.im.service.LotnumService.get();
ListorgIds= ArrayList<>();
orgIds.add(100000L);
ListmaterialIds=newArrayList<>();
materialIds.add(1159348455517429760L);
materialIds.add(1158762107278304256L);
ListlotNumbers=newArrayList<>();
lotNumbers.add("PH-10061");
lotNumbers.add("123");
lotNumbers.add("121");
Map> lifeDateMaps = lotnumService.getLifeDateFromLotIntrack(orgIds,materialIds,lotNumbers);
返回结果lifeDateMaps的结构为:{key:库存组织ID_物料库存信息ID_批号,value:{LotnumService.PRODUCEDATE=Date对象,LotnumService.EXPIRYDATE=Date对象}
如:{100000_1159348455517429760_121={producedate=Mon May 1700:00:00 CST 2021, expirydate=Sat Nov 1300:00:00 CST 2021},
100000_1159348455517429760_123={producedate=Thu May 2000:00:00 CST 2021, expirydate=null}}
@param `orgIds` 库存组织ID集合
@param `materialIds` 物料库存信息ID集合
@param `lotNumbers` 批号集合
@return 查询到的生产日期和到期日期信息集合


class_name: kd.sdk.scmc.mobim.extpoint.IInvQueryExpand
method_name: getExpandDetailEntryFields
param_types_key: Set,Set
comment: 即时库存查询添加单据体字段字段扩展点 @param `allQueryFieldSet` 库存查询的字段， 表字段名，别名 @param `showFieldSet` 移动单页面字段
signature_text:
default void getExpandDetailEntryFields(java.util.Set<String> allQueryFieldSet, java.util.Set<String> showFieldSet)


class_name: kd.sdk.scmc.mobim.extpoint.IInvQueryExpand
method_name: getExpandFilter
param_types_key: DynamicObject,String,int,String,Map
signature_text:
default void getExpandFilter(DynamicObject entity, String entryKey, int row, String operateKey, java.util.Map<String, QFilter> filterMap)

comment:
获取库存查询扩展QFilter,此部分扩展的过滤条件来自于打开库存查询前的单据页面 用于当标准库存查询配置设置的字段映射不足以满足的特殊业务需求,例如某些特殊单据,需要控制只能选择特定属性的物料/仓库等(例如,希望只能选择"可资产"类型的物料)
@param `entity` 打开库存查询前的单据实体对象
@param `entryKey` 选中的单据分录标识
@param `row` 选中的行号(如当前未选中行,则row值等于-1)
@param `operateKey` 操作代码(如直接调拨单的调入和调出库存查询对应不同的操作代码)
@param `filterMap` 处理后的filter对象(使用key="filter"获取),可在后续插件中叠加处理上一个插件返回的QFilter 可以通过QFilter filter = filterMap.get(FILTER)得到当前的扩展QFilter对象,对filter处理完毕后,再使用filterMap.put(FILTER, filter)写回至map中,以改写扩展的过滤条件 注意,不可以改写通过库存查询配置中字段映射设置的过滤条件,如有需要请直接在规则中进行配置，本扩展仅可对无法通过库存查询配置进行配置的过滤条件进行扩展


class_name: kd.sdk.scmc.pm.extpoint.IPurBatChangeCasePlugin
method_name: modifySrcBills
param_types_key: List,Set
signature_text:
default java.util.List<DynamicObject> modifySrcBills(java.util.List<DynamicObject> srcBills, java.util.Set<Long> selectRows)

comment:
根据二开需求修改反写后的原单数据，主要用于处理批量变更的字段值改变引起的二开字段的联动改变
@param `srcBills` 原单集合
@param `selectRows` 批量变更单中选中并且通过校验的行
@return 修改后的原单集合


class_name: kd.sdk.scmc.pm.extpoint.IPurQuotaCasePlugin
method_name: getCustomPushOrderInfos
param_types_key: Collection
comment: 配额下单，获取想带到采购订单中的客户化信息 @param `quotaInfos` 配额计算结果信息
signature_text:
default java.util.Map<String, String> getCustomPushOrderInfos(java.util.Collection<DynamicObject> quotaInfos)


class_name: kd.sdk.scmc.pm.extpoint.IVMISettleCasePlugin
method_name: adjustSettleModel
param_types_key: DynamicObject[],List
signature_text:
default java.util.List<DynamicObject> adjustSettleModel(DynamicObject[] transferBills, java.util.List<DynamicObject> settleModels)

comment:
调整一批物权转移单结算时使用的结算模型中对应的BOTP
@param `transferBills` 物权转移单信息
@param `settleModels` 结算模型
@return 修改后的结算模型


class_name: kd.sdk.scmc.pm.extpoint.IXPurOrderCasePlugin
method_name: activeSynBillInfo
param_types_key: List,String
signature_text: default boolean activeSynBillInfo(java.util.List<Long> changeBillIds, String changeBillEntity)
comment:
采购变更生效同步上游单据客户化定制插件接口,接口调用时机：采购变更生效操作插件生效前触发，进行上游单据信息同步
@param `changeBillIds` 采购变更单据ID集合 可以通过ID集合查询到发生变更的详细信息，进而继续进行上游单据信息同步
@param `changeBillEntity` 采购变更单单据实体标识，可根据该参数区分处理不同变更单据的对应逻辑
@return 同步结果，默认返回true, 要求同步成功返回：true 失败返回：false


class_name: kd.sdk.scmc.sbs.extpoint.ISbsSelectSNExpand
method_name: getExpandSelectMaps
param_types_key: IFormView
signature_text: default java.util.List<java.util.Map<String, String>> getExpandSelectMaps(IFormView view)
comment:
用于扩展希望添加到sql中的查询字段以及查询字段与界面返回字段的对应关系
@param `view` 界面视图对象，通过view可得到页面上用户输入的各字段值,以及通过getFormShowParameter().getCustomParams()得到所属单据的类型和id等信息
@return 希望添加到sql中的查询字段以及查询字段与界面返回字段的对应关系 （1）假设用户扩展了序列号主档,增加了二开字段"项目"(标识project)，扩展了序列号轨迹,增加二开字段"行类型"，且均已经通过序列号单据配置往其中写入了值, （2）在"选择已有序列号"页面的查询结果单据体中添加字段"项目"(标识project_return)和"行类型"(标识linetype_return)，希望将查询序列号主档的项目和当前轨迹的行类型返回到查询结果新增字段中 基于此需求,返回值的对象示例如下: [{entity:"bd_snmainfile",selectcol:"fproject",returncol:"project_return"}, {entity:"bd_snmovetrack",selectcol:"flinetype",returncol:"linetype_return"}] 其中,（1）entity代表查询的元数据对象,当前支持序列号主档（bd_snmainfile）和序列号轨迹（bd_snmovetrack） （2）selectcol代表在序列号主档或轨迹上的字段的数据库字段标识 （3）returncol代表在"选择已有序列号"页面的查询结果单据体中用户扩展的字段"项目"(标识project_return)和"行类型"(标识linetype_return)


class_name: kd.sdk.scmc.sbs.extpoint.ISbsSelectSNExpand
method_name: getExpandWhere
param_types_key: IFormView
signature_text: default String getExpandWhere(IFormView view)
comment:
用于扩展希望添加到sql中的where条件内容
@param `view` 界面视图对象，通过view可得到页面上用户输入的各字段值,以及通过getFormShowParameter().getCustomParams()得到所属单据的类型和id等信息
@return 希望添加到sql中的where条件内容 假设用户在"选择已有序列号"页面也同样添加过滤条件字段"项目"(标识project_head)和"行类型"(标识linetype_head)，并希望用户填写的该字段值作为查询序列号时的过滤条件 基于此需求,用户可首先通过传参view得到用户在界面上选择的值,假设project_head的值为10001234，linetype_head为20004567 将返回值赋值为字符串 "bd_snmainfile.fproject = 10001234 and bd_snmovetrack.flinetype = 20004567"即可 注：（1）字段名前需要添加前缀"bd_snmainfile."或"bd_snmovetrack.",用于区分是序列号主档还是序列号轨迹的对应字段标识 （2）如无需要扩展此部分内容,返回空字符串即可 （3）该扩展并不局限于界面添加过滤字段,可以从view得到任意可得到的内容组装为额外的过滤条件,例如用户如果希望提供小漏斗支持（不直接支持小漏斗，需扩展处理）,也可通过view对象得到小漏斗中的填选内容,并转换为String对象返回;


class_name: kd.sdk.scmc.sm.extpoint.IAmountCalculateCasePlugin
method_name: beforeCalculte
param_types_key: String
signature_text: default java.util.Set<String> beforeCalculte(String entityName)
comment:
设置分录价税合计后处理计算时默认加载的单据字段
@param `entityName` 单据实体标识，可根据该参数区分处理不同销售单据的对应逻辑
@return 要加载的单据属性，属性只需要写字段名即可 返回set中只可以添加单据自身的字段，包括单头字段和分录字段，如币别：currency，物料：material，二开字段名等，分录字段不需要传递分录前缀


class_name: kd.sdk.scmc.sm.extpoint.IAmountCalculateCasePlugin
method_name: calculteAmountAndTax
param_types_key: BigDecimal,String,Map
signature_text:
default java.math.BigDecimal calculteAmountAndTax(java.math.BigDecimal amountAndTax, String entityName, java.util.Map<String, Object> entryInfo)

comment:
分录价税合计后处理，在标准产品的价税合计过程中，得到价税合计得数后，可以继续对价税合计得数进行加工处理，处理完毕后回填到页面中，只支持金额正算的场景
@param `amountAndTax` 标准产品金额计算逻辑得到的分录上的价税合计
@param `entityName` 单据实体标识，可根据该参数区分处理不同销售单据的对应逻辑，需要将所有不同的单据处理逻辑写在同一个实现插件中
@param `entryInfo` 附带的单据字段信息通过Map传递，使用Map是因为轻量化且更灵活 例：[{material:物料动态对象, currency:币别动态对象, qty:100, price:10，二开字段名：二开字段值}
@return 处理后的价税合计 标准产品将根据返回的数值继续金额处理逻辑，如单头汇总等


class_name: kd.sdk.scmc.sm.extpoint.ICleanFieldsCasePlugin
method_name: isCleanPriceField
param_types_key: DynamicObject,DynamicObject,String,Map
signature_text:
default boolean isCleanPriceField(DynamicObject newMaterial, DynamicObject oldMaterial, String entityName, java.util.Map<String, Object> entryInfo)

comment:
销售单据页面切换物料是否清除价格相关字段信息
@param `newMaterial` 分录行物料切换后新物料，可能为空需要判空
@param `oldMaterial` 分录行物料切换前旧物料，可能为空需要判空
@param `entityName` 单据实体标识,可根据该参数区分处理不同销售单据的对应逻辑
@param `entryInfo` 附带的分录行字段信息通过Map传递，此参数为预留参数
@return 是否需要清除 默认为：true 需要：true 不需要：false 通过客开判断逻辑，决定是否清除价格价格字段，


class_name: kd.sdk.sit.hcsi.business.cal.IBeforeExportCalPersonExtService
method_name: sortColumnsBeforeExport
param_types_key: BeforeExportCalPersonEvent
signature_text:
default void sortColumnsBeforeExport(kd.sdk.sit.hcsi.common.events.cal.BeforeExportCalPersonEvent event)

comment:
标品社保明细引出前，对列表字段排序 扩展接口使用方法： 当标品社保明细引出前，通过BeforeExportCalPersonEvent的columnFieldKeyList属性，拿到引出明细的所有列字段，二开对列字段排序完后，标品再根据排好序的顺序，对引出列表做排序。 扩展代码示例：
publicclassBeforeExportCalPersonExtServiceDemoimplementsIBeforeExportCalPersonExtService {
privatestaticLoglog= LogFactory.getLog(BeforeExportCalPersonExtServiceDemo.class);
`
`
``
@param `event` 标品社保明细引出前，对列表字段排序


class_name: kd.sdk.sit.hcsi.business.extpoint.ITruncationDealExtService
method_name: dataTruncationDeal
param_types_key: ItemDataEvent
signature_text: default void dataTruncationDeal(ItemDataEvent event)
comment:
按舍位方式处理数据
public class TruncationDealExtServiceDemo implements ITruncationDealExtService {
`
``
@param `event` ``


class_name: kd.sdk.sit.hcsi.business.mservice.helper.CalResultServiceHelper
method_name: auditOrUnauditSinsurTask
param_types_key: Map
signature_text:
public static java.util.Map<String, Object> auditOrUnauditSinsurTask(java.util.Map<String, Object> params)

comment:
@param `params` \- map包含3个key和对应的值，每个key的参数信息如下： <key是sinSurTaskIds，value是社保计算id集合，数据类型是Collection，必填> <key是operationKey，value是donothing_audit（审核）/donothing_unaudit（反审核）必填>
@return Map \- 接口是否调用成功，整体消息，接口状态信息及返回数据的Map


class_name: kd.sdk.sit.hcsi.business.mservice.helper.CalResultServiceHelper
method_name: getSocInsurancePersons
param_types_key: Map
signature_text:
public static java.util.Map<String, Object> getSocInsurancePersons(java.util.Map<String, Object> params)

comment:
根据期间、档案，以及查询字段，获取社保明细数据
@param `params` \- map包含3个key和对应的值，每个key的参数信息如下： <key是periodIds，value是社保期间id集合，数据类型是Collection，必填> <key是sinsurFileIds，value社保档案id集合，数据类型是Collection，必填> <key是selectFields，value是社保明细查询字段,如果多个字段要用“,”逗号分隔，如果查询分录数据，字段前要加分录标识，数据类型是String，必填>
@return Map \- 接口是否调用成功，整体消息，接口状态信息及返回数据的Map


class_name: kd.sdk.sit.hcsi.business.mservice.helper.CalResultServiceHelper
method_name: pushSocInsuranceToSalary
param_types_key: Map
signature_text:
public static java.util.Map<String, Object> pushSocInsuranceToSalary(java.util.Map<String, Object> params)

comment:
社保明细数据推送算薪
@param `params` \- map包含3个key和对应的值，每个key的参数信息如下： <key是socInsurancePersonIds，value是社保明细id，数据类型是Collection，必填> <key是推送类型pushType，value如果填"1", 则推送数据到算薪，如果填"2"；则从算薪撤回推送数据；数据类型是String，必填> <key是entityNumber，value是当前操作所在实体，用于记录操作日志, 数据类型是Map，必填>
@return Map \- 接口是否调用成功，整体消息，接口状态信息及返回数据的Map


class_name: kd.sdk.sit.hcsi.business.mservice.helper.CalResultServiceHelper
method_name: updateSocInsurancePersonAndCal
param_types_key: Map
signature_text:
public static java.util.Map<String, Object> updateSocInsurancePersonAndCal(java.util.Map<String, Object> params)

comment:
更新社保人员并计算
@param `params` \- map包含4个key和对应的值，每个key的参数信息如下： <key是periodId，value是社保期间id，数据类型是Long，必填> <key是insuredCompanyIds，value参保单位id集合，数据类型是Collection，必填> <key是更新类型calType，value如果填"1", 则新增任务并计算，如果填"3"；则更新任务并计算；数据类型是String，必填> <key是extendParams，value是拓展入参map, 用户计算完后，调用二开埋点，做自定义处理，数据类型是Map，必填>
@return Map \- 接口是否调用成功，整体消息，接口状态信息及返回数据的Map


class_name: kd.sdk.sit.hcsi.common.events.insurancedata.AfterInsuranceDataListEvent
method_name: <init>
param_types_key: Set,List,DynamicObject[]
signature_text:
public AfterInsuranceDataListEvent(java.util.Set<String> selectFieldSet, java.util.List<java.util.Map<String, Object>> insuranceDataList, DynamicObject[] queryInsuranceDatas)


class_name: kd.sdk.sit.hcsi.common.events.sinsurfilebase.SinSurFileBaseAddAttributeEvent
method_name: <init>
param_types_key: DynamicObject,Map
comment: 构造器 @param `sinSurFileBase` @param `attribute`
signature_text:
public SinSurFileBaseAddAttributeEvent(DynamicObject sinSurFileBase, java.util.Map<String, Object> attribute)


class_name: kd.sdk.sit.hcsi.common.events.sinsurfilebase.SinSurFileBaseAddPageAttributeEvent
method_name: <init>
param_types_key: TableValueSetter,Map,int
comment: 构造器 @param `tableValueSetter` @param `attribute` @param `index`
signature_text:
public SinSurFileBaseAddPageAttributeEvent(TableValueSetter tableValueSetter, java.util.Map<String, Object> attribute, int index)


class_name: kd.sdk.sit.hcsi.common.events.sinsurfilebase.SinSurFileBaseHisChangeEvent
method_name: <init>
param_types_key: DynamicObject,Map
comment: 构造器 @param `sinSurFileBase` 社保基数设置对象 @param `attribute` 二开字段
signature_text:
public SinSurFileBaseHisChangeEvent(DynamicObject sinSurFileBase, java.util.Map<String, Object> attribute)


class_name: kd.sdk.sit.hcsi.common.events.sinsurfilebase.SinSurFileBaseImportAddExcelColumnEvent
method_name: <init>
param_types_key: List
signature_text:
public SinSurFileBaseImportAddExcelColumnEvent(java.util.List<java.util.List<java.util.Map<String, Object>>> headerList)


class_name: kd.sdk.sit.hcsi.formplugin.cal.detail.ICalPersonListDisplayPlugin
method_name: onGetInsuredStandardList
param_types_key: OnGetInsuredStandardListEvent
comment: 获取社保明细列表动态显示的动态列险种项目信息 @param `event`
signature_text:
default void onGetInsuredStandardList(kd.sdk.sit.hcsi.common.events.cal.OnGetInsuredStandardListEvent event)


class_name: kd.sdk.sit.hcsi.formplugin.cal.detail.ICalPersonListDisplayPlugin
method_name: onGetInsuredSumItemList
param_types_key: OnGetInsuredSumItemListEvent
comment: 获取社保明细合并项信息 @param `event`
signature_text:
default void onGetInsuredSumItemList(kd.sdk.sit.hcsi.common.events.cal.OnGetInsuredSumItemListEvent event)


class_name: kd.sdk.sit.hcsi.formplugin.cal.detail.ICalPersonListDisplayPlugin
method_name: onSetInsuredSumItemData
param_types_key: OnSetInsuredSumItemDataEvent
comment: 设置社保明细合并项数据 @param `event`
signature_text:
default void onSetInsuredSumItemData(kd.sdk.sit.hcsi.common.events.cal.OnSetInsuredSumItemDataEvent event)


class_name: kd.sdk.sit.hcsi.formplugin.sinsurfilebase.ISinSurFileBaseAddAttributePlugin
method_name: addAttribute
param_types_key: SinSurFileBaseAddPageAttributeEvent
signature_text: void addAttribute(SinSurFileBaseAddPageAttributeEvent sinSurFileBaseAddPageAttributeEvent)
comment:
社保基数设置添加二开属性
//需要处理的二开字段privatestaticfinalListFIELDS= Arrays.asList("datefield", "basedatafield", "combofield");
``
@param `sinSurFileBaseAddPageAttributeEvent` 为社保基数设置页面添加二开属性并赋值入参


class_name: kd.sdk.sit.hcsi.formplugin.sinsurfilebase.ISinSurFileBaseImportAddExcelColumnPlugin
method_name: addExcelColumn
param_types_key: SinSurFileBaseImportAddExcelColumnEvent
signature_text:
void addExcelColumn(SinSurFileBaseImportAddExcelColumnEvent sinSurFileBaseImportAddExcelColumnEvent)

comment:
为Excel模板添加二开字段列
//模板中的第3行privatestaticfinalListNUMBERS= Arrays.asList("datefield", "basedatafield", "combofield");
//模板中的第4行 要遵循字段映射 datefield：日期6，basedatafield：国家和地区，combofield：下拉列表3privatestaticfinalListNAMES= Arrays.asList("日期6", "国家和地区", "下拉列表3");
//下拉值privatestaticfinalListDROP_DOWN_LIST= Arrays.asList("测试1", "测试2");
``
@param `sinSurFileBaseImportAddExcelColumnEvent` 社保基数设置仅更新险种基数设置引入时模板添加二开字段入参


class_name: kd.sdk.sit.hcsi.oppplugin.sinsurfilebase.ISinSurFileBaseAddAttributeService
method_name: addAttribute
param_types_key: SinSurFileBaseAddAttributeEvent
signature_text: void addAttribute(SinSurFileBaseAddAttributeEvent sinSurFileBaseAddAttributeEvent)
comment:
社保基数设置添加二开属性
privatestaticfinalListFIELDS= Arrays.asList("datefield", "basedatafield", "combofield");
``
@param `sinSurFileBaseAddAttributeEvent` 社保基数设置添加二开属性入参


class_name: kd.sdk.sit.hcsi.service.sinsurfile.SinSurFileHelper
method_name: syncFileAndPersonInfo
param_types_key: List
comment: 社保档案写入 @param `params`
signature_text:
public java.util.Map<String, Object> syncFileAndPersonInfo(java.util.List<java.util.Map<String, Object>> params)


class_name: kd.sdk.sit.hcsi.service.sinsurfile.SinSurFileHelper
method_name: syncFileAndPersonInfoByEmployeeId
param_types_key: List
comment: 社保档案写入 @param `params`
signature_text:
public java.util.Map<String, Object> syncFileAndPersonInfoByEmployeeId(java.util.List<java.util.Map<String, Object>> params)


class_name: kd.sdk.sit.hcsi.service.sinsurfilebase.ISinSurFileBaseImportAddAttributeService
method_name: addImportAttribute
param_types_key: SinSurFileBaseAddAttributeEvent
signature_text: void addImportAttribute(SinSurFileBaseAddAttributeEvent sinSurFileBaseAddAttributeEvent)
comment:
社保基数设置添加二开属性
//需要处理的二开字段privatestaticfinalListFIELDS= Arrays.asList("datefield", "basedatafield", "combofield");
``
@param `sinSurFileBaseAddAttributeEvent` `


class_name: kd.sdk.sit.hcsi.service.sinsurfilebase.SinSurFileBaseHelper
method_name: hisChangeSinSurBases
param_types_key: List
comment: 仅变更社保基数设置 @param `params`
signature_text:
public java.util.Map<String, Object> hisChangeSinSurBases(java.util.List<java.util.Map<String, Object>> params)


class_name: kd.sdk.sit.hcsi.service.sinsurfilebase.SinSurFileBaseHelper
method_name: hisChangeSinSurFileStdAndBases
param_types_key: List
comment: 社保基数设置变更（变更参保标准和社保基数设置） @param `params`
signature_text:
public java.util.Map<String, Object> hisChangeSinSurFileStdAndBases(java.util.List<java.util.Map<String, Object>> params)


class_name: kd.sdk.sit.hcsi.service.sinsurfilebase.SinSurFileBaseHelper
method_name: hisChangeSinSurFileStds
param_types_key: List
comment: 仅变更档案关联参保标准 @param `params`
signature_text:
public java.util.Map<String, Object> hisChangeSinSurFileStds(java.util.List<java.util.Map<String, Object>> params)


class_name: kd.sdk.sit.hcsi.service.sinsurfilebase.SinSurFileBaseHelper
method_name: saveSinSurFileStdAndBases
param_types_key: List
comment: 新增或更新社保基数设置 @param `params`
signature_text:
public java.util.Map<String, Object> saveSinSurFileStdAndBases(java.util.List<java.util.Map<String, Object>> params)


class_name: kd.sdk.sit.iit.business.mservice.helper.TaxFileServiceHelper
method_name: findPropOfTaxFile
param_types_key: Map
signature_text: public static java.util.Map<String, Object> findPropOfTaxFile(java.util.Map<String, Object> params)
comment:
查询个税档案信息
@param `params` \- 参数Map的如下： <key是data，value是人员个税档案ID-管理属地集合，数据类型是List，必填> <key是props，value是要查询的属性集合，数据类型是Set，必填> <key是includeStop，value是是否包含停止算税的档案，数据类型是Boolean，非必填> <key是useHis，value是历史基础资料匹配模式，数据类型是Integer，非必填> <key是includeAbandon，value是是否包含废弃档案模式，数据类型是Integer，非必填> <key是dataStatus，value是数据状态匹配模式，数据类型是Integer，非必填>
@return Map \- 接口是否调用成功，整体消息，接口状态信息及返回数据的Map


class_name: kd.sdk.sit.iit.business.mservice.helper.TaxFileServiceHelper
method_name: synTaxFileData
param_types_key: List
signature_text:
public static java.util.Map<String, Object> synTaxFileData(java.util.List<java.util.Map<String, Object>> params)

comment:
同步个税档案数据包含子模块信息，通过status字段可以控制档案数据的 新增 、 修改 、 审核生效
@param `params` \- 多个Map组成的列表，其中，每个Map的参数列表如下： <key是sourceid，value是请求单据的id或协作核定单id，数据溯源使用，数据类型是Long，必填> <key是taxfile，value是个税档案基本信息Map<属性标识，值>，数据类型是Map，必填> <key是taxcontact，value是联系信息Map<属性标识，值>，数据类型是Map，必填> <key是employment，value是任职受雇从业信息Map<属性标识，值>，数据类型是Map，必填> <key是overseasperson，value是境外人员信息Map<属性标识，值>，数据类型是Map，非必填> <key是investor，value是股东投资者信息Map<属性标识，值>，数据类型是Map，非必填> <key是bankcard，value是银行卡信息Map<属性标识，值>，数据类型是Map，非必填> <key是specialinfo，value是其他减免税信息Map<属性标识，值>，数据类型是Map，非必填>
@return Map \- 接口是否调用成功，整体消息，接口状态信息及返回数据的Map


class_name: kd.sdk.sit.iit.business.mservice.helper.TaxFileServiceHelper
method_name: synTaxFileData
param_types_key: List,String,String
signature_text:
public static java.util.Map<String, Object> synTaxFileData(java.util.List<java.util.Map<String, Object>> params, String actionWay, String action)

comment:
同步个税档案数据包含子模块信息，通过status字段可以控制档案数据的 新增 、 修改 、 审核生效
@param `params` \- 多个Map组成的列表，其中，每个Map的参数列表如下： <key是sourceid，value是请求单据的id或协作核定单id，数据溯源使用，数据类型是Long，必填> <key是taxfile，value是个税档案基本信息Map<属性标识，值>，数据类型是Map，必填> <key是taxcontact，value是联系信息Map<属性标识，值>，数据类型是Map，必填> <key是employment，value是任职受雇从业信息Map<属性标识，值>，数据类型是Map，必填> <key是overseasperson，value是境外人员信息Map<属性标识，值>，数据类型是Map，非必填> <key是investor，value是股东投资者信息Map<属性标识，值>，数据类型是Map，非必填> <key是bankcard，value是银行卡信息Map<属性标识，值>，数据类型是Map，非必填> <key是specialinfo，value是其他减免税信息Map<属性标识，值>，数据类型是Map，非必填>
@param `actionWay` \- 0 – 页面新增，1 – 发薪引入，2 – 个税引入，-1 – 其他
@param `action` \- 1 – 仅校验，2 – 仅保存， 3 – 校验并保存
@return Map \- 接口是否调用成功，整体消息，接口状态信息及返回数据的Map


class_name: kd.sdk.sit.iit.business.mservice.helper.TaxFileServiceHelper
method_name: synTaxFileData
param_types_key: List,String,String,String
signature_text:
public static java.util.Map<String, Object> synTaxFileData(java.util.List<java.util.Map<String, Object>> params, String actionWay, String action, String skipPermCheck)

comment:
同步个税档案数据包含子模块信息，通过status字段可以控制档案数据的 新增 、 修改 、 审核生效
@param `params` \- 多个Map组成的列表，其中，每个Map的参数列表如下： <key是sourceid，value是请求单据的id或协作核定单id，数据溯源使用，数据类型是Long，必填> <key是taxfile，value是个税档案基本信息Map<属性标识，值>，数据类型是Map，必填> <key是taxcontact，value是联系信息Map<属性标识，值>，数据类型是Map，必填> <key是employment，value是任职受雇从业信息Map<属性标识，值>，数据类型是Map，必填> <key是overseasperson，value是境外人员信息Map<属性标识，值>，数据类型是Map，非必填> <key是investor，value是股东投资者信息Map<属性标识，值>，数据类型是Map，非必填> <key是bankcard，value是银行卡信息Map<属性标识，值>，数据类型是Map，非必填> <key是specialinfo，value是其他减免税信息Map<属性标识，值>，数据类型是Map，非必填>
@param `actionWay` \- 0 – 页面新增，1 – 发薪引入，2 – 个税引入，-1 – 其他
@param `action` \- 1 – 仅校验，2 – 仅保存， 3 – 校验并保存
@return Map \- 接口是否调用成功，整体消息，接口状态信息及返回数据的Map


class_name: kd.sdk.sit.iit.business.tax.person.TaxPersonQueryService
method_name: queryPersonInfos
param_types_key: Collection,Collection
comment: 根据人员ID获取人员信息当前版本值 @param `personIds` 人员ID @param `selectProperties` 查找属性 @return 人员ID - 人员属性名 - 属性值
signature_text:
java.util.Map<Long, java.util.Map<String, Object>> queryPersonInfos(java.util.Collection<Long> personIds, java.util.Collection<String> selectProperties)


class_name: kd.sdk.sit.iit.business.tax.person.TaxPersonQueryService
method_name: queryPersonInfosHis
param_types_key: List,Collection
signature_text:
java.util.Map<String, java.util.Map<String, Object>> queryPersonInfosHis(java.util.List<java.util.Map<String, Long>> hisIds, java.util.Collection<String> selectProperties)

comment:
根据人员信息ID（不同信息块有不同的ID）获取人员信息当前版本值
@param `hisIds` 人员信息历史版本ID
@param `selectProperties` 查找属性
@return 人员信息标识 - 人员属性名 - 属性值


class_name: kd.sdk.sit.itc.business.tax.data.TaxDataQueryService
method_name: queryCurrentPersonInfos
param_types_key: Collection,Collection
signature_text:
java.util.Map<Long, java.util.Map<String, Object>> queryCurrentPersonInfos(java.util.Collection<Long> taxFileIds, java.util.Collection<String> selectProperties)

comment:
根据人员个税档案ID获取人员信息当前版本值
@param `taxFileIds` 个税档案的boid
@param `selectProperties` 查找属性
@return 人员ID - 人员属性名 - 属性值


class_name: kd.sdk.sit.itc.business.tax.data.TaxDataQueryService
method_name: queryHisPersonInfos
param_types_key: Collection,Collection
signature_text:
java.util.Map<Long, java.util.Map<String, Object>> queryHisPersonInfos(java.util.Collection<Long> taxDataIds, java.util.Collection<String> selectProperties)

comment:
根据个税数据ID获取人员信息当时版本值
@param `taxDataIds` 个税数据ID
@param `selectProperties` 查找属性
@return 个税数据id - 人员属性名 - 属性值


class_name: kd.sdk.sit.itc.business.tax.data.TaxDataQueryService
method_name: queryTaxDataItems
param_types_key: Collection,Collection
comment: 根据个税数据ID获取个税数据项目值 @param `taxDataIds` 个税数据ID @param `taxItems` 个项目ID @return 个税数据ID - 个税项目 - 个税项目值
signature_text:
default java.util.Map<Long, java.util.Map<Long, String>> queryTaxDataItems(java.util.Collection<Long> taxDataIds, java.util.Collection<Long> taxItems)


class_name: kd.sdk.sit.itc.business.tax.data.TaxDataQueryService
method_name: queryTaxDataItems
param_types_key: Collection,Collection,boolean
signature_text:
java.util.Map<Long, java.util.Map<Long, String>> queryTaxDataItems(java.util.Collection<Long> taxDataIds, java.util.Collection<Long> taxItems, boolean queryItemValue)

comment:
根据个税数据ID获取个税数据项目值
@param `taxDataIds` 个税数据ID
@param `taxItems` 个项目ID
@param `queryItemValue` true查询itemvalue false查询calvalue
@return 个税数据ID - 个税项目 - 个税项目值


class_name: kd.sdk.sit.itc.business.tax.data.TaxDataQueryService
method_name: queryTaxDataList
param_types_key: Collection,Collection,String
signature_text:
default DynamicObjectCollection queryTaxDataList(java.util.Collection<String> selectProperties, java.util.Collection<QFilter> filters, String orderBy)

comment:
根据条件查找个税数据维度信息（分组相关，按照维度分组决定了报表有多少条记录）
@param `selectProperties` （查找属性）
@param `filters` （条件）
@param `orderBy` （排序）
@return 个税数据动态对象列表


class_name: kd.sdk.sit.itc.business.tax.data.TaxDataQueryService
method_name: queryTaxDataList
param_types_key: Collection,Collection,String,boolean
signature_text:
DynamicObjectCollection queryTaxDataList(java.util.Collection<String> selectProperties, java.util.Collection<QFilter> filters, String orderBy, boolean originalQuery)

comment:
根据条件查找个税数据维度信息（分组相关，按照维度分组决定了报表有多少条记录）
@param `selectProperties` （查找属性）
@param `filters` （条件）
@param `orderBy` （排序）
@param `originalQuery` （originalQuery查询）
@return 个税数据动态对象列表


class_name: kd.sdk.sit.itc.business.tax.data.TaxDataQueryService
method_name: queryTaxDataListById
param_types_key: Collection,Collection,String
signature_text:
default DynamicObjectCollection queryTaxDataListById(java.util.Collection<String> selectProperties, java.util.Collection<Long> taxDataIds, String orderBy)

comment:
根据id查找个税数据信息
@param `selectProperties` （查找属性）
@param `taxDataIds` 个税数据ID
@param `orderBy` （排序）
@return 个税数据动态对象列表


class_name: kd.sdk.sit.itc.business.tax.data.TaxDataQueryService
method_name: queryTaxDataListById
param_types_key: Collection,Collection,String,boolean
signature_text:
DynamicObjectCollection queryTaxDataListById(java.util.Collection<String> selectProperties, java.util.Collection<Long> taxDataIds, String orderBy, boolean originalQuery)

comment:
根据id查找个税数据信息
@param `selectProperties` （查找属性）
@param `taxDataIds` 个税数据ID
@param `orderBy` （排序）
@param `originalQuery` （originalQuery查询）
@return 个税数据动态对象列表


class_name: kd.sdk.sit.sitbp.service.spi.SitbpCommonService
method_name: getBigDecimalValue
param_types_key: BigDecimal,String
signature_text:
default java.math.BigDecimal getBigDecimalValue(java.math.BigDecimal valBeforeRound, String roundTypeEnum)

comment:
根据舍位方式进行数值取舍
@param `valBeforeRound` 做舍位之前的值
@param `roundTypeEnum` 参保标准，舍位方式枚举值
@return BigDecimal 做舍位后的值


class_name: kd.sdk.sit.sitbs.business.extpoint.person.ISITBSPersonExtService
method_name: modifyPersonNumber
param_types_key: Map
signature_text: default void modifyPersonNumber(java.util.Map<String, Object> param)
comment:
计薪人员修改工号服务
publicclassSITBSPersonExtDemoServiceimplementsISITBSPersonExtService {
publicvoidmodifyPersonNumber(Map<String, Object> param) {
List<Map<String, Object>> datas = (List<Map<String, Object>>) param.get("data");
//旧工号集合-备查
Set<String> oriNumbers = newHashSet<>(SWCBaseConstants.INITCAPACITY_HSAHSET);
//KEY:旧工号,VALUE=新工号
Map<String, String> numberMap = newHashMap<>(SWCBaseConstants.INITCAPACITY_HASHMAP);
for (Map<String, Object> data : datas) {
StringoriNumber= String.valueOf(data.get("oriNumber"));
StringnewNumber= String.valueOf(data.get("newNumber"));
oriNumbers.add(oriNumber);
numberMap.put(oriNumber, newNumber);
}
//测试修改扩展案例的工号
dealModifyPersonNumberForEntityEqual(param, oriNumbers, numberMap, "kdtest_sitbs_extdemotest", "number");
//无返回值，若是失败直接抛异常if (param.containsKey("testerrorsitbs")) {
thrownewRuntimeException("This deal fail sitbs!!!");
}
}
private DynamicObject[] dealModifyPersonNumberForEntityEqual(Map<String, Object> param, Set<String> oriNumbers, Map<String, String> numberMap, String entityNumber, String propertyName) {
HRBaseServiceHelperlogHelper=newHRBaseServiceHelper("sitbs_dataupdatelog");
List<DynamicObject> logDys = newArrayList<>(SITBaseConstants.INITCAPACITY_ARRAYLIST);
QFilterqFilter=newQFilter(propertyName, QFilter.in, oriNumbers);
HRBaseServiceHelperempHelper=newHRBaseServiceHelper(entityNumber);
DynamicObject[] dataDys = empHelper.query(propertyName, newQFilter[]{qFilter});
for (DynamicObject empDy : dataDys) {
StringoriVal= empDy.getString(propertyName);
StringnewVal= numberMap.get(empDy.get(propertyName));
empDy.set(propertyName, newVal);
//记录日志DynamicObjectlogDy= logHelper.generateEmptyDynamicObject();
logDy.set("batchnum", param.get("batchnum"));
logDy.set("mainop", "modifyPersonNumber");
logDy.set("childop", "sitbs");
logDy.set("entityNumber", entityNumber);
logDy.set("field", propertyName);
logDy.set("updatestatus", "S");//成功
logDy.set("logdatatype", "D");//明细
logDy.set("dataid", empDy.get("id"));
logDy.set("orivalue", oriVal);
logDy.set("newvalue", newVal);
logDys.add(logDy);
}
empHelper.update(dataDys);
logHelper.save(logDys.toArray(newDynamicObject[0]));
Map<String, Object> resultMap = (Map<String, Object>) param.get("dealInfo");
resultMap.put(entityNumber + "#" + propertyName, dataDys.length);
return dataDys;
}
}
@param `param` 待修改的工号信息，{"data": [{"oriNumber":"1234567-R", "newNumber":"1234567"}]}
@return 无返回值，若是失败直接抛异常


class_name: kd.sdk.sit.sitbs.business.tax.basic.TaxBasicInfoQueryService
method_name: queryTaxItems
param_types_key: List
comment: 根据个税项目ID获取个税项目 @param `itemIds` 个税项目ID列表 @return 个税项目动态对象列表
signature_text:
java.util.Map<Long, kd.sdk.sit.sitbs.entity.TaxItemEntity> queryTaxItems(java.util.List<Long> itemIds)


class_name: kd.sdk.sit.sitbs.business.tax.basic.TaxBasicInfoQueryService
method_name: queryTaxPeriods
param_types_key: Long,Date,Date
signature_text:
DynamicObjectCollection queryTaxPeriods(Long periodType, java.util.Date startDate, java.util.Date endDate)

comment:
个税期间类型ID + 起止时间查找个税期间
@param `periodType` 期间类型
@param `startDate` 开始时间
@param `endDate` 结束时间
@return 个税期间动态对象列表


class_name: kd.sdk.sit.sitcs.business.extpoint.sinsurcal.IBeforeSocialCalDataSaveExtService
method_name: beforeSocialCalDataSave
param_types_key: BeforeSocialCalDataSaveEvent
signature_text: default void beforeSocialCalDataSave(BeforeSocialCalDataSaveEvent event)
comment:
标品社保明细入库之前，调用此方法，实现定制化业务逻辑 扩展接口使用方法： 实现接口IBeforeSocialCalDataSaveExtService，从BeforeSocialCalDataSaveEvent入参中拿到社保明细calPersonDys数据，往里面添加拓展的字段和数据 扩展代码示例：
publicclassBeforeSocialCalDataSaveExtServiceDemoimplementsIBeforeSocialCalDataSaveExtService {
privatestaticLoglog= LogFactory.getLog(BeforeSocialCalDataSaveExtServiceDemo.class);
`
`
``
@param `event` 社保计算入库前，拓展接口入参


class_name: kd.sdk.sit.sitcs.business.extpoint.sinsurcal.ISocialCalDataSave
method_name: afterSocialCalDataSave
param_types_key: AfterSocialCalDataSaveEvent
signature_text: default void afterSocialCalDataSave(AfterSocialCalDataSaveEvent event)
comment:
标品计算完成入库之后，调用此方法，实现定制化业务逻辑 扩展接口使用方法： 入参会传计算完成的社保计算任务ID，和从社保计算接口传过来的拓展参数extendParams，放在AfterSocialCalDataSaveEvent 中； 用户在afterSocialCalDataSave方法中实现自定义逻辑。 扩展代码示例：
publicclassSocialCalDataSaveExtServiceDemoimplementsISocialCalDataSave {
privatestaticLoglog= LogFactory.getLog(SocialCalDataSaveExtServiceDemo.class);
`
`
``
@param `event` 社保计算拓展接口入参


class_name: kd.sdk.sit.sitcs.business.extpoint.sinsurdcl.IDclPersonDataSaveBeforeExtService
method_name: dclPersonDataSaveBefore
param_types_key: DclPersonDataSaveBeforeEvent
signature_text: default void dclPersonDataSaveBefore(DclPersonDataSaveBeforeEvent event)
comment:
标品社保申报名单入库之前，调用此方法，实现定制化业务逻辑 扩展接口使用方法： 实现接口IDclPersonDataSaveBeforeExtService，从DclPersonDataSaveBeforeEvent入参中拿到社保申报名单dclPersonDys数据，往里面添加拓展的字段和数据 扩展代码示例：
publicclassDclPersonDataSaveBeforeExtServiceDemoimplementsIDclPersonDataSaveBeforeExtService {
privatefinalstaticLoglog= LogFactory.getLog(DclPersonDataSaveBeforeExtServiceDemo.class);
`
`
``
@param `event` 社保申报名单入库前，拓展接口入参


class_name: kd.sdk.spi.ServiceLoader
method_name: load
param_types_key: Class
signature_text: public static java.util.List load(Class<T> spiCls) throws SPIConfigurationException
comment:
加载SPI实例列表
@param `spiCls` spi接口类，接口可选择标注kd.sdk.annotation.SdkSPI
@param `<T>` 接口类型
@return SPI实例列表，若spiCls标注了`SdkSPI`且设置`single=true`，则与loadSingle同


class_name: kd.sdk.spi.ServiceLoader
method_name: loadSingle
param_types_key: Class
signature_text: public static Object loadSingle(Class<T> spiCls) throws SPIConfigurationException
comment:
只允许加载唯一的实例(非单例)
@param `spiCls` spi接口类
@param `<T>` 接口类型
@return spi实例
@throws `SPIConfigurationException` 如果非唯一(实例数为0或者>1)则抛此异常


class_name: kd.sdk.swc.hcdm.business.extpoint.adjapprbill.business.mservice.helper.AdjConfirmBillServiceHelper
method_name: downloadAdjConfirmBill
param_types_key: Map
signature_text:
public static java.util.Map<String, Object> downloadAdjConfirmBill(java.util.Map<String, Object> parameterMap)

comment:
下载调薪确认单
参数名称 参数 参数类型 是否必传
打印模板id printTemplateId String 否
是否需要填充数据 isFillDataFlag boolean 否
调薪确认人员对应主实体信息 dataRowMainMap Map<调薪确认人员id-String类型, Map<属性标识-String类型, 值>> 否
调薪确认人员对应项目信息 dataRowItemMap Map <调薪确认人员id-String类型, List< Map<属性标识-String类型, 值>>> 否
调薪确认模板对应调薪确认人员信息 adjConfirmTplAndPersonMap Map<调薪确认人员id-String类型, List<调薪确认人员id-Long类型>> 是
@param `parameterMap` <String,` Object> 参数集合,parameterMap的Key参数列表如下:
@return Map {success=true, message=下载成功。, url=http:XXX}


class_name: kd.sdk.swc.hcdm.business.extpoint.adjapprbill.business.mservice.helper.AdjConfirmBillServiceHelper
method_name: printAdjConfirmBill
param_types_key: Map
signature_text:
public static java.util.Map<String, Object> printAdjConfirmBill(java.util.Map<String, Object> parameterMap)

comment:
打印调薪确认单
参数名称 参数 参数类型 是否必传
打印机id printerId String 是
打印模板id printTemplateId String 否
是否需要填充数据 isFillDataFlag boolean 否
调薪确认人员对应主实体信息 dataRowMainMap Map<调薪确认人员id-String类型, Map<属性标识-String类型, 值>> 否
调薪确认人员对应项目信息 dataRowItemMap Map <调薪确认人员id-String类型, List< Map<属性标识-String类型, 值>>> 否
调薪确认模板对应调薪确认人员信息 adjConfirmTplAndPersonMap Map<调薪确认人员id-String类型, List<调薪确认人员id-Long类型>> 是
@param `parameterMap` <String,` Object> 参数集合,parameterMap的Key参数列表如下:
@return Map {success=true, message=打印成功，请去打印机查看。, url=""}


class_name: kd.sdk.swc.hcdm.business.extpoint.adjapprbill.business.mservice.helper.AdjConfirmTplServiceHelper
method_name: getAdjConfirmTplInfos
param_types_key: List,QFilter[],String
signature_text:
public static java.util.List<DynamicObject> getAdjConfirmTplInfos(java.util.List<String> adjConfirmTplQueryFields, QFilter[] qFilters, String orderBys)

comment:
查询调薪确认模板相关信息集合
@param `adjConfirmTplQueryFields` 调薪确认模板字段属性集合
@param `qFilters` 过滤器
@param `orderBys` 排序
@return 调薪确认模板集合


class_name: kd.sdk.swc.hcdm.business.extpoint.adjapprbill.event.AdjConfirmPrintEvent
method_name: setDataRowMap
param_types_key: Map
signature_text: public void setDataRowMap(java.util.Map<Long, java.util.Map<String, String>> dataRowMap)
comment:
设置数据源信息
@param `dataRowMap` 数据信息 Map<调薪确认人员id,Map<属性,value>> 属性包括personname：姓名，personnumber：工号， company:公司， depempadminorg：挂靠行政组织，job：职位，phone：电话，peremail：个人电子邮箱，joblevel：职级，jobgrade：职等,feedbackstatus:设置调薪反馈状态, confirmtext:调薪确认模板配置里正文配置调薪确认内容


class_name: kd.sdk.swc.hcdm.business.extpoint.adjapprbill.event.AdjConfirmPrintEvent
method_name: setParameterMap
param_types_key: Map
signature_text: public void setParameterMap(java.util.Map<String, Object> parameterMap)
comment:
设置参数信息
@param `parameterMap` 参数信息 map<参数key,参数类型> 参数key1: "queryResultParam" ,value: Map> dataRowMap就是AdjConfirmPrintEvent#dataRowMap数据源属性信息 参数key2: "adjConfirmPersonIds" ,value: List 当前处理调薪确认人员id集合


class_name: kd.sdk.swc.hcdm.business.extpoint.adjapprbill.event.BeforeSynDecRecordEvent
method_name: <init>
param_types_key: List,List
signature_text:
public BeforeSynDecRecordEvent(java.util.List<DynamicObject> adjApprPersonList, java.util.List<kd.sdk.swc.hcdm.business.extpoint.adjfile.DecAdjSalaryEntity> decAdjSalaryEntityList)


class_name: kd.sdk.swc.hcdm.business.extpoint.adjapprbill.event.BeforeSynDecRecordEvent
method_name: getDecAdjSalaryEntityList
signature_text:
public java.util.List<kd.sdk.swc.hcdm.business.extpoint.adjfile.DecAdjSalaryEntity> getDecAdjSalaryEntityList()


class_name: kd.sdk.swc.hcdm.business.extpoint.adjapprbill.event.BeforeSynDecRecordEvent
method_name: setDecAdjSalaryEntityList
param_types_key: List
signature_text:
setDecAdjSalaryEntityList(java.util.List<kd.sdk.swc.hcdm.business.extpoint.adjfile.DecAdjSalaryEntity> decAdjSalaryEntityList)


class_name: kd.sdk.swc.hcdm.business.extpoint.adjapprbill.IAdjConfirmPrintExtPlugin
method_name: modifyDataRowValue
param_types_key: AdjConfirmPrintEvent
signature_text: void modifyDataRowValue(AdjConfirmPrintEvent event)
comment:
修改调薪确认模板下载打印数据信息
import kd.bos.orm.util.CollectionUtils;
import kd.sdk.swc.hcdm.business.extpoint.adjapprbill.IAdjConfirmPrintExtPlugin;
import kd.sdk.swc.hcdm.business.extpoint.adjapprbill.event.AdjConfirmPrintEvent;
import kd.swc.hsbp.common.constants.SWCBaseConstants;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
publicclassAdjConfirmPrintExtPluginDemoImplimplementsIAdjConfirmPrintExtPlugin {
publicvoidmodifyDataRowValue(AdjConfirmPrintEvent arg) {
MapparameterMap= arg.getParameterMap();
if (CollectionUtils.isEmpty(parameterMap)) {
return;
}
Map> dataRowMap = newHashMap<>(SWCBaseConstants.INITCAPACITY_HASHMAP);
MappersonDataRowMap=newHashMap<>(SWCBaseConstants.INITCAPACITY_HASHMAP);
// Map> 调薪确认模板对应调薪确认人员信息ObjectadjConfirmTplAndPersonMapObj= parameterMap.get("adjConfirmPersonIds");
if (adjConfirmTplAndPersonMapObj != null) {
ListadjConfirmPersonIds= (List)adjConfirmTplAndPersonMapObj;
personDataRowMap.put("personname", "zhangsan");
personDataRowMap.put("personnumber", "zhangsan_001");
personDataRowMap.put("company", "company_001");
personDataRowMap.put("depempadminorg", "dept_001");
personDataRowMap.put("phone", "12345678999");
for (Long adjConfirmPersonId : adjConfirmPersonIds) {
dataRowMap.put(adjConfirmPersonId, personDataRowMap);
}
arg.setDataRowMap(dataRowMap);
}
}
}
@param `event` 调薪确认打印事件


class_name: kd.sdk.swc.hcdm.business.extpoint.adjapprbill.IAdjConfirmPrintExtService
method_name: getLastPrintContent
param_types_key: AdjConfirmPrintEvent
signature_text: default void getLastPrintContent(AdjConfirmPrintEvent event)
comment:
修改调薪确认模板下载打印调薪内容
import java.util.HashMap;
import java.util.Map;
import kd.bos.dataentity.resource.ResManager;
import kd.sdk.swc.hcdm.business.extpoint.adjapprbill.IAdjConfirmPrintExtService;
import kd.sdk.swc.hcdm.business.extpoint.adjapprbill.event.AdjConfirmPrintEvent;
import kd.swc.hsbp.common.constants.SWCBaseConstants;
publicclassAdjConfirmPrintExtServiceDemoImplimplementsIAdjConfirmPrintExtService {
publicvoidgetLastPrintContent(AdjConfirmPrintEvent event) {
// 调薪确认模板存储的文本内容 对{}里面的内容进行替换即可//{person.name}（{person.number}）你好，感谢您对公司的辛勤付出，本次调薪结果已出炉，当前[{standarditem.name}薪酬为{currentsalary}，本次调薪幅度为{actualrange}%，调薪金额为{actualamount}，最终薪酬为{finalamount}]，请及时进行确认！Stringmessage= ResManager.loadKDString("zhangsan（zhangsan_001）你好，感谢您对公司的辛勤付出，本次调薪结果已出炉，当前[基本工资薪酬为5000，本次调薪幅度为10%，调薪金额为500，最终薪酬为5500]，请及时进行确认！","AdjConfirmPrintExtServiceDemoImpl_1", "swc-hsba-formplugin");
MaptextContentMap=newHashMap<>(SWCBaseConstants.INITCAPACITY_HASHMAP);
// event参数里有告诉当前处理人员id
textContentMap.put(1682625424628175872L,message);
// 设置结果信息
event.setTextContentMap(textContentMap);
}
}
@param `event` 调薪确认打印事件


class_name: kd.sdk.swc.hcdm.business.extpoint.adjapprbill.IAdjConfirmPrintExtService
method_name: setDownLoadFileName
param_types_key: AdjConfirmPrintEvent
signature_text: default void setDownLoadFileName(AdjConfirmPrintEvent event)
comment:
修改调薪确认模板下载打印文件名
import kd.bos.dataentity.resource.ResManager;
import kd.sdk.swc.hcdm.business.extpoint.adjapprbill.IAdjConfirmPrintExtService;
import kd.sdk.swc.hcdm.business.extpoint.adjapprbill.event.AdjConfirmPrintEvent;
publicclassAdjConfirmPrintExtServiceDemoImplimplementsIAdjConfirmPrintExtService {
publicvoidsetDownLoadFileName(AdjConfirmPrintEvent arg) {
StringfileName= ResManager.loadKDString("调薪确认单下载名称通过埋点设置.pdf", "AdjConfirmPrintExtServiceDemoImpl_4", "swc-hsba-formplugin");
// 设置结果信息
arg.setFileName(fileName);
}
}
@param `event` 调薪确认打印事件


class_name: kd.sdk.swc.hcdm.business.extpoint.adjapprbill.IDecAdjApprExtPlugin
method_name: onAfterF7PersonSelect
param_types_key: AfterF7PersonSelectEvent
comment: 添加人员后设置明细事件 @param `event`
signature_text:
default void onAfterF7PersonSelect(kd.sdk.swc.hcdm.business.extpoint.adjapprbill.event.AfterF7PersonSelectEvent event)


class_name: kd.sdk.swc.hcdm.business.extpoint.adjapprbill.IDecAdjApprExtPlugin
method_name: onGetAdjConfirmSmsSendNum
param_types_key: OnGetAdjConfirmSmsSendNumEvent
comment: 获取调薪确认催办时可发送短信的总次数 @param `event`
signature_text:
default void onGetAdjConfirmSmsSendNum(kd.sdk.swc.hcdm.business.extpoint.adjapprbill.event.OnGetAdjConfirmSmsSendNumEvent event)


class_name: kd.sdk.swc.hcdm.business.extpoint.adjapprbill.IDecAdjApprExtPlugin
method_name: onGetExtensionCfg
param_types_key: OnGetExtensionCfgEvent
comment: 获取单据扩展配置 @param `event`
signature_text:
default void onGetExtensionCfg(kd.sdk.swc.hcdm.business.extpoint.adjapprbill.OnGetExtensionCfgEvent event)


class_name: kd.sdk.swc.hcdm.business.extpoint.adjapprbill.IDecAdjApprExtPlugin
method_name: onImportValidate
param_types_key: ImportValidateEvent
comment: 引入时字段校验事件 @param `event`
signature_text:
default void onImportValidate(kd.sdk.swc.hcdm.business.extpoint.adjapprbill.event.ImportValidateEvent event)


class_name: kd.sdk.swc.hcdm.business.extpoint.adjapprbill.IDecAdjApprExtPlugin
method_name: onImportWriteEntry
param_types_key: ImportWriteEntryEvent
comment: 引入时写入明细事件 @param `event`
signature_text:
default void onImportWriteEntry(kd.sdk.swc.hcdm.business.extpoint.adjapprbill.event.ImportWriteEntryEvent event)


class_name: kd.sdk.swc.hcdm.business.extpoint.adjsalsyn.IAdjSalSynRecordExtService
method_name: extDealAfterCreate
param_types_key: AdjSalSynRecordEvent
comment: 对定调薪同步记录在创建后进行增强 @param `event` 定调薪同步记录事件
signature_text:
default void extDealAfterCreate(kd.sdk.swc.hcdm.business.extpoint.adjsalsyn.event.AdjSalSynRecordEvent event)


class_name: kd.sdk.swc.hcdm.business.extpoint.candsetsalapply.event.AddSyncFieldsEvent
method_name: <init>
param_types_key: Map,DynamicObject,DynamicObject
signature_text:
public AddSyncFieldsEvent(java.util.Map<String, Object> paraMap, DynamicObject applyDyn, DynamicObject personDyn)


class_name: kd.sdk.swc.hcdm.business.extpoint.person.IHCDMPersonExtService
method_name: modifyPersonNumber
param_types_key: Map
signature_text: default void modifyPersonNumber(java.util.Map<String, Object> param)
comment:
计薪人员修改工号服务
publicclassHCDMPersonExtDemoServiceimplementsIHCDMPersonExtService {
publicvoidmodifyPersonNumber(Map<String, Object> param) {
List<Map<String, Object>> datas = (List<Map<String, Object>>) param.get("data");
//旧工号集合-备查
Set<String> oriNumbers = newHashSet<>(SWCBaseConstants.INITCAPACITY_HSAHSET);
//KEY:旧工号,VALUE=新工号
Map<String, String> numberMap = newHashMap<>(SWCBaseConstants.INITCAPACITY_HASHMAP);
for (Map<String, Object> data : datas) {
StringoriNumber= String.valueOf(data.get("oriNumber"));
StringnewNumber= String.valueOf(data.get("newNumber"));
oriNumbers.add(oriNumber);
numberMap.put(oriNumber, newNumber);
}
//测试修改薪酬管理扩展案例测试的工号
dealModifyPersonNumberForEntityRel(param, oriNumbers, numberMap, "kdtest_hcdm_extdemotest", "number", "number");
//无返回值，若是失败直接抛异常if (param.containsKey("testerrorhcdm")) {
thrownewRuntimeException("This deal fail hcdm!!!");
}
}
private DynamicObject[] dealModifyPersonNumberForEntityRel(Map<String, Object> param, Set<String> oriNumbers, Map<String, String> numberMap, String entityNumber, String propertyName, String relPropertyName) {
QFilterqFilter=newQFilter(relPropertyName, QFilter.in, oriNumbers);
SWCDataServiceHelperempHelper=newSWCDataServiceHelper(entityNumber);
DynamicObject[] dataDys = empHelper.query(SWCHisBaseDataHelper.getSelectProperties(entityNumber), newQFilter[]{qFilter});
for (DynamicObject empDy : dataDys) {
//待更新的字段值StringpropertyVal= empDy.getString(propertyName);
//原工号StringoriNumber= empDy.getString(relPropertyName);
//新工号StringnewNumber= numberMap.get(oriNumber);
//旧工号字符串替换为新字符串, 此处认为原工号是精确的
empDy.set(propertyName, propertyVal.replace(oriNumber, newNumber));
}
empHelper.update(dataDys);
Map<String, Object> resultMap = (Map<String, Object>) param.get("dealInfo");
resultMap.put(entityNumber + "#" + propertyName, dataDys.length);
return dataDys;
}
}
@param `param` 待修改的工号信息，{"data": [{"oriNumber":"1234567-R", "newNumber":"1234567"}]}
@return 无返回值，若是失败直接抛异常


class_name: kd.sdk.swc.hcdm.business.extpoint.salarystd.event.CandContrastPropLoadEvent
method_name: setPropCfg
param_types_key: List
signature_text:
public void setPropCfg(java.util.List<kd.sdk.swc.hcdm.common.stdtab.ContrastPropConfigEntity> propCfg)


class_name: kd.sdk.swc.hcdm.business.extpoint.salarystd.event.ContrastPropLoadEvent
method_name: setPersonQueryParams
param_types_key: List
signature_text:
public void setPersonQueryParams(java.util.List<kd.sdk.swc.hcdm.common.adj.PersonQueryParam> personQueryParams)


class_name: kd.sdk.swc.hcdm.business.extpoint.salarystd.event.ContrastPropLoadEvent
method_name: setPropCfgList
param_types_key: List
signature_text:
public void setPropCfgList(java.util.List<kd.sdk.swc.hcdm.common.stdtab.ContrastPropConfigEntity> propCfgList)


class_name: kd.sdk.swc.hcdm.business.extpoint.salarystd.event.OnGetFieldColumnWidthEvent
method_name: setCalculationMethod
param_types_key: CalculationMethodEnum
signature_text:
public void setCalculationMethod(kd.sdk.swc.hcdm.common.stdtab.CalculationMethodEnum calculationMethod)


class_name: kd.sdk.swc.hcdm.business.extpoint.salarystd.event.OnGetIntervalPropEvent
method_name: getOriginalIntervalPropList
signature_text:
public java.util.List<kd.sdk.swc.hcdm.common.stdtab.IntervalPropEntity> getOriginalIntervalPropList()


class_name: kd.sdk.swc.hcdm.business.extpoint.salarystd.event.OnGetIntervalPropEvent
method_name: setIntervalPropList
param_types_key: List
signature_text:
public void setIntervalPropList(java.util.List<kd.sdk.swc.hcdm.common.stdtab.IntervalPropEntity> intervalPropList)


class_name: kd.sdk.swc.hcdm.business.extpoint.salarystd.event.OnGetIntervalPropEvent
method_name: setOriginalIntervalPropList
param_types_key: List
signature_text:
public void setOriginalIntervalPropList(java.util.List<kd.sdk.swc.hcdm.common.stdtab.IntervalPropEntity> originalIntervalPropList)


class_name: kd.sdk.swc.hcdm.business.extpoint.salarystd.event.OnGetItemRankEvent
method_name: setRankEntities
param_types_key: List
signature_text:
public void setRankEntities(java.util.List<kd.sdk.swc.hcdm.common.stdtab.SalaryRankEntity> rankEntities)


class_name: kd.sdk.swc.hcdm.business.extpoint.salarystd.event.OnGetItemRankEvent
method_name: setReturnDisplayRankList
param_types_key: List
signature_text:
public void setReturnDisplayRankList(java.util.List<kd.sdk.swc.hcdm.common.stdtab.SalaryRankEntity> returnDisplayRankList)


class_name: kd.sdk.swc.hcdm.business.extpoint.salarystd.event.OnGetPreviewStyleEvent
method_name: setDefaultPrivewStyle
param_types_key: PreviewStyleEnum
signature_text:
public void setDefaultPrivewStyle(kd.sdk.swc.hcdm.common.stdtab.PreviewStyleEnum defaultPrivewStyle)


class_name: kd.sdk.swc.hcdm.business.extpoint.salarystd.event.OnGetPreviewStyleEvent
method_name: setNeedHiddenPrivewStyleSet
param_types_key: Set
signature_text:
setNeedHiddenPrivewStyleSet(java.util.Set<kd.sdk.swc.hcdm.common.stdtab.PreviewStyleEnum> needHiddenPrivewStyleSet)


class_name: kd.sdk.swc.hcdm.business.mservice.helper.AdjFileInfoServiceHelper
method_name: abandonAdjFile
param_types_key: String,boolean,List
signature_text:
public static java.util.Map<String, Object> abandonAdjFile(String uuid, boolean endOperate, java.util.List<java.util.Map<String, Object>> paramsList)

comment:
@param `uuid` 如果进行了分批调用，相同批次的数据uuid维持一致。
@param `endOperate` 是否完成全部传输
@param `paramsList` Map整体代表一个要废弃的定调薪档案对象


class_name: kd.sdk.swc.hcdm.business.mservice.helper.AdjFileInfoServiceHelper
method_name: getMaxDateByFileAndItemId
param_types_key: Map
comment: 获取对应档案下项目的最大日期 调薪申请单保存时需要大于上一次项目的可用版本的最大生效日期 业务使用场景：保证项目的版本切割往后切割。 @param `fileItemIdMap`
signature_text:
public static java.util.Map<Long, java.util.Map<Long, java.util.List<Object>>> getMaxDateByFileAndItemId(java.util.Map<Long, java.util.Set<Long>> fileItemIdMap)


class_name: kd.sdk.swc.hcdm.business.mservice.helper.AdjFileInfoServiceHelper
method_name: getMaxDateByFileBOId
param_types_key: Set
signature_text:
public static java.util.Map<Long, java.util.List<Object>> getMaxDateByFileBOId(java.util.Set<Long> fileBOIds)

comment:
定薪类型时，根据档案id获取该档案下最大的日期 判断逻辑：1. 该档案下若没有定调薪信息且档案基本信息没有发生禁用过时，则返回系统最早生效日期 2.档案下有定调薪信息，档案生效中版本之前发生过禁用版本，则返回档案失效日期+1 和定调薪信息中的最大可用版本生效日期的最大值 业务使用场景：保证项目的版本切割往后切割。如：当发起定薪类型的定薪申请单时，项目的生效日期要大于该档案下的最大生效日期
@param `fileBOIds` 档案BOID集合


class_name: kd.sdk.swc.hcdm.business.mservice.helper.AdjFileInfoServiceHelper
method_name: saveAdjFile
param_types_key: String,boolean,List
signature_text:
public static java.util.Map<String, Object> saveAdjFile(String uuid, boolean endOperate, java.util.List<java.util.Map<String, Object>> paramsList)

comment:
生成或更新定调薪档案（包括定调薪信息），定调薪数据信息同步等
@param `paramsList` 定调薪档案信息集合
@return {data:[{档案信息}],"success"：true/false，"message":消息提示}


class_name: kd.sdk.swc.hcdm.business.mservice.helper.AdjFileInfoServiceHelper
method_name: saveBatchDecAdjData
param_types_key: String,boolean,List
signature_text:
public static java.util.Map<String, Object> saveBatchDecAdjData(String uuid, boolean endOperate, java.util.List<java.util.Map<String, Object>> paramsList)

comment:
按照入参指定切割规则进行定调薪信息数据的版本切割，入参为项目维度 此接口适用于单个单据下的大数据量要归档定调薪信息
@param `uuid` 如果进行了分批调用，相同批次的数据uuid维持一致。
@param `endOperate` 是否完成全部传输
@param `paramsList` 定调薪项目对象


class_name: kd.sdk.swc.hcdm.business.mservice.helper.AdjFileInfoServiceHelper
method_name: saveBatchDecAdjRecord
param_types_key: String,boolean,List
signature_text:
public static java.util.Map<String, Object> saveBatchDecAdjRecord(String uuid, boolean endOperate, java.util.List<java.util.Map<String, Object>> paramsList)

comment:
定调薪记录原子化接口，对入参项目进行版本变更或版本切断操作，适用于大数据场景下的分批操作
@param `uuid` 如果进行了分批调用，相同批次的数据uuid维持一致。
@param `endOperate` 是否完成全部传输，是：结束事件并将定调薪数据进行推送算薪，否：生成同步批次，未推送算薪
@param `paramsList` Map整体代表项目维度入参


class_name: kd.sdk.swc.hcdm.business.mservice.helper.AdjFileInfoServiceHelper
method_name: saveDecAdjData
param_types_key: List
signature_text:
public static java.util.Map<String, Object> saveDecAdjData(java.util.List<java.util.Map<String, Object>> paramsList)

comment:
按照入参指定切割规则进行定调薪信息数据的版本切割，入参为项目维度
@param `paramsList` 项目维度入参集合
@return {data:[{项目信息}],"success"：true/false，"message":消息提示}


class_name: kd.sdk.swc.hcdm.business.mservice.helper.AdjFileInfoServiceHelper
method_name: saveDecAdjRecord
param_types_key: List
comment: 定调薪记录原子化接口，对入参项目进行版本变更或版本切断操作 @param `paramsList` 项目数据集
signature_text:
public static java.util.Map<String, Object> saveDecAdjRecord(java.util.List<java.util.Map<String, Object>> paramsList)


class_name: kd.sdk.swc.hcdm.business.mservice.helper.AdjFileInfoServiceHelper
method_name: unableAdjFile
param_types_key: String,boolean,List
signature_text:
public static java.util.Map<String, Object> unableAdjFile(String uuid, boolean endOperate, java.util.List<java.util.Map<String, Object>> paramsList)

comment:
@param `uuid` 如果进行了分批调用，相同批次的数据uuid维持一致。
@param `endOperate` 是否完成全部传输
@param `paramsList` Map整体代表一个要失效的定调薪档案对象


class_name: kd.sdk.swc.hcdm.business.mservice.helper.SalaryStdServiceHelper
method_name: getContrastProp
param_types_key: List
comment: 根据标准表id获取对照属性(包含应用范围) @param `stdTableIdList` 标准表id集合 @return key:标准表id,value: 对照属性实体
signature_text:
public static java.util.Map<Long, java.util.List<kd.sdk.swc.hcdm.common.stdtab.ContrastPropResult>> getContrastProp(java.util.List<Long> stdTableIdList)


class_name: kd.sdk.swc.hcdm.business.mservice.helper.SalaryStdServiceHelper
method_name: matchTableRange
param_types_key: List
comment: 根据标准表和对照属性及金额匹配薪等薪档范围 @param `params` @return key:uniqueCode,value:标准表匹配薪等薪档结果实体
signature_text:
public static java.util.Map<String, kd.sdk.swc.hcdm.common.stdtab.StdSimpleMatchResult> matchTableRange(java.util.List<java.util.Map<String, Object>> params)


class_name: kd.sdk.swc.hcdm.service.spi.AdjFileInfoService
method_name: abandonAdjFile
param_types_key: String,boolean,List
signature_text:
default java.util.Map<String, Object> abandonAdjFile(String uuid, boolean endOperate, java.util.List<java.util.Map<String, Object>> paramsList)

comment:
@param `uuid` 如果进行了分批调用，相同批次的数据uuid维持一致。
@param `endOperate` 是否完成全部传输
@param `paramsList` Map整体代表一个要废弃的定调薪档案对象


class_name: kd.sdk.swc.hcdm.service.spi.AdjFileInfoService
method_name: getDecAdjInfos
param_types_key: List,QFilter[],String,int,int
signature_text:
default DynamicObjectCollection getDecAdjInfos(java.util.List<String> selectProperties, QFilter[] qFilters, String orderBys, int start, int limit)

comment:
按条件查询定调薪记录相关信息集合
@param `selectProperties` 查询属性，基于查询配置hcdm_salaryadjrecordquery
@param `qFilters` 查询过滤条件，基于查询配置hcdm_salaryadjrecordquery，传入相关查询条件
@param `orderBys` 排序条件，基于查询配置hcdm_salaryadjrecordquery，传入相关排序字段
@param `start` 分页参数，开始行数
@param `limit` 分页参数，每页行数，传入-1时不分页
@return DynamicObjectCollection


class_name: kd.sdk.swc.hcdm.service.spi.AdjFileInfoService
method_name: saveAdjFile
param_types_key: String,boolean,List
signature_text:
default java.util.Map<String, Object> saveAdjFile(String uuid, boolean endOperate, java.util.List<java.util.Map<String, Object>> paramsList)

comment:
生成或更新定调薪档案（包括定调薪信息）
@param `paramsList` 定调薪档案信息集合
@return {data:[{档案信息}],"success"：true/false，"message":消息提示}


class_name: kd.sdk.swc.hcdm.service.spi.AdjFileInfoService
method_name: saveBatchDecAdjData
param_types_key: String,boolean,List
comment: 定调薪信息保存变更接口（可跨BO禁用），入参为定调薪信息项目维度
signature_text:
saveBatchDecAdjData(String uuid, boolean endOperate, java.util.List<java.util.Map<String, Object>> paramsList)


class_name: kd.sdk.swc.hcdm.service.spi.AdjFileInfoService
method_name: saveBatchDecAdjRecord
param_types_key: String,boolean,List
signature_text:
default java.util.Map<String, Object> saveBatchDecAdjRecord(String uuid, boolean endOperate, java.util.List<java.util.Map<String, Object>> paramsList)

comment:
定调薪记录原子化接口，对入参项目进行版本变更或版本切断操作，适用于大数据场景下的分批操作
@param `uuid` 如果进行了分批调用，相同批次的数据uuid维持一致。
@param `endOperate` 是否完成全部传输，是：结束事件并将定调薪数据进行推送算薪，否：生成同步批次，未推送算薪
@param `paramsList` Map整体代表项目维度入参


class_name: kd.sdk.swc.hcdm.service.spi.AdjFileInfoService
method_name: saveDecAdjRecord
param_types_key: List
comment: 定调薪记录原子化接口，对入参项目进行版本变更或版本切断操作 @param `paramsList` 项目数据集
signature_text:
default java.util.Map<String, Object> saveDecAdjRecord(java.util.List<java.util.Map<String, Object>> paramsList)


class_name: kd.sdk.swc.hcdm.service.spi.AdjFileInfoService
method_name: unableAdjFile
param_types_key: String,boolean,List
signature_text:
default java.util.Map<String, Object> unableAdjFile(String uuid, boolean endOperate, java.util.List<java.util.Map<String, Object>> paramsList)

comment:
@param `uuid` 如果进行了分批调用，相同批次的数据uuid维持一致。
@param `endOperate` 是否完成全部传输
@param `paramsList` Map整体代表一个要失效的定调薪档案对象


class_name: kd.sdk.swc.hcdm.service.spi.SalaryStdQueryService
method_name: batchMatchStdTableWithDepEmp
param_types_key: List
comment: 根据标准表+对照属性值匹配薪等薪档范围（有薪酬体系、薪酬结构） @param `params`
signature_text:
default java.util.List<kd.sdk.swc.hcdm.common.stdtab.SalaryStdMatchResultNew> batchMatchStdTableWithDepEmp(java.util.List<kd.sdk.swc.hcdm.common.stdtab.StdMatchParamWithDepEmp> params)


class_name: kd.sdk.swc.hcdm.service.spi.SalaryStdQueryService
method_name: getContrastProp
param_types_key: List
comment: 获取标准表下的对照属性和值 @param `stdTableIdList` 标准表id集合 @return key:标准表id,value: 对照属性实体
signature_text:
default java.util.Map<Long, java.util.List<kd.sdk.swc.hcdm.common.stdtab.ContrastPropResult>> getContrastProp(java.util.List<Long> stdTableIdList)


class_name: kd.sdk.swc.hcdm.service.spi.SalaryStdQueryService
method_name: getGradeInfo
param_types_key: Collection
signature_text:
default java.util.Map<Long, java.util.List<java.util.Map<String, Object>>> getGradeInfo(java.util.Collection<Long> stdTableIds)

comment:
获取标准表的薪等信息（名称、id、顺序号） 获取标准表的薪等信息，返回标准表中薪等的id、名称、薪等数据标识、顺序号信息，按顺序号递增
@param `stdTableIds` 标准表id
@return 薪等信息列表 key：stdTableId，value：薪等信息（包含id、名称、gradeIdentity、序号）


class_name: kd.sdk.swc.hcdm.service.spi.SalaryStdQueryService
method_name: getRankInfo
param_types_key: Collection
signature_text:
default java.util.Map<Long, java.util.List<java.util.Map<String, Object>>> getRankInfo(java.util.Collection<Long> stdTableIds)

comment:
获取标准表的薪档信息（名称、id、顺序号） 获取标准表的薪档信息，返回标准表中薪档的id、名称、薪档数据标识、顺序号信息，按顺序号递增
@param `stdTableIds` 标准表id
@return 薪档信息列表 key：stdTableId，value：薪档信息（包含id、名称、rankIdentity、序号）


class_name: kd.sdk.swc.hcdm.service.spi.SalaryStdQueryService
method_name: getSalaryItemUseRankFlag
param_types_key: Map
signature_text:
default java.util.Map<Long, java.util.Map<Long, Boolean>> getSalaryItemUseRankFlag(java.util.Map<Long, java.util.List<Long>> stdItemMap)

comment:
根据标准表+定调薪项目获取是否启用薪档 获取标准表中每个项目是否启用了薪档,在薪点表中，会对部分项目启用薪档，部分不启用薪档，宽带表中所有项目都是启用薪档的。 业务上会根据此配置控制前端交互是否展示薪档，该接口返回每个项目是否启用薪档的标识
@param `stdItemMap` key:标准表id，value：定调薪项目id集合
@return 启用标识， key：标准表id，subKey：定调薪项目id，subValue：是否启用（False代表未启用）


class_name: kd.sdk.swc.hcdm.service.spi.SalaryStdQueryService
method_name: getStdRangeNameByRangeId
param_types_key: List
signature_text:
default java.util.Map<String, String> getStdRangeNameByRangeId(java.util.List<StdRangeNameFormatParam> params)

comment:
根据薪等薪档范围ID获取薪等薪档范围名称 获取标准表的薪等薪档范围的格式化名称（如 1A~2B 这样的文本串）,在标准匹配接口中拿到的薪等薪档范围，如果需要进行格式化显示名称，需要调用该接口
@param `params`
@return key：unionId，value：薪等薪档范围名称（比如1A~2B）


class_name: kd.sdk.swc.hcdm.service.spi.SalaryStdQueryService
method_name: getStdTableData
param_types_key: List
signature_text:
default java.util.Map<String, java.util.Map<Long, java.util.List<kd.sdk.swc.hcdm.common.stdtab.SalaryStdDataEntity>>> getStdTableData(java.util.List<StdTableDataQueryParam> tableDataQueryParams)

comment:
根据标准表+薪等查金额、薪点数 获取标准表的第二步表格中指定项目中的表格数据，用于业务上自行查询金额或查询薪等薪档位置的场景，考虑到会存在大数据量问题，采用的offset机制按需返回需要的表格数据
@param `tableDataQueryParams` 批量查询参数
@return 标准表设置的表格数据 key：unionId，subKey：薪等id，subValue：当前薪等下所有档的数据（按薪档顺序从低到高，未启用薪档时只有一条数据，如果某个档没设置数据，则size会小于薪档数）


class_name: kd.sdk.swc.hcdm.service.spi.SalaryStdQueryService
method_name: matchRangeWithStdTableId
param_types_key: List
signature_text:
default java.util.Map<String, SimpleStdRangeMatchResult> matchRangeWithStdTableId(java.util.List<SimpleStdRangeMatchParam> matchParams)

comment:
根据标准表+对照属性值匹配薪等薪档范围（无薪酬体系、薪酬结构） 基于标准表第三步的对照关系设置，用传入的对照属性值进行匹配，将匹配行的薪等薪档范围合并后返回
@param `matchParams` 批量匹配参数
@return 匹配结果 key：unionId ，value：匹配结果


class_name: kd.sdk.swc.hcdm.service.spi.SalaryStdQueryService
method_name: matchTableRange
param_types_key: List
comment: 根据标准表和对照属性及金额匹配薪等薪档范围 @param `params` @return key:uniqueCode,value:标准表匹配薪等薪档结果实体
signature_text:
default java.util.Map<String, kd.sdk.swc.hcdm.common.stdtab.StdSimpleMatchResult> matchTableRange(java.util.List<kd.sdk.swc.hcdm.common.stdtab.SimpleMatchParam> params)


class_name: kd.sdk.swc.hcdm.service.spi.SalaryStdQueryService
method_name: matchTableRangeBySalaryCountOrAmount
param_types_key: List
comment: 通过薪点或者金额查询所在标准表的薪等薪档位置 @param `params`
signature_text:
default java.util.List<kd.sdk.swc.hcdm.common.stdtab.SalaryCountAmountMatchResult> matchTableRangeBySalaryCountOrAmount(java.util.List<kd.sdk.swc.hcdm.common.stdtab.SalaryCountAmountMatchParam> params)


class_name: kd.sdk.swc.hcdm.service.spi.SalaryStdQueryService
method_name: queryAmountAndSalaryCount
param_types_key: List
comment: 根据薪等+薪档查询对应在标准表中的金额、薪点数 @param `params`
signature_text:
default java.util.List<kd.sdk.swc.hcdm.common.stdtab.StdAmountAndSalaryCountQueryResult> queryAmountAndSalaryCount(java.util.List<kd.sdk.swc.hcdm.common.stdtab.StdAmountQueryParam> params)


class_name: kd.sdk.swc.hpdi.business.extpoint.bizdatabill.IBizDataBillEntryExtService
method_name: afterAddFieldContainer
param_types_key: AfterAddFieldContainerEvent
signature_text: default void afterAddFieldContainer(AfterAddFieldContainerEvent args)
comment:
在分录容器构造完成之后，可在此增加自定义扩展分录列
publicclassBizDataBillEntryDemoExtServiceimplementsIBizDataBillEntryExtService {
//container参数-字段标识privatestaticfinalStringPARAM_KEY="key";
//container参数-字段名privatestaticfinalStringPARAM_NAME="name";
//container参数-是否锁定privatestaticfinalStringPARAM_LOCK="lock";
//container参数-宽度privatestaticfinalStringPARAM_WIDTH="width";
//container参数-对齐方式privatestaticfinalStringPARAM_TEXTALIGN="textAlign";
//container参数-是否必输privatestaticfinalStringPARAM_MUSTINPUT="mustInput";
//container参数-基础资料展示详情privatestaticfinalStringPARAM_VIEWDETAIL="viewDetail";
//container参数-小数位限制privatestaticfinalStringPARAM_SCALELIMIT="scaleLimit";
//container参数-最小日期privatestaticfinalStringPARAM_MINDATE="minDate";
//container参数-最大日期privatestaticfinalStringPARAM_MAXDATE="maxDate";
//container参数-基础资料标识privatestaticfinalStringPARAM_BASEENTITYID="baseEntityId";
//container参数-基础资料-显示属性privatestaticfinalStringPARAM_DISPLAYPROP="displayProp";
//container参数-下拉列表项privatestaticfinalStringPARAM_PAIRS="pairs";
//container参数-数据类型privatestaticfinalStringPARAM_DATATYPE="datatype";
//值类型：数字privatestaticfinalStringKEY_FIELDNUM="1010_S";
//值类型：金额privatestaticfinalStringKEY_FIELDAMOUNT="1020_S";
//值类型：文本privatestaticfinalStringKEY_FIELDTEXT="1030_S";
//值类型：日期privatestaticfinalStringKEY_FIELDDATE="1050_S";
//类型：基础数据privatestaticfinalStringKEY_FIELDBASEDATA="BASEDATA";
//类型：下拉列表privatestaticfinalStringKEY_FIELDCOMBO="COMBO";
publicvoidafterAddFieldContainer(AfterAddFieldContainerEvent args) {
//"ywjextdemo1"StringoneColKey="ywjextdemo1";
//"ywjextdemo2"StringtwoColKey="ywjextdemo2";
//案例是根据模板名称动态添加扩展列的实现。//  如果扩展列是固定的，则直接按下面的设置即可，就不用那么多判断了。主要是设置FieldParamMaps、SelectProps、FieldRelationMap
Map<String, Object> customParams = args.getCustomParams();
LongbizItemGroupId= (Long) customParams.get("bizItemGroupId");
SWCDataServiceHelperbigHelper=newSWCDataServiceHelper("hsbs_bizitemgroup");
// 业务数据模板基础资料DynamicObjectbizItemGroup= bigHelper.queryOne(bizItemGroupId);
if(bizItemGroup == null){
//如果为空，则有2出调用，这时是为了查询数据、传递数据使用，使用的是selectProps和fieldRelationMap// 且此时涉及的不仅仅是一个单据，所以将所有的字段都加上//增加查询字段，若是业务数据分录基础资料本身的字段可不写，标品会自动加载。
args.getSelectProps().add(oneColKey);
args.getSelectProps().add(twoColKey);
return;
}
Stringname= bizItemGroup.getString("name");
if(name.contains(oneColKey)){
Map<String , Object> itemMap = newHashMap<>();
itemMap.put(PARAM_KEY, oneColKey);//小写
itemMap.put(PARAM_NAME, oneColKey + "-name"); //名称
itemMap.put(PARAM_LOCK, "view,submit,audit");//锁定性
itemMap.put(PARAM_MUSTINPUT, Boolean.TRUE);//是否必填
itemMap.put(PARAM_SCALELIMIT, 2);//小数位
itemMap.put(PARAM_WIDTH, "150"); //宽度
itemMap.put(PARAM_DATATYPE, KEY_FIELDTEXT); //数据类型-文本
itemMap.put(PARAM_MINDATE, SWCDateTimeUtils.format(newDate())); //最小日期和最晚日期需格式化为 yyyy-MM-dd HH:mm:ss
itemMap.put(PARAM_MAXDATE, SWCDateTimeUtils.format(SWCDateTimeUtils.getDateWithoutTime(2023, 12, 31))); //最晚日期
args.getFieldParamMaps().add(itemMap);
//增加查询字段，若是业务数据分录基础资料本身的字段可不写，标品会自动加载。
args.getSelectProps().add(oneColKey);
//增加映射字段，设置成一样即可，key:业务数据提报的分录字段标识，value:分录基础资料的字段标识，key->from
args.getFieldRelationMap().put(oneColKey, oneColKey);
}
if(name.contains(twoColKey)){
Map<String , Object> itemMap2 = newHashMap<>();
itemMap2.put(PARAM_KEY, twoColKey);//小写
itemMap2.put(PARAM_NAME, twoColKey + "-name"); //名称
itemMap2.put(PARAM_LOCK, "view,submit,audit");//锁定性
itemMap2.put(PARAM_MUSTINPUT, Boolean.FALSE);//是否必填
itemMap2.put(PARAM_SCALELIMIT, 2);//小数位
itemMap2.put(PARAM_WIDTH, "150"); //宽度
itemMap2.put(PARAM_DATATYPE, KEY_FIELDAMOUNT); //数据类型-金额
args.getFieldParamMaps().add(itemMap2);
args.getSelectProps().add(twoColKey);
args.getFieldRelationMap().put(twoColKey, twoColKey);
}
}
}
@param `args` 业务数据分录添加列参数; 返回信息均设置到入参中返回。


class_name: kd.sdk.swc.hpdi.business.extpoint.bizdatabill.IBizDataBillEntryExtService
method_name: setAddEntryFieldValue
param_types_key: BizDataAddEntryFieldArgs
comment: 新增提报-填充分录数据
signature_text:
default void setAddEntryFieldValue(kd.sdk.swc.hpdi.common.events.bizdatabill.BizDataAddEntryFieldArgs args)


class_name: kd.sdk.swc.hpdi.business.extpoint.msgreceive.ICollaReviseMsgExtService
method_name: afterReviseMsg
param_types_key: AfterReviseMsgEvent
signature_text: default void afterReviseMsg(AfterReviseMsgEvent event)
comment:
薪酬业务事件日志新建后置处理扩展点，因为业务事件日志存在重试机制，所以此扩展场景的扩展代码需要自己保证实现的幂等性，避免出现异常数据。 扩展代码示例：
publicclassCollaMsgReceiveExtServiceImplimplementsICollaMsgReceiveExtServiceImpl {
publicvoidafterReviseMsg(AfterReviseMsgEvent event) {
StringentityNumber= event.getEntityNumber();
Map<String, Object> param = event.getParam();
}
}
@param `event` 人员信息修订后置扩展事件


class_name: kd.sdk.swc.hpdi.business.msgreceive.ICollaMsgReceiveExtService
method_name: afterSaveReceiveMsg
param_types_key: AfterSaveReceiveMsgEvent
signature_text: default void afterSaveReceiveMsg(AfterSaveReceiveMsgEvent event)
comment:
薪酬业务事件日志新建后置处理扩展点，因为业务事件日志存在重试机制，所以此扩展场景的扩展代码需要自己保证实现的幂等性，避免出现异常数据。 扩展代码示例：
publicclassCollaMsgReceiveExtServiceDemoTrueImplimplementsICollaMsgReceiveExtService {
publicvoidafterSaveReceiveMsg(AfterSaveReceiveMsgEvent event) {
LongmsgReceiveId= event.getMsgReceiveId();
DynamicObjectmsgReceiveObject= BusinessDataServiceHelper.loadSingle(msgReceiveId, "hpdi_msgreceive",
"id,name,number,msgcontent,taskcreatestatus,errormsg");
try {
// 解析消息等自定义扩展逻辑DynamicObjectobject= BusinessDataServiceHelper.newDynamicObject("kdtest_msgreceive_ext");
object.set("number", msgReceiveObject.getString("number"));
object.set("name", msgReceiveObject.getString("name"));
object.set("kdtest_msgreceive", msgReceiveObject);
object.set("enable", "1");
object.set("status", "C");
SaveServiceHelper.save(newDynamicObject[] {object});
// 更新业务事件日志状态为协作成功
msgReceiveObject.set("taskcreatestatus", "B");
} catch (Exception ex) {
// 若处理失败测回写错误消息
msgReceiveObject.set("taskcreatestatus", "C");
msgReceiveObject.set("errormsg", ex.getMessage());
}
// 更新业务事件日志状态
SaveServiceHelper.save(newDynamicObject[] {msgReceiveObject});
// 设置返回值
event.setResult(true);
}
}
@param `event` 业务事件日志后置扩展事件，result 为扩展埋点事件处理结果，是否继续执行标品逻辑，true-继续执行标品逻辑，false-不继续执行标品逻辑。


class_name: kd.sdk.swc.hpdi.formplugin.extpoint.bizdata.IBizDataListExtPlugin
method_name: billListHyperLinkClick
param_types_key: BizDataHyperLinkClickArgs
signature_text: default void billListHyperLinkClick(BizDataHyperLinkClickArgs args)
comment:
列表的超链接，可重写，打开指定的页面或者不打开。 对于通过接口入库的业务数据，在业务数据列表展示的时候，单据编号那一列，标品提供了超链接到提报单据， 而对于接口数据则无对应的单据，此时需要二开自己制定打开方案。
publicclassBizDataListExtDemoPluginimplementsIBizDataListExtPlugin {
publicvoidbillListHyperLinkClick(BizDataHyperLinkClickArgs args){
//必须先判断列名再写扩展代码，否则可能导致其他单元格的超链接也被覆盖。// 若是单据编号字段if (SWCStringUtils.equals(BizDataConstants.KEY_APPLY_NO, args.getArgs().getHyperLinkClickEvent().getFieldName())) {
IListViewlistView= (IListView) args.getView();
Longid= (Long) listView.getFocusRowPkId();
DynamicObjectbizData= HPDIDataServiceHelper.HPDI_BIZDATA_HELPER.queryOne("submission", id);
if (SWCObjectUtils.isEmpty(bizData)) {
args.getView().showErrorNotification(ResManager.loadKDString("关联单据不存在", "BizDataList_0", "swc-hpdi-formplugin"));
return;
}
//若是数据集成的数据if("1".equals(bizData.getString("submission"))){
return;
}
//满足自定义的条件后，取消标品的连接，再打开自己的连接
args.getArgs().setCancel(true);
BaseShowParameterparameter=newBaseShowParameter();
parameter.setFormId(SWCEntityConstants.HPDI_BIZDATA);
parameter.setPkId(id);
parameter.getOpenStyle().setShowType(ShowType.Modal);
parameter.setStatus(OperationStatus.VIEW);
args.getView().showForm(parameter);
}
}
}
@param `args` 业务数据列表超链接参数；
@return 无出参，信息均设置到入参中返回。


class_name: kd.sdk.swc.hpdi.formplugin.extpoint.bizdata.IBizDataTransSalaryExtPlugin
method_name: beforeAddTransSalary
param_types_key: BizDataTransSalaryArgs
signature_text: default void beforeAddTransSalary(BizDataTransSalaryArgs args)
comment:
业务数据推送算薪前，可在此更新”推送算薪组织人“，或者增加自定义校验拦截。
publicclassBizDataTransSalaryExtDemoPluginimplementsIBizDataTransSalaryExtPlugin {
//成功：ture，失败：falseprivatestaticfinalStringKEY_SUCCESS="success";
//错误信息privatestaticfinalStringKEY_MESSAGE="message";
//批次号privatestaticfinalStringKEY_BATCHNUM="batchnum";
//数据privatestaticfinalStringKEY_DATA="data";
//业务数据识别号privatestaticfinalStringKEY_BIZDATACODE="bizdatacode";
//企业人privatestaticfinalStringKEY_EMPLOYEEID="employeeid";
//组织人privatestaticfinalStringKEY_DEPEMPID="depempid";
//业务数据推送算薪前更新”推送算薪组织人“publicvoidbeforeAddTransSalary(BizDataTransSalaryArgs args) {
List<DynamicObject> bizDatas = args.getBizDataList();
if (CollectionUtils.isEmpty(bizDatas)) {
return;
}
Map<String, Object> param = assembleParam(bizDatas);
List<Map<String, Object>> paramData = (List<Map<String, Object>>) param.get(KEY_DATA);
if (CollectionUtils.isEmpty(paramData)) {
return;
}
// 调用更新算发薪管理组织人接口
Map<String, Object> result = BizDataServiceHelper.changeDepemp(param);
//接口调用失败if (!MapUtils.getBoolean(result, KEY_SUCCESS)) {
Map<Long, String> errorMap = newHashMap<>(bizDatas.size());
for (DynamicObject bizData : bizDatas) {
errorMap.put(bizData.getLong(SWCBaseConstants.ID), MapUtils.getString(result, KEY_MESSAGE));
}
// errorMap用作更新业务数据为“推送算薪失败”状态，项目上按实际情况决定是否需要返回
args.setErrorMap(errorMap);
// returnBizDataList用作继续执行转算薪// 这里表示校验失败时无需继续执行转算薪操作
args.setReturnBizDataList(null);
return;
}
// 返回业务数据
List<Map<String, Object>> returnData = (List<Map<String, Object>>) ((Map<String, Object>) result.get(KEY_DATA)).get(KEY_DATA);
// 更新“推送算薪组织人”失败的业务数据map// key：bizdatacode  value：失败信息
Map<String, String> failMap = newHashMap<>(SWCBaseConstants.INITCAPACITY_HASHMAP);
// 更新“推送算薪组织人”失败的业务数据识别号集合
Set<String> changeFailBizDataCodes = newHashSet<>(SWCBaseConstants.INITCAPACITY_HSAHSET);
for (Map<String, Object> rMap : returnData) {
if (!((Boolean) rMap.getOrDefault(KEY_SUCCESS, Boolean.TRUE))) {
changeFailBizDataCodes.add(MapUtils.getString(rMap, KEY_BIZDATACODE));
failMap.put(MapUtils.getString(rMap, KEY_BIZDATACODE), MapUtils.getString(rMap, KEY_MESSAGE));
}
}
//全部更新成功if (CollectionUtils.isEmpty(changeFailBizDataCodes)) {
// 无需修改业务数据为“推送算薪失败”
args.setErrorMap(null);
// 所有数据继续执行推送算薪
args.setReturnBizDataList(bizDatas);
return;
}
//部分更新成功// 返回业务数据
List<DynamicObject> returnBizDataList = newArrayList<>(SWCBaseConstants.INITCAPACITY_ARRAYLIST);
// 错误信息map， key：业务数据id，value：错误信息
Map<Long, String> errorMap = newHashMap<>(bizDatas.size());
for (DynamicObject bizData : bizDatas) {
// 更新失败记录错误信息if (changeFailBizDataCodes.contains(bizData.getString(KEY_BIZDATACODE))) {
errorMap.put(bizData.getLong(SWCBaseConstants.ID), failMap.get(bizData.getString(KEY_BIZDATACODE)));
continue;
}
// 更新成功
returnBizDataList.add(bizData);
}
args.setErrorMap(errorMap);
args.setReturnBizDataList(returnBizDataList);
}
//组装更新业务数据推送算薪组织人接口入参private Map<String, Object> assembleParam(List<DynamicObject> bizDatas) {
Map<String, Object> param = newHashMap<>(SWCBaseConstants.INITCAPACITY_HASHMAP);
param.put(KEY_BATCHNUM, "1111111111");  // 批次号，唯一Stringkey= ResManager.loadKDString("关方", "", "");
List<Map<String, Object>> data = newArrayList<>(bizDatas.size());
for (DynamicObject bizData : bizDatas) {
StringpersonName= bizData.getString("depemp.person.name");
// 推送算薪组织人名字包含“关方”，则更新组织人为“关方十号”if (SWCStringUtils.isNotEmpty(personName) && !personName.contains(key)) {
continue;
}
Map<String, Object> rec = newHashMap<>(SWCBaseConstants.INITCAPACITY_HASHMAP);
rec.put(KEY_BIZDATACODE, bizData.getString("bizdatacode"));
rec.put(KEY_EMPLOYEEID, bizData.getLong("depemp.employee.id"));
rec.put(KEY_DEPEMPID, 1399272555331728384L);  // 推送算薪组织人id，自定义取值来源；这里给默认值 关方十号：1399272555331728384
data.add(rec);
}
param.put(KEY_DATA, data);
return param;
}
}
@param `args` 业务数据推送算薪参数


class_name: kd.sdk.swc.hsas.business.extpoint.approve.IApproveBillExtService
method_name: afterSetApproveBillData
param_types_key: CreateApproveBillSetValueEvent
signature_text:
default void afterSetApproveBillData(kd.sdk.swc.hsas.common.events.approve.CreateApproveBillSetValueEvent event)

comment:
publicclassCreateApproveBillSetValueTestimplementsIApproveBillExtService {
``
@param `event` BankOfferExportSplitEvent


class_name: kd.sdk.swc.hsas.business.extpoint.bizdata.IBizDataSynExtService
method_name: afterBizDataList
param_types_key: AfterBizDataListEvent
signature_text: default void afterBizDataList(AfterBizDataListEvent event)
comment:
前端业务数据同步数据服务增加业务数据扩展修改场景
publicclassRecurBizDataPropDemoExtServiceimplementsIBizDataSynExtService {
publicvoidafterBizDataList(AfterBizDataListEvent event){
List<DynamicObject> bizDataList = event.getBizDataList();
if(bizDataList == null || bizDataList.size() == 0) {
return;
}
// 获取循环项业务数据的业务项目id
List<Long> recurBizItemIdList = newArrayList<Long>(bizDataList.size());
for (DynamicObject bizDataObj : bizDataList) {
StringentityName= bizDataObj.getDynamicObjectType().getName();
if(SWCStringUtils.equals(entityName, SWCEntityConstants.HSAS_RECURBIZDATA)) {
// 只处理循环项业务数据
recurBizItemIdList.add(bizDataObj.getLong("bizitem"));
}
}
if(recurBizItemIdList.size() == 0) {
return;
}
// 通过循环项业务数据的业务项目id，查询业务项目多值属性信息
Map<Long, List<Map<String, Object>>> bizItemPropInfo = BizItemServiceHelper.getBizItemPropInfo(recurBizItemIdList);
if(bizItemPropInfo == null || bizItemPropInfo.size() == 0) {
return;
}
// 遍历业务数据，组装业务项目多值属性数据for (DynamicObject bizDataObj : bizDataList) {
StringentityName= bizDataObj.getDynamicObjectType().getName();
if(!SWCStringUtils.equals(entityName, SWCEntityConstants.HSAS_RECURBIZDATA)) {
// 只处理循环项业务数据continue;
}
LongbizItemId= bizDataObj.getLong("bizitem");
// 获取业务项目下多值业务项目属性信息
List<Map<String, Object>> bizItemPropList = bizItemPropInfo.get(bizItemId);
if(bizItemPropList == null || bizItemPropList.size() == 0) {
continue;
}
// 如果循环项业务数据中存在业务项目属性值，则不需要写入值，视具体业务而定DynamicObjectCollectionpropColl= bizDataObj.getDynamicObjectCollection("recurbizpropentry");
if(propColl != null && propColl.size() > 0) {
continue;
}
// 生成空的分录SWCDataServiceHelperhelper=newSWCDataServiceHelper(entityName);
DynamicObjectCollectionpropValEntry= helper.generateEmptyEntryCollection(bizDataObj, "recurbizpropentry");
// 组装属性值StringBuilderpropSb=newStringBuilder();
// 根据获取到的属性值，写入属性值数据intsize= bizItemPropList.size();
for(inti=0; i < size; i++) {
Map<String, Object> bizItemPropMap = bizItemPropList.get(i);
DynamicObjectpropValObj=newDynamicObject(propValEntry.getDynamicObjectType());
LongbizItemPropId= (Long)bizItemPropMap.get("bizItemPropId");
StringpropDataType= (String)bizItemPropMap.get("dataType");
StringpropVal="";
if(SWCStringUtils.equals(propDataType, "text")) {
// 文本
propValObj.set("bizitemprop", bizItemPropId);
propVal = "text test";
propValObj.set("propdatavalue", propVal);
} elseif(SWCStringUtils.equals(propDataType, "decimal")) {
// 数值
propValObj.set("bizitemprop", bizItemPropId);
propVal = "1.01";
propValObj.set("propdatavalue", propVal);
} elseif(SWCStringUtils.equals(propDataType, "date")) {
// 日期
propValObj.set("bizitemprop", bizItemPropId);
propVal = "2023-05-31";
propValObj.set("propdatavalue", propVal);
}
propValEntry.add(propValObj);
propSb.append(bizItemPropMap.get("bizItemPropName")).append('：').append(propVal);
if(i != (size - 1)) {
propSb.append('；') ;
}
}
if(propValEntry.size() > 0) {
bizDataObj.set("recurbizpropentry", propValEntry);
bizDataObj.set("propval", propSb.toString());
}
}
}
}
@param `args` 前端业务数据同步数据服务增加业务数据扩展修改场景。


class_name: kd.sdk.swc.hsas.business.extpoint.paydetail.IBankAccountService
method_name: beforeBankAccountModifyFilter
param_types_key: BankAccountModifyFilterEvent
signature_text:
default void beforeBankAccountModifyFilter(kd.sdk.swc.hsas.common.events.paydetail.BankAccountModifyFilterEvent event)

comment:
publicclassBankAccountModifyFilterTestimplementsIBankAccountService {
``
@param `event` BankAccountModifyFilterEvent


class_name: kd.sdk.swc.hsas.business.extpoint.paydetail.IBankOfferExtService
method_name: beforeBankOfferSplit
param_types_key: BankOfferExportSplitEvent
signature_text:
default void beforeBankOfferSplit(kd.sdk.swc.hsas.common.events.paydetail.BankOfferExportSplitEvent event)

comment:
publicclassBankOfferSplitTestimplementsIBankOfferExtService {
``
@param `event` BankOfferExportSplitEvent


class_name: kd.sdk.swc.hsas.business.extpoint.person.IPersonExtService
method_name: modifyPersonNumber
param_types_key: Map
signature_text: default void modifyPersonNumber(java.util.Map<String, Object> param)
comment:
计薪人员修改工号服务
publicclassPersonExtServiceimplementsIPersonExtService {
publicvoidmodifyPersonNumber(Map<String, Object> param) {
List<Map<String, Object>> datas = (List<Map<String, Object>>) param.get("data");
//旧工号集合-备查
Set<String> oriNumbers = newHashSet<>(SWCBaseConstants.INITCAPACITY_HSAHSET);
//KEY:旧工号,VALUE=新工号
Map<String, String> numberMap = newHashMap<>(SWCBaseConstants.INITCAPACITY_HASHMAP);
for (Map<String, Object> data : datas) {
StringoriNumber= String.valueOf(data.get("oriNumber"));
StringnewNumber= String.valueOf(data.get("newNumber"));
oriNumbers.add(oriNumber);
numberMap.put(oriNumber, newNumber);
}
//测试修改技能人才的工号
dealModifyPersonNumberForEntityRel(param, oriNumbers, numberMap, "kdtest_hrpi_jinengrencai", "number", "number");
//无返回值，若是失败直接抛异常if(param.containsKey("testerror")){
thrownewRuntimeException("This deal fail!!!");
}
}
private DynamicObject[] dealModifyPersonNumberForEntityRel(Map<String, Object> param, Set<String> oriNumbers, Map<String, String> numberMap, String entityNumber, String propertyName, String relPropertyName) {
QFilterqFilter=newQFilter(relPropertyName, QFilter.in, oriNumbers);
SWCDataServiceHelperempHelper=newSWCDataServiceHelper(entityNumber);
DynamicObject[] dataDys = empHelper.query(SWCHisBaseDataHelper.getSelectProperties(entityNumber), newQFilter[]{qFilter});
for (DynamicObject empDy : dataDys) {
//待更新的字段值StringpropertyVal= empDy.getString(propertyName);
//原工号StringoriNumber= empDy.getString(relPropertyName);
//新工号StringnewNumber= numberMap.get(oriNumber);
//旧工号字符串替换为新字符串, 此处认为原工号是精确的
empDy.set(propertyName, propertyVal.replace(oriNumber, newNumber));
}
empHelper.update(dataDys);
Map<String, Object> resultMap = (Map<String, Object>) param.get("dealInfo");
resultMap.put(entityNumber + "#" + propertyName, dataDys.length);
return dataDys;
}
}
@param `param` 待修改的工号信息，{"data": [{"oriNumber":"1234567-R", "newNumber":"1234567"}]}
@return 无返回值，若是失败直接抛异常


class_name: kd.sdk.swc.hsas.business.extpoint.person.ISyncPersonExtService
method_name: afterSyncPersonCopy
param_types_key: AfterSyncPersonCopyEvent
signature_text:
default void afterSyncPersonCopy(kd.sdk.swc.hsas.common.events.person.AfterSyncPersonCopyEvent afterSyncPersonCopyEvent)

comment:
计薪人员同步复制数据后未入库前处理，将数据destDyList传给二开做处理，可能二开会增加自定义字段，而此字段并非从核心人力同步过来
publicclassSyncPersonExtDemoServiceimplementsISyncPersonExtService {
publicvoidafterSyncPersonCopy(AfterSyncPersonCopyEvent afterSyncPersonCopyEvent) {
StringdestEntity= afterSyncPersonCopyEvent.getDestEntity();
//需要先判断实体，所有实体都会调用这个接口if ("hsas_personhr".equals(destEntity)) {
//获取到即将入库的数据，做自己想做的事即可。
List<DynamicObject> destDyList = afterSyncPersonCopyEvent.getDestDyList();
for (DynamicObject destDy : destDyList) {
destDy.set("name", destDy.getString("name") + "_ext");
}
}
}
}
@param `afterSyncPersonCopyEvent` 待入库的薪酬实体数据集合
@return 修改入参数据


class_name: kd.sdk.swc.hsas.business.extpoint.person.ISyncPersonExtService
method_name: initSyncPerson
param_types_key: InitSyncPersonEvent
signature_text:
default void initSyncPerson(kd.sdk.swc.hsas.common.events.person.InitSyncPersonEvent initSyncPersonEvent)

comment:
计薪人员同步初始化处理，支持客户新增同步实体。
publicclassSyncPersonExtDemoServiceimplementsISyncPersonExtService {
publicvoidinitSyncPerson(InitSyncPersonEvent initSyncPersonEvent) {
//案例：同步扩展的技能人才信息
initSyncPersonEvent.getFormIdMap().put("kdtest_hrpi_jinengrencai", "kdtest_hsas_jinengrencai");
}
}
@param `initSyncPersonEvent` 待同步的实体映射关系，key=中台人员实体，value=对应的薪酬实体
@return 设置到入参中的formIdMap返回， 待同步的实体映射关系，key=中台人员实体，value=对应的薪酬实体


class_name: kd.sdk.swc.hsas.business.extpoint.salaryfile.ISalaryFileExportExtService
method_name: afterBuildSalaryAndTaxExportEntityRel
param_types_key: SalaryFileExportEvent
signature_text: default void afterBuildSalaryAndTaxExportEntityRel(SalaryFileExportEvent event)
comment:
获取发薪与个税引出实体关系：同时引出发薪与个税
publicclassSalaryFileExportDemoExtServiceimplementsISalaryFileExportExtService {
//二开扩展的字段属性标识 注意：如果是基础资料字段,需要在后面加上.number或.name,kdtest_textfield.numberprivateStringEXT_FIELD="kdtest_textfield";
//获取薪资档案引出实体信息：仅引出发薪publicvoidafterBuildSalaryFileExportEntityRel(SalaryFileExportEvent event){
//添加1个主实体扩展字段
addExtField(event, EXT_FIELD);
}
//获取发薪与个税引出实体关系：同时引出发薪与个税publicvoidafterBuildSalaryAndTaxExportEntityRel(SalaryFileExportEvent event){
//添加1个主实体扩展字段
addExtField(event, EXT_FIELD);
}
//添加1个主实体扩展字段privatevoidaddExtField(SalaryFileExportEvent event, String extField) {
//字段标识集合数组
String[] fieldKeyOld = event.getImportEntityRel().getMainEntity().getFieldKey();
//添加二开的字段到模板中，则修改字段数组，如下是加1个字段到最后一个，若是需要加在中间，则调整数组顺序即可
String[] fieldKeyNew = Arrays.copyOf(fieldKeyOld, fieldKeyOld.length + 1);
fieldKeyNew[fieldKeyOld.length] = extField;
//再设置覆盖
event.getImportEntityRel().getMainEntity().setFieldKey(fieldKeyNew);
}
}
@param `event` 薪资档案引出事件,可设置引出字段


class_name: kd.sdk.swc.hsas.business.extpoint.salaryfile.ISalaryFileExportExtService
method_name: afterBuildSalaryFileExportEntityRel
param_types_key: SalaryFileExportEvent
signature_text: default void afterBuildSalaryFileExportEntityRel(SalaryFileExportEvent event)
comment:
获取薪资档案引出实体信息：仅引出发薪
publicclassSalaryFileExportDemoExtServiceimplementsISalaryFileExportExtService {
//二开扩展的字段属性标识 注意：如果是基础资料字段,需要在后面加上.number或.name,kdtest_textfield.numberprivateStringEXT_FIELD="kdtest_textfield";
//获取薪资档案引出实体信息：仅引出发薪publicvoidafterBuildSalaryFileExportEntityRel(SalaryFileExportEvent event){
//添加1个主实体扩展字段
addExtField(event, EXT_FIELD);
}
//获取发薪与个税引出实体关系：同时引出发薪与个税publicvoidafterBuildSalaryAndTaxExportEntityRel(SalaryFileExportEvent event){
//添加1个主实体扩展字段
addExtField(event, EXT_FIELD);
}
//添加1个主实体扩展字段privatevoidaddExtField(SalaryFileExportEvent event, String extField) {
//字段标识集合数组
String[] fieldKeyOld = event.getImportEntityRel().getMainEntity().getFieldKey();
//添加二开的字段到模板中，则修改字段数组，如下是加1个字段到最后一个，若是需要加在中间，则调整数组顺序即可
String[] fieldKeyNew = Arrays.copyOf(fieldKeyOld, fieldKeyOld.length + 1);
fieldKeyNew[fieldKeyOld.length] = extField;
//再设置覆盖
event.getImportEntityRel().getMainEntity().setFieldKey(fieldKeyNew);
}
}
@param `event` 薪资档案引出事件,可设置引出字段


class_name: kd.sdk.swc.hsas.business.extpoint.salaryfile.ISalaryFileImportExtService
method_name: afterBuildSalaryAndTaxTempImportEntityRel
param_types_key: SalaryFileImportEvent
signature_text: default void afterBuildSalaryAndTaxTempImportEntityRel(SalaryFileImportEvent event)
comment:
获取发薪与个税临时表引入实体关系：同时引入发薪与个税
publicclassSalaryFileImportDemoExtServiceimplementsISalaryFileImportExtService {
//二开扩展的字段属性标识 注意：如果是基础资料字段,需要在后面加上.number或.name,kdtest_textfield.numberprivateStringEXT_FIELD="kdtest_textfield";
//获取发薪引入实体关系:仅引入发薪publicvoidafterBuildSalaryFileImportEntityRel(SalaryFileImportEvent event){
//添加1个主实体扩展字段
addExtField(event, EXT_FIELD);
}
//获取发薪与个税临时表引入实体关系：同时引入发薪与个税publicvoidafterBuildSalaryAndTaxTempImportEntityRel(SalaryFileImportEvent event){
//添加1个主实体扩展字段
addExtField(event, EXT_FIELD);
}
//添加1个主实体扩展字段privatevoidaddExtField(SalaryFileImportEvent event, String extField) {
//字段标识集合数组
String[] fieldKeyOld = event.getImportEntityRel().getMainEntity().getFieldKey();
//添加二开的字段到模板中，则修改字段数组，如下是加1个字段到最后一个，若是需要加在中间，则调整数组顺序即可
String[] fieldKeyNew = Arrays.copyOf(fieldKeyOld, fieldKeyOld.length + 1);
fieldKeyNew[fieldKeyOld.length] = extField;
//再设置覆盖
event.getImportEntityRel().getMainEntity().setFieldKey(fieldKeyNew);
}
}
@param `event` 薪资档案引入事件,可设置引入字段


class_name: kd.sdk.swc.hsas.business.extpoint.salaryfile.ISalaryFileImportExtService
method_name: afterBuildSalaryFileImportEntityRel
param_types_key: SalaryFileImportEvent
signature_text: default void afterBuildSalaryFileImportEntityRel(SalaryFileImportEvent event)
comment:
获取发薪引入实体关系:仅引入发薪
publicclassSalaryFileImportDemoExtServiceimplementsISalaryFileImportExtService {
//二开扩展的字段属性标识 注意：如果是基础资料字段,需要在后面加上.number或.name,kdtest_textfield.numberprivateStringEXT_FIELD="kdtest_textfield";
//获取发薪引入实体关系:仅引入发薪publicvoidafterBuildSalaryFileImportEntityRel(SalaryFileImportEvent event){
//添加1个主实体扩展字段
addExtField(event, EXT_FIELD);
}
//获取发薪与个税临时表引入实体关系：同时引入发薪与个税publicvoidafterBuildSalaryAndTaxTempImportEntityRel(SalaryFileImportEvent event){
//添加1个主实体扩展字段
addExtField(event, EXT_FIELD);
}
//添加1个主实体扩展字段privatevoidaddExtField(SalaryFileImportEvent event, String extField) {
//字段标识集合数组
String[] fieldKeyOld = event.getImportEntityRel().getMainEntity().getFieldKey();
//添加二开的字段到模板中，则修改字段数组，如下是加1个字段到最后一个，若是需要加在中间，则调整数组顺序即可
String[] fieldKeyNew = Arrays.copyOf(fieldKeyOld, fieldKeyOld.length + 1);
fieldKeyNew[fieldKeyOld.length] = extField;
//再设置覆盖
event.getImportEntityRel().getMainEntity().setFieldKey(fieldKeyNew);
}
}
@param `event` 薪资档案引入事件,可设置引入字段


class_name: kd.sdk.swc.hsas.business.extpoint.salaryfile.ISalaryFileImportExtService
method_name: afterBuildTaxTempImportEntityRel
param_types_key: SalaryFileImportEvent
signature_text: default void afterBuildTaxTempImportEntityRel(SalaryFileImportEvent event)
comment:
获取个税临时表引入实体信息：仅引入个税 使用方法参考发薪,个税字段存放在 event.getImportEntityRel().getOtherEntities()
@param `event` 薪资档案引入事件,可设置引入字段


class_name: kd.sdk.swc.hsas.business.mservice.helper.CalPayrollTaskServiceHelper
method_name: addPerson
param_types_key: List
comment: 添加指定人员 @param `params`
signature_text:
public static java.util.Map<String, Object> addPerson(java.util.List<java.util.Map<String, Object>> params)


class_name: kd.sdk.swc.hsas.business.mservice.helper.CalPayrollTaskServiceHelper
method_name: createAndAutoAddPerson
param_types_key: List
comment: 创建核算任务、自动添加名单 @param `params`
signature_text:
public static java.util.Map<String, Object> createAndAutoAddPerson(java.util.List<java.util.Map<String, Object>> params)


class_name: kd.sdk.swc.hsas.business.mservice.helper.CalPayrollTaskServiceHelper
method_name: createTask
param_types_key: List
comment: 创建核算任务、自动添加指定档案的名单并计算 @param `params`
signature_text:
public static java.util.Map<String, Object> createTask(java.util.List<java.util.Map<String, Object>> params)


class_name: kd.sdk.swc.hsas.business.mservice.helper.PayDetailServiceHelper
method_name: modifyPayDetailBankCard
param_types_key: List
comment: 根据发放明细及变更信息变更银行卡 @param `param` @return 返回信息
signature_text:
public static java.util.Map<String, Object> modifyPayDetailBankCard(java.util.List<java.util.Map<String, Object>> param)


class_name: kd.sdk.swc.hsas.business.mservice.helper.PersonServiceHelper
method_name: syncData
param_types_key: Map
signature_text: public static java.util.Map<String, Object> syncData(java.util.Map<String, Object> param)
comment:
同步数据，可根据工号进行同步数据
@param `param` {"empnumbers": ["DTX0406134-R","DTX0406134"]}
@return 返回信息 {"success": true, "message": "", "data": 入参param}


class_name: kd.sdk.swc.hsas.business.mservice.helper.SalaryFileServiceHelper
method_name: querySalaryFileBoByEmp
param_types_key: Map
signature_text:
public static java.util.Map<String, Object> querySalaryFileBoByEmp(java.util.Map<String, Object> param)

comment:
根据企业人查询人员薪资档案
@param `param` 查询参数 企业人员 employees List 是 基础资料，传多个id。单个和多个必传一个 查询属性 selectProperties String 500 否 不传则查询所有字段，主表的字段 状态 status List 否 默认只查询已审核
@return 返回信息 结果判断 success Boolean 是 success - 成功, false - 失败 错误信息 message String 否 若程序处理异常则有值 信息详细返回 data List> 是 企业人员 employee_id Long 是 基础资料id 算发薪组织 org_name String 是 基础资料名称 薪资核算组 payrollgroup_name String 是 修改人 modifier_name String 否 不是administrator，则返回修改人


class_name: kd.sdk.swc.hsas.business.mservice.helper.SalaryFileServiceHelper
method_name: relateSalaryWithTaxFile
param_types_key: Map
signature_text:
public static java.util.Map<String, Object> relateSalaryWithTaxFile(java.util.Map<String, Object> params)

comment:
保存或者更新薪资档案&人员个税档案关联关系
@param `params` 参数 {data: [{ salaryFileId: 人员薪资档案ID long taxFileId: 人员个税档案ID long oldRelId: 旧的关联关系ID【新增时为空】 long }]}
@return 处理结果 { success: 是否成功 status: 状态码 message: 消息 data: [{success: 是否成功, salaryFileId: 薪资档案ID, taxFileId: 个税档案ID, newRelId: 新的关联关系ID}] }


class_name: kd.sdk.swc.hsas.business.mservice.helper.SalaryFileServiceHelper
method_name: saveSalaryFile
param_types_key: List
signature_text:
public static java.util.Map<String, Object> saveSalaryFile(java.util.List<java.util.Map<String, Object>> params)

comment:
保存档案，根据入参数据生成档案、修改档案、变更档案。
@param `params` 薪资档案 各属性的值，值的key和基础资料的值保持一致。
@return 返回入参，保证个数一致，增加部分返回属性，success：true/false、message:错误信息


class_name: kd.sdk.swc.hsas.common.events.approve.ApproveInvokeReportFormEvent
method_name: <init>
param_types_key: DynamicObject,List,List,String,String
signature_text:
public ApproveInvokeReportFormEvent(DynamicObject approveBillDynamicObject, java.util.List<Long> calPersonIds, java.util.List<Long> payDetailIds, String pageType, String reportType)


class_name: kd.sdk.swc.hsas.common.events.approve.ApproveOverViewDealEvent
method_name: <init>
param_types_key: String,List,String,Map
comment: 构造器 @param `type` @param `calPersonIds` @param `value` @param `overViewEntry`
signature_text:
public ApproveOverViewDealEvent(String type, java.util.List<Long> calPersonIds, String value, java.util.Map<String, Object> overViewEntry)


class_name: kd.sdk.swc.hsas.common.events.bizdata.AfterBizDataListEvent
method_name: <init>
param_types_key: List,List
signature_text:
public AfterBizDataListEvent(java.util.List<DynamicObject> bizDataList, java.util.List<DynamicObject> bizDataRecordList)


class_name: kd.sdk.swc.hsas.common.events.insurancedata.BeforeSaveInsuranceDataListEvent
method_name: <init>
param_types_key: List,List
signature_text:
public BeforeSaveInsuranceDataListEvent(java.util.List<DynamicObject> saveInsuranceDataList, java.util.List<java.util.Map<String, Object>> queryResultList)


class_name: kd.sdk.swc.hsas.common.events.salarydetailresultexport.AfterBuildHeadEvent
method_name: <init>
param_types_key: SXSSFSheet,DynamicObject,Map,Map,int
signature_text:
public AfterBuildHeadEvent(SXSSFSheet sheet, DynamicObject taskInfo, java.util.Map<String, java.util.Map<String, Object>> gridItemInfo, java.util.Map<String, String> headers, int currRowIndex)


class_name: kd.sdk.swc.hsas.common.events.salarydetailresultexport.AfterBuildHeadEvent
method_name: getGridItemInfo
signature_text: public java.util.Map<String, java.util.Map<String, Object>> getGridItemInfo()
comment:
获取项目信息集
@return 项目信息集(一级key为项目的唯一编码；二级key为字段信息，包括：number、name、uniquecode、dataLength、dataType、scale、seq)


class_name: kd.sdk.swc.hsas.common.events.salarydetailresultexport.AfterBuildHeadEvent
method_name: setGridItemInfo
param_types_key: Map
signature_text: public void setGridItemInfo(java.util.Map<String, java.util.Map<String, Object>> gridItemInfo)
comment:
设置项目信息集
@param `gridItemInfo` 项目信息集(一级key为项目的唯一编码；二级key为字段信息，包括：number、name、uniquecode、dataLength、dataType、scale、seq)


class_name: kd.sdk.swc.hsas.common.events.salaryfile.AfterEmbedChildPageEvent
method_name: <init>
param_types_key: IFormView,Long,Map,Map
signature_text:
public AfterEmbedChildPageEvent(IFormView view, Long salaryFileBoId, java.util.Map<String, Object> customParams, java.util.Map<String, String> pageIds)


class_name: kd.sdk.swc.hsas.common.events.salaryfile.InitEmbedChildPageEvent
method_name: <init>
param_types_key: Long,Map,List,InitPageDataDTO
signature_text:
public InitEmbedChildPageEvent(Long salaryFileBoId, java.util.Map<String, Object> customParams, java.util.List<String> pageList, kd.sdk.swc.hsas.common.dto.salaryfile.InitPageDataDTO initPageDataDTO)


class_name: kd.sdk.swc.hsas.common.events.salaryfile.InitEmbedChildPageEvent
method_name: setInitPageDataDTO
param_types_key: InitPageDataDTO
signature_text:
public void setInitPageDataDTO(kd.sdk.swc.hsas.common.dto.salaryfile.InitPageDataDTO initPageDataDTO)


class_name: kd.sdk.swc.hsas.formplugin.extpoint.approve.IApproveInvokeReportFormExtService
method_name: referReportDeal
param_types_key: ApproveReferReportDealEvent
comment: ` ` @param `dealEvent` ``
signature_text:
default void referReportDeal(kd.sdk.swc.hsas.common.events.approve.ApproveReferReportDealEvent dealEvent)


class_name: kd.sdk.swc.hsas.formplugin.extpoint.approve.IApproveInvokeReportFormExtService
method_name: referReportDown
param_types_key: ApproveReferReportDownEvent
comment: ` ```` @param `downEvent` ``
signature_text:
default void referReportDown(kd.sdk.swc.hsas.common.events.approve.ApproveReferReportDownEvent downEvent)


class_name: kd.sdk.swc.hsas.formplugin.extpoint.approve.IApproveSpecialRuleVerifyExtPlugin
method_name: afterVerifySpecialRule
param_types_key: AfterVerifySpecialRuleEvent
signature_text:
default void afterVerifySpecialRule(kd.sdk.swc.hsas.common.events.approve.AfterVerifySpecialRuleEvent event)

comment:
publicclassApproveSpecialRuleVerifyExtPluginDemoImplimplementsIApproveSpecialRuleVerifyExtPlugin {
``
@param `event` AfterSalaryCalEvent


class_name: kd.sdk.swc.hsas.formplugin.extpoint.approve.ICreateApproveBillExtService
method_name: doPreValidate
param_types_key: CreateApproveBillValidateEvent
comment: ` @param `createApproveBillValidateEvent` `
signature_text:
void doPreValidate(kd.sdk.swc.hsas.common.events.approve.CreateApproveBillValidateEvent createApproveBillValidateEvent)


class_name: kd.sdk.swc.hsas.formplugin.extpoint.approve.ICreateApproveBillExtService
method_name: setCalPersonSet
param_types_key: CreateApproveBillCalPersonDealEvent
signature_text:
void setCalPersonSet(kd.sdk.swc.hsas.common.events.approve.CreateApproveBillCalPersonDealEvent approveBillCalPersonDealEvent)

comment:
publicclassCreateApproveBillExtPluginDemoImplimplementsICreateApproveBillExtService {
```
@param `approveBillCalPersonDealEvent` CreateApproveBillCalPersonDealEvent


class_name: kd.sdk.swc.hsas.formplugin.extpoint.paydetail.IBankOfferExtPlugin
method_name: beforeBankOfferFilter
param_types_key: BankOfferFilterEvent
signature_text:
default void beforeBankOfferFilter(kd.sdk.swc.hsas.common.events.paydetail.BankOfferFilterEvent event)

comment:
publicclassBankOfferFilterTestimplementsIBankOfferExtPlugin {
``
@param `event` BankOfferFilterEvent


class_name: kd.sdk.swc.hsas.formplugin.extpoint.salarydetailresult.ISalaryDetailResultExportExtPlugin
method_name: afterBuildHead
param_types_key: AfterBuildHeadEvent
signature_text: default void afterBuildHead(AfterBuildHeadEvent args)
comment:
import kd.sdk.swc.hsas.formplugin.extpoint.salarydetailresult.ISalaryDetailResultExportPlugin;
import kd.sdk.swc.hsas.common.events.salarydetailresultexport.AfterBuildHeadEvent;
publicclassSalaryDetailResultExportExtPlugin_demoimplementsISalaryDetailResultExportPlugin {
publicvoidafterBuildHead(AfterBuildHeadEvent arg) {
// 创建一个新行
arg.getSheet().createRow(arg.getCurrRowIndex());
//对新行进行处理，如合并单元格等 TODO//设置excel数据填充起始行
arg.setCurrRowIndex(arg.getCurrRowIndex()+1);
}
}
@param `args` `


class_name: kd.sdk.swc.hsas.formplugin.extpoint.salaryfile.ISalaryFileEditExtPlugin
method_name: afterEmbedChildPage
param_types_key: AfterEmbedChildPageEvent
signature_text: default void afterEmbedChildPage(AfterEmbedChildPageEvent args)
comment:
初始化子页面后，新增基础资料附表页面
publicclassJnrcEditDemoExtPluginimplementsISalaryFileEditExtPlugin {
publicvoidinitEmbedChildPage(InitEmbedChildPageEvent args) {
args.getInitPageDataDTO().getHidePages().add(SalaryFileConstants.PAGE_HSAS_ITEMGRPCFG);
}
//设置面板的展开状态，空页面时展开，嵌入业务页面的时候不展开privatestaticvoidsetParentAdvCollapsible(IFormView formView, String flexKey, Boolean collapsible) {
Map<String, Object> map = newHashMap<>(1);
map.put(ClientProperties.Collapsible, collapsible);
formView.updateControlMetadata(flexKey, map);
}
publicvoidafterEmbedChildPage(AfterEmbedChildPageEvent args) {
StringpageNumber="kdtest_hsas_jinengrencai"; //页面元数据标识StringflexNumber="kdtest_jl_flex_jineng"; //档案详情待嵌入的flex信息块控件标识
Map<String, String> pageIds = args.getPageIds();
Map<String, Object> customParams = args.getCustomParams();
//salaryfileid -> 1677432333910672384Longsalaryfileid= Long.parseLong(String.valueOf(customParams.get("salaryfileid")));
LongrelatedPkId=0L;//技能人才数据id,没有数据传0SWCDataServiceHelperhelper=newSWCDataServiceHelper(pageNumber);
QFilterfileIdFilter=newQFilter(getFileProp(pageNumber), QFilter.equals, salaryfileid);
QFilterhisCurrFilter= BaseDataHisHelper.getHisCurrFilter();
//如果有数据，应该只有1个
DynamicObject[] datas = helper.query("id", newQFilter[]{fileIdFilter, hisCurrFilter});
if (datas != null && datas.length >= 1) {
relatedPkId = datas[0].getLong("id");
}
StringshowMessage= ResManager.loadKDString("暂无技能人才二开案例设置", "JnrcEditExtPlugin_90", "swc-hsas-business");
customParams.put(SalaryFileConstants.EMPTY_PAGE_SHOW_MSG, showMessage);
// 验权booleanhasPerm= checkPermission(SWCPermissionConstants.PERMISSION_QUERY, pageNumber);
if (hasPerm) {
if (null == relatedPkId || relatedPkId.compareTo(0L) == 0) {
// 附表无数据
showDefaultEmptyPage(args.getView(), customParams, pageNumber, flexNumber);
} else {
// 附表有数据StringpageId= asyncEmbedPage(args.getView(), flexNumber, pageNumber, relatedPkId, customParams);
pageIds.put(pageNumber, pageId);
}
} else {
//没有权限则隐藏此信息块
args.getView().setVisible(Boolean.FALSE, flexNumber);
}
}
//获取档案属性，默认应该salaryfile，二开可能自己定义，如果没有档案字段就不用过滤了private String getFileProp(String pageName) {
StringfileProp=null;
Map<String, IDataEntityProperty> mainEntityType = EntityMetadataCache.getDataEntityType(pageName).getFields();
for(Map.Entry<String, IDataEntityProperty> entry: mainEntityType.entrySet()){
if(entry.getValue() instanceof BasedataProp){
BasedataPropprop= ((BasedataProp) entry.getValue());
if (SWCEntityConstants.HSAS_SALARYFILE.equals(prop.getBaseEntityId())) {
fileProp = entry.getKey();
break;
}
}
}
return fileProp;
}
//异步嵌入页面private String asyncEmbedPage(IFormView view, String targetKey, String pageNumber, Long pkId, Map<String, Object> customParams) {
//设置面板的展开状态
setParentAdvCollapsible(view, targetKey, Boolean.FALSE);
BaseShowParametershowParameter=newBaseShowParameter();
showParameter.getOpenStyle().setShowType(ShowType.InContainer);
showParameter.getOpenStyle().setTargetKey(targetKey);
showParameter.setFormId(pageNumber);
showParameter.setCustomParams(customParams);
showParameter.setSendToClient(true);
if (null != pkId && !pkId.equals(0L)) {
showParameter.setPkId(pkId);
showParameter.setStatus(OperationStatus.VIEW);
}
view.showForm(showParameter);
return showParameter.getPageId();
}
//验证权限privatebooleancheckPermission(String permItemId, String entityName) {
LonguserId= RequestContext.get().getCurrUserId();
booleanhasPerm= SWCPermissionServiceHelper.hasPerm(userId, "/UHMBBGZQ65X", entityName, permItemId);
return hasPerm;
}
//显示空页面privatevoidshowDefaultEmptyPage(IFormView view, Map<String, Object> customParams, String pageNumber, String targetFlex) {
//空页面时展开
setParentAdvCollapsible(view, targetFlex, Boolean.TRUE);
Stringstatus= (String) customParams.get(SWCBaseConstants.STATUS);
StringisOnlyView= (String) customParams.get("isOnlyView");
// 档案状态为已废弃和已提交时，不可编辑DefaultEmptyPageEnumpageType= DefaultEmptyPageEnum.NEW_DATA_PAGE_TYPE;
if (SWCBaseConstants.STATUS_ABANDONED.equals(status) || SWCBaseConstants.STATUS_SUBMIT.equals(status) || "true".equals(isOnlyView)) {
pageType = DefaultEmptyPageEnum.VIEW_DATA_PAGE_TYPE;
}
DefaultEmptyPagedefaultEmptyPage=newDefaultEmptyPage(pageType, targetFlex, ShowType.InContainer);
Map<String, Object> params = defaultEmptyPage.getCustomParams();
params.put(SalaryFileConstants.PAGE_NUMBER, pageNumber);
params.put(SalaryFileConstants.TARGET_FLEX, targetFlex);
params.putAll(customParams);
defaultEmptyPage.setShowMessage(String.valueOf(customParams.get(SalaryFileConstants.EMPTY_PAGE_SHOW_MSG)));
view.showForm(defaultEmptyPage.getFormShowParameter());
}
}
@param `args` 嵌入子页面之后的事件，包含档案id，页面视图等信息


class_name: kd.sdk.swc.hsas.formplugin.extpoint.salaryfile.ISalaryFileEditExtPlugin
method_name: initEmbedChildPage
param_types_key: InitEmbedChildPageEvent
signature_text: default void initEmbedChildPage(InitEmbedChildPageEvent args)
comment:
初始化子页面时，隐藏标品的附表页面
publicvoidinitEmbedChildPage(InitEmbedChildPageEvent args) {
//例如隐藏标品的项目资格组设置附表： SalaryFileConstants.PAGE_HSAS_ITEMGRPCFG
args.getInitPageDataDTO().getHidePages().add(SalaryFileConstants.PAGE_HSAS_ITEMGRPCFG);
}
@param `args` 初始化处理事件，包含档案id，页面参数等信息


class_name: kd.sdk.swc.hsas.service.spi.CalPersonListService
method_name: getUpdateInfoByTaskId
param_types_key: Long
signature_text: default java.util.Map<String, java.util.Set<Long>> getUpdateInfoByTaskId(Long id)
comment:
获取核算任务可更新的信息
@param `id` 核算任务的主键id
@return 返回信息 {"addFileHisIds": [111], "updateFileIds": [11111], "delFileIds": [11001]} addFileHisIds-待添加的档案版本id集合 updateFileIds-待更新的档案boid集合 delFileIds-待删除的档案boid集合


class_name: kd.sdk.swc.hsas.service.spi.CalResultQueryService
method_name: getCalItemMap
param_types_key: String,List
signature_text:
default java.util.Map<Long, java.util.Map<String, Object>> getCalItemMap(String itemType, java.util.List<Long> itemIdList)

comment:
获取指定项目的项目信息集（薪资项目ITEMSL、取数项目ITEMFT、业务项目ITEMBS、支持项目ITEMSP，分别获取）
@param `itemType` 项目类型，kd.sdk.swc.hsas.common.enums.SalaryItemTypeEnum.XXX.getCode()
@param `itemIdList` 指定类型项目ID集合
@return Map<项目ID ， Map < 属性 ， 值>> 项目属性包括number：项目编码，name：项目名称， storageType:存储类型（文本text，数值num，日期date，金额amount）， showType：显示类型（文本text,小数num,整数int,金额amount,日期date,复选框bool）， uniqueCode：项目唯一编码 \--以下属性业务项目不返回 scale:数据精度 dataround:舍位方式（1010：四舍五入，1020：向下舍入数字（舍位），1030：向上舍入数字（进位）） datalength:数据长度


class_name: kd.sdk.swc.hsas.service.spi.CalResultQueryService
method_name: getCalPersonIds
param_types_key: QFilter[],String,int,int
signature_text:
default java.util.List<Long> getCalPersonIds(QFilter[] qFilters, String orderBys, int start, int limit)

comment:
按条件查询核算名单ID集合
@param `qFilters` 查询过滤条件，基于查询配置hsas_salarycalresultquery，传入相关查询条件
@param `orderBys` 排序条件，基于查询配置hsas_salarycalresultquery，传入相关查询条件
@param `start` 分页参数，开始行数
@param `limit` 分页参数，每页行数，传入-1时不分页
@return List


class_name: kd.sdk.swc.hsas.service.spi.CalResultQueryService
method_name: getCalPersonInfos
param_types_key: List,QFilter[],String,int,int
signature_text:
default DynamicObjectCollection getCalPersonInfos(java.util.List<String> calPersonFields, QFilter[] qFilters, String orderBys, int start, int limit)

comment:
按条件查询核算名单相关信息集合
@param `calPersonFields` 查询属性，基于查询配置hsas_salarycalresultquery
@param `qFilters` 查询过滤条件，基于查询配置hsas_salarycalresultquery，传入相关查询条件
@param `orderBys` 排序条件，基于查询配置hsas_salarycalresultquery，传入相关排序字段
@param `start` 分页参数，开始行数
@param `limit` 分页参数，每页行数，传入-1时不分页
@return DynamicObjectCollection


class_name: kd.sdk.swc.hsas.service.spi.CalResultQueryService
method_name: getCalPersonInfos
param_types_key: List,List,String,int,int
signature_text:
default DynamicObjectCollection getCalPersonInfos(java.util.List<String> calPersonFields, java.util.List<Long> pkList, String orderBys, int start, int limit)

comment:
指定核算名单ID集合,查询核算名单相关信息集合
@param `calPersonFields` 查询属性，基于查询配置hsas_salarycalresultquery
@param `pkList` 核算名单ID集合
@param `orderBys` 排序条件，基于查询配置hsas_salarycalresultquery，传入相关排序字段
@return DynamicObjectCollection


class_name: kd.sdk.swc.hsas.service.spi.CalResultQueryService
method_name: getCalResult
param_types_key: List,String,List
signature_text:
default java.util.Map<Long, java.util.Map<Long, Object>> getCalResult(java.util.List<Long> calPersonIdList, String itemType, java.util.List<Long> itemIdList)

comment:
获取指定项目薪资明细结果（薪资项目ITEMSL、取数项目ITEMFT、业务项目ITEMBS、支持项目ITEMSP，分别获取）
@param `calPersonIdList` 核算名单ID集合
@param `itemType` 项目类型，如kd.sdk.swc.hsas.common.enums.SalaryItemTypeEnum.ITEMSL.getCode()
@param `itemIdList` 指定类型项目ID集合
@return Map<核算名单ID ， Map < 项目ID ， 值>>


class_name: kd.sdk.swc.hsas.service.spi.CalResultQueryService
method_name: getCalResult
param_types_key: List,String,Map
signature_text:
default java.util.Map<Long, java.util.Map<Long, Object>> getCalResult(java.util.List<Long> calPersonIdList, String itemType, java.util.Map<Long, java.util.Map<String, Object>> itemInfoMap)

comment:
获取指定项目薪资明细结果（薪资项目ITEMSL、取数项目ITEMFT、业务项目ITEMBS、支持项目ITEMSP，分别获取）
@param `calPersonIdList` 核算名单ID集合
@param `itemType` 项目类型，如kd.sdk.swc.hsas.common.enums.SalaryItemTypeEnum.ITEMSL.getCode()
@param `itemInfoMap` 指定类型项目集合
@return Map<核算名单ID ， Map < 项目ID ， 值>>


class_name: kd.sdk.swc.hsas.service.spi.CalResultQueryService
method_name: getCalResultByCalTableId
param_types_key: List,String,List
signature_text:
default java.util.Map<Long, java.util.Map<Long, Object>> getCalResultByCalTableId(java.util.List<Long> calTableIdList, String itemType, java.util.List<Long> itemIdList)

comment:
获取指定项目薪资明细结果（薪资项目ITEMSL、取数项目ITEMFT、业务项目ITEMBS、支持项目ITEMSP，分别获取）
@param `calTableIdList` 核算列表ID集合
@param `itemType` 项目类型，如kd.sdk.swc.hsas.common.enums.SalaryItemTypeEnum.ITEMSL.getCode()
@param `itemIdList` 指定类型项目ID集合
@return Map<核算名单ID ， Map < 项目ID ， 值>>


class_name: kd.sdk.swc.hsas.service.spi.CalResultQueryService
method_name: getCalResultByCalTableId
param_types_key: List,String,Map
signature_text:
default java.util.Map<Long, java.util.Map<Long, Object>> getCalResultByCalTableId(java.util.List<Long> calTableIdList, String itemType, java.util.Map<Long, java.util.Map<String, Object>> itemInfoMap)

comment:
获取指定项目薪资明细结果（薪资项目ITEMSL、取数项目ITEMFT、业务项目ITEMBS、支持项目ITEMSP，分别获取）
@param `calTableIdList` 核算列表ID集合
@param `itemType` 项目类型，如kd.sdk.swc.hsas.common.enums.SalaryItemTypeEnum.ITEMSL.getCode()
@param `itemInfoMap` 指定类型项目集合
@return Map<核算名单ID ， Map < 项目ID ， 值>>


class_name: kd.sdk.swc.hsas.service.spi.CalResultQueryService
method_name: getSalaryResult
param_types_key: List,List
signature_text:
default java.util.Map<Long, java.util.Map<Long, Object>> getSalaryResult(java.util.List<Long> calPersonIdList, java.util.List<Long> salaryItemIdList)

comment:
获取薪资项目薪资明细结果（薪资项目）
@param `calPersonIdList` 核算名单ID集合
@param `salaryItemIdList` 薪酬项目ID集合
@return Map<核算名单ID ， Map < 项目ID ， 值>>


class_name: kd.sdk.swc.hsas.service.spi.CalResultQueryService
method_name: getSalaryResult
param_types_key: List,Map
signature_text:
default java.util.Map<Long, java.util.Map<Long, Object>> getSalaryResult(java.util.List<Long> calPersonIdList, java.util.Map<Long, java.util.Map<String, Object>> salaryItemInfoMap)

comment:
获取薪资项目薪资明细结果（薪资项目）
@param `calPersonIdList` 核算名单ID集合
@param `salaryItemInfoMap` 薪酬项目集合
@return Map<核算名单ID ， Map < 项目ID ， 值>>


class_name: kd.sdk.swc.hsas.service.spi.CalResultQueryService
method_name: getSalaryResultByCalTableId
param_types_key: List,List
signature_text:
default java.util.Map<Long, java.util.Map<Long, Object>> getSalaryResultByCalTableId(java.util.List<Long> calTableIdList, java.util.List<Long> salaryItemIdList)

comment:
获取薪资项目薪资明细结果（薪资项目）
@param `calTableIdList` 核算列表ID集合
@param `salaryItemIdList` 薪酬项目ID集合
@return Map<核算名单ID ， Map < 项目ID ， 值>>


class_name: kd.sdk.swc.hsas.service.spi.CalResultQueryService
method_name: getSalaryResultByCalTableId
param_types_key: List,Map
signature_text:
default java.util.Map<Long, java.util.Map<Long, Object>> getSalaryResultByCalTableId(java.util.List<Long> calTableIdList, java.util.Map<Long, java.util.Map<String, Object>> salaryItemInfoMap)

comment:
获取薪资项目薪资明细结果（薪资项目）
@param `calTableIdList` 核算列表ID集合
@param `salaryItemInfoMap` 薪酬项目集合
@return Map<核算名单ID ， Map < 项目ID ， 值>>


class_name: kd.sdk.swc.hsbp.business.spi.SWCFilterCalSalaryFile
method_name: filterSalaryFileBoIdsOnlyInBizData
param_types_key: Long,Long,List
signature_text:
default java.util.List<Long> filterSalaryFileBoIdsOnlyInBizData(Long taskId, Long currUserId, java.util.List<Long> salaryFileIdList)

comment:
根据核算任务Id, 对满足核算名单过滤条件的档案BoID或者核算名单中的档案BoId，做过滤；过滤出仅仅从前端业务数据来的档案BoId
@param `taskId` 核算任务Id
@param `currUserId` 当前用户Id, 如果传空，则不对档案做数据权限过滤
@param `salaryFileIdList` 满足核算名单过滤条件的档案BoID或者核算名单中的档案BoId
@return 过滤出仅仅从前端业务数据来的档案BoId


class_name: kd.sdk.swc.hsbs.business.mservice.helper.BizItemServiceHelper
method_name: getBizItemPropInfo
param_types_key: List
comment: 批量获取业务项目下业务项目属性信息 @param `paramList` 业务项目id List
signature_text:
public static java.util.Map<Long, java.util.List<java.util.Map<String, Object>>> getBizItemPropInfo(java.util.List<Long> paramList)


class_name: kd.sdk.swc.hscs.business.extpoint.ICalRollBackExtService
method_name: calRollBack
param_types_key: CalRollBackEvent
signature_text: default void calRollBack(CalRollBackEvent event)
comment:
publicclassCalRollBackExtServiceDemoImplimplementsICalRollBackExtService {
privatestaticLoglog= LogFactory.getLog(CalRollBackExtServiceDemoImpl.class);
``
@param `event` CalRollBackEvent


class_name: kd.sdk.swc.hscs.business.extpoint.IFetchResultCoverDataExtService
method_name: fetchCalResultCoverData
param_types_key: FetchResultCoverEvent
signature_text: default void fetchCalResultCoverData(FetchResultCoverEvent event)
comment:
获取结果覆盖数据
publicclassFetchResultCoverDataExtServiceDemoimplementsIFetchResultCoverDataExtService{
privatestaticfinalLogLOGGER= LogFactory.getLog(FetchResultCoverDataExtServiceDemo.class);
``
@param `event` `


class_name: kd.sdk.swc.hscs.business.extpoint.ISalaryCalExtService
method_name: afterSalaryCal
param_types_key: AfterSalaryCalEvent
signature_text: default void afterSalaryCal(AfterSalaryCalEvent event)
comment:
publicclassSalaryCalExtService_demoimplementsISalaryCalExtService {
privatestaticLoglog= LogFactory.getLog(SalaryCalExtServiceDemoImpl.class);
publicvoidafterSalaryCal(AfterSalaryCalEvent event) {
//@param event 薪资计算完成后事件，其中属性包括：//       Long taskId 核算任务ID，用于获取核算任务信息//       Long recordId 计算会话ID//       Long batchId 核算批次ID//       String calType  计算类型（"onlyPreTaxCal"：仅计算税前， "preTaxCal":计算税前，"afterTaxCal"：计算税后）计算保存埋点在分段计算时或进来两次，计算税前和计算税后，可以通过计算类型进行判断是否需要进行业务处理//       List calPersonIdList  当前批次核算名单Id集合，用于获取需要处理的明细结果信息//       boolean isFinished 是否计算完成，判断当前次计算是否完成//       String traceId 日志跟踪ID，可用于日志打印
log.info("SalaryCalExtServiceDemoImpl start,params:"+event.toString());
}
}
@param `event` AfterSalaryCalEvent


class_name: kd.sdk.swc.hscs.business.mservice.helper.HSCSCostAllotDetailServiceHelper
method_name: generateAllotDetails
param_types_key: Map
comment: 生成分摊明细 @param `param` 入参 @return 返回结果，支持部分成功
signature_text:
public static java.util.Map<String, Object> generateAllotDetails(java.util.Map<String, Object> param)


class_name: kd.sdk.swc.hscs.common.events.AfterSalaryCalEvent
method_name: <init>
param_types_key: Long,Long,Long,String,List,boolean,String
signature_text:
public AfterSalaryCalEvent(Long taskId, Long recordId, Long batchId, String calType, java.util.List<Long> calPersonIdList, boolean isFinished, String traceId)


class_name: kd.sdk.swc.hscs.common.events.AfterSalaryCalEvent
method_name: getCalType
signature_text: public String getCalType()
comment:
获取计算类型
@return 计算类型（"onlyPreTaxCal"：仅计算税前， "preTaxCal":计算税前，"afterTaxCal"：计算税后） 计算保存埋点在分段计算时或进来两次，计算税前和计算税后，可以通过计算类型进行判断是否需要进行业务处理


class_name: kd.sdk.swc.hscs.common.events.AfterSalaryCalEvent
method_name: setCalType
param_types_key: String
signature_text: public void setCalType(String calType)
comment:
设置计算类型
@param `calType` 计算类型（"onlyPreTaxCal"：仅计算税前， "preTaxCal":计算税前，"afterTaxCal"：计算税后） 计算保存埋点在分段计算时或进来两次，计算税前和计算税后，可以通过计算类型进行判断是否需要进行业务处理


class_name: kd.sdk.swc.hscs.common.events.CalRollBackEvent
method_name: <init>
param_types_key: Long,List,Long,String
signature_text:
public CalRollBackEvent(Long calTaskId, java.util.List<Long> calPersonIdList, Long calRecordId, String cancelType)


class_name: kd.sdk.swc.hscs.common.events.FetchResultCoverEvent
method_name: <init>
param_types_key: long,List,List,Map,Map
signature_text:
public FetchResultCoverEvent(long calTaskId, java.util.List<Long> calPersonIdList, java.util.List<Long> salaryItemIdList, java.util.Map<Long, java.util.Map<String, Object>> slItemResultMap, java.util.Map<Long, java.util.Map<String, java.util.Map<String, Object>>> slItemSectionResultMap)


class_name: kd.sdk.swc.hscs.common.events.FetchResultCoverEvent
method_name: getSlItemSectionResultMap
comment: 获取分段结果覆盖薪酬项目各分段区间结果值集合
signature_text:
public java.util.Map<Long, java.util.Map<String, java.util.Map<String, Object>>> getSlItemSectionResultMap()


class_name: kd.sdk.swc.hscs.common.events.FetchResultCoverEvent
method_name: setSlItemSectionResultMap
param_types_key: Map
comment: 设置分段结果覆盖薪酬项目各分段区间结果值集合 @param `slItemSectionResultMap`
signature_text:
public void setSlItemSectionResultMap(java.util.Map<Long, java.util.Map<String, java.util.Map<String, Object>>> slItemSectionResultMap)


class_name: kd.sdk.swc.hscs.common.events.HisDataTaskCheckEvent
method_name: <init>
param_types_key: Map,Map,String
signature_text:
public HisDataTaskCheckEvent(java.util.Map<Long, DynamicObject> dataMap, java.util.Map<Long, DataCheckFailDTO> checkFailMap, String writeTaskType)


class_name: kd.sdk.swc.hscs.service.api.ICustFetchService
method_name: fetchDataCalPerson
param_types_key: List,Map
signature_text:
java.util.Map<Long, java.util.Map<String, Object>> fetchDataCalPerson(java.util.List<Long> calPersonIdList, java.util.Map<Long, java.util.Map<String, Object>> paramsMap)

comment:
核算对象取数维度的取数方法
@param `calPersonIdList` 核算名单id集合
@param `paramsMap` 人员级别取数项目数据集合 key:核算名单id,value:[key:入参字段，value:入参值]
@return key:核算名单id, value:[key:出参字段，value:出参值]


class_name: kd.sdk.swc.hscs.service.api.ICustFetchService
method_name: fetchDataCalTask
param_types_key: Long,Map
signature_text:
java.util.Map<String, Object> fetchDataCalTask(Long calTaskId, java.util.Map<String, Object> paramsMap)

comment:
核算任务取数维度的取数方法
@param `calTaskId` 核算任务的id
@param `paramsMap` 任务级别取数项目数据集合 key:入参字段，value:入参字段值
@return key:出参字段，value:出参值


class_name: kd.sdk.swc.hspp.business.extpoint.salaryslip.ISalarySlipQueryExtService
method_name: salarySlipQueryPersonVerify
param_types_key: SalarySlipPersonVerifyEvent
signature_text:
default void salarySlipQueryPersonVerify(kd.sdk.swc.hspp.common.events.SalarySlipPersonVerifyEvent verifyEvent)

comment:
publicclassSalarySlipQueryExtServiceImplimplementsISalarySlipQueryExtService {
``
@param `verifyEvent` `


class_name: kd.sdk.swc.hspp.formplugin.mobile.ISalaryBaseExtService
method_name: redrawSalaryLabelAp
param_types_key: SalaryLabelApEvent
comment: `` @param `salaryLabelApEvent` `
signature_text:
void redrawSalaryLabelAp(kd.sdk.swc.hspp.common.events.mobile.SalaryLabelApEvent salaryLabelApEvent)


class_name: kd.sdk.swc.hspp.mservice.helper.SalarySlipServiceHelper
method_name: authenticatePassword
param_types_key: Map
comment: 当前人员使用密码登录 @param `paramMap` 登录map @return 结果值
signature_text:
public static java.util.Map<String, Object> authenticatePassword(java.util.Map<String, Object> paramMap)


class_name: kd.sdk.swc.hspp.mservice.helper.SalarySlipServiceHelper
method_name: querySalarySlipDetail
param_types_key: Map
comment: 根据中台人员查询某一时间范围的工资条信息 @param `paramMap` 查询map @return 结果值
signature_text:
public static java.util.Map<String, Object> querySalarySlipDetail(java.util.Map<String, Object> paramMap)


class_name: kd.sdk.swc.hspp.mservice.helper.SalarySlipServiceHelper
method_name: querySalarySlipSumDetail
param_types_key: Map
comment: 根据中台人员与汇总显示方案查询某一时间范围的工资条汇总信息 @param `paramMap`
signature_text:
public static java.util.Map<String, Object> querySalarySlipSumDetail(java.util.Map<String, Object> paramMap)


class_name: kd.sdk.swc.hspp.mservice.helper.SalarySlipServiceHelper
method_name: querySalarySlipSumView
param_types_key: Map
comment: 根据中台人员查询可用的工资条汇总显示方案 @param `paramMap`
signature_text:
public static java.util.Map<String, Object> querySalarySlipSumView(java.util.Map<String, Object> paramMap)


class_name: kd.sdk.swc.hspp.mservice.helper.SalarySlipServiceHelper
method_name: saveOrUpdatePassword
param_types_key: Map
comment: 当前人员保存或者更新密码 @param `paramMap` 密码map @return 结果值
signature_text:
public static java.util.Map<String, Object> saveOrUpdatePassword(java.util.Map<String, Object> paramMap)


class_name: kd.sdk.swc.pcs.business.extpoint.costcfg.ICostCfgExportExtService
method_name: setCostCfgExportFieldAndValue
param_types_key: CostCfgEvent
signature_text: default void setCostCfgExportFieldAndValue(CostCfgEvent event)
comment:
成本核算设置引出事件,可设置引出字段，和引出值
publicclassCosCfgExportServiceDemoimplementsICostCfgExportExtService {
Override
publicvoidsetCostCfgExportFieldAndValue(CostCfgEvent args) {
StringbillFormId= args.getBillFormId();
List<DynamicObject> costCfgDyList = args.getCostCfgColl();
Map<String, String> costCfgHeaders = args.getCostCfgHeaders();
if (SWCStringUtils.isEmpty(billFormId) || CollectionUtils.isEmpty(costCfgDyList) || costCfgHeaders == null) {
// 页面标识为空、数据为空、表头为空，退出return;
}
SWCDataServiceHelperhelper=newSWCDataServiceHelper(billFormId);
DynamicObjectcostCfgDy= helper.generateEmptyDynamicObject();
// 取成本设置属性DataEntityPropertyCollectionproperties= costCfgDy.getDynamicObjectType().getProperties();
// 主实体已有字段booleanenableContainsKey= properties.containsKey("enable");
// 主实体二开添加基础资料字段，以lcs_costcenter成本中心为例booleanbaseDataContainsKey= properties.containsKey("testaddbasedata");
// 主实体二开添加文本字段booleantextContainsKey= properties.containsKey("testaddtext");
booleanbaseDataEntContainsKey=false;
booleantextEntContainsKey=false;
booleanentryContainsKey= properties.containsKey("costcfgentryentity");
if (entryContainsKey) {
DynamicObjectentryDy= helper.generateEmptyEntryDynamicObject("costcfgentryentity");
if (entryDy != null) {
DataEntityPropertyCollectionentryProperties= entryDy.getDataEntityType().getProperties();
// 普通成本设置分录二开添加的基础资料字段
baseDataEntContainsKey = entryProperties.containsKey("testaddentbasedata");
// 普通成本设置分录二开添加的文本字段
textEntContainsKey = entryProperties.containsKey("testaddenttext");
}
}
booleanbaseDataEntTypeContainsKey=false;
booleantextEntTypeContainsKey=false;
booleanentryTypeContainsKey= properties.containsKey("costcfgtypeentryentity");
if (entryTypeContainsKey) {
DynamicObjectentryTypeDy= helper.generateEmptyEntryDynamicObject("costcfgtypeentryentity");
if (entryTypeDy != null) {
DataEntityPropertyCollectionentryProperties= entryTypeDy.getDataEntityType().getProperties();
// 兜底成本设置分录二开添加的基础资料字段
baseDataEntTypeContainsKey = entryProperties.containsKey("testaddenttypebasedata");
// 兜底成本设置分录二开添加的文本字段
textEntTypeContainsKey = entryProperties.containsKey("testaddenttypetext");
}
}
LinkedHashMap<String, String> costCfgLinkHeaders = newLinkedHashMap<>(SWCBaseConstants.INITCAPACITY_HASHMAP);
Iterator<Map.Entry<String, String>> iterator = costCfgHeaders.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> next = iterator.next();
Stringkey= next.getKey();
Stringvalue= next.getValue();
costCfgLinkHeaders.put(key, value);
// 如放在生效日期后面if ("bsed".equals(key)) {
if (enableContainsKey) {
costCfgLinkHeaders.put("enable", "testenable");
}
if (baseDataContainsKey) {
costCfgLinkHeaders.put("testaddbasedata", "testbasedata");
}
if (textContainsKey) {
costCfgLinkHeaders.put("testaddtext", "testtext");
}
}
}
if (baseDataEntContainsKey) {
costCfgLinkHeaders.put("testaddentbasedata", "testentbasedata");
}
if (textEntContainsKey) {
costCfgLinkHeaders.put("testaddenttext", "testenttext");
}
if (baseDataEntTypeContainsKey) {
costCfgLinkHeaders.put("testaddenttypebasedata", "testenttypebasedata");
}
if (textEntTypeContainsKey) {
costCfgLinkHeaders.put("testaddenttypetext", "testenttypetext");
}
args.setCostCfgHeaders(costCfgLinkHeaders);
// 新增的基础资料字段引出的类型，1编码，2名称，默认显示编码
Map<String, String> baseDataExportType = args.getBaseDataExportType();
if (baseDataExportType == null) {
baseDataExportType = newHashMap<>();
}
baseDataExportType.put("testaddbasedata", SWCBaseConstants.STR_ONE);
baseDataExportType.put("testaddentbasedata", SWCBaseConstants.STR_TWO);
baseDataExportType.put("testaddenttypebasedata", SWCBaseConstants.STR_ONE);
baseDataExportType.put("testaddenttypetext", SWCBaseConstants.STR_TWO);
args.setBaseDataExportType(baseDataExportType);
DynamicObjectcostCenterD1y=
BusinessDataServiceHelper.loadSingleFromCache(785232921668617216L, "lcs_costcenter");
DynamicObjectcostCenter2Dy=
BusinessDataServiceHelper.loadSingleFromCache(785232921668617216L, "lcs_costcenter");
for (DynamicObject allotBill : costCfgDyList) {
// 设置二开主实体字段的值if (enableContainsKey) {
allotBill.set("enable", SWCBaseConstants.ENABLE_ENABLE);
}
if (baseDataContainsKey) {
allotBill.set("testaddbasedata", costCenterD1y);
}
if (textContainsKey) {
allotBill.set("testaddtext", "text value");
}
// 设置二开成本设置分录字段的值if (entryContainsKey) {
DynamicObjectCollectioncostCfgEntryColl= allotBill.getDynamicObjectCollection("costcfgentryentity");
for (DynamicObject costCfgEntryDy : costCfgEntryColl) {
if (baseDataEntContainsKey) {
costCfgEntryDy.set("testaddentbasedata", costCenter2Dy);
}
if (textEntContainsKey) {
costCfgEntryDy.set("testaddenttext", "enttext value");
}
}
}
// 设置二开兜底分录字段的值if (entryTypeContainsKey) {
DynamicObjectCollectioncostCfgEntryTypeColl=
allotBill.getDynamicObjectCollection("costcfgtypeentryentity");
for (DynamicObject costCfgEntryTypeDy : costCfgEntryTypeColl) {
if (baseDataEntTypeContainsKey) {
costCfgEntryTypeDy.set("testaddenttypebasedata", costCenter2Dy);
}
if (textEntTypeContainsKey) {
costCfgEntryTypeDy.set("testaddenttypetext", "enttypetext value");
}
}
}
}
}
}
@param `event` 成本核算设置引出事件


class_name: kd.sdk.swc.pcs.business.extpoint.costcfg.ICostCfgImportExtService
method_name: setCostCfgImportField
param_types_key: CostCfgEvent
signature_text: default void setCostCfgImportField(CostCfgEvent event)
comment:
成本核算设置引入事件,可设置引入字段
publicclassCosCfgImportServiceDemoimplementsICostCfgImportExtService {
@OverridepublicvoidsetCostCfgImportField(CostCfgEvent args) {
StringbillFormId= args.getBillFormId();
Map<String, String> costCfgHeaders = args.getCostCfgHeaders();
if (SWCStringUtils.isEmpty(billFormId) || costCfgHeaders == null) {
// 页面标识为空、表头为空，退出return;
}
SWCDataServiceHelperhelper=newSWCDataServiceHelper(billFormId);
DynamicObjectcostCfgDy= helper.generateEmptyDynamicObject();
// 取成本设置属性DataEntityPropertyCollectionproperties= costCfgDy.getDynamicObjectType().getProperties();
// 主实体已有字段booleanenableContainsKey= properties.containsKey("enable");
// 主实体二开添加基础资料字段，以lcs_costcenter成本中心为例booleanbaseDataContainsKey= properties.containsKey("testaddbasedata");
// 主实体二开添加文本字段booleantextContainsKey= properties.containsKey("testaddtext");
booleanbaseDataEntContainsKey=false;
booleantextEntContainsKey=false;
booleanentryContainsKey= properties.containsKey("costcfgentryentity");
if (entryContainsKey) {
DynamicObjectentryDy= helper.generateEmptyEntryDynamicObject("costcfgentryentity");
if (entryDy != null) {
DataEntityPropertyCollectionentryProperties= entryDy.getDataEntityType().getProperties();
// 普通成本设置分录二开添加的基础资料字段
baseDataEntContainsKey = entryProperties.containsKey("testaddentbasedata");
// 普通成本设置分录二开添加的文本字段
textEntContainsKey = entryProperties.containsKey("testaddenttext");
}
}
booleanbaseDataEntTypeContainsKey=false;
booleantextEntTypeContainsKey=false;
booleanentryTypeContainsKey= properties.containsKey("costcfgtypeentryentity");
if (entryTypeContainsKey) {
DynamicObjectentryTypeDy= helper.generateEmptyEntryDynamicObject("costcfgtypeentryentity");
if (entryTypeDy != null) {
DataEntityPropertyCollectionentryProperties= entryTypeDy.getDataEntityType().getProperties();
// 兜底成本设置分录二开添加的基础资料字段
baseDataEntTypeContainsKey = entryProperties.containsKey("testaddenttypebasedata");
// 兜底成本设置分录二开添加的文本字段
textEntTypeContainsKey = entryProperties.containsKey("testaddenttypetext");
}
}
LinkedHashMap<String, String> costCfgLinkHeaders = newLinkedHashMap<>(SWCBaseConstants.INITCAPACITY_HASHMAP);
Iterator<Map.Entry<String, String>> iterator = costCfgHeaders.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> next = iterator.next();
Stringkey= next.getKey();
Stringvalue= next.getValue();
costCfgLinkHeaders.put(key, value);
// 如放在生效日期后面if ("bsed".equals(key)) {
if (enableContainsKey) {
costCfgLinkHeaders.put("enable", "testenable");
}
if (baseDataContainsKey) {
costCfgLinkHeaders.put("testaddbasedata", "testbasedata");
}
if (textContainsKey) {
costCfgLinkHeaders.put("testaddtext", "testtext");
}
}
}
if (baseDataEntContainsKey) {
costCfgLinkHeaders.put("testaddentbasedata", "testentbasedata");
}
if (textEntContainsKey) {
costCfgLinkHeaders.put("testaddenttext", "testenttext");
}
if (baseDataEntTypeContainsKey) {
costCfgLinkHeaders.put("testaddenttypebasedata", "testenttypebasedata");
}
if (textEntTypeContainsKey) {
costCfgLinkHeaders.put("testaddenttypetext", "testenttypetext");
}
args.setCostCfgHeaders(costCfgLinkHeaders);
}
}
@param `event` 成本核算设置引入事件


class_name: kd.sdk.swc.pcs.business.extpoint.costcfg.ICostCfgImportExtService
method_name: setCostCfgImportValue
param_types_key: CostCfgEvent
signature_text: default void setCostCfgImportValue(CostCfgEvent event)
comment:
成本核算设置引入事件,可设置引入字段值
publicclassCosCfgImportServiceDemoimplementsICostCfgImportExtService {
@OverridepublicvoidsetCostCfgImportValue(CostCfgEvent args) {
List<DynamicObject> costCfgDyList = args.getCostCfgColl();
if (CollectionUtils.isEmpty(costCfgDyList)) {
// 数据为空为空，退出return;
}
// 取成本设置属性DynamicObjectdynamicObject= costCfgDyList.get(0);
StringbillFormId= dynamicObject.getDataEntityType().getName();
SWCDataServiceHelperhelper=newSWCDataServiceHelper(billFormId);
DynamicObjectcostCfgDy= helper.generateEmptyDynamicObject();
DataEntityPropertyCollectionproperties= costCfgDy.getDynamicObjectType().getProperties();
booleanenableContainsKey= properties.containsKey("enable");
booleanbaseDataContainsKey= properties.containsKey("testaddbasedata");
booleantextContainsKey= properties.containsKey("testaddtext");
booleanbaseDataEntContainsKey=false;
booleantextEntContainsKey=false;
booleanentryContainsKey= properties.containsKey("costcfgentryentity");
if (entryContainsKey) {
DynamicObjectentryDy= helper.generateEmptyEntryDynamicObject("costcfgentryentity");
if (entryDy != null) {
DataEntityPropertyCollectionentryProperties= entryDy.getDataEntityType().getProperties();
baseDataEntContainsKey = entryProperties.containsKey("testaddentbasedata");
textEntContainsKey = entryProperties.containsKey("testaddenttext");
}
}
booleanbaseDataEntTypeContainsKey=false;
booleantextEntTypeContainsKey=false;
booleanentryTypeContainsKey= properties.containsKey("costcfgtypeentryentity");
if (entryTypeContainsKey) {
DynamicObjectentryTypeDy= helper.generateEmptyEntryDynamicObject("costcfgtypeentryentity");
if (entryTypeDy != null) {
DataEntityPropertyCollectionentryProperties= entryTypeDy.getDataEntityType().getProperties();
baseDataEntTypeContainsKey = entryProperties.containsKey("testaddenttypebasedata");
textEntTypeContainsKey = entryProperties.containsKey("testaddenttypetext");
}
}
DynamicObjectcostCenterD1y=
BusinessDataServiceHelper.loadSingleFromCache(785232921668617216L, "lcs_costcenter");
DynamicObjectcostCenter2Dy=
BusinessDataServiceHelper.loadSingleFromCache(785232921668617216L, "lcs_costcenter");
for (DynamicObject allotBill : costCfgDyList) {
// 设置二开主实体字段的值if (enableContainsKey) {
allotBill.set("enable", SWCBaseConstants.ENABLE_ENABLE);
}
if (baseDataContainsKey) {
allotBill.set("testaddbasedata", costCenterD1y);
}
if (textContainsKey) {
allotBill.set("testaddtext", "text value");
}
// 设置二开成本设置分录字段的值if (entryContainsKey) {
DynamicObjectCollectioncostCfgEntryColl= allotBill.getDynamicObjectCollection("costcfgentryentity");
for (DynamicObject costCfgEntryDy : costCfgEntryColl) {
if (baseDataEntContainsKey) {
costCfgEntryDy.set("testaddentbasedata", costCenter2Dy);
}
if (textEntContainsKey) {
costCfgEntryDy.set("testaddenttext", "enttext value");
}
}
}
// 设置二开兜底分录字段的值if (entryTypeContainsKey) {
DynamicObjectCollectioncostCfgEntryTypeColl=
allotBill.getDynamicObjectCollection("costcfgtypeentryentity");
for (DynamicObject costCfgEntryTypeDy : costCfgEntryTypeColl) {
if (baseDataEntTypeContainsKey) {
costCfgEntryTypeDy.set("testaddenttypebasedata", costCenter2Dy);
}
if (textEntTypeContainsKey) {
costCfgEntryTypeDy.set("testaddenttypetext", "enttypetext value");
}
}
}
}
}
}
@param `event` 成本核算设置引入事件


class_name: kd.sdk.swc.pcs.common.events.CostCfgEvent
method_name: <init>
param_types_key: String,List,LinkedHashMap
signature_text:
public CostCfgEvent(String billFormId, java.util.List<DynamicObject> costCfgColl, java.util.LinkedHashMap<String, String> costCfgHeaders)


class_name: kd.sdk.tmc.am.extpoint.bankacct.IBankAccountFilter
method_name: addIFilterColumn
param_types_key: FilterContainerInitArgs,IFormView
signature_text: default void addIFilterColumn(FilterContainerInitArgs args, IFormView formView)
comment:
银行账户增加“是否虚拟账户”字段方法1
扩展示例如下
import kd.bos.form.IFormView;
import kd.bos.form.events.FilterContainerInitArgs;
publicclassBankAccountFilterimplementsIBankAccountFilter {
publicvoidaddIFilterColumn(FilterContainerInitArgs args, IFormView formView) {
}
}
@param `args` 页面的过滤条件
@param `formView` 页面的参数
@return void


class_name: kd.sdk.tmc.am.extpoint.bankacct.IBankAccountFilter
method_name: setIFilters
param_types_key: SetFilterEvent,IFormView
signature_text: default void setIFilters(SetFilterEvent e, IFormView formView)
comment:
银行账户增加“是否虚拟账户”字段方法2
扩展示例如下
import kd.bos.form.IFormView;
import kd.bos.form.events.SetFilterEvent;
publicclassBankAccountFilterimplementsIBankAccountFilter {
publicvoidsetIFilters(SetFilterEvent e, IFormView formView) {
}
}
@param `e` 页面的事件
@param `formView` 页面的参数
@return void


class_name: kd.sdk.tmc.am.extpoint.bankacct.ILinkPayRelationAddCompanyFilter
method_name: parentAcctAddCompanyIdList
param_types_key: Set
signature_text: default void parentAcctAddCompanyIdList(java.util.Set<Object> companyIdList)
comment:
支付关系维护分录的母账户的过滤条件中添加申请公司
扩展示例如下
import java.util.Set;
import kd.sdk.tmc.am.extpoint.bankacct.ILinkPayRelationAddCompanyFilter;
publicclassLinkPayRelationAddCompanyimplementsILinkPayRelationAddCompanyFilter {
publicvoidparentAcctAddCompanyIdList(Set companyIdList){
companyIdList.add(1L);
}
}
@param `companyIdList` 母账户过滤的申请公司


class_name: kd.sdk.tmc.am.extpoint.inspect.IInspectPushMyself
method_name: getDestEntity
param_types_key: String
signature_text: String getDestEntity(String srcOpinion)
comment:
账户巡检处理单自定义下推获取目标单实体
扩展示例如下
package kd.sdk.tmc.am.extpoint.inspect;
import kd.bos.dataentity.entity.DynamicObject;
import java.util.List;
public String getDestEntity(String srcOpinion) {
return"am_test_aaa";
}
@param `srcOpinion` 变更前处理意见
@return 实体编码


class_name: kd.sdk.tmc.am.extpoint.inspect.IInspectPushMyself
method_name: isDealMyselfPush
param_types_key: String,DynamicObject,List
signature_text: boolean isDealMyselfPush(String opKey, DynamicObject data, java.util.List<DynamicObject> entryList)
comment:
账户巡检处理单自定义下推销户申请与变更申请
扩展示例如下
package kd.sdk.tmc.am.extpoint.inspect;
import kd.bos.dataentity.entity.DynamicObject;
import java.util.List;
publicbooleanisDealMyselfPush(String opKey, DynamicObject data, List entryList) {
returnfalse;
}
@param `opKey` 操作标识：audit || unaudit || changedeal || handpush
@param `data` 整个巡检处理单对象
@param `entryList` 只包含处理意见=账户销户或者账户变更的数据
@return 是否自己处理 默认false 返回true 不会执行标品下推等逻辑


class_name: kd.sdk.tmc.am.extpoint.report.IDormantFormListFilter
method_name: setIFilters
param_types_key: List,FilterInfo
signature_text: default void setIFilters(java.util.List<QFilter> qFilters, FilterInfo filter)
comment:
久悬户查询增加过滤条件可”是否包含虚拟户”
扩展示例如下
import kd.bos.entity.report.FilterInfo;
import kd.bos.orm.query.QFilter;
import java.util.List;
publicclassDormantFormListFilterimplementsIDormantFormListFilter {
publicvoidsetIFilters(List qFilters, FilterInfo filter) {
qFilters.add(newQFilter("isinclude", QCP.equals, filter.getString("isinclude")));
qFilters.add(newQFilter("name", QCP.equals, filter.getString("name")));
}
}
@param `qFilters` 页面的过滤条件
@param `filter` 传递的参数
@return void


class_name: kd.sdk.tmc.bei.extpoint.balance.IBalanceReportInterface
method_name: getAccountFields
signature_text: String getAccountFields()
comment:
余额报表添加账户字段扩展点
扩展示例如下
package kd.sdk.tmc.bei.extpoint.balance;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
publicclassBalanceReportExtimplementsIBalanceReportInterface{
public String getAccountFields() {
// 需要查询的字段名，类别扩展增加相同属性名称的列return"acctstatus,defaultcurrency";
}
}
@return 需要扩展的字段


class_name: kd.sdk.tmc.bei.extpoint.balance.IBalanceReportInterface
method_name: getAccountFilter
param_types_key: QFilter
signature_text: QFilter getAccountFilter(QFilter qFilter)
comment:
余额报表条件过滤扩展点
拓展示例如下
package kd.sdk.tmc.bei.extpoint.balance;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
publicclassBalanceReportExtimplementsIBalanceReportInterface{
public QFilter getAccountFilter(QFilter qFilter) {
// 增加账户过滤内容
qFilter.and("bankaccountnumber", QCP.equals, "FI-00000000000CNY44");
return qFilter;
}
}
@param `qFilter` 查询条件
@return 查询条件


class_name: kd.sdk.tmc.bei.extpoint.balance.IFillBankBalance
method_name: fillExtBankBalance
param_types_key: DynamicObject,String
signature_text: void fillExtBankBalance(DynamicObject bankBalance, String balanceString)
comment:
同步余额增加字段支持二开扩展
扩展示例如下
package kd.sdk.tmc.bei.extpoint.balance;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import kd.bos.dataentity.entity.DynamicObject;
publicclassFillBankBalanceExtimplementsIFillBankBalance {
publicvoidfillExtBankBalance(DynamicObject bankBalance, String balanceString) {
JSONObjectjsonObject= JSON.parseObject(balanceString);
bankBalance.set("", jsonObject.getString(""));
}
}
@param `bankBalance` 处理的余额数据
@param `balanceString` 银企云返回的余额数据


class_name: kd.sdk.tmc.bei.extpoint.balance.IGenHistoryBalanceInterface
method_name: getExtAccountBankIds
signature_text: java.util.Set<Long> getExtAccountBankIds()
comment:
用于获取二开可以执行自动计算历史余额的银企直连账户的主键ID
扩展示例如下
package kd.sdk.tmc.bei.extpoint.balance;
import java.util.HashSet;
import java.util.Set;
publicclassGenHistoryBalanceInterfaceExtimplementsIGenHistoryBalanceInterface {
public Set getExtAccountBankIds() {
HashSetbankAccountIds=newHashSet<>();
// 返回需要扩展处理的银企账户ID
bankAccountIds.add(1L);
return bankAccountIds;
}
}
@return 银企直连账户的主键ID


class_name: kd.sdk.tmc.bei.extpoint.bankpay.IAfterBankPayQueryExt
method_name: getExtReversedFields
signature_text: default java.util.Map<String, String> getExtReversedFields()
comment:
获取银企同步付款状态接口备用字段对应银行付款单二开字段标识 银企同步付款状态接口备用字段标识 String reversed1; String reversed2; String reversed3; String reversed4;
扩展示例如下
package kd.sdk.tmc.bei.extpoint.bankpay;
import java.util.HashMap;
import java.util.Map;
import kd.sdk.tmc.bei.extpoint.bankpay.IAfterBankPayQueryExt;
publicclassBankPayQueryServiceExtPluginimplementsIAfterBankPayQueryExt {
public Map getExtReversedFields() {
MapextFieldsMap=newHashMap<>(4);
extFieldsMap.put("reversed1", "kdext_field1");
extFieldsMap.put("reversed2", "kdext_field2");
extFieldsMap.put("reversed3", "kdext_field3");
extFieldsMap.put("reversed4", "kdext_field4");
return extFieldsMap;
}
}
@return Map key: 银企同步付款状态接口备用字段标识 value: 备用字段对应的银行付款单二开字段标识


class_name: kd.sdk.tmc.bei.extpoint.bankpay.IBankPayDetailExt
method_name: getPayDetailExtFields
signature_text: default java.util.Map<String, String> getPayDetailExtFields()
comment:
获取提交银企付款明细二开扩展字段 银企付款明细可扩展字段标识（可持续补充） 跨境TT付款 汇款人城市 汇款人省份 汇款人地址 String payerCity; String payerProvince; String payerAddress;
扩展示例如下
package kd.sdk.tmc.bei.extpoint.bankpay;
import java.util.HashMap;
import java.util.Map;
import kd.sdk.tmc.bei.extpoint.bankpay.IBankPayDetailExt;
publicclassBankPayDetailExtPluginimplementsIBankPayDetailExt {
public Map getPayDetailExtFields() {
MapextFieldsMap=newHashMap<>(4);
extFieldsMap.put("payerCity", "kdext_payerCity");
extFieldsMap.put("payerProvince", "kdext_payerProvince");
extFieldsMap.put("payerAddress", "kdext_payerAddress");
return extFieldsMap;
}
}
@return Map key: 银企付款明细可扩展字段标识 value: 对应的银行付款单二开扩展字段标识


class_name: kd.sdk.tmc.bei.extpoint.bankpay.IBankPayExtDataExt
method_name: getPayExtDataFields
signature_text: default java.util.Set<String> getPayExtDataFields()
comment:
获取提交银企付款二开扩展字段
扩展示例如下
package kd.sdk.tmc.bei.extpoint.bankpay;
import java.util.HashSet;
import java.util.Set;
import kd.sdk.tmc.bei.extpoint.bankpay.IBankPayExtDataExt;
publicclassBankPayExtDataExtPluginimplementsIBankPayExtDataExt {
public Set getPayExtDataFields() {
SetextFieldsSet=newHashSet<>(4);
extFieldsSet.add("kdext_extDataField1");
extFieldsSet.add("kdext_extDataField2");
extFieldsSet.add("kdext_extDataField3");
return extFieldsSet;
}
}
@return Set key: 银行付款单二开扩展字段标识


class_name: kd.sdk.tmc.bei.extpoint.claim.INoticeClaimSchemeInterface
method_name: cancelNoticeObjectExt
param_types_key: Map
signature_text:
default java.util.Map<String, Object> cancelNoticeObjectExt(java.util.Map<String, Object> noticeObjectMap)

comment:
取消通知认领对象拓展 “取消通知认领”操作时触发扩展。
拓展示例如下
package kd.tmc.bei.business;
import kd.sdk.tmc.bei.extpoint.claim.INoticeClaimSchemeInterface;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
publicclassNoticeClaimSchemesDefaultExtimplementsINoticeClaimSchemeInterface {
public Map cancelNoticeObjectExt(Map noticeObjectMap) {
// 获取交易明细IDLongbillId= (Long) noticeObjectMap.get("billid");
// 获取通知规则分录IDLongruleEntryId= (Long) noticeObjectMap.get("ruleentryid");
// 是否发送通知，默认为true
noticeObjectMap.put("isneednotice", false);
return noticeObjectMap;
}
}
@param `noticeObjectMap` "billid" 交易明细ID "ruleentryid" 通知规则ID "isneednotice" 是否发送通知，默认为true
@return Map key:"userids", value:userIdList


class_name: kd.sdk.tmc.bei.extpoint.claim.INoticeClaimSchemeInterface
method_name: noticeObjectExtByRule
param_types_key: Map
signature_text:
default java.util.Map<String, Object> noticeObjectExtByRule(java.util.Map<String, Object> noticeObjectMap)

comment:
通知认领对象拓展 扩展调用时机：“通知认领”操作匹配到通知规则且在【通知规则】界面选择的是“自定义”时触发扩展 注：当扩展此场景时会覆盖 kd.sdk.fi.cas.extpoint.noticeclaim.INoticeClaimSchemeInterface.noticeObjectExt 扩展场景
拓展示例如下
package kd.tmc.bei.business;
import kd.sdk.tmc.bei.extpoint.claim.INoticeClaimSchemeInterface;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
publicclassNoticeClaimSchemesDefaultExtimplementsINoticeClaimSchemeInterface {
public Map noticeObjectExtByRule(Map noticeObjectMap) {
// 获取交易明细IDLongbillId= (Long) noticeObjectMap.get("billid");
// 获取通知规则分录IDLongruleEntryId= (Long) noticeObjectMap.get("ruleentryid");
// 自定义通知对象用户IDListuserIds=newArrayList<>(2);
userIds.add(1540672005563544576L);
noticeObjectMap.put("userids", userIds);
// 是否发送通知，默认为true
noticeObjectMap.put("isneednotice", false);
return noticeObjectMap;
}
}
@param `noticeObjectMap` "billid" 交易明细ID "ruleentryid" 通知规则ID "isneednotice" 是否发送通知，默认为true
@return Map key:"userids", value:userIdList


class_name: kd.sdk.tmc.bei.extpoint.receipt.IAfterReceiptRecognition
method_name: fillRecognitionResult
param_types_key: String
signature_text: default String fillRecognitionResult(String recognizeDetailJson)
comment:
基于OCR识别后的已有信息设置客制化规则
扩展示例如下
package kd.sdk.tmc.bei.extpoint.receipt;
import kd.bos.dataentity.serialization.SerializationUtils;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import kd.bos.util.ExceptionUtils;
import kd.sdk.tmc.bei.extpoint.receipt.IAfterReceiptRecognition;
import kd.tmc.bei.common.constants.ReceiptRecongnizeDetail;
import kd.tmc.bei.common.enums.LendingDirectionEnum;
publicclassReceiptRecognitionResultExtPluginimplementsIAfterReceiptRecognition {
privatestaticfinalLoglogger= LogFactory.getLog(ReceiptRecognitionResultExtPlugin.class);
public String fillRecognitionResult(String recognizeDetailJson) {
try {
//反序列化对象ReceiptRecongnizeDetailrecognizeDetail= SerializationUtils.fromJsonString(recognizeDetailJson, ReceiptRecongnizeDetail.class);
recognizeDetail.setFpaymentAccount("ABC777");
recognizeDetail.setFcurrency("CNY");
//借贷方向涉及多语言 建议使用枚举赋值
recognizeDetail.setFtradeType(LendingDirectionEnum.OUT.getDirect());
//处理后序列化返回
recognizeDetailJson = SerializationUtils.toJsonString(recognizeDetail);
} catch (Exception e) {
logger.warn("电子回单识别 -- 二开处理识别结果反异常：" + ExceptionUtils.getExceptionStackTraceMessage(e));
}
return recognizeDetailJson;
}
}
@param `recognizeDetailJson` JsonString 电子回单ocr识别结果序列化对象 kd.tmc.bei.common.constants.ReceiptRecongnizeDetail
@return JsonString 二开处理后的识别结果序列化对象 电子回单识别明细对象 - kd.tmc.bei.common.constants.ReceiptRecongnizeDetail 对象属性： 交易日期 String ftradeDate; 收款人&付款人银行账户信息 户名 String fpayeeName; String fpaymentName; 银行账号 String fpayeeAccount; String fpaymentAccount; 开户行 String fpayeeBank; String fpaymentBank; 金额 String famount; 币别 String fcurrency; 借贷标记 贷-收 借-付 String ftradeType; 交易流水号 String ftradeId; 业务参考号 String ftradeNumber; String fabstract;


class_name: kd.sdk.tmc.bei.extpoint.receipt.IReceiptMatchTransDetail
method_name: afterMatchFieldValueCover
param_types_key: String,List,List
signature_text:
void afterMatchFieldValueCover(String matchRel, java.util.List<DynamicObject> receipts, java.util.List<DynamicObject> details)

comment:
电子回单匹配交易明细后，电子回单、交易明细赋值逻辑二开扩展
扩展示例如下
package kd.sdk.tmc.bei.extpoint.receipt;
import kd.bos.dataentity.entity.DynamicObject;
import java.util.List;
publicclassReceiptMatchTransDetailimplementsIReceiptMatchTransDetail{
publicvoidafterMatchFieldValueCover(String matchRel, List receipts, List details) {
switch (matchRel){
case"one-one"://一对一DynamicObjectreceipt= receipts.get(0);
receipt.set("keyField", "value");
DynamicObjectdetail= details.get(0);
detail.set("keyField", "value");
break;
case"one-many"://一对多DynamicObjectreceipt1= receipts.get(0);
receipt1.set("keyField", "value");
for (DynamicObject detail1 : details) {
detail1.set("keyField", "value");
}
break;
case"many-one"://多对一for (DynamicObject receipt2 : receipts) {
receipt2.set("keyField", "value");
}
DynamicObjectdetail2= details.get(0);
detail2.set("keyField", "value");
break;
default:
break;
}
}
}
@param `matchRel` 电子回单：交易明细关系：one-one，one-many，many-one
@param `receipts` 电子回单单据信息
@param `details` 交易明细单据信息


class_name: kd.sdk.tmc.bei.extpoint.transdetail.IAutoMatchWriteBackInterface
method_name: writeBackFieldExt
param_types_key: List,boolean
signature_text:
java.util.Map<String, Object> writeBackFieldExt(java.util.List<AutoMatchInfoParam> params, boolean isDoExecute)

comment:
流水匹配后反写二开字段
扩展示例如下
package kd.tmc.bei.service;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.sdk.tmc.bei.extpoint.transdetail.IAutoMatchWriteBackInterface;
import kd.sdk.tmc.bei.util.AutoMatchInfoParam;
import java.math.BigDecimal;
import java.util.*;
publicclassAutoMatchWriteBackExtimplementsIAutoMatchWriteBackInterface {
``
@param `params` 匹配信息，包含流水和接收单据信息，1对多匹配时，params会有多个，需要区分以哪个业务单据的数据来更新
@param `isDoExecute` true 表示匹配 false 表示取消匹配
@return key: 二开字段标识（需要以开发商标识开头） value：二开字段值


class_name: kd.sdk.tmc.bei.extpoint.transdetail.IDeleteTransDetail
method_name: getQfilterCanDelete
signature_text: QFilter getQfilterCanDelete()
comment:
添加允许删除的条件（针对交易明细实体拥有的属性）
扩展示例如下
package kd.sdk.tmc.bei.extpoint.transdetail;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.orm.query.QFilter;
publicclassDeleteTransDetailimplementsIDeleteTransDetail{
publicvoidgetQfilterCanDelete() {
// 在交易明细上做了二开字段作为了业务控制，可以在此处设置限制交易明细哪些能被删除，避免交易明细被标准流程删除returnnewQFilter("二开属性", QFilter.equals, "允许删除的条件");
}
}


class_name: kd.sdk.tmc.bei.extpoint.transdetail.IFillTransDetail
method_name: fillExtData
param_types_key: DynamicObject,String
signature_text: void fillExtData(DynamicObject info, String extData)
comment:
提交银企，单据生成银行单据，用于二开字段数据填充
扩展示例如下
package kd.sdk.tmc.bei.extpoint.transdetail;
import kd.bos.dataentity.entity.DynamicObject;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
publicclassFillTransDetailimplementsIFillTransDetail{
publicvoidfillExtData(DynamicObject info,String extData) {
JSONObjectjsonObject= JSON.parseObject(extData);
info.setString("",jsonObject.getString(""));
}
}
@param `info` 交易明细
@param `extData` 交易明细扩展字段信息


class_name: kd.sdk.tmc.bei.extpoint.transdetail.ITransDetailKDFlagInterface
method_name: skipKDFlagCheck
param_types_key: String,List
signature_text: java.util.Map<Long, Boolean> skipKDFlagCheck(String scene, java.util.List<Long> transDetailIds)
comment:
交易明细KD标识扩展点
拓展示例如下
package kd.sdk.tmc.bei.extpoint.transdetail;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
publicclassTransDetailKDFlagExtimplementsITransDetailKDFlagInterface{
public Map skipKDFlagCheck(String scene, List transDetailIds) {
Mapmap=newHashMap<>();
if (transDetailIds != null && !transDetailIds.isEmpty()) {
for (Long transDetailId : transDetailIds) {
map.put(transDetailId, true);
}
}
return map;
}
}
@param `scene` 场景名称： 1.payruleenter: 付款按规则生单 2.recruleenter: 收款按规则生单 3.marknoneed: 标记为无需确认 4.markconfirmed：直接标记已确认 5.payhand: 付款手工生单 6.rechand: 收款手工生单 7.noticeclaim: 通知认领
@param `transDetailIds` 交易明细id集合
@return key：交易明细id，value：是否跳过KD标识校验


class_name: kd.sdk.tmc.bei.match.IMatchRuleByAccountService
method_name: replaceAccount
param_types_key: DynamicObject
signature_text: String replaceAccount(DynamicObject dynamicObject)
comment:
交易明细生单规则自定义账号代替对方账号匹配扩展点——上划下拨适配子账户场景
扩展示例如下
public String classMatchRuleByAccountServiceImplimplementsIMatchRuleByAccountService{
public String replaceAccount(DynamicObject dynamicObject) {
if (dynamicObject == null){
return;
}
// 获取当前交易明细的某账户return dynamicObject.getString("xxxx");
}
}
@param `dynamicObject` 当前待匹配的交易明细
@return void


class_name: kd.sdk.tmc.bei.util.AutoMatchInfoParam
method_name: <init>
param_types_key: String,String,Long,String,String,Long,Long,Long,String,BigDecimal,String,Date
signature_text:
public AutoMatchInfoParam(String sourceEntity, String transDetailNumber, Long transDetailId, String recedBillType, String recedBillNumber, Long recedBillId, Long recedBillEntryId, Long currency, String traceType, java.math.BigDecimal amount, String bankCheckFlag, java.util.Date bizDate)


class_name: kd.sdk.tmc.bei.util.AutoMatchInfoParam
method_name: <init>
param_types_key: String,String,Long,String,String,Long,Long,Long,String,BigDecimal,String,Date,String,String
signature_text:
public AutoMatchInfoParam(String sourceEntity, String transDetailNumber, Long transDetailId, String recedBillType, String recedBillNumber, Long recedBillId, Long recedBillEntryId, Long currency, String traceType, java.math.BigDecimal amount, String bankCheckFlag, java.util.Date bizDate, String thisOpnumber, String direction)


class_name: kd.sdk.tmc.cdm.extpoint.payablebill.IPayableCanDrawValidatorInterface
method_name: skipValidate
param_types_key: ExtendedDataEntity
signature_text: Boolean skipValidate(ExtendedDataEntity dataEntity)
comment:
是否跳过校验 -- 票据“%s”已被出纳付款单关联，不允许“取消出票”。
@param `dataEntity` 当前校验的应付票据信息
@return 是否跳过校验 true 跳过 false 不跳过 package kd.sdk.tmc.cdm.extpoint.payablebill; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.entity.ExtendedDataEntity; public class PayableCanDrawValidatorDefaultExt implements IPayableCanDrawValidatorInterface {


class_name: kd.sdk.tmc.cdm.extpoint.payablebill.IPayableTranEleSDKService
method_name: extFillEleBill
param_types_key: String,List
signature_text:
java.util.Map<Long, java.util.Map<String, Object>> extFillEleBill(String entityName, java.util.List<DynamicObject> billList)

comment:
开票登记提交电票，二开字段赋值扩展接口
扩展示例如下
package kd.sdk.tmc.cdm.extpoint.payablebill;
import kd.bos.dataentity.entity.DynamicObject;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
publicclassPayableTranEleSDKServiceimplementsIPayableTranEleSDKService{
``
@param `entityName` 开票登记单据实体名
@param `billList` 开票登记单据集合
@return Map< Long, Map< String, Object>>: key->开票登记单据id；value->二开字段名和值的键值对


class_name: kd.sdk.tmc.cfm.extpoint.common.IGetCustomBillFormIdSecondDevService
method_name: getCustomBillFormId
param_types_key: String
signature_text: default String getCustomBillFormId(String targetBillFormId)
comment:
publicclassTestGetCustomBillFormIdSecondDevServiceimplementsIGetCustomBillFormIdSecondDevService {
public String getCustomBillFormId(String targetBillFormId) {
// 判断是否是目标单的formidif ("目标单的formid".equals(targetBillFormId)) {
return"自定义的单据formid";
}
returnfalse;
}
}
@param `targetBillFormId` 目标单单据formid


