11993-2022金蝶国际软件集团有限公司④内部公开请勿外传假期额度(非调休假)生成二开简介熊志星s-HR考勤管理系统部2023.04.12s-HRCloud微课堂2目录额度生成业务相关介绍业务数据和源码位置简介函数中标准预置数据相关二开案例错误讲解二开的一些建议未来额度生成优化方向相关文档3额度生成业务相关介绍•领域模型4额度生成业务相关介绍•生成流程5T_HR_ATS_HolidayLimit额度记录表-存储假期所有生成的额度数据T_HR_ATS_HolidayLimitDetail额度扣减明细表-存储额度使用过程的的明细数据T_HR_ATS_AtsHolidayFile\T_HR_ATS_AtsHolidayFileHis员工假期档案T_HR_ATS_HolidayPolicy/T_HR_ATS_HolidayPolicySet假期制度–设置员工的假期制度规则T_HR_ATS_HolidayRule额度规则表–设置额度相关的生成规则T_HR_ATS_HolidayType假期类型–存储假期类型数据额度生成业务相关介绍•业务表介绍6目录额度生成业务相关介绍业务数据和源码位置简介函数中标准预置数据相关二开案例错误讲解二开的一些建议未来额度生成优化方向相关文档7业务数据和源码位置简介•业务数据简介8说明Jar包:attendmanage.jar入口类路径:com.kingdee.shr.ats.web.handler.GenerateHolidayLimitHandler#generateHolidayLimitAction业务数据和源码位置简介•额度生成入口9说明jar包:(补丁包)sp-shr_ats-server.jar\(PTM包)shr_ats-server.jar创建额度入口:com.kingdee.eas.hr.ats.HolidayLimit#generate创建/更新额度入口:com.kingdee.eas.hr.ats.HolidayLimit#generateForUpdate10额度生成核心jar包:(补丁包)sp-shr_ats-server.jar\(PTM包)shr_ats-server.jar数据初始化类:com.kingdee.eas.hr.ats.holidayLimit.generate.preparedata.GenHolidayLimitPrepareData基础数据:initBaseData动态数据:initDynamicData额度核心取数以及校验类:com.kingdee.eas.hr.ats.holidayLimit.generate.service.GenHolidayLimitCommon额度核心计算逻辑类:com.kingdee.eas.hr.ats.holidayLimit.generate.rule.impl.GenHolidayLimitRuleImpl业务数据和源码位置简介•源码位置简介11目录额度生成业务相关介绍业务数据和源码位置简介函数中标准预置数据相关二开案例错误讲解二开的一些建议未来额度生成优化方向相关文档12举例说明:假期制度设置数据:AtsHolidayLimitConstant.HOLIDAYPOLICYMAP="holidayPolicyMap";MapHolidayPolicyMap=InitHolidayLimitData.getHolidayPolicyMap(ctx,fileColl)globalMap.put(AtsHolidayLimitConstant.HOLIDAYPOLICYMAP,HolidayPolicyMap);获取数据:MapholidayPolicyMap=(Map)globalMap.get(AtsHolidayLimitConstant.HOLIDAYPOLICYMAP);函数中标准预置数据相关•预置数据设置和使用13函数中标准预置数据相关•预置数据使用示例14目录额度生成业务相关介绍业务数据和源码位置简介函数中标准预置数据相关二开案例错误讲解二开的一些建议未来额度生成优化方向相关文档15二开案例错误讲解•案例一:错误示例16二开案例错误讲解•案例二:错误示例17目录额度生成业务相关介绍业务数据和源码位置简介函数中标准预置数据相关二开案例错误讲解二开的一些建议未来额度生成优化方向相关文档181.二开自定义自己的额度逻辑,建议放到增减额度里面承载,同时做好一个明细记录作为二开操作增减额度问题的一个追溯;2.谨慎的复写标准产品方法,如果非要复写,建议先通过super的方式调用一下父类的方法;3.修改了标准产品原有的执行逻辑,上线之前一定要多做测试功能验证;4.在调用osf提交请假的时候,尽量控制人员+假期类型的维度,串行调用;5.异常需要处理,做好日志埋点;6.不建议直接修改我们的标品的源码;二开的一些建议•业务方面191.复写额度生成,预制数据一定要批量分页查询数据库;2.二开频繁操作数据库的事务,尽量与标准产品执行时间错开;3.二开生成额度,员工数据规模大,建议开启多线程分批次,4.注意线程并发安全问题;二开的一些建议•性能方面20目录额度生成业务相关介绍业务数据和源码位置简介函数中标准预置数据相关二开案例错误讲解二开的一些建议未来额度生成优化方向相关文档211.提供更多可插拔的方式供二开去扩展自己的实现;1.1增加二开预置数据接口;1.2预留二开扩展的生成标准额度的接口,供二开实现;1.3提供二开接口去计算员工的工龄、司龄值;2.更全面的日志跟踪,快速定位业务数据问题以及性能瓶颈;2.1产品本身嵌入arthas,方便快速定位性能问题以及查看业务的数据;2.2核心流程增加业务日志,方便快速定位问题点;未来额度生成优化方向22目录额度生成业务相关介绍业务数据和源码位置简介函数中标准预置数据相关二开案例错误讲解二开的一些建议未来额度生成优化方向相关文档23ÑÝʾÎĸå¼ÙÆÚÒµÎñ´®½².pptx相关文档24Thanksterimakasih感謝谢谢ありがとうขอบคุ ณ1993-2019金蝶国际软件集团有限公司①