s-HR绩效管理-后台事务配置自动启动评分任务二开指导

【适用版本】
s-HR Cloud V8.6.1.2及以上
【详细说明】
适用对象:本文档仅供二开人员进行参考,数据无价,请验证充分再部署正式环境。
1、 EAS客户端-后台事务定义新增绩效任务
1.1 任务可以如下图选择预置的自动启动评分任务


备注:如果没有找到上图的执行任务,则当前版本不支持直接配置自动启动任务,需要自己进行二开(可参考第二部分)。
1.2、 其他参数请根据具体业务或者参考其他后台事务定义进行配置。
2、标准产品预置自动启动评分任务核心代码
2.1、 如果需要二开,需要新增二开facade,并且参考以下代码编写启动评分任务方法逻辑
protected void _autoStartScoring(Context ctx) throws BOSException {
final String lockKey = "lfK6BIqqqUmuluRLjVxPXbrbXSM=";
String selectRows = TaskPoolUtils.getParamVal(ctx, "ROWS", BelongTypeEnum.SCORE_VALUE);
int handleRows = defaultHandleRows;
boolean lockFlag = false;
if (!StringUtils.isEmpty(selectRows)) {
handleRows = Integer.parseInt(selectRows.trim());
}
//1.获取已生成指标实例,并且未发送,未设置定时发送任务的记录
//2.获取数据按照下达时间进行排序
String sql = "SELECT TOP " + handleRows + " o.FID,o.FPeriodID FROM T_EVA_PerfEvaObject o INNER JOIN T_EVA_GoalsTaskPool p ON o.FID=p.FEVAOBJ "
+ "INNER JOIN T_EVA_GoalsMessage g ON g.FTASKID = p.FID "
+ "WHERE o.FScoreTaskStatus='" + ScoreTaskStatusEnum.UNSEND_VALUE
+ "' AND o.FSendTiming is null AND g.FHANDLESTATUS =1 order by o.FHANDLERTIME asc";
IRowSet rowset = null;
try {
if (TaskLockUtils.getLock(ctx, lockKey)) {
Map<String,Set<String>> todoMap = new HashMap<String,Set<String>>();
lockFlag = true;
rowset = DbUtil.executeQuery(ctx, sql);
while (rowset.next()) {
HashMap<String, String> map = new HashMap<String, String>();
String periodId = rowset.getString("FPeriodID");
String evaObj = rowset.getString("FID");
Set<String> periodEvaObjSet = todoMap.
s-HR绩效管理-后台事务配置自动启动评分任务二开指导
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



