diff --git a/fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/salary/SalaryGroupIndicatorDetailVO.java b/fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/salary/SalaryGroupIndicatorDetailVO.java index 3ae3c01..bc1a215 100644 --- a/fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/salary/SalaryGroupIndicatorDetailVO.java +++ b/fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/salary/SalaryGroupIndicatorDetailVO.java @@ -1,5 +1,6 @@ package cn.fw.morax.domain.vo.salary; +import cn.fw.morax.domain.enums.DataTypeEnum; import cn.fw.morax.domain.enums.SalaryCalMethodEnum; import cn.fw.morax.domain.enums.StarLevelEnum; import cn.fw.morax.domain.vo.kpi.KpiGroupIndicatorLaddersVO; @@ -69,6 +70,11 @@ public class SalaryGroupIndicatorDetailVO { public String preconditionAlias; /** + * 数据类型;1:数量 2:百分比 3:金额 + */ + private DataTypeEnum laddersType; + + /** * 薪酬阶梯 */ private List settings; 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 5f9d7ac..0963145 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 @@ -494,7 +494,12 @@ public class KpiGroupIndicatorBizService { if (! staff.getInclusion()) { continue; } - if (PublicUtil.isNotEmpty(lastIndicatorValue) && (lastIndicatorValue.compareTo(staff.getOriginValue()) != 0)) { + if (PublicUtil.isEmpty(lastIndicatorValue) || PublicUtil.isEmpty(staff.getOriginValue()) ) { + staff.setIndicatorRank(rank); + lastIndicatorValue = staff.getOriginValue(); + continue; + } + if (lastIndicatorValue.compareTo(staff.getOriginValue()) != 0) { rank++; } staff.setIndicatorRank(rank); diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiPoolBizService.java b/fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiPoolBizService.java index d0b3b41..ca3197c 100644 --- a/fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiPoolBizService.java +++ b/fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiPoolBizService.java @@ -518,7 +518,7 @@ public class KpiPoolBizService { .eq(KpiPool::getUserId, userId) .eq(KpiPool::getInclusion, Boolean.TRUE) .eq(KpiPool::getYn, Boolean.TRUE) - .orderByAsc(KpiPool::getMonthly) + .orderByDesc(KpiPool::getMonthly) ); if (PublicUtil.isNotEmpty(kpiPools)) { List kpis = PublicUtil.copyList(kpiPools, KpiPoolDetailVO.class); diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/biz/salary/SalaryPoolBizService.java b/fw-morax-service/src/main/java/cn/fw/morax/service/biz/salary/SalaryPoolBizService.java index 4b49038..3c93a87 100644 --- a/fw-morax-service/src/main/java/cn/fw/morax/service/biz/salary/SalaryPoolBizService.java +++ b/fw-morax-service/src/main/java/cn/fw/morax/service/biz/salary/SalaryPoolBizService.java @@ -533,6 +533,7 @@ public class SalaryPoolBizService { SalaryGroupIndicatorDetailVO detailVO = new SalaryGroupIndicatorDetailVO(); SalaryGroupProject salaryGroupProject = salaryGroupProjectService.getById(salaryGroupProjectId); BV.notNull(salaryGroupProject, "薪酬项目不存在"); + detailVO.setLaddersType(salaryGroupProject.getLaddersType()); CountDownLatch countDownLatch = new CountDownLatch(3); @@ -621,12 +622,16 @@ public class SalaryPoolBizService { SalaryGroupProjectHitLog salaryProjectHitLog = salaryProjectHitLogs.stream().findFirst().get(); Long hitSettingId = salaryProjectHitLog.getSalaryGroupProjectSettinId(); + Boolean ratio = PublicUtil.isNotEmpty(detailVO.getLaddersType()) && DataTypeEnum.RATIO.equals(detailVO.getLaddersType()); detailVO.setSettings(settings.stream().map(setting -> { SalaryGroupProjectSettinVO settingVO = PublicUtil.copy(setting, SalaryGroupProjectSettinVO.class); settingVO.setHit((hitSettingId.equals(settingVO.getId()) ? Boolean.TRUE : Boolean.FALSE)); if (hitSettingId.equals(settingVO.getId())) { settingVO.setHitCommissionValue(salaryProjectHitLog.getHitCommissionValue()); } + if (ratio) { + settingVO.processPercent(); + } return settingVO; }).collect(Collectors.toList())); detailVO.setSalaryValue(salaryProjectHitLog.getSalaryValue());