Commit 7d59a85e4a97ffddbb92450fdbe5f1f919dae60f
1 parent
eee77f4e
feature(*): redis锁名称修改
redis锁名称修改
Showing
9 changed files
with
64 additions
and
27 deletions
doc/2023_update.sql
1 | 1 | -- 2023年3月7日 |
2 | 2 | ALTER TABLE `fw_morax`.`eval_group_reward_ladders` |
3 | - ADD COLUMN `rank_order_type` tinyint(4) NULL DEFAULT 1 COMMENT '排名顺序类型 1:正 2:负' AFTER `upper`; | |
4 | 3 | \ No newline at end of file |
4 | + ADD COLUMN `rank_order_type` tinyint(4) NULL DEFAULT 1 COMMENT '排名顺序类型 1:正 2:负' AFTER `upper`; | |
5 | + | |
6 | +CREATE TABLE `eval_group_reward_rank_log` ( | |
7 | + `id` bigint(20) NOT NULL AUTO_INCREMENT, | |
8 | + `pool_id` bigint(20) DEFAULT NULL COMMENT '人员id 、门店id', | |
9 | + `scope_type` tinyint(4) NOT NULL COMMENT '考评范围; 1:门店考评 2:人员考评', | |
10 | + `refer_id` bigint(20) DEFAULT NULL COMMENT '考评奖惩 前置条件 配置id', | |
11 | + `target_type` tinyint(4) DEFAULT NULL COMMENT '1:参数 2:前置条件', | |
12 | + `value` decimal(18,4) DEFAULT NULL COMMENT '原始值', | |
13 | + `reach_value` decimal(18,4) DEFAULT NULL COMMENT '达成目标', | |
14 | + `rank` int(10) DEFAULT NULL COMMENT '排名', | |
15 | + `data_date` date NOT NULL COMMENT '数据日期', | |
16 | + `group_id` bigint(20) NOT NULL COMMENT '集团', | |
17 | + `create_time` datetime DEFAULT NULL, | |
18 | + `update_time` datetime DEFAULT NULL, | |
19 | + `yn` tinyint(1) DEFAULT '1', | |
20 | + PRIMARY KEY (`id`) | |
21 | +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='考评指标达成目标记录'; | |
5 | 22 | \ No newline at end of file | ... | ... |
fw-morax-server/src/main/java/cn/fw/morax/server/task/EvalGroupTask.java
... | ... | @@ -50,21 +50,14 @@ import java.util.stream.Collectors; |
50 | 50 | @ConditionalOnProperty(prefix = "task", name = "switch", havingValue = "on") |
51 | 51 | public class EvalGroupTask { |
52 | 52 | |
53 | - private final EvalRewardService evalRewardService; | |
54 | 53 | private final EvalShopPoolService evalShopPoolService; |
55 | - private final EvalGroupRewardService evalGroupRewardService; | |
56 | - private final EvalGroupDataService evalGroupDataService; | |
57 | - private final EvalGroupBizService evalGroupBizService; | |
58 | 54 | private final EvalGroupService evalGroupService; |
59 | 55 | private final EvalService evalService; |
60 | 56 | private final DistributedLocker distributedLocker; |
61 | - private final StringRedisTemplate stringRedisTemplate; | |
62 | 57 | |
63 | - @Value("${spring.cache.custom.global-prefix}:distr:eval-group") | |
58 | + @Value("${spring.cache.custom.global-prefix}:eval:group") | |
64 | 59 | @Getter |
65 | - private String distributionKey; | |
66 | - private final static String LOCK_KEY = "eval:group"; | |
67 | - private final static String REWARD_LOCK_KEY = "eval:group:reward"; | |
60 | + private String evalGroupDistKey; | |
68 | 61 | |
69 | 62 | /** |
70 | 63 | * 每天凌晨3点 |
... | ... | @@ -75,7 +68,7 @@ public class EvalGroupTask { |
75 | 68 | @Scheduled(cron = TimeTaskConstant.EVAL) |
76 | 69 | @Transactional(rollbackFor = Exception.class) |
77 | 70 | public void processCurMonthEffectEvals() { |
78 | - Lock lock = distributedLocker.lock(LOCK_KEY); | |
71 | + Lock lock = distributedLocker.lock(getEvalGroupDistKey()); | |
79 | 72 | if (! ((RLock) lock).isLocked()) { |
80 | 73 | return; |
81 | 74 | } | ... | ... |
fw-morax-server/src/main/java/cn/fw/morax/server/task/EvalGroupUserTask.java
... | ... | @@ -11,9 +11,11 @@ import cn.fw.morax.service.data.eval.EvalGroupUserService; |
11 | 11 | import cn.hutool.core.date.StopWatch; |
12 | 12 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
13 | 13 | import com.google.common.collect.Lists; |
14 | +import lombok.Getter; | |
14 | 15 | import lombok.RequiredArgsConstructor; |
15 | 16 | import lombok.extern.slf4j.Slf4j; |
16 | 17 | import org.redisson.api.RLock; |
18 | +import org.springframework.beans.factory.annotation.Value; | |
17 | 19 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
18 | 20 | import org.springframework.scheduling.annotation.Scheduled; |
19 | 21 | import org.springframework.stereotype.Component; |
... | ... | @@ -41,10 +43,11 @@ public class EvalGroupUserTask { |
41 | 43 | |
42 | 44 | private final EvalGroupUserBizService evalGroupUserBizService; |
43 | 45 | private final EvalGroupUserService evalGroupUserService; |
44 | - private final EvalGroupBizService evalGroupBizService; | |
45 | 46 | private final DistributedLocker distributedLocker; |
46 | 47 | |
47 | - private final static String LOCK_KEY = "eval:group:user"; | |
48 | + @Value("${spring.cache.custom.global-prefix}:eval:group:user") | |
49 | + @Getter | |
50 | + private String evalGroupUserDistKey; | |
48 | 51 | |
49 | 52 | /** |
50 | 53 | * 每天凌晨30分执行(人事角色、岗位调整在5点执行) |
... | ... | @@ -55,7 +58,7 @@ public class EvalGroupUserTask { |
55 | 58 | @Scheduled(cron = TimeTaskConstant.EVAL_GROUP_USER) |
56 | 59 | @Transactional(rollbackFor = Exception.class) |
57 | 60 | public void processEvalUser() { |
58 | - Lock lock = distributedLocker.lock(LOCK_KEY); | |
61 | + Lock lock = distributedLocker.lock(getEvalGroupUserDistKey()); | |
59 | 62 | if (((RLock) lock).isLocked()) { |
60 | 63 | try { |
61 | 64 | log.info("定时任务【考评组人员更新】开始执行"); | ... | ... |
fw-morax-server/src/main/java/cn/fw/morax/server/task/KpiGroupUserTask.java
... | ... | @@ -14,9 +14,11 @@ import com.alibaba.fastjson.JSON; |
14 | 14 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
15 | 15 | import com.google.common.collect.Lists; |
16 | 16 | import com.google.common.collect.Maps; |
17 | +import lombok.Getter; | |
17 | 18 | import lombok.RequiredArgsConstructor; |
18 | 19 | import lombok.extern.slf4j.Slf4j; |
19 | 20 | import org.redisson.api.RLock; |
21 | +import org.springframework.beans.factory.annotation.Value; | |
20 | 22 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
21 | 23 | import org.springframework.scheduling.annotation.Scheduled; |
22 | 24 | import org.springframework.stereotype.Component; |
... | ... | @@ -45,8 +47,9 @@ public class KpiGroupUserTask { |
45 | 47 | private final KpiGroupBizService kpiGroupBizService; |
46 | 48 | private final DistributedLocker distributedLocker; |
47 | 49 | |
48 | - private final static String LOCK_KEY = "kpi:group:user"; | |
49 | - | |
50 | + @Value("${spring.cache.custom.global-prefix}:kpi:group:user") | |
51 | + @Getter | |
52 | + private String kpiGroupUserDistKey; | |
50 | 53 | /** |
51 | 54 | * 每天凌晨30分执行(人事角色、岗位调整在5点执行) |
52 | 55 | * 1. 将待生效数据改为生效中 |
... | ... | @@ -56,7 +59,7 @@ public class KpiGroupUserTask { |
56 | 59 | @Scheduled(cron = TimeTaskConstant.KPI_GROUP_USER) |
57 | 60 | @Transactional(rollbackFor = Exception.class) |
58 | 61 | public void processKpiUser() { |
59 | - Lock lock = distributedLocker.lock(LOCK_KEY); | |
62 | + Lock lock = distributedLocker.lock(getKpiGroupUserDistKey()); | |
60 | 63 | if (((RLock) lock).isLocked()) { |
61 | 64 | try { |
62 | 65 | log.info("定时任务【绩效组人员更新】开始执行"); | ... | ... |
fw-morax-server/src/main/java/cn/fw/morax/server/task/KpiReportRatioTask.java
... | ... | @@ -19,10 +19,12 @@ import cn.fw.morax.service.data.kpi.KpiPoolService; |
19 | 19 | import cn.fw.morax.service.data.kpi.KpiRatioService; |
20 | 20 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
21 | 21 | import com.google.common.collect.Lists; |
22 | +import lombok.Getter; | |
22 | 23 | import lombok.RequiredArgsConstructor; |
23 | 24 | import lombok.extern.slf4j.Slf4j; |
24 | 25 | import org.apache.commons.collections4.map.MultiKeyMap; |
25 | 26 | import org.redisson.api.RLock; |
27 | +import org.springframework.beans.factory.annotation.Value; | |
26 | 28 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
27 | 29 | import org.springframework.scheduling.annotation.Scheduled; |
28 | 30 | import org.springframework.stereotype.Component; |
... | ... | @@ -58,7 +60,9 @@ public class KpiReportRatioTask { |
58 | 60 | private final EhrRpcService ehrRpcService; |
59 | 61 | private final OopRpcService oopRpcService; |
60 | 62 | |
61 | - private final static String LOCK_KEY = "kpi:group:report"; | |
63 | + @Value("${spring.cache.custom.global-prefix}:kpi:group:report") | |
64 | + @Getter | |
65 | + private String kpiGroupReportDistKey; | |
62 | 66 | |
63 | 67 | /** |
64 | 68 | * 绩效报表定时任务 |
... | ... | @@ -77,7 +81,7 @@ public class KpiReportRatioTask { |
77 | 81 | */ |
78 | 82 | @Transactional(rollbackFor = Exception.class) |
79 | 83 | public void kpiReport(LocalDate date) { |
80 | - Lock lock = distributedLocker.lock(LOCK_KEY); | |
84 | + Lock lock = distributedLocker.lock(getKpiGroupReportDistKey()); | |
81 | 85 | if (! ((RLock) lock).isLocked()) { |
82 | 86 | return; |
83 | 87 | } | ... | ... |
fw-morax-server/src/main/java/cn/fw/morax/server/task/PayoffTask.java
... | ... | @@ -6,9 +6,11 @@ import cn.fw.morax.rpc.oop.OopRpcService; |
6 | 6 | import cn.fw.morax.rpc.oop.dto.GroupDTO; |
7 | 7 | import cn.fw.morax.service.biz.salary.PayoffBizService; |
8 | 8 | import cn.fw.morax.service.biz.salary.SalaryConfirmBizService; |
9 | +import lombok.Getter; | |
9 | 10 | import lombok.extern.slf4j.Slf4j; |
10 | 11 | import org.redisson.api.RLock; |
11 | 12 | import org.springframework.beans.factory.annotation.Autowired; |
13 | +import org.springframework.beans.factory.annotation.Value; | |
12 | 14 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
13 | 15 | import org.springframework.scheduling.annotation.Scheduled; |
14 | 16 | import org.springframework.stereotype.Component; |
... | ... | @@ -31,11 +33,14 @@ import java.util.concurrent.locks.Lock; |
31 | 33 | @ConditionalOnProperty(prefix = "task", name = "switch", havingValue = "on") |
32 | 34 | public class PayoffTask { |
33 | 35 | private final PayoffBizService payoffBizService; |
34 | - private final static String LOCK_KEY = ":createSalarySheet"; | |
35 | 36 | private final DistributedLocker distributedLocker; |
36 | 37 | private final OopRpcService oopRpcService; |
37 | 38 | private final SalaryConfirmBizService salaryConfirmBizService; |
38 | 39 | |
40 | + @Value("${spring.cache.custom.global-prefix}:createSalarySheet") | |
41 | + @Getter | |
42 | + private String createSalarySheetKey; | |
43 | + | |
39 | 44 | @Autowired |
40 | 45 | public PayoffTask(final PayoffBizService payoffBizService, |
41 | 46 | final DistributedLocker distributedLocker, |
... | ... | @@ -71,7 +76,7 @@ public class PayoffTask { |
71 | 76 | */ |
72 | 77 | @Scheduled(cron = "0 0 0/2 * * ?") |
73 | 78 | public void createSalarySheet() { |
74 | - Lock lock = distributedLocker.lock(LOCK_KEY); | |
79 | + Lock lock = distributedLocker.lock(getCreateSalarySheetKey()); | |
75 | 80 | if (((RLock) lock).isLocked()) { |
76 | 81 | List<GroupDTO> list = oopRpcService.allGroups(); |
77 | 82 | if (!CollectionUtils.isEmpty(list)) { | ... | ... |
fw-morax-server/src/main/java/cn/fw/morax/server/task/SalaryGroupTask.java
... | ... | @@ -12,9 +12,11 @@ import cn.fw.morax.service.biz.salary.SalaryGroupUserBizService; |
12 | 12 | import cn.fw.morax.service.data.salary.SalaryGroupService; |
13 | 13 | import cn.hutool.core.date.StopWatch; |
14 | 14 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
15 | +import lombok.Getter; | |
15 | 16 | import lombok.RequiredArgsConstructor; |
16 | 17 | import lombok.extern.slf4j.Slf4j; |
17 | 18 | import org.redisson.api.RLock; |
19 | +import org.springframework.beans.factory.annotation.Value; | |
18 | 20 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
19 | 21 | import org.springframework.scheduling.annotation.Scheduled; |
20 | 22 | import org.springframework.stereotype.Component; |
... | ... | @@ -44,7 +46,9 @@ public class SalaryGroupTask { |
44 | 46 | private final SalaryGroupService salaryGroupService; |
45 | 47 | private final DistributedLocker distributedLocker; |
46 | 48 | |
47 | - private final static String LOCK_KEY = "salary:group"; | |
49 | + @Value("${spring.cache.custom.global-prefix}:salary:group") | |
50 | + @Getter | |
51 | + private String salaryGroupKey; | |
48 | 52 | |
49 | 53 | /** |
50 | 54 | * 每个月1号凌晨3点执行 |
... | ... | @@ -55,7 +59,7 @@ public class SalaryGroupTask { |
55 | 59 | @Scheduled(cron = TimeTaskConstant.SALARY_GROUP) |
56 | 60 | @Transactional(rollbackFor = Exception.class) |
57 | 61 | public void processCurMonthEffectSalaryGroup() { |
58 | - Lock lock = distributedLocker.lock(LOCK_KEY); | |
62 | + Lock lock = distributedLocker.lock(getSalaryGroupKey()); | |
59 | 63 | if (((RLock) lock).isLocked()) { |
60 | 64 | try { |
61 | 65 | log.info("定时任务【每月薪酬组配置状态改变】开始执行"); | ... | ... |
fw-morax-server/src/main/java/cn/fw/morax/server/task/SalaryPoolFundShopTask.java
... | ... | @@ -11,9 +11,11 @@ import cn.fw.morax.rpc.ehr.dto.StaffShopInfoDTO; |
11 | 11 | import cn.fw.morax.service.data.salary.SalaryPoolService; |
12 | 12 | import com.google.common.base.Functions; |
13 | 13 | import com.google.common.collect.Lists; |
14 | +import lombok.Getter; | |
14 | 15 | import lombok.RequiredArgsConstructor; |
15 | 16 | import lombok.extern.slf4j.Slf4j; |
16 | 17 | import org.redisson.api.RLock; |
18 | +import org.springframework.beans.factory.annotation.Value; | |
17 | 19 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
18 | 20 | import org.springframework.scheduling.annotation.Scheduled; |
19 | 21 | import org.springframework.stereotype.Component; |
... | ... | @@ -43,7 +45,9 @@ public class SalaryPoolFundShopTask { |
43 | 45 | private final SalaryPoolService salaryPoolService; |
44 | 46 | private final EhrRpcService ehrRpcService; |
45 | 47 | |
46 | - private final static String LOCK_KEY = "salary:pool:fund"; | |
48 | + @Value("${spring.cache.custom.global-prefix}:salary:pool:fund") | |
49 | + @Getter | |
50 | + private String salaryPoolFundKey; | |
47 | 51 | |
48 | 52 | /** |
49 | 53 | * 每月第一天凌晨执行,薪酬池写入社保公积金门店 |
... | ... | @@ -53,7 +57,7 @@ public class SalaryPoolFundShopTask { |
53 | 57 | @Scheduled(cron = TimeTaskConstant.SALARY_POOL_FUND_SHOP) |
54 | 58 | @Transactional(rollbackFor = Exception.class) |
55 | 59 | public void dealSalaryPoolFundShop() { |
56 | - Lock lock = distributedLocker.lock(LOCK_KEY); | |
60 | + Lock lock = distributedLocker.lock(getSalaryPoolFundKey()); | |
57 | 61 | if (((RLock) lock).isLocked()) { |
58 | 62 | try { |
59 | 63 | log.info("定时任务【酬池写入社保公积金门店】开始执行"); | ... | ... |
fw-morax-server/src/main/java/cn/fw/morax/server/task/SalaryReportTask.java
... | ... | @@ -21,10 +21,12 @@ import cn.fw.morax.service.data.salary.SalaryRewardService; |
21 | 21 | import com.alibaba.fastjson.JSON; |
22 | 22 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
23 | 23 | import com.google.common.collect.Lists; |
24 | +import lombok.Getter; | |
24 | 25 | import lombok.RequiredArgsConstructor; |
25 | 26 | import lombok.extern.slf4j.Slf4j; |
26 | 27 | import org.apache.commons.collections4.map.MultiKeyMap; |
27 | 28 | import org.redisson.api.RLock; |
29 | +import org.springframework.beans.factory.annotation.Value; | |
28 | 30 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
29 | 31 | import org.springframework.scheduling.annotation.Scheduled; |
30 | 32 | import org.springframework.stereotype.Component; |
... | ... | @@ -60,7 +62,9 @@ public class SalaryReportTask { |
60 | 62 | private final OopRpcService oopRpcService; |
61 | 63 | private final DistributedLocker distributedLocker; |
62 | 64 | |
63 | - private final static String LOCK_KEY = "kpi:group:report"; | |
65 | + @Value("${spring.cache.custom.global-prefix}:salary:group:report") | |
66 | + @Getter | |
67 | + private String salaryGroupReport; | |
64 | 68 | |
65 | 69 | /** |
66 | 70 | * 绩效报表定时任务 |
... | ... | @@ -78,7 +82,7 @@ public class SalaryReportTask { |
78 | 82 | */ |
79 | 83 | @Transactional(rollbackFor = Exception.class) |
80 | 84 | public void salaryReport(LocalDate date) { |
81 | - Lock lock = distributedLocker.lock(LOCK_KEY); | |
85 | + Lock lock = distributedLocker.lock(getSalaryGroupReport()); | |
82 | 86 | if (!((RLock) lock).isLocked()) { |
83 | 87 | return; |
84 | 88 | } | ... | ... |