Commit 98d05b03e47753854d476ea60a62fc9a755ce12d

Authored by 姜超
2 parents 29ea29c9 d23126d5

Merge branch 'bug-fix' into 'main'

计算考评修改计算日期

计算考评修改计算日期

See merge request !606
doc/2023-05-18_update.sql
  1 +-- 2024年4月11日
  2 +ALTER TABLE `fw_morax`.`eval_pool_indicator_detail`
  3 + ADD INDEX `query_index`(`pool_id`, `scope_type`, `stage_dim`, `eval_group_id`, `data_date`, `yn`) USING BTREE;
  4 +
  5 +
1 6 -- 2024年4月3日
2 7 ALTER TABLE `fw_morax`.`eval_group_user`
3 8 ADD COLUMN `staff_status` tinyint(8) NULL COMMENT '当前员工状态:1->试用,2->正式,8->待离职,9->离职' AFTER `data_date`;
... ...
fw-morax-domain/src/main/java/cn/fw/morax/domain/bo/eval/EvalGroupUserShop.java
... ... @@ -102,6 +102,11 @@ public class EvalGroupUserShop {
102 102 private LocalDate dataDate;
103 103  
104 104 /**
  105 + * 计算考评日期
  106 + */
  107 + private LocalDate calcDate;
  108 +
  109 + /**
105 110 * 集团id
106 111 */
107 112 private Long groupId;
... ...
fw-morax-service/src/main/java/cn/fw/morax/service/biz/calculator/eval/kpi/EvalKpiBaseCalculator.java
... ... @@ -594,7 +594,7 @@ public abstract class EvalKpiBaseCalculator implements Calculator<EvalGroupUserS
594 594 consumer.accept(preconditionHitLog);
595 595 }
596 596  
597   - String cacheKey = evalCalcResultVal.getIndicatorPreconditionHitLogKey(userShop.getEvalGroupRankStageId(), userShop.getDataDate());
  597 + String cacheKey = evalCalcResultVal.getIndicatorPreconditionHitLogKey(userShop.getEvalGroupRankStageId(), userShop.getCalcDate());
598 598 BoundListOperations<String, String> listOps = stringRedisTemplate.boundListOps(cacheKey);
599 599 listOps.rightPush(JSONObject.toJSONString(preconditionHitLog));
600 600  
... ... @@ -637,7 +637,7 @@ public abstract class EvalKpiBaseCalculator implements Calculator&lt;EvalGroupUserS
637 637 targetHitLog.setGroupId(userShop.getGroupId());
638 638 targetHitLog.setYn(Boolean.TRUE);
639 639  
640   - String cacheKey = evalCalcResultVal.getIndicatorTargetHitLogKey(userShop.getEvalGroupRankStageId(), userShop.getDataDate());
  640 + String cacheKey = evalCalcResultVal.getIndicatorTargetHitLogKey(userShop.getEvalGroupRankStageId(), userShop.getCalcDate());
641 641 BoundListOperations<String, String> listOps = stringRedisTemplate.boundListOps(cacheKey);
642 642 listOps.rightPush(JSONObject.toJSONString(targetHitLog));
643 643  
... ... @@ -686,7 +686,7 @@ public abstract class EvalKpiBaseCalculator implements Calculator&lt;EvalGroupUserS
686 686 consumer.accept(hitLog);
687 687 }
688 688  
689   - String cacheKey = evalCalcResultVal.getIndicatorHitLogKey(userShop.getEvalGroupRankStageId(), userShop.getDataDate());
  689 + String cacheKey = evalCalcResultVal.getIndicatorHitLogKey(userShop.getEvalGroupRankStageId(), userShop.getCalcDate());
690 690 BoundListOperations<String, String> listOps = stringRedisTemplate.boundListOps(cacheKey);
691 691 listOps.rightPush(JSONObject.toJSONString(hitLog));
692 692  
... ...
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalCalculateService.java
... ... @@ -654,6 +654,7 @@ public class EvalCalculateService {
654 654 if (EvalScopeEnum.STAFF.equals(scopeType)) {
655 655 for (EvalGroupUserShop userShop : userShops) {
656 656 BigDecimal reward = totalReward(userShop, rewardDetails);
  657 + //考评人员池 不再更新,抽取人员时会自动更新
657 658 evalUserPoolService.update(Wrappers.<EvalUserPool>lambdaUpdate()
658 659 .eq(EvalUserPool::getId, userShop.getPoolId())
659 660 .eq(EvalUserPool::getYn, Boolean.TRUE)
... ... @@ -661,7 +662,7 @@ public class EvalCalculateService {
661 662 .set(EvalUserPool::getScore, userShop.getScore())
662 663 .set(EvalUserPool::getScoreRatio, userShop.getScoreRatio())
663 664 .set(EvalUserPool::getMonthly, YearMonth.from(localDate))
664   - .set(EvalUserPool::getDataDate, localDate)
  665 +// .set(EvalUserPool::getDataDate, localDate)1
665 666 );
666 667 }
667 668 return;
... ... @@ -703,7 +704,7 @@ public class EvalCalculateService {
703 704 .eq(EvalUserPool::getYn, Boolean.TRUE)
704 705 .set(EvalUserPool::getReward, reward)
705 706 .set(EvalUserPool::getMonthly, YearMonth.from(localDate))
706   - .set(EvalUserPool::getDataDate, localDate)
  707 +// .set(EvalUserPool::getDataDate, localDate)
707 708 );
708 709 }
709 710 return;
... ... @@ -907,15 +908,17 @@ public class EvalCalculateService {
907 908 }
908 909  
909 910 if (CollectionUtils.isNotEmpty(indicatorDetails)) {
910   - List<EvalPoolIndicatorDetail> evalPoolIndicatorDetails = evalPoolIndicatorDetailService.list(Wrappers.<EvalPoolIndicatorDetail>lambdaQuery()
  911 + List<EvalPoolIndicatorDetail> oldEvalPoolIndicatorDetails = evalPoolIndicatorDetailService.list(Wrappers.<EvalPoolIndicatorDetail>lambdaQuery()
911 912 .eq(EvalPoolIndicatorDetail::getPoolId, poolId)
912   - .eq(EvalPoolIndicatorDetail::getEvalGroupId, evalGroupId)
913 913 .eq(EvalPoolIndicatorDetail::getScopeType, userShop.getScopeType())
914 914 .eq(EvalPoolIndicatorDetail::getStageDim, userShop.getStageDimEnum())
  915 + .eq(EvalPoolIndicatorDetail::getEvalGroupId, evalGroupId)
915 916 .eq(EvalPoolIndicatorDetail::getDataDate, userShop.getDataDate())
916   - .eq(EvalPoolIndicatorDetail::getYn, Boolean.TRUE));
917   - if (PublicUtil.isNotEmpty(evalPoolIndicatorDetails)) {
918   - List<Long> detailIds = evalPoolIndicatorDetails.stream().map(EvalPoolIndicatorDetail::getId).collect(Collectors.toList());
  917 + .eq(EvalPoolIndicatorDetail::getYn, Boolean.TRUE)
  918 + .select(EvalPoolIndicatorDetail::getId)
  919 + );
  920 + if (PublicUtil.isNotEmpty(oldEvalPoolIndicatorDetails)) {
  921 + List<Long> detailIds = oldEvalPoolIndicatorDetails.stream().map(EvalPoolIndicatorDetail::getId).distinct().collect(Collectors.toList());
919 922 evalPoolIndicatorDetailService.removeByIds(detailIds);
920 923 }
921 924 evalPoolIndicatorDetailService.insertBatchSomeColumn(indicatorDetails);
... ... @@ -1392,6 +1395,7 @@ public class EvalCalculateService {
1392 1395 userShop.setReferId(userPool.getUserId());
1393 1396 userShop.setBeginDate(calcDateParam.getCalcBeginDate());
1394 1397 userShop.setDataDate(userPool.getDataDate());
  1398 + userShop.setCalcDate(calcDateParam.getCalcEndDate());
1395 1399 userShop.setMultiStage(evalGroupRank.getMultiStage());
1396 1400 userShop.setGroupId(userPool.getGroupId());
1397 1401 userShop.setScore(BigDecimal.ZERO);
... ... @@ -1452,6 +1456,7 @@ public class EvalCalculateService {
1452 1456 userShop.setEvalGroupRankStageId(evalGroupRankStage.getId());
1453 1457 userShop.setBeginDate(calcDateParam.getCalcBeginDate());
1454 1458 userShop.setDataDate(calcDateParam.getCalcEndDate());
  1459 + userShop.setCalcDate(calcDateParam.getCalcEndDate());
1455 1460 userShop.setMultiStage(evalGroupRank.getMultiStage());
1456 1461 userShop.setGroupId(evalGroup.getGroupId());
1457 1462 // userShop.setIgnored(ignored);
... ...