Blame view

fw-morax-server/src/main/java/cn/fw/morax/server/task/SalaryCalcTask.java 2.46 KB
30e7868b   张志伟   feature(*): 提成薪酬项...
1
2
  package cn.fw.morax.server.task;
  
b05ea76a   姜超   feature(*): 定时任务日志打印
3
  import cn.fw.morax.common.constant.TimeTaskConstant;
5d98df1c   张志伟   feature(*): 开始计算薪资
4
  import cn.fw.morax.service.biz.salary.SalaryCalcService;
30e7868b   张志伟   feature(*): 提成薪酬项...
5
6
7
8
9
10
11
12
  import cn.fw.morax.service.biz.salary.SalaryReportService;
  import lombok.extern.slf4j.Slf4j;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
  import org.springframework.scheduling.annotation.Async;
  import org.springframework.scheduling.annotation.Scheduled;
  import org.springframework.stereotype.Component;
  
5d98df1c   张志伟   feature(*): 开始计算薪资
13
14
  import java.time.LocalDate;
  
30e7868b   张志伟   feature(*): 提成薪酬项...
15
16
17
18
19
20
21
22
23
24
  /**
   * @author : kurisu
   * @version : 1.0
   * @className : SalaryReportTask
   * @description : 薪酬数据任务
   * @date : 2022-04-25 16:15
   */
  @Component
  @Slf4j
  @ConditionalOnProperty(prefix = "task", name = "switch", havingValue = "on")
5d98df1c   张志伟   feature(*): 开始计算薪资
25
  public class SalaryCalcTask {
30e7868b   张志伟   feature(*): 提成薪酬项...
26
27
  
      private final SalaryReportService salaryReportService;
5d98df1c   张志伟   feature(*): 开始计算薪资
28
      private final SalaryCalcService salaryCalcService;
30e7868b   张志伟   feature(*): 提成薪酬项...
29
30
31
  
  
      @Autowired
5d98df1c   张志伟   feature(*): 开始计算薪资
32
33
      public SalaryCalcTask(final SalaryReportService salaryReportService,
                            final SalaryCalcService salaryCalcService) {
30e7868b   张志伟   feature(*): 提成薪酬项...
34
          this.salaryReportService = salaryReportService;
5d98df1c   张志伟   feature(*): 开始计算薪资
35
          this.salaryCalcService = salaryCalcService;
30e7868b   张志伟   feature(*): 提成薪酬项...
36
37
38
      }
  
      /**
30e7868b   张志伟   feature(*): 提成薪酬项...
39
40
       * 重试额外薪资数据持久化
       */
76b97ee1   姜超   feature(bug): 额外...
41
      @Scheduled(initialDelay = 1000L * 10, fixedRate = 1000L * 180)
30e7868b   张志伟   feature(*): 提成薪酬项...
42
43
44
45
46
      @Async
      public void retrySaveExtra() {
          salaryReportService.retrySaveReward();
      }
  
5d98df1c   张志伟   feature(*): 开始计算薪资
47
      /**
3924978f   张志伟   :zap:
48
       * 需要计算薪酬的薪酬组写入缓存 每天6
5d98df1c   张志伟   feature(*): 开始计算薪资
49
       */
b05ea76a   姜超   feature(*): 定时任务日志打印
50
      @Scheduled(cron = TimeTaskConstant.CACHE_CALCULATE_SALARY_GROUP)
5d98df1c   张志伟   feature(*): 开始计算薪资
51
      public void cacheCalculableKpiGroup() {
d4c9039b   张志伟   feature(*): 薪资计算(...
52
53
54
          salaryCalcService.prepareCalcSalary(LocalDate.now().minusDays(1L));
      }
  
d4c9039b   张志伟   feature(*): 薪资计算(...
55
      /**
022c7dcd   张志伟   feature(*): 薪资数据上...
56
       * 计算用户薪资 90秒执行一次
d4c9039b   张志伟   feature(*): 薪资计算(...
57
       */
022c7dcd   张志伟   feature(*): 薪资数据上...
58
      @Scheduled(initialDelay = 1000L * 30, fixedRate = 1000L * 90)
d4c9039b   张志伟   feature(*): 薪资计算(...
59
60
61
      @Async
      public void calcUserSalary() {
          salaryCalcService.calculateSalary();
5d98df1c   张志伟   feature(*): 开始计算薪资
62
63
      }
  
25a37717   张志伟   feature(*): 完成星级变...
64
      /**
af367da5   张志伟   :zap:
65
       * 星级申请变更后重新计算用户工资 300秒执行一次
25a37717   张志伟   feature(*): 完成星级变...
66
       */
af367da5   张志伟   :zap:
67
      @Scheduled(initialDelay = 1000L * 5, fixedRate = 1000L * 300)
25a37717   张志伟   feature(*): 完成星级变...
68
69
70
71
72
      @Async
      public void kpiChangeRetryCalcSalary() {
          salaryCalcService.retryCalcSalary();
      }
  
3924978f   张志伟   :zap:
73
74
75
76
77
78
79
80
81
      /**
       * 缓存上月最后一天的薪酬组为薪资的最终计算做准备
       * 每个月2 2点执行
       */
      @Scheduled(cron = "0 0 2 2 * ?")
      public void cacheFinalCalculableKpiGroup() {
          salaryCalcService.prepareCalcSalary(LocalDate.now().minusDays(1L));
      }
  
30e7868b   张志伟   feature(*): 提成薪酬项...
82
  }