diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiGroupIndicatorBizService.java b/fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiGroupIndicatorBizService.java index 8cee5d2..3a92748 100644 --- a/fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiGroupIndicatorBizService.java +++ b/fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiGroupIndicatorBizService.java @@ -478,16 +478,20 @@ public class KpiGroupIndicatorBizService { * @return */ public void calcRank(List staffs) { - int rank = 1; - BigDecimal lastIndicatorValue = null; + Optional lastIndicatorValueOp = staffs.stream() + .filter(staff -> Boolean.TRUE.equals(staff.getInclusion())) + .findFirst().map(KpiIndicatorRankStaffVO::getOriginValue); + if (Boolean.FALSE.equals(lastIndicatorValueOp.isPresent())) { + return; + } + BigDecimal lastIndicatorValue = lastIndicatorValueOp.get(); for (KpiIndicatorRankStaffVO staff : staffs) { if (! staff.getInclusion()) { continue; } - if (PublicUtil.isEmpty(lastIndicatorValue) || PublicUtil.isEmpty(staff.getOriginValue()) ) { - staff.setIndicatorRank(rank); - lastIndicatorValue = staff.getOriginValue(); + //原始值为空,无排名 + if (PublicUtil.isEmpty(staff.getOriginValue())) { continue; } if (lastIndicatorValue.compareTo(staff.getOriginValue()) != 0) {