Commit e16ca93693ad7159c5da2e2547be73c11b0aca62
Merge branch 'test' into 'main'
feature(*): 定时任务发送修改 定时任务发送修改 See merge request !126
Showing
7 changed files
with
46 additions
and
26 deletions
fw-morax-dao/src/main/java/cn/fw/morax/dao/eval/EvalGroupIndicatorDao.java
... | ... | @@ -5,6 +5,7 @@ import cn.fw.morax.domain.bo.StageIndicatorBO; |
5 | 5 | import cn.fw.morax.domain.bo.eval.EvalGroupIndicatorBO; |
6 | 6 | import cn.fw.morax.domain.db.eval.EvalGroupIndicator; |
7 | 7 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
8 | +import org.apache.ibatis.annotations.Param; | |
8 | 9 | |
9 | 10 | import java.time.LocalDate; |
10 | 11 | import java.util.List; |
... | ... | @@ -36,5 +37,6 @@ public interface EvalGroupIndicatorDao extends BaseMapper<EvalGroupIndicator> { |
36 | 37 | * @param codeType |
37 | 38 | * @return |
38 | 39 | */ |
39 | - List<StageIndicatorBO> getStageIndicators(LocalDate dataDate, Integer codeType); | |
40 | + List<StageIndicatorBO> getStageIndicators(@Param("dataDate") LocalDate dataDate, | |
41 | + @Param("codeType") Integer codeType); | |
40 | 42 | } | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/kpi/KpiStageMqLog.java
fw-morax-server/src/main/java/cn/fw/morax/server/controller/erp/EvalTaskController.java
... | ... | @@ -113,12 +113,12 @@ public class EvalTaskController { |
113 | 113 | return success(); |
114 | 114 | } |
115 | 115 | |
116 | -// @GetMapping("/check-report") | |
117 | -// @ControllerMethod("当天薪酬组人员定时器") | |
118 | -// public Message<Void> checkTodoCompletion() { | |
119 | -// evalCalcTask.checkTodoCompletion(); | |
120 | -// return success(); | |
121 | -// } | |
116 | + @GetMapping("/send-notice") | |
117 | + @ControllerMethod("发送业务上报mq通知") | |
118 | + public Message<Void> sendNotice() { | |
119 | + evalGroupTask.sendNotice(); | |
120 | + return success(); | |
121 | + } | |
122 | 122 | |
123 | 123 | // @GetMapping("/eval-group") |
124 | 124 | // @ControllerMethod("处理考评组") | ... | ... |
fw-morax-server/src/main/java/cn/fw/morax/server/task/EvalGroupTask.java
... | ... | @@ -7,6 +7,7 @@ import cn.fw.morax.common.utils.PublicUtil; |
7 | 7 | import cn.fw.morax.domain.bo.StageIndicatorBO; |
8 | 8 | import cn.fw.morax.domain.db.eval.*; |
9 | 9 | import cn.fw.morax.domain.db.kpi.KpiStageMqLog; |
10 | +import cn.fw.morax.domain.enums.EvalScopeEnum; | |
10 | 11 | import cn.fw.morax.domain.enums.SettingStatusEnum; |
11 | 12 | import cn.fw.morax.sdk.dto.kpi.KpiStageReportNoticeMQ; |
12 | 13 | import cn.fw.morax.service.component.KpiStageIndicatorReportProducer; |
... | ... | @@ -44,6 +45,7 @@ public class EvalGroupTask { |
44 | 45 | private final EvalGroupIndicatorService evalGroupIndicatorService; |
45 | 46 | private final EvalGroupRankStageService evalGroupRankStageService; |
46 | 47 | private final EvalShopPoolService evalShopPoolService; |
48 | + private final EvalGroupRewardDimService evalGroupRewardDimService; | |
47 | 49 | private final EvalGroupUserService evalGroupUserService; |
48 | 50 | private final KpiStageMqLogService kpiStageMqLogService; |
49 | 51 | private final EvalGroupRankService evalGroupRankService; |
... | ... | @@ -102,8 +104,14 @@ public class EvalGroupTask { |
102 | 104 | .eq(EvalGroupUser::getYn, Boolean.TRUE) |
103 | 105 | ); |
104 | 106 | List<Long> userIds = users.stream().map(EvalGroupUser::getUserId).distinct().collect(Collectors.toList()); |
105 | - List<Long> shopIds = users.stream().map(EvalGroupUser::getShopId).distinct().collect(Collectors.toList()); | |
106 | - if (PublicUtil.isEmpty(userIds)) { | |
107 | + | |
108 | + List<EvalGroupRewardDim> rewardDims = evalGroupRewardDimService.list(Wrappers.<EvalGroupRewardDim>lambdaQuery() | |
109 | + .eq(EvalGroupRewardDim::getEvalGroupId, stageIndicator.getEvalGroupId()) | |
110 | + .eq(EvalGroupRewardDim::getType, EvalScopeEnum.SHOP) | |
111 | + .eq(EvalGroupRewardDim::getYn, Boolean.TRUE) | |
112 | + ); | |
113 | + List<Long> shopIds = rewardDims.stream().flatMap(dim -> dim.getShopIds().stream()).distinct().collect(Collectors.toList()); | |
114 | + if (PublicUtil.isEmpty(userIds) && PublicUtil.isEmpty(shopIds)) { | |
107 | 115 | return; |
108 | 116 | } |
109 | 117 | mqLog.setShopIds(shopIds); | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/calculator/eval/kpi/EvalKpiBaseCalculator.java
... | ... | @@ -181,6 +181,9 @@ public abstract class EvalKpiBaseCalculator implements Calculator<EvalGroupUserS |
181 | 181 | * 计算目标 |
182 | 182 | */ |
183 | 183 | public BigDecimal calcTarget(TargetCalcTypeEnum targetCalcType, BigDecimal indicatorValue, BigDecimal targetValue) { |
184 | + if (PublicUtil.isEmpty(targetValue) || BigDecimal.ZERO.compareTo(targetValue) == 0) { | |
185 | + return BigDecimal.ZERO; | |
186 | + } | |
184 | 187 | if (TargetCalcTypeEnum.MINIMUM.equals(targetCalcType)) { |
185 | 188 | BigDecimal difference = BigDecimal.ONE.subtract(targetValue); |
186 | 189 | if (BigDecimal.ZERO.compareTo(difference) == 0) { | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalCalculateService.java
... | ... | @@ -289,9 +289,12 @@ public class EvalCalculateService { |
289 | 289 | return userShops; |
290 | 290 | } |
291 | 291 | |
292 | - List<Long> shopIds = evalGroup.getShopIds(); | |
293 | - Map<Long, EvalShopPool> shopPoolBOMap = evalPoolCommonService.inspectionShopPools(evalGroup, localDate); | |
294 | - for (Long shopId : shopIds) { | |
292 | + List<Long> distShopIds = this.getEvalDistShopIds(evalGroup); | |
293 | + if (PublicUtil.isEmpty(distShopIds)) { | |
294 | + return new ArrayList<>(); | |
295 | + } | |
296 | + Map<Long, EvalShopPool> shopPoolBOMap = evalPoolCommonService.inspectionShopPools(evalGroup, localDate, distShopIds); | |
297 | + for (Long shopId : distShopIds) { | |
295 | 298 | EvalShopPool shopPool = shopPoolBOMap.get(shopId); |
296 | 299 | userShops.add(convertBO(shopPool, evalGroup, beginDate, localDate)); |
297 | 300 | } |
... | ... | @@ -299,7 +302,17 @@ public class EvalCalculateService { |
299 | 302 | } |
300 | 303 | |
301 | 304 | |
302 | - | |
305 | + public List<Long> getEvalDistShopIds(EvalGroup evalGroup) { | |
306 | + List<EvalGroupRewardDim> rewardDims = evalGroupRewardDimService.list(Wrappers.<EvalGroupRewardDim>lambdaQuery() | |
307 | + .eq(EvalGroupRewardDim::getEvalGroupId, evalGroup.getId()) | |
308 | + .eq(EvalGroupRewardDim::getType, EvalScopeEnum.SHOP) | |
309 | + .eq(EvalGroupRewardDim::getYn, Boolean.TRUE) | |
310 | + ); | |
311 | + if (PublicUtil.isEmpty(rewardDims)) { | |
312 | + return new ArrayList<>(); | |
313 | + } | |
314 | + return rewardDims.stream().flatMap(dim -> dim.getShopIds().stream()).distinct().collect(Collectors.toList()); | |
315 | + } | |
303 | 316 | |
304 | 317 | |
305 | 318 | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalPoolCommonService.java
... | ... | @@ -73,7 +73,7 @@ public class EvalPoolCommonService { |
73 | 73 | } |
74 | 74 | |
75 | 75 | |
76 | - public Map<Long, EvalShopPool> inspectionShopPools(EvalGroup evalGroup, LocalDate localDate) { | |
76 | + public Map<Long, EvalShopPool> inspectionShopPools(EvalGroup evalGroup, LocalDate localDate, List<Long> distShopIds) { | |
77 | 77 | Set<Long> evalGroupShopIds = new HashSet<>(evalGroup.getShopIds()); |
78 | 78 | List<EvalShopPool> pools = evalShopPoolService.list(Wrappers.<EvalShopPool>lambdaQuery() |
79 | 79 | .eq(EvalShopPool::getEvalGroupId, evalGroup.getId()) |
... | ... | @@ -87,20 +87,14 @@ public class EvalPoolCommonService { |
87 | 87 | return v1; |
88 | 88 | })); |
89 | 89 | |
90 | - List<EvalGroupRewardDim> rewardDims = evalGroupRewardDimService.list(Wrappers.<EvalGroupRewardDim>lambdaQuery() | |
91 | - .eq(EvalGroupRewardDim::getEvalGroupId, evalGroup.getId()) | |
92 | - .eq(EvalGroupRewardDim::getType, EvalScopeEnum.SHOP) | |
93 | - .eq(EvalGroupRewardDim::getYn, Boolean.TRUE) | |
94 | - ); | |
95 | - if (PublicUtil.isEmpty(rewardDims)) { | |
90 | + if (PublicUtil.isEmpty(distShopIds)) { | |
96 | 91 | return new HashMap<>(); |
97 | 92 | } |
98 | - Set<Long> distRewardShopIds = rewardDims.stream().flatMap(dim -> dim.getShopIds().stream()).collect(Collectors.toSet()); | |
99 | - for (Long shopId : distRewardShopIds) { | |
93 | + for (Long shopId : distShopIds) { | |
100 | 94 | if (! shopPoolMap.containsKey(shopId)) { |
101 | - EvalShopPoolStatusEnum status = (distRewardShopIds.contains(shopId)) | |
102 | - ? EvalShopPoolStatusEnum.CALC_REWARD : EvalShopPoolStatusEnum.NO_REWARD; | |
103 | - EvalShopPool shopPool = this.inspectionShopPool(shopId, evalGroup, localDate, status); | |
95 | +// EvalShopPoolStatusEnum status = (distShopIds.contains(shopId)) | |
96 | +// ? EvalShopPoolStatusEnum.CALC_REWARD : EvalShopPoolStatusEnum.NO_REWARD; | |
97 | + EvalShopPool shopPool = this.inspectionShopPool(shopId, evalGroup, localDate, EvalShopPoolStatusEnum.CALC_REWARD); | |
104 | 98 | shopPoolMap.put(shopId, shopPool); |
105 | 99 | } |
106 | 100 | } | ... | ... |