考勤计算批量准备数据扩展(提升考勤计算性能)

栏目:s-hr cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

考勤计算批量准备数据扩展(提升考勤计算性能)

【适用版本】 

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 {
 
   
public void initData (Context ctx, Map<Object, Object> globalMap,String beginDate, String endDate, String personIds) {
       
try {
//记录日志或输出日志
            Map<String, List<AtsLeaveBillEntryInfo>> billDataMap = AtsOsfLeaveBillServiceHelper.getAtsLeaveBillInfo(ctx,personIds,beginDate,endDate);
//放入map中,标品会传入自定义的函数中,二开可以获取得到
            globalMap.put(
"EX_BILLINITDATA",billDataMap);
//记录日志或输出日志
        }
catch (Exception e) {
            e.printStackTrace();
        }
    }
}
 

 



2) 配置文件配置示例


【注意事项(或 常见错误)】

注意方法名称和参数的定义,参数的类型,请参考示例



考勤计算批量准备数据扩展(提升考勤计算性能)

【适用版本】 s-HR Cloud V9.0及以上s-HR Cloud V8.8 SP1及以上【应用场景】适用于考勤计算批量准备数据扩展(自定义单据等)【用途】...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息