考勤计算批量准备数据扩展(提升考勤计算性能)
【适用版本】
s-HR Cloud V9.0及以上
s-HR Cloud V8.8 SP1及以上
【应用场景】
适用于考勤计算批量准备数据扩展(自定义单据等)
【用途】
考勤计算函数中要用到的数据,如果在标品的globalMap中获取不到,如自定义的业务数据(自定义单据等),可以在标品的批量准备数据时,二开也将数据批量准备好,这样在函数中就不需要循环查询要用到的数据,提高性能
【详细说明(或 示例、操作步骤)】
1、考勤计算主流程设计
考勤计算架构设计中,会准备基础数据、分批(按一批人员)准备业务数据,二次开发如果需要用到其他业务数据,可先批量准备好业务数据,标口已提供准备数据的扩展点供二开扩展,这样在写函数的过程中不需要去循环取数,先批量准备好,提高计算性能
2、在配置文件中配置
Ø 找到在 /eas/server/properties/目录中的 atsConfig 文件
(如果没有这个文件可以创建一个新的) 添加key=value对 (注意 集群模式下的每个节点服务都要添加)
Ø 说明:
key值为 CUSTOM_INITDYNAMICDATA_METHOD_NAME
value值为二开自定义方法 格式为 包名.类名#方法名
(其中的包名.类名、方法名都可自定义,但方法的参数个数和类型要按文档中的一样)
Ø 示例:
CUSTOM_INITDYNAMICDATA_METHOD_NAME=com.kingdee.shr.ats.mulPozitionCal.calServiceImpl.ExPrepareCalData#initData
3、二开准备数据的方法参数定义
标品调用时,会传入以下参数
参数1 | com.kingdee.bos . Context | ctx | 上下文 | |
参数2 | Java.util.Map<Object, Object> | globalMap | 准备数据的map | 二开将数据放入到globalMap,key为自定义的KEY,不要与标品冲突,函数中用相应的key去取数 |
参数3 | java.lang.String | beginDate | 开始日期 | 示例:2024-01-01 |
参数4 | java.lang.String | endDate | 结束日期 | 示例:2024-01-31 |
参数5 | java.lang.String | personIds | 一批计算的员工ID,用逗号隔开 | 示例:“员工ID1, 员工ID2, 员工ID3” |
4、示例
1) java扩展类,方法参数类型与个数不能变:(Context ctx, Map<Object, Object> globalMap,String beginDate, String endDate, String personIds),记得加日志
/** * 考勤计算人员扩展类 */ public class ExPrepareCalData { //记录日志或输出日志 //放入map中,标品会传入自定义的函数中,二开可以获取得到 //记录日志或输出日志
|
2) 配置文件配置示例
【注意事项(或 常见错误)】
注意方法名称和参数的定义,参数的类型,请参考示例
考勤计算批量准备数据扩展(提升考勤计算性能)
本文2024-09-22 21:45:13发表“s-hr cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-shr-122102.html