Commit 218780a8221f4fdd8250c6969ff3817706885a4b
Merge branch 'test' into 'main'
个人考评计算、展示修改 个人考评计算、展示修改 See merge request !130
Showing
16 changed files
with
277 additions
and
81 deletions
doc/2023-05-18_update.sql
@@ -4,3 +4,8 @@ ALTER TABLE `fw_morax`.`eval_user_pool` | @@ -4,3 +4,8 @@ ALTER TABLE `fw_morax`.`eval_user_pool` | ||
4 | CHANGE COLUMN `eval_group_stage_id` `eval_group_rank_stage_id` bigint(20) NOT NULL COMMENT '考评阶段id' AFTER `eval_group_rank_id`; | 4 | CHANGE COLUMN `eval_group_stage_id` `eval_group_rank_stage_id` bigint(20) NOT NULL COMMENT '考评阶段id' AFTER `eval_group_rank_id`; |
5 | ALTER TABLE `fw_morax`.`eval_group_user` | 5 | ALTER TABLE `fw_morax`.`eval_group_user` |
6 | ADD COLUMN `eval_group_rank_stage_id` bigint(20) NOT NULL COMMENT '考评排名组阶段id' AFTER `eval_group_rank_id`; | 6 | ADD COLUMN `eval_group_rank_stage_id` bigint(20) NOT NULL COMMENT '考评排名组阶段id' AFTER `eval_group_rank_id`; |
7 | + | ||
8 | +-- 2023年5月23日 | ||
9 | +ALTER TABLE `fw_morax`.`eval_group_indicator_target_hit_log` | ||
10 | + ADD COLUMN `extra_reach_value` decimal(18, 4) NULL COMMENT '额外达成目标' AFTER `reach_value`, | ||
11 | +ADD COLUMN `use_target` tinyint(4) NULL DEFAULT 1 COMMENT '考评使用目标; 1:无目标 2:第一目标 3:额外目标值' AFTER `extra_reach_value`; |
fw-morax-dao/src/main/resources/mapper/eval/EvalGroupIndicatorTargetHitLogMapper.xml
@@ -9,6 +9,8 @@ | @@ -9,6 +9,8 @@ | ||
9 | <result column="target_type" property="targetType"/> | 9 | <result column="target_type" property="targetType"/> |
10 | <result column="value" property="value"/> | 10 | <result column="value" property="value"/> |
11 | <result column="reach_value" property="reachValue"/> | 11 | <result column="reach_value" property="reachValue"/> |
12 | + <result column="extra_reach_value" property="extraReachValue"/> | ||
13 | + <result column="use_target" property="useTarget"/> | ||
12 | <result column="data_date" property="dataDate"/> | 14 | <result column="data_date" property="dataDate"/> |
13 | <result column="group_id" property="groupId"/> | 15 | <result column="group_id" property="groupId"/> |
14 | <result column="create_time" property="createTime"/> | 16 | <result column="create_time" property="createTime"/> |
@@ -24,6 +26,8 @@ | @@ -24,6 +26,8 @@ | ||
24 | t1.`pool_id`, | 26 | t1.`pool_id`, |
25 | t1.`value` AS `value`, | 27 | t1.`value` AS `value`, |
26 | t1.`reach_value`, | 28 | t1.`reach_value`, |
29 | + t1.`extra_reach_value`, | ||
30 | + t1.`use_target`, | ||
27 | t1.`data_date`, | 31 | t1.`data_date`, |
28 | t1.`group_id` | 32 | t1.`group_id` |
29 | FROM | 33 | FROM |
fw-morax-domain/src/main/java/cn/fw/morax/domain/bo/eval/EvalGroupUserShop.java
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalGroupIndicatorTargetHitLog.java
@@ -2,6 +2,7 @@ package cn.fw.morax.domain.db.eval; | @@ -2,6 +2,7 @@ package cn.fw.morax.domain.db.eval; | ||
2 | 2 | ||
3 | import cn.fw.common.data.entity.BaseAuditableTimeEntity; | 3 | import cn.fw.common.data.entity.BaseAuditableTimeEntity; |
4 | import cn.fw.morax.domain.enums.EvalScopeEnum; | 4 | import cn.fw.morax.domain.enums.EvalScopeEnum; |
5 | +import cn.fw.morax.domain.enums.EvalUseTargetEnum; | ||
5 | import cn.fw.morax.domain.enums.IndicatorTypeEnum; | 6 | import cn.fw.morax.domain.enums.IndicatorTypeEnum; |
6 | import com.baomidou.mybatisplus.annotation.TableLogic; | 7 | import com.baomidou.mybatisplus.annotation.TableLogic; |
7 | import com.baomidou.mybatisplus.annotation.TableName; | 8 | import com.baomidou.mybatisplus.annotation.TableName; |
@@ -60,6 +61,16 @@ public class EvalGroupIndicatorTargetHitLog extends BaseAuditableTimeEntity<Eval | @@ -60,6 +61,16 @@ public class EvalGroupIndicatorTargetHitLog extends BaseAuditableTimeEntity<Eval | ||
60 | private BigDecimal reachValue; | 61 | private BigDecimal reachValue; |
61 | 62 | ||
62 | /** | 63 | /** |
64 | + * 额外达成目标 | ||
65 | + */ | ||
66 | + private BigDecimal extraReachValue; | ||
67 | + | ||
68 | + /** | ||
69 | + * 考评使用目标; 1:无目标 2:第一目标 3:额外目标值 | ||
70 | + */ | ||
71 | + private EvalUseTargetEnum useTarget; | ||
72 | + | ||
73 | + /** | ||
63 | * 数据日期 | 74 | * 数据日期 |
64 | */ | 75 | */ |
65 | private LocalDate dataDate; | 76 | private LocalDate dataDate; |
fw-morax-domain/src/main/java/cn/fw/morax/domain/enums/EvalUseTargetEnum.java
0 → 100644
1 | +package cn.fw.morax.domain.enums; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.core.enums.IEnum; | ||
4 | +import com.fasterxml.jackson.annotation.JsonCreator; | ||
5 | +import com.fasterxml.jackson.annotation.JsonValue; | ||
6 | +import lombok.Getter; | ||
7 | + | ||
8 | +/** | ||
9 | + * 考评使用目标 | ||
10 | + * | ||
11 | + * @author kurisu | ||
12 | + */ | ||
13 | +public enum EvalUseTargetEnum implements IEnum<Integer> { | ||
14 | + /** | ||
15 | + * 考评使用目标; 1:无目标 2:第一目标 3:额外目标值 | ||
16 | + */ | ||
17 | + NO(1, "无目标"), | ||
18 | + FIRST_TARGET(2, "第一目标"), | ||
19 | + EXTRA_TARGET(2, "额外目标值"), | ||
20 | + ; | ||
21 | + | ||
22 | + /** | ||
23 | + * 值 | ||
24 | + */ | ||
25 | + private final Integer value; | ||
26 | + /** | ||
27 | + * 名称 | ||
28 | + */ | ||
29 | + @Getter | ||
30 | + private final String name; | ||
31 | + | ||
32 | + EvalUseTargetEnum(final Integer value, final String name) { | ||
33 | + this.value = value; | ||
34 | + this.name = name; | ||
35 | + } | ||
36 | + | ||
37 | + /** | ||
38 | + * 根据枚举值获取枚举对象 | ||
39 | + */ | ||
40 | + @JsonCreator | ||
41 | + public static EvalUseTargetEnum ofValue(final Integer value) { | ||
42 | + for (final EvalUseTargetEnum _enum : EvalUseTargetEnum.values()) { | ||
43 | + if (_enum.value.equals(value)) { | ||
44 | + return _enum; | ||
45 | + } | ||
46 | + } | ||
47 | + return null; | ||
48 | + } | ||
49 | + | ||
50 | + /** | ||
51 | + * 获取值 | ||
52 | + * | ||
53 | + * @return 值 | ||
54 | + */ | ||
55 | + @JsonValue | ||
56 | + @Override | ||
57 | + public Integer getValue() { | ||
58 | + return value; | ||
59 | + } | ||
60 | + | ||
61 | + /** | ||
62 | + * 获取描述 | ||
63 | + * | ||
64 | + * @return 值 | ||
65 | + */ | ||
66 | + @JsonCreator | ||
67 | + public static String getNameByVale(final Integer value) { | ||
68 | + for (final EvalUseTargetEnum _enum : EvalUseTargetEnum.values()) { | ||
69 | + if (_enum.value.equals(value)) { | ||
70 | + return _enum.getName(); | ||
71 | + } | ||
72 | + } | ||
73 | + return ""; | ||
74 | + } | ||
75 | +} |
fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/eval/EvalGroupIndicatorParamVO.java
@@ -93,14 +93,24 @@ public class EvalGroupIndicatorParamVO { | @@ -93,14 +93,24 @@ public class EvalGroupIndicatorParamVO { | ||
93 | private BigDecimal indicatorValue; | 93 | private BigDecimal indicatorValue; |
94 | 94 | ||
95 | /** | 95 | /** |
96 | - * 达成值 | 96 | + * 达成目标 |
97 | */ | 97 | */ |
98 | private BigDecimal reachValue; | 98 | private BigDecimal reachValue; |
99 | 99 | ||
100 | /** | 100 | /** |
101 | + * 额外达成目标 | ||
102 | + */ | ||
103 | + private BigDecimal extraReachValue; | ||
104 | + | ||
105 | + /** | ||
106 | + * 考评使用目标; 1:无目标 2:第一目标 3:额外目标值 | ||
107 | + */ | ||
108 | + private EvalUseTargetEnum useTarget; | ||
109 | + | ||
110 | + /** | ||
101 | * 时间进度目标值 | 111 | * 时间进度目标值 |
102 | */ | 112 | */ |
103 | - private BigDecimal timeScheduleTargetValue; | 113 | +// private BigDecimal timeScheduleTargetValue; |
104 | 114 | ||
105 | /** | 115 | /** |
106 | * 目标计算类型;1: 目标值计算 2:最低要求计算 3:阶段目标 4:时间进度 | 116 | * 目标计算类型;1: 目标值计算 2:最低要求计算 3:阶段目标 4:时间进度 |
fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/eval/EvalGroupIndicatorTargetHitLogVO.java
@@ -2,6 +2,7 @@ package cn.fw.morax.domain.vo.eval; | @@ -2,6 +2,7 @@ package cn.fw.morax.domain.vo.eval; | ||
2 | 2 | ||
3 | import cn.fw.common.data.entity.BaseAuditableTimeEntity; | 3 | import cn.fw.common.data.entity.BaseAuditableTimeEntity; |
4 | import cn.fw.morax.domain.enums.EvalScopeEnum; | 4 | import cn.fw.morax.domain.enums.EvalScopeEnum; |
5 | +import cn.fw.morax.domain.enums.EvalUseTargetEnum; | ||
5 | import cn.fw.morax.domain.enums.IndicatorTypeEnum; | 6 | import cn.fw.morax.domain.enums.IndicatorTypeEnum; |
6 | import com.baomidou.mybatisplus.annotation.TableName; | 7 | import com.baomidou.mybatisplus.annotation.TableName; |
7 | import lombok.Data; | 8 | import lombok.Data; |
@@ -56,6 +57,16 @@ public class EvalGroupIndicatorTargetHitLogVO extends BaseAuditableTimeEntity<Ev | @@ -56,6 +57,16 @@ public class EvalGroupIndicatorTargetHitLogVO extends BaseAuditableTimeEntity<Ev | ||
56 | private BigDecimal reachValue; | 57 | private BigDecimal reachValue; |
57 | 58 | ||
58 | /** | 59 | /** |
60 | + * 额外达成目标 | ||
61 | + */ | ||
62 | + private BigDecimal extraReachValue; | ||
63 | + | ||
64 | + /** | ||
65 | + * 考评使用目标; 1:无目标 2:第一目标 3:额外目标值 | ||
66 | + */ | ||
67 | + private EvalUseTargetEnum useTarget; | ||
68 | + | ||
69 | + /** | ||
59 | * 数据日期 | 70 | * 数据日期 |
60 | */ | 71 | */ |
61 | private LocalDate dataDate; | 72 | private LocalDate dataDate; |
fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/eval/EvalUserPoolVO.java
@@ -111,9 +111,22 @@ public class EvalUserPoolVO { | @@ -111,9 +111,22 @@ public class EvalUserPoolVO { | ||
111 | private BigDecimal reward; | 111 | private BigDecimal reward; |
112 | 112 | ||
113 | /** | 113 | /** |
114 | - * 考评得分 | 114 | + * 本月考评得分(最终得分) |
115 | */ | 115 | */ |
116 | private BigDecimal score; | 116 | private BigDecimal score; |
117 | + /** | ||
118 | + * 原始考评得分(无奖惩分) | ||
119 | + */ | ||
120 | + private BigDecimal originScore; | ||
121 | + | ||
122 | + /** | ||
123 | + * 奖励绩效分 | ||
124 | + */ | ||
125 | + private BigDecimal rewardScore; | ||
126 | + /** | ||
127 | + * 惩罚绩效分 | ||
128 | + */ | ||
129 | + private BigDecimal punishScore; | ||
117 | 130 | ||
118 | /** | 131 | /** |
119 | * 考评得分率 | 132 | * 考评得分率 |
fw-morax-rpc/src/main/java/cn/fw/morax/rpc/ehr/EhrRpcService.java
@@ -248,7 +248,7 @@ public class EhrRpcService { | @@ -248,7 +248,7 @@ public class EhrRpcService { | ||
248 | } | 248 | } |
249 | try { | 249 | try { |
250 | final Message<ManagerVo> msg = managerApi.getRealTimeManagerLeaveScope(null, staffId, startLeaveTime.getTime(), endLeaveTime.getTime()); | 250 | final Message<ManagerVo> msg = managerApi.getRealTimeManagerLeaveScope(null, staffId, startLeaveTime.getTime(), endLeaveTime.getTime()); |
251 | - log.info("ManagerApi.getRealTimeManagerScope: msg.code={}, msg.result={}, msg.data={}", msg.getCode(), msg.getResult(), msg.getData()); | 251 | + log.info("ManagerApi.getRealTimeManagerLeaveScope: msg.code={}, msg.result={}, msg.data={}", msg.getCode(), msg.getResult(), msg.getData()); |
252 | if (msg.isSuccess() && !Objects.isNull(msg.getData())) { | 252 | if (msg.isSuccess() && !Objects.isNull(msg.getData())) { |
253 | return this.convertStaffBaseDTOs(msg.getData().getManageStaffList()); | 253 | return this.convertStaffBaseDTOs(msg.getData().getManageStaffList()); |
254 | } | 254 | } |
fw-morax-server/src/main/java/cn/fw/morax/server/controller/app/EvalPoolController.java
@@ -90,8 +90,7 @@ public class EvalPoolController { | @@ -90,8 +90,7 @@ public class EvalPoolController { | ||
90 | if (Objects.isNull(userId)) { | 90 | if (Objects.isNull(userId)) { |
91 | userId = user.getUserId(); | 91 | userId = user.getUserId(); |
92 | } | 92 | } |
93 | -// return success(evalGroupPoolService.evalPoolSelector(userId, monthly)); | ||
94 | - return success(); | 93 | + return success(evalGroupPoolService.evalPoolSelector(userId, monthly)); |
95 | } | 94 | } |
96 | 95 | ||
97 | /** | 96 | /** |
@@ -99,11 +98,11 @@ public class EvalPoolController { | @@ -99,11 +98,11 @@ public class EvalPoolController { | ||
99 | */ | 98 | */ |
100 | @GetMapping("/own-detail") | 99 | @GetMapping("/own-detail") |
101 | @ControllerMethod("考评详情查询") | 100 | @ControllerMethod("考评详情查询") |
102 | - public Message<List<EvalUserRankStageVO>> evalPoolOwnDetail(@CurrentUser Long userId) { | ||
103 | -// dto.initMonthly(); | ||
104 | -// dto.setUserId(userId); | ||
105 | -// return success(evalGroupPoolService.queryRankStagePools(dto)); | ||
106 | - return success(); | 101 | + public Message<List<EvalUserRankStageVO>> evalPoolOwnDetail(@CurrentUser Long userId, |
102 | + @Valid EvalUserRankDTO dto) { | ||
103 | + dto.initMonthly(); | ||
104 | + dto.setUserId(userId); | ||
105 | + return success(evalGroupPoolService.queryRankStagePools(dto)); | ||
107 | } | 106 | } |
108 | 107 | ||
109 | /** | 108 | /** |
@@ -117,8 +116,7 @@ public class EvalPoolController { | @@ -117,8 +116,7 @@ public class EvalPoolController { | ||
117 | if (PublicUtil.isEmpty(dto.getUserId())) { | 116 | if (PublicUtil.isEmpty(dto.getUserId())) { |
118 | throw new BusinessException("人员信息不能为空"); | 117 | throw new BusinessException("人员信息不能为空"); |
119 | } | 118 | } |
120 | -// return success(evalGroupPoolService.queryRankStagePools(dto)); | ||
121 | - return success(); | 119 | + return success(evalGroupPoolService.queryRankStagePools(dto)); |
122 | } | 120 | } |
123 | 121 | ||
124 | /** | 122 | /** |
fw-morax-server/src/main/java/cn/fw/morax/server/controller/erp/EvalTaskController.java
@@ -49,7 +49,11 @@ public class EvalTaskController { | @@ -49,7 +49,11 @@ public class EvalTaskController { | ||
49 | @GetMapping("/group-user") | 49 | @GetMapping("/group-user") |
50 | @ControllerMethod("考评组人员") | 50 | @ControllerMethod("考评组人员") |
51 | public Message<Void> processEvalUser(Date date) { | 51 | public Message<Void> processEvalUser(Date date) { |
52 | - evalGroupUserTask.processEvalUser(); | 52 | + if (PublicUtil.isEmpty(date)) { |
53 | + evalGroupUserTask.processEvalUser(LocalDate.now().minusDays(1L)); | ||
54 | + } else { | ||
55 | + evalGroupUserTask.processEvalUser(DateUtil.date2LocalDate(date)); | ||
56 | + } | ||
53 | return success(); | 57 | return success(); |
54 | } | 58 | } |
55 | 59 |
fw-morax-server/src/main/java/cn/fw/morax/server/task/EvalGroupUserTask.java
@@ -58,6 +58,12 @@ public class EvalGroupUserTask { | @@ -58,6 +58,12 @@ public class EvalGroupUserTask { | ||
58 | @Scheduled(cron = TimeTaskConstant.EVAL_GROUP_USER) | 58 | @Scheduled(cron = TimeTaskConstant.EVAL_GROUP_USER) |
59 | @Transactional(rollbackFor = Exception.class) | 59 | @Transactional(rollbackFor = Exception.class) |
60 | public void processEvalUser() { | 60 | public void processEvalUser() { |
61 | + LocalDate yesterday = LocalDate.now().minusDays(1); | ||
62 | + this.processEvalUser(yesterday); | ||
63 | + } | ||
64 | + | ||
65 | + @Transactional(rollbackFor = Exception.class) | ||
66 | + public void processEvalUser(LocalDate yesterday) { | ||
61 | Lock lock = distributedLocker.lock(getEvalGroupUserDistKey()); | 67 | Lock lock = distributedLocker.lock(getEvalGroupUserDistKey()); |
62 | if (((RLock) lock).isLocked()) { | 68 | if (((RLock) lock).isLocked()) { |
63 | try { | 69 | try { |
@@ -65,7 +71,6 @@ public class EvalGroupUserTask { | @@ -65,7 +71,6 @@ public class EvalGroupUserTask { | ||
65 | StopWatch stopWatch = new StopWatch(); | 71 | StopWatch stopWatch = new StopWatch(); |
66 | stopWatch.start("考评组人员更新,查询人事系统人员状态"); | 72 | stopWatch.start("考评组人员更新,查询人事系统人员状态"); |
67 | //查询员工 | 73 | //查询员工 |
68 | - LocalDate yesterday = LocalDate.now().minusDays(1); | ||
69 | List<EvalGroupUser> evalGroupUsersForSave = this.queryKpiStaff(yesterday); | 74 | List<EvalGroupUser> evalGroupUsersForSave = this.queryKpiStaff(yesterday); |
70 | stopWatch.stop(); | 75 | stopWatch.stop(); |
71 | if (PublicUtil.isEmpty(evalGroupUsersForSave)) { | 76 | if (PublicUtil.isEmpty(evalGroupUsersForSave)) { |
fw-morax-server/src/main/java/cn/fw/morax/server/task/EvalUserReportTask.java
@@ -96,8 +96,8 @@ public class EvalUserReportTask { | @@ -96,8 +96,8 @@ public class EvalUserReportTask { | ||
96 | TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition); | 96 | TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition); |
97 | try { | 97 | try { |
98 | log.info("定时任务【考评人员报表数据抽取】开始执行"); | 98 | log.info("定时任务【考评人员报表数据抽取】开始执行"); |
99 | - Map<Long, List<EvalGroupRank>> groupKpiGroupMap = queryStaffEffectRank(date); | ||
100 | - for (Map.Entry<Long, List<EvalGroupRank>> entry : groupKpiGroupMap.entrySet()) { | 99 | + Map<Long, List<EvalGroupRank>> groupEvalGroupMap = queryEffectRank(date); |
100 | + for (Map.Entry<Long, List<EvalGroupRank>> entry : groupEvalGroupMap.entrySet()) { | ||
101 | for (EvalGroupRank rank : entry.getValue()) { | 101 | for (EvalGroupRank rank : entry.getValue()) { |
102 | //清除当月数据(当月只有一条数据) | 102 | //清除当月数据(当月只有一条数据) |
103 | cleanRankCurMonthData(rank.getId(), date); | 103 | cleanRankCurMonthData(rank.getId(), date); |
@@ -400,8 +400,13 @@ public class EvalUserReportTask { | @@ -400,8 +400,13 @@ public class EvalUserReportTask { | ||
400 | return rankCodes; | 400 | return rankCodes; |
401 | } | 401 | } |
402 | 402 | ||
403 | - public Map<Long, List<EvalGroupRank>> queryStaffEffectRank(LocalDate date) { | 403 | + public Map<Long, List<EvalGroupRank>> queryEffectRank(LocalDate date) { |
404 | + List<SettingStatusEnum> status = new ArrayList<SettingStatusEnum>(){{ | ||
405 | + add(SettingStatusEnum.EFFECTIVE); | ||
406 | + add(SettingStatusEnum.BE_EFFECTIVE); | ||
407 | + }}; | ||
404 | List<EvalGroupRank> evalGroupRanks = evalGroupRankService.list(Wrappers.<EvalGroupRank>lambdaQuery() | 408 | List<EvalGroupRank> evalGroupRanks = evalGroupRankService.list(Wrappers.<EvalGroupRank>lambdaQuery() |
409 | + .in(EvalGroupRank::getStatus, status) | ||
405 | .ge(EvalGroupRank::getOverTime, date) | 410 | .ge(EvalGroupRank::getOverTime, date) |
406 | .eq(EvalGroupRank::getYn, Boolean.TRUE) | 411 | .eq(EvalGroupRank::getYn, Boolean.TRUE) |
407 | ); | 412 | ); |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/calculator/eval/kpi/EvalKpiBaseCalculator.java
@@ -80,9 +80,12 @@ public abstract class EvalKpiBaseCalculator implements Calculator<EvalGroupUserS | @@ -80,9 +80,12 @@ public abstract class EvalKpiBaseCalculator implements Calculator<EvalGroupUserS | ||
80 | if (! valueOptional.isPresent()) { | 80 | if (! valueOptional.isPresent()) { |
81 | return BigDecimal.ZERO; | 81 | return BigDecimal.ZERO; |
82 | } | 82 | } |
83 | - final BigDecimal originValue = valueOptional.get();//queryIndicatorValue(precondition.getCode(), valueOptional.get()); | 83 | + final BigDecimal originValue = valueOptional.get(); |
84 | BigDecimal indicatorValue = originValue; | 84 | BigDecimal indicatorValue = originValue; |
85 | + EvalUseTargetEnum useTarget = EvalUseTargetEnum.NO; | ||
86 | + | ||
85 | if (!TargetTypeEnum.NO.equals(targetType)) { | 87 | if (!TargetTypeEnum.NO.equals(targetType)) { |
88 | + useTarget = EvalUseTargetEnum.FIRST_TARGET; | ||
86 | BigDecimal targetValue = precondition.getTargetValue(); | 89 | BigDecimal targetValue = precondition.getTargetValue(); |
87 | if (TargetCalcTypeEnum.TARGET_VALUE.equals(targetCalcType) || TargetCalcTypeEnum.STAGE_TARGET.equals(targetCalcType)) { | 90 | if (TargetCalcTypeEnum.TARGET_VALUE.equals(targetCalcType) || TargetCalcTypeEnum.STAGE_TARGET.equals(targetCalcType)) { |
88 | indicatorValue = indicatorValue.divide(targetValue, 4, RoundingMode.HALF_UP); | 91 | indicatorValue = indicatorValue.divide(targetValue, 4, RoundingMode.HALF_UP); |
@@ -98,9 +101,13 @@ public abstract class EvalKpiBaseCalculator implements Calculator<EvalGroupUserS | @@ -98,9 +101,13 @@ public abstract class EvalKpiBaseCalculator implements Calculator<EvalGroupUserS | ||
98 | indicatorValue = userDiffValue.divide(difference, 4, RoundingMode.HALF_UP); | 101 | indicatorValue = userDiffValue.divide(difference, 4, RoundingMode.HALF_UP); |
99 | } | 102 | } |
100 | } | 103 | } |
101 | - | ||
102 | - saveTargetHitLog(obj, precondition.getId(), IndicatorTypeEnum.PRE, originValue, indicatorValue); | ||
103 | } | 104 | } |
105 | + | ||
106 | + EvalGroupIndicatorTargetHitLog log = new EvalGroupIndicatorTargetHitLog(); | ||
107 | + log.setValue(originValue); | ||
108 | + log.setReachValue(indicatorValue); | ||
109 | + log.setUseTarget(useTarget); | ||
110 | + saveTargetHitLog(obj, precondition.getId(), IndicatorTypeEnum.PRE, originValue, log); | ||
104 | coefficient = coefficient(obj, precondition.getId(), indicatorValue); | 111 | coefficient = coefficient(obj, precondition.getId(), indicatorValue); |
105 | } | 112 | } |
106 | return coefficient; | 113 | return coefficient; |
@@ -152,20 +159,30 @@ public abstract class EvalKpiBaseCalculator implements Calculator<EvalGroupUserS | @@ -152,20 +159,30 @@ public abstract class EvalKpiBaseCalculator implements Calculator<EvalGroupUserS | ||
152 | TargetTypeEnum targetType = param.getTargetType(); | 159 | TargetTypeEnum targetType = param.getTargetType(); |
153 | TargetTypeEnum extraTargetType = param.getExtraTargetType(); | 160 | TargetTypeEnum extraTargetType = param.getExtraTargetType(); |
154 | final BigDecimal originValue = valueOptional.get(); | 161 | final BigDecimal originValue = valueOptional.get(); |
155 | - BigDecimal indicatorValue = null; | ||
156 | - BigDecimal extraIndicatorValue = null; | ||
157 | - if (!TargetTypeEnum.NO.equals(targetType)) { | ||
158 | - indicatorValue = calcTarget(param.getTargetCalcType(), originValue, param.getTargetValue()); | 162 | + BigDecimal indicatorValue = originValue; |
163 | + BigDecimal reachValue = BigDecimal.ZERO; | ||
164 | + BigDecimal extraReachValue = BigDecimal.ZERO; | ||
165 | + EvalUseTargetEnum useTarget = EvalUseTargetEnum.NO; | ||
166 | + | ||
167 | + if (PublicUtil.isNotEmpty(targetType) && !TargetTypeEnum.NO.equals(targetType)) { | ||
168 | + reachValue = calcTarget(param.getTargetCalcType(), originValue, param.getTargetValue()); | ||
169 | + useTarget = EvalUseTargetEnum.FIRST_TARGET; | ||
170 | + indicatorValue = reachValue; | ||
159 | } | 171 | } |
160 | if (PublicUtil.isNotEmpty(extraTargetType) && (!TargetTypeEnum.NO.equals(extraTargetType))) { | 172 | if (PublicUtil.isNotEmpty(extraTargetType) && (!TargetTypeEnum.NO.equals(extraTargetType))) { |
161 | - extraIndicatorValue = calcTarget(param.getExtraTargetCalcType(), originValue, param.getExtraTargetValue()); | 173 | + extraReachValue = calcTarget(param.getExtraTargetCalcType(), originValue, param.getExtraTargetValue()); |
162 | //额外计算类型值 原始计算类型值 用大的那个值 | 174 | //额外计算类型值 原始计算类型值 用大的那个值 |
163 | - if (PublicUtil.isEmpty(indicatorValue) || (extraIndicatorValue.compareTo(indicatorValue) > 0)) { | ||
164 | - indicatorValue = extraIndicatorValue; | 175 | + if (PublicUtil.isEmpty(reachValue) || (extraReachValue.compareTo(reachValue) > 0)) { |
176 | + indicatorValue = extraReachValue; | ||
177 | + useTarget = EvalUseTargetEnum.EXTRA_TARGET; | ||
165 | } | 178 | } |
166 | } | 179 | } |
167 | - | ||
168 | - saveTargetHitLog(userShop, param.getId(), IndicatorTypeEnum.EXAMINE, originValue, indicatorValue); | 180 | + EvalGroupIndicatorTargetHitLog log = new EvalGroupIndicatorTargetHitLog(); |
181 | + log.setValue(originValue); | ||
182 | + log.setReachValue(reachValue); | ||
183 | + log.setExtraReachValue(extraReachValue); | ||
184 | + log.setUseTarget(useTarget); | ||
185 | + saveTargetHitLog(userShop, param.getId(), IndicatorTypeEnum.EXAMINE, originValue, log); | ||
169 | 186 | ||
170 | boolean isCap = Boolean.TRUE.equals(param.getCap()); | 187 | boolean isCap = Boolean.TRUE.equals(param.getCap()); |
171 | BigDecimal proportion = param.getProportion(); | 188 | BigDecimal proportion = param.getProportion(); |
@@ -281,6 +298,26 @@ public abstract class EvalKpiBaseCalculator implements Calculator<EvalGroupUserS | @@ -281,6 +298,26 @@ public abstract class EvalKpiBaseCalculator implements Calculator<EvalGroupUserS | ||
281 | /** | 298 | /** |
282 | * 查询具体指标值 | 299 | * 查询具体指标值 |
283 | * | 300 | * |
301 | + * @param indicatorUserValue | ||
302 | + * @return | ||
303 | + */ | ||
304 | + protected Optional<BigDecimal> queryKpiIndicatorValue(IndicatorUserValue indicatorUserValue) { | ||
305 | + if (PublicUtil.isEmpty(indicatorUserValue) || PublicUtil.isEmpty(indicatorUserValue.getIndicatorValue())) { | ||
306 | + return Optional.empty(); | ||
307 | + } | ||
308 | + BigDecimal value = BigDecimal.ZERO; | ||
309 | + try { | ||
310 | + JSONObject jsonObject = JSONObject.parseObject(indicatorUserValue.getIndicatorValue()); | ||
311 | + value = Optional.ofNullable(jsonObject.getBigDecimal(indicatorUserValue.getIndicatorCode())).orElse(BigDecimal.ZERO); | ||
312 | + } catch (Exception e) { | ||
313 | + log.error("[{}]指标值转化失败", indicatorUserValue, e); | ||
314 | + } | ||
315 | + return Optional.of(value); | ||
316 | + } | ||
317 | + | ||
318 | + /** | ||
319 | + * 查询具体指标值 | ||
320 | + * | ||
284 | * @param indicatorCode | 321 | * @param indicatorCode |
285 | * @param originalValue | 322 | * @param originalValue |
286 | * @return | 323 | * @return |
@@ -318,6 +355,25 @@ public abstract class EvalKpiBaseCalculator implements Calculator<EvalGroupUserS | @@ -318,6 +355,25 @@ public abstract class EvalKpiBaseCalculator implements Calculator<EvalGroupUserS | ||
318 | preconditionHitLogService.save(hitLog); | 355 | preconditionHitLogService.save(hitLog); |
319 | } | 356 | } |
320 | 357 | ||
358 | + protected void saveTargetHitLog(EvalGroupUserShop userShop, Long referId, IndicatorTypeEnum targetType, BigDecimal value, EvalGroupIndicatorTargetHitLog log) { | ||
359 | + evalGroupIndicatorTargetHitLogService.remove(Wrappers.<EvalGroupIndicatorTargetHitLog>lambdaQuery() | ||
360 | + .eq(EvalGroupIndicatorTargetHitLog::getPoolId, userShop.getPoolId()) | ||
361 | + .eq(EvalGroupIndicatorTargetHitLog::getScopeType, userShop.getScopeType()) | ||
362 | + .eq(EvalGroupIndicatorTargetHitLog::getTargetType, targetType) | ||
363 | + .eq(EvalGroupIndicatorTargetHitLog::getDataDate, userShop.getDataDate()) | ||
364 | + .eq(EvalGroupIndicatorTargetHitLog::getReferId, referId) | ||
365 | + ); | ||
366 | + log.setPoolId(userShop.getPoolId()); | ||
367 | + log.setScopeType(userShop.getScopeType()); | ||
368 | + log.setReferId(referId); | ||
369 | + log.setTargetType(targetType); | ||
370 | + log.setValue(value); | ||
371 | + log.setDataDate(userShop.getDataDate()); | ||
372 | + log.setGroupId(userShop.getGroupId()); | ||
373 | + log.setYn(Boolean.TRUE); | ||
374 | + evalGroupIndicatorTargetHitLogService.save(log); | ||
375 | + } | ||
376 | + | ||
321 | protected void saveTargetHitLog(EvalGroupUserShop userShop, Long referId, IndicatorTypeEnum targetType, BigDecimal value, BigDecimal reachValue) { | 377 | protected void saveTargetHitLog(EvalGroupUserShop userShop, Long referId, IndicatorTypeEnum targetType, BigDecimal value, BigDecimal reachValue) { |
322 | evalGroupIndicatorTargetHitLogService.remove(Wrappers.<EvalGroupIndicatorTargetHitLog>lambdaQuery() | 378 | evalGroupIndicatorTargetHitLogService.remove(Wrappers.<EvalGroupIndicatorTargetHitLog>lambdaQuery() |
323 | .eq(EvalGroupIndicatorTargetHitLog::getPoolId, userShop.getPoolId()) | 379 | .eq(EvalGroupIndicatorTargetHitLog::getPoolId, userShop.getPoolId()) |
@@ -333,6 +389,7 @@ public abstract class EvalKpiBaseCalculator implements Calculator<EvalGroupUserS | @@ -333,6 +389,7 @@ public abstract class EvalKpiBaseCalculator implements Calculator<EvalGroupUserS | ||
333 | log.setTargetType(targetType); | 389 | log.setTargetType(targetType); |
334 | log.setValue(value); | 390 | log.setValue(value); |
335 | log.setReachValue(reachValue); | 391 | log.setReachValue(reachValue); |
392 | + log.setUseTarget(EvalUseTargetEnum.FIRST_TARGET); | ||
336 | log.setDataDate(userShop.getDataDate()); | 393 | log.setDataDate(userShop.getDataDate()); |
337 | log.setGroupId(userShop.getGroupId()); | 394 | log.setGroupId(userShop.getGroupId()); |
338 | log.setYn(Boolean.TRUE); | 395 | log.setYn(Boolean.TRUE); |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalGroupPoolService.java
@@ -134,6 +134,7 @@ public class EvalGroupPoolService { | @@ -134,6 +134,7 @@ public class EvalGroupPoolService { | ||
134 | if (PublicUtil.isNotEmpty(rankPools)) { | 134 | if (PublicUtil.isNotEmpty(rankPools)) { |
135 | EvalUserPool stagePool = rankPools.get(0); | 135 | EvalUserPool stagePool = rankPools.get(0); |
136 | EvalUserPoolVO evalUserPoolVO = this.poolDetail(stagePool); | 136 | EvalUserPoolVO evalUserPoolVO = this.poolDetail(stagePool); |
137 | + this.setRewardPunish(evalUserPoolVO); | ||
137 | stageVO.setPool(evalUserPoolVO); | 138 | stageVO.setPool(evalUserPoolVO); |
138 | } | 139 | } |
139 | } | 140 | } |
@@ -154,6 +155,12 @@ public class EvalGroupPoolService { | @@ -154,6 +155,12 @@ public class EvalGroupPoolService { | ||
154 | return evalUserPoolVO; | 155 | return evalUserPoolVO; |
155 | } | 156 | } |
156 | 157 | ||
158 | + public void setRewardPunish(EvalUserPoolVO evalUserPoolVO) { | ||
159 | + evalUserPoolVO.setRewardScore(BigDecimal.ZERO); | ||
160 | + evalUserPoolVO.setPunishScore(BigDecimal.ZERO); | ||
161 | + evalUserPoolVO.setOriginScore(evalUserPoolVO.getScore()); | ||
162 | + } | ||
163 | + | ||
157 | public void setIgnore(EvalUserPoolVO pool) { | 164 | public void setIgnore(EvalUserPoolVO pool) { |
158 | EvalGroupUser evalGroupUser = evalGroupUserService.getMonthLastData(pool.getEvalGroupId(), pool.getUserId(), pool.getMonthly()); | 165 | EvalGroupUser evalGroupUser = evalGroupUserService.getMonthLastData(pool.getEvalGroupId(), pool.getUserId(), pool.getMonthly()); |
159 | if (PublicUtil.isEmpty(evalGroupUser)) { | 166 | if (PublicUtil.isEmpty(evalGroupUser)) { |
@@ -539,16 +546,18 @@ public class EvalGroupPoolService { | @@ -539,16 +546,18 @@ public class EvalGroupPoolService { | ||
539 | String code = paramVO.getCode(); | 546 | String code = paramVO.getCode(); |
540 | Long paramId = paramVO.getId(); | 547 | Long paramId = paramVO.getId(); |
541 | //无目标 | 548 | //无目标 |
542 | - if (TargetTypeEnum.NO.equals(paramVO.getTargetType())) { | ||
543 | - BigDecimal indicatorOriginValue = queryUserOriginValue(code, referId, scopeType,dataDate, paramVO.getCodeType()); | ||
544 | - paramVO.setIndicatorValue(indicatorOriginValue); | ||
545 | - continue; | ||
546 | - } | 549 | +// if (TargetTypeEnum.NO.equals(paramVO.getTargetType())) { |
550 | +// BigDecimal indicatorOriginValue = queryUserOriginValue(code, referId, scopeType,dataDate, paramVO.getCodeType()); | ||
551 | +// paramVO.setIndicatorValue(indicatorOriginValue); | ||
552 | +// continue; | ||
553 | +// } | ||
547 | 554 | ||
548 | //有目标 | 555 | //有目标 |
549 | Optional<EvalGroupIndicatorTargetHitLog> hitLogOptional = Optional.ofNullable(paramTargetHitLogMap.get(paramId)); | 556 | Optional<EvalGroupIndicatorTargetHitLog> hitLogOptional = Optional.ofNullable(paramTargetHitLogMap.get(paramId)); |
550 | paramVO.setIndicatorValue(hitLogOptional.map(EvalGroupIndicatorTargetHitLog::getValue).orElse(BigDecimal.ZERO)); | 557 | paramVO.setIndicatorValue(hitLogOptional.map(EvalGroupIndicatorTargetHitLog::getValue).orElse(BigDecimal.ZERO)); |
551 | paramVO.setReachValue(hitLogOptional.map(EvalGroupIndicatorTargetHitLog::getReachValue).orElse(BigDecimal.ZERO)); | 558 | paramVO.setReachValue(hitLogOptional.map(EvalGroupIndicatorTargetHitLog::getReachValue).orElse(BigDecimal.ZERO)); |
559 | + paramVO.setExtraReachValue(hitLogOptional.map(EvalGroupIndicatorTargetHitLog::getReachValue).orElse(BigDecimal.ZERO)); | ||
560 | + paramVO.setUseTarget(hitLogOptional.map(EvalGroupIndicatorTargetHitLog::getUseTarget).orElse(EvalUseTargetEnum.NO)); | ||
552 | } | 561 | } |
553 | 562 | ||
554 | Map<ParamTypeEnum, List<EvalGroupIndicatorParamVO>> indicatorParamMap = paramVos.stream() | 563 | Map<ParamTypeEnum, List<EvalGroupIndicatorParamVO>> indicatorParamMap = paramVos.stream() |
@@ -560,23 +569,21 @@ public class EvalGroupPoolService { | @@ -560,23 +569,21 @@ public class EvalGroupPoolService { | ||
560 | EvalScopeEnum scopeType, | 569 | EvalScopeEnum scopeType, |
561 | LocalDate dataDate, | 570 | LocalDate dataDate, |
562 | List<EvalGroupIndicatorParamVO> paramVos) { | 571 | List<EvalGroupIndicatorParamVO> paramVos) { |
563 | - List<Long> hasTargetParamIds = paramVos.stream() | ||
564 | - .filter(param -> (! TargetTypeEnum.NO.equals(param.getTargetType()))) | ||
565 | - .map(EvalGroupIndicatorParamVO::getId).collect(Collectors.toList()); | 572 | +// List<Long> hasTargetParamIds = paramVos.stream() |
573 | +// .filter(param -> (! TargetTypeEnum.NO.equals(param.getTargetType()))) | ||
574 | +// .map(EvalGroupIndicatorParamVO::getId).collect(Collectors.toList()); | ||
566 | 575 | ||
567 | Map<Long, EvalGroupIndicatorTargetHitLog> paramTargetHitLogMap = new HashMap<>(); | 576 | Map<Long, EvalGroupIndicatorTargetHitLog> paramTargetHitLogMap = new HashMap<>(); |
568 | - if (PublicUtil.isNotEmpty(hasTargetParamIds)) { | ||
569 | - List<EvalGroupIndicatorTargetHitLog> targetHitLogs = evalGroupIndicatorTargetHitLogService.list(Wrappers.<EvalGroupIndicatorTargetHitLog>lambdaQuery() | ||
570 | - .in(EvalGroupIndicatorTargetHitLog::getReferId, hasTargetParamIds) | ||
571 | - .in(EvalGroupIndicatorTargetHitLog::getTargetType, IndicatorTypeEnum.EXAMINE) | ||
572 | - .eq(EvalGroupIndicatorTargetHitLog::getDataDate, dataDate) | ||
573 | - .eq(EvalGroupIndicatorTargetHitLog::getPoolId, poolId) | ||
574 | - .eq(EvalGroupIndicatorTargetHitLog::getScopeType, scopeType) | ||
575 | - .eq(EvalGroupIndicatorTargetHitLog::getYn, Boolean.TRUE) | ||
576 | - ); | ||
577 | - paramTargetHitLogMap = targetHitLogs.stream() | ||
578 | - .collect(Collectors.toMap(EvalGroupIndicatorTargetHitLog::getReferId, Function.identity(), (v1, v2) -> v1)); | ||
579 | - } | 577 | + List<EvalGroupIndicatorTargetHitLog> targetHitLogs = evalGroupIndicatorTargetHitLogService.list(Wrappers.<EvalGroupIndicatorTargetHitLog>lambdaQuery() |
578 | +// .in(EvalGroupIndicatorTargetHitLog::getReferId, hasTargetParamIds) | ||
579 | + .in(EvalGroupIndicatorTargetHitLog::getTargetType, IndicatorTypeEnum.EXAMINE) | ||
580 | + .eq(EvalGroupIndicatorTargetHitLog::getDataDate, dataDate) | ||
581 | + .eq(EvalGroupIndicatorTargetHitLog::getPoolId, poolId) | ||
582 | + .eq(EvalGroupIndicatorTargetHitLog::getScopeType, scopeType) | ||
583 | + .eq(EvalGroupIndicatorTargetHitLog::getYn, Boolean.TRUE) | ||
584 | + ); | ||
585 | + paramTargetHitLogMap = targetHitLogs.stream() | ||
586 | + .collect(Collectors.toMap(EvalGroupIndicatorTargetHitLog::getReferId, Function.identity(), (v1, v2) -> v1)); | ||
580 | return paramTargetHitLogMap; | 587 | return paramTargetHitLogMap; |
581 | } | 588 | } |
582 | 589 |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalRewardService.java
@@ -160,17 +160,6 @@ public class EvalRewardService { | @@ -160,17 +160,6 @@ public class EvalRewardService { | ||
160 | EvalGroupRankStage evalGroupRankStage = evalGroupRankStageService.getById(evalGroup.getEvalGroupRankStageId()); | 160 | EvalGroupRankStage evalGroupRankStage = evalGroupRankStageService.getById(evalGroup.getEvalGroupRankStageId()); |
161 | BV.notNull(evalGroupRankStage, "考评阶段不存在,终止计算!"); | 161 | BV.notNull(evalGroupRankStage, "考评阶段不存在,终止计算!"); |
162 | 162 | ||
163 | - | ||
164 | -// List<EvalShopPool> pools = evalShopPoolService.list(Wrappers.<EvalShopPool>lambdaQuery() | ||
165 | -// .eq(EvalShopPool::getEvalGroupId, evalGroupId) | ||
166 | -// .eq(EvalShopPool::getYn, Boolean.TRUE) | ||
167 | -// ); | ||
168 | -// if (PublicUtil.isEmpty(pools)) { | ||
169 | -// log.error("考评池不存在,终止计算!"); | ||
170 | -// return; | ||
171 | -// } | ||
172 | -// BV.isNotEmpty(pools, "考评池不存在,终止计算!"); | ||
173 | - | ||
174 | List<EvalGroupRewardDim> shopRewardDims = evalGroupRewardDimService.list(Wrappers.<EvalGroupRewardDim>lambdaQuery() | 163 | List<EvalGroupRewardDim> shopRewardDims = evalGroupRewardDimService.list(Wrappers.<EvalGroupRewardDim>lambdaQuery() |
175 | .eq(EvalGroupRewardDim::getEvalGroupId, evalGroup.getId()) | 164 | .eq(EvalGroupRewardDim::getEvalGroupId, evalGroup.getId()) |
176 | .eq(EvalGroupRewardDim::getType, EvalScopeEnum.SHOP) | 165 | .eq(EvalGroupRewardDim::getType, EvalScopeEnum.SHOP) |
@@ -201,6 +190,7 @@ public class EvalRewardService { | @@ -201,6 +190,7 @@ public class EvalRewardService { | ||
201 | for (EvalGroupRewardDim rewardDim : shopRewardDims) { | 190 | for (EvalGroupRewardDim rewardDim : shopRewardDims) { |
202 | final String roleCode = rewardDim.getDistRoleCode(); | 191 | final String roleCode = rewardDim.getDistRoleCode(); |
203 | List<EvalShopPool> pools = evalShopPoolService.list(Wrappers.<EvalShopPool>lambdaQuery() | 192 | List<EvalShopPool> pools = evalShopPoolService.list(Wrappers.<EvalShopPool>lambdaQuery() |
193 | + .ne(EvalShopPool::getReward, BigDecimal.ZERO) | ||
204 | .eq(EvalShopPool::getEvalGroupId, evalGroup.getId()) | 194 | .eq(EvalShopPool::getEvalGroupId, evalGroup.getId()) |
205 | .in(EvalShopPool::getShopId, rewardDim.getShopIds()) | 195 | .in(EvalShopPool::getShopId, rewardDim.getShopIds()) |
206 | .eq(EvalShopPool::getYn, Boolean.TRUE) | 196 | .eq(EvalShopPool::getYn, Boolean.TRUE) |
@@ -209,9 +199,7 @@ public class EvalRewardService { | @@ -209,9 +199,7 @@ public class EvalRewardService { | ||
209 | log.error("分配奖惩待办,未找到考评池:{}", JSON.toJSONString(rewardDim)); | 199 | log.error("分配奖惩待办,未找到考评池:{}", JSON.toJSONString(rewardDim)); |
210 | continue; | 200 | continue; |
211 | } | 201 | } |
212 | - List<Long> distShopIds = pools.stream().filter(pool -> pool.getReward().compareTo(BigDecimal.ZERO) == 0) | ||
213 | - .map(EvalShopPool::getShopId).collect(Collectors.toList()); | ||
214 | - | 202 | + List<Long> distShopIds = pools.stream().map(EvalShopPool::getShopId).collect(Collectors.toList()); |
215 | List<RpcUserRoleInfoDTO> users = this.getUserEnableRoleInfos(roleCode, distShopIds); | 203 | List<RpcUserRoleInfoDTO> users = this.getUserEnableRoleInfos(roleCode, distShopIds); |
216 | for (RpcUserRoleInfoDTO user : users) { | 204 | for (RpcUserRoleInfoDTO user : users) { |
217 | List<Long> manageShopIds = user.getRangeList().stream() | 205 | List<Long> manageShopIds = user.getRangeList().stream() |
@@ -260,25 +248,23 @@ public class EvalRewardService { | @@ -260,25 +248,23 @@ public class EvalRewardService { | ||
260 | planItemReq.setExtraData(extraData); | 248 | planItemReq.setExtraData(extraData); |
261 | itemList.add(planItemReq); | 249 | itemList.add(planItemReq); |
262 | } | 250 | } |
263 | - | ||
264 | - } | ||
265 | - | ||
266 | - | ||
267 | - //推送待办 | ||
268 | - BacklogBatchPlanReqDTO batchPlanReq = new BacklogBatchPlanReqDTO(todoVal.getDistEvalReward(), itemList); | ||
269 | - List<FailBacklogItem> failItems = Optional.ofNullable(todoRpcService.batchPush(batchPlanReq)).orElse(new ArrayList<>()); | ||
270 | - if (PublicUtil.isNotEmpty(failItems)) { | ||
271 | - log.error("发送分配考评奖励待办失败,失败人员信息:{}", JSON.toJSONString(failItems)); | ||
272 | } | 251 | } |
252 | + if (PublicUtil.isNotEmpty(itemList)) { | ||
253 | + //推送待办 | ||
254 | + BacklogBatchPlanReqDTO batchPlanReq = new BacklogBatchPlanReqDTO(todoVal.getDistEvalReward(), itemList); | ||
255 | + List<FailBacklogItem> failItems = Optional.ofNullable(todoRpcService.batchPush(batchPlanReq)).orElse(new ArrayList<>()); | ||
256 | + if (PublicUtil.isNotEmpty(failItems)) { | ||
257 | + log.error("发送分配考评奖励待办失败,失败人员信息:{}", JSON.toJSONString(failItems)); | ||
258 | + } | ||
273 | 259 | ||
274 | - if (PublicUtil.isEmpty(failItems) || itemList.size() > failItems.size()) { | ||
275 | - if (PublicUtil.isNotEmpty(distPoolIds)) { | ||
276 | - evalShopPoolService.update(Wrappers.<EvalShopPool>lambdaUpdate() | ||
277 | - .in(EvalShopPool::getId, distPoolIds) | ||
278 | - .set(EvalShopPool::getStatus, EvalShopPoolStatusEnum.WAIT_DIST_REWARD) | ||
279 | - .set(EvalShopPool::getYn, Boolean.FALSE) | ||
280 | - .set(EvalShopPool::getUpdateTime, new Date()) | ||
281 | - ); | 260 | + if (PublicUtil.isEmpty(failItems) || itemList.size() > failItems.size()) { |
261 | + if (PublicUtil.isNotEmpty(distPoolIds)) { | ||
262 | + evalShopPoolService.update(Wrappers.<EvalShopPool>lambdaUpdate() | ||
263 | + .in(EvalShopPool::getId, distPoolIds) | ||
264 | + .set(EvalShopPool::getStatus, EvalShopPoolStatusEnum.WAIT_DIST_REWARD) | ||
265 | + .set(EvalShopPool::getUpdateTime, new Date()) | ||
266 | + ); | ||
267 | + } | ||
282 | } | 268 | } |
283 | } | 269 | } |
284 | } | 270 | } |