Commit f5e25705f5e36af762c2e05a8be3088ba896d6f3
1 parent
84947a7e
feature(*): 修改绩效得分率计算
修改绩效得分率计算
Showing
1 changed file
with
6 additions
and
1 deletions
fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiCalculateService.java
... | ... | @@ -11,6 +11,7 @@ import cn.fw.morax.domain.bo.kpi.KpiIndicatorBO; |
11 | 11 | import cn.fw.morax.domain.db.UserRoleAuthLog; |
12 | 12 | import cn.fw.morax.domain.db.kpi.*; |
13 | 13 | import cn.fw.morax.domain.enums.*; |
14 | +import cn.fw.morax.domain.vo.kpi.KpiPoolIndicatorValueVO; | |
14 | 15 | import cn.fw.morax.service.biz.CommonService; |
15 | 16 | import cn.fw.morax.service.biz.calculator.kpi.KpiAbsBaseCalculator; |
16 | 17 | import cn.fw.morax.service.data.CombineIndicatorParamService; |
... | ... | @@ -316,7 +317,11 @@ public class KpiCalculateService { |
316 | 317 | for (KpiPool pool : kpiPools) { |
317 | 318 | BigDecimal kpiScore = Optional.ofNullable(pool.getKpiScore()).orElse(BigDecimal.ZERO); |
318 | 319 | BigDecimal kpiScoreRatio = BigDecimal.ZERO; |
319 | - if (kpiGroupScoreMap.containsKey(pool.getKpiGroupId())) { | |
320 | + List<KpiPoolIndicatorValueVO> indicatorValueVos = kpiPoolIndicatorValueService.getStaffIndicatorValue(pool.getUserId(), pool.getKpiGroupId(), pool.getDataDate()); | |
321 | + if (PublicUtil.isNotEmpty(indicatorValueVos)) { | |
322 | + BigDecimal totalScore = indicatorValueVos.stream().map(KpiPoolIndicatorValueVO::getBaseScore).reduce(BigDecimal.ZERO, BigDecimal::add); | |
323 | + kpiScoreRatio = kpiScore.divide(totalScore, 4, RoundingMode.HALF_UP); | |
324 | + } else if (kpiGroupScoreMap.containsKey(pool.getKpiGroupId())) { | |
320 | 325 | kpiScoreRatio = kpiScore.divide(kpiGroupScoreMap.get(pool.getKpiGroupId()), 4, RoundingMode.HALF_UP); |
321 | 326 | } |
322 | 327 | //计算扣减得分率 | ... | ... |