Commit f5e25705f5e36af762c2e05a8be3088ba896d6f3

Authored by 姜超
1 parent 84947a7e

feature(*): 修改绩效得分率计算

修改绩效得分率计算
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 //计算扣减得分率
... ...