Commit e16ca93693ad7159c5da2e2547be73c11b0aca62

Authored by 姜超
2 parents 0d70534c bc484bc4

Merge branch 'test' into 'main'

feature(*): 定时任务发送修改

定时任务发送修改

See merge request !126
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
... ... @@ -30,7 +30,7 @@ import java.util.List;
30 30 public class KpiStageMqLog extends Model<KpiStageMqLog> {
31 31  
32 32 private static final long serialVersionUID = 1L;
33   - @TableId(type = IdType.ASSIGN_ID)
  33 + @TableId(type = IdType.AUTO)
34 34 private Long id;
35 35  
36 36 /**
... ...
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&lt;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 }
... ...