KpiCalcMonthlyTask.java
2.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package cn.fw.morax.server.task;
import cn.fw.morax.service.biz.kpi.*;
import cn.fw.morax.service.data.kpi.KpiAssessService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.YearMonth;
/**
* @author : kurisu
* @className : KpiCalcTask
* @description : 绩效处理任务
* @date : 2022-04-07 15:29
*/
@Component
@Slf4j
@RequiredArgsConstructor
@ConditionalOnProperty(prefix = "task", name = "switch", havingValue = "on")
public class KpiCalcMonthlyTask {
private final KpiCalculateService kpiCalculateService;
private final KpiPoolBizService kpiPoolBizService;
private final KpiCalculateAssessService kpiCalculateAssessService;
/**
* 缓存人员质量评测绩效组
* 每个月2号 0点10分执行
*/
@Scheduled(cron = "0 10 0 2 * ?")
public void cacheAssessFinalCalcKpiGroup() {
kpiCalculateAssessService.cacheAssessCalculableKpiGroupIds(YearMonth.now().minusMonths(1L).atEndOfMonth());
}
/**
* 缓存绩效组排名
* 每个月2号 1点执行
*/
@Scheduled(cron = "0 0 1 2 * ?")
public void cacheAssessFinalCalcKpiGroupRank() {
kpiPoolBizService.cacheCalculableKpiGroupRank(YearMonth.now().minusMonths(1L).atEndOfMonth(), Boolean.TRUE);
}
/**
* 缓存人员质量评测
* 每月2号 2点执行
*/
@Scheduled(cron = "0 0 2 2 * ?")
public void cacheKpiAssess() {
kpiCalculateAssessService.cacheCalcKpiAssessIds(YearMonth.now().minusMonths(1L).atEndOfMonth());
}
/**
* 计算人员质量评测 每60秒执行一次
*/
@Scheduled(initialDelay = 1000L * 15, fixedRate = 1000L * 60)
public void calcAssessKpi() {
kpiCalculateAssessService.calcAssessKpi();
}
/**
* 推送评测奖惩数据
* 每个月2号 3点执行
*/
@Scheduled(cron = "0 0 3 2 * ?")
public void pushAssessPunish() {
kpiCalculateAssessService.pushAssessPunish(YearMonth.now().minusMonths(1L));
}
/**
* 缓存上月绩效组(最终计算)
* 每个月2号 4点分执行
*/
@Scheduled(cron = "0 0 4 2 * ?")
public void cacheFinalCalcKpiGroup() {
kpiCalculateService.cacheCalculableKpiGroupIds(YearMonth.now().minusMonths(1L).atEndOfMonth());
}
/**
* 缓存上月绩效排名组(最终计算)
* 每个月2号 4点40执行
*/
@Scheduled(cron = "0 40 4 2 * ?")
public void cacheFinalCalcKpiGroupRank() {
kpiPoolBizService.cacheCalculableKpiGroupRank(YearMonth.now().minusMonths(1L).atEndOfMonth(), Boolean.FALSE);
}
}