Commit 4a3bdac5d40800155468e743658af7d6bc4e50eb

Authored by 姜超
1 parent 69622222

feature(*): 考评报表修改

考评报表修改
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/salary/ReportSalaryDim.java
... ... @@ -93,7 +93,7 @@ public class ReportSalaryDim extends BaseEntity<ReportSalaryDim, Long> {
93 93 private StarLevelEnum starLevel;
94 94  
95 95 /**
96   - * 总薪酬 = actRevenueTotalMoney(总收入合计) - actDeductTotalMoney(总扣除合计)
  96 + * 总薪酬
97 97 */
98 98 private BigDecimal totalReward;
99 99  
... ... @@ -102,64 +102,4 @@ public class ReportSalaryDim extends BaseEntity<ReportSalaryDim, Long> {
102 102 */
103 103 private BigDecimal kpiScoreRatio;
104 104  
105   - /**
106   - * 总收入合计
107   - */
108   - private BigDecimal actRevenueTotalMoney;
109   -
110   - /**
111   - * 总绩效提成
112   - */
113   - private BigDecimal actKpiMoney;
114   -
115   - /**
116   - * 总内部奖励
117   - */
118   - private BigDecimal actAwardMoney;
119   -
120   - /**
121   - * 总福利补贴
122   - */
123   - private BigDecimal actSubsidyMoney;
124   -
125   - /**
126   - * 总试用期工资
127   - */
128   - private BigDecimal actProbationMoney;
129   -
130   - /**
131   - * 总岗位最低补偿
132   - */
133   - private BigDecimal actJobCompensateMoney;
134   -
135   - /**
136   - * 总考评奖励
137   - */
138   - private BigDecimal actEvalAwardMoney;
139   -
140   - /**
141   - * 总扣除合计
142   - */
143   - private BigDecimal actDeductTotalMoney;
144   -
145   - /**
146   - * 总内部罚款扣除
147   - */
148   - private BigDecimal actPenaltyMoney;
149   -
150   - /**
151   - * 总社保扣除
152   - */
153   - private BigDecimal actNecessaryMoney;
154   -
155   - /**
156   - * 总个税扣除
157   - */
158   - private BigDecimal actPersonTaxMoney;
159   -
160   - /**
161   - * 总公积金扣除
162   - */
163   - private BigDecimal actAccumulationFundMoney;
164   -
165 105 }
... ...
fw-morax-domain/src/main/java/cn/fw/morax/domain/enums/EvalUseTargetEnum.java
... ... @@ -16,7 +16,7 @@ public enum EvalUseTargetEnum implements IEnum<Integer> {
16 16 */
17 17 NO(1, "无目标"),
18 18 FIRST_TARGET(2, "第一目标"),
19   - EXTRA_TARGET(3, "额外目标值"),
  19 + EXTRA_TARGET(2, "额外目标值"),
20 20 ;
21 21  
22 22 /**
... ...
fw-morax-server/src/main/java/cn/fw/morax/server/task/SalaryReportTask.java
... ... @@ -6,7 +6,7 @@ import cn.fw.morax.common.constant.TimeTaskConstant;
6 6 import cn.fw.morax.common.utils.DateUtil;
7 7 import cn.fw.morax.common.utils.PublicUtil;
8 8 import cn.fw.morax.domain.bo.salary.SalaryGroupProjectBO;
9   -import cn.fw.morax.domain.db.kpi.IndicatorUserValue;
  9 +import cn.fw.morax.domain.db.kpi.*;
10 10 import cn.fw.morax.domain.db.salary.*;
11 11 import cn.fw.morax.domain.enums.*;
12 12 import cn.fw.morax.domain.vo.salary.SalaryGroupProjectParamVO;
... ... @@ -49,8 +49,6 @@ import java.util.*;
49 49 import java.util.concurrent.atomic.AtomicInteger;
50 50 import java.util.concurrent.locks.Lock;
51 51 import java.util.function.Function;
52   -import java.util.function.Predicate;
53   -import java.util.function.ToDoubleFunction;
54 52 import java.util.stream.Collectors;
55 53  
56 54 /**
... ... @@ -88,7 +86,6 @@ public class SalaryReportTask {
88 86 private final CommonService commonService;
89 87 private final EhrRpcService ehrRpcService;
90 88 private final OopRpcService oopRpcService;
91   - private final SalaryPoolDetailService salaryPoolDetailService;
92 89  
93 90  
94 91 @Value("${special-indicator-code.car-series}")
... ... @@ -226,12 +223,10 @@ public class SalaryReportTask {
226 223 List<SalaryPool> pools,
227 224 Long reportSalaryId) {
228 225 MultiKeyMap<Long, BigDecimal> userSalaryMap = this.getUserIndicatorHitMap(salaryGroupProjects, date, pools);
229   - Map<Long, List<SalaryPoolDetail>> salaryPoolDetailMap = this.getSalaryPoolDetailMap(date, pools);
230 226 List<ReportSalaryDimValue> reportSalaryValues = new ArrayList<>();
231 227 //人的维度为基础,计算各个指标信息对应的数据
232 228 for (SalaryPool pool : pools) {
233   - List<SalaryPoolDetail> salaryPoolIdDetails = Optional.ofNullable(salaryPoolDetailMap.get(pool.getId())).orElse(Collections.emptyList());
234   - ReportSalaryDim reportSalaryDim = saveStaffDim(pool, date, reportSalaryId,salaryPoolIdDetails);
  229 + ReportSalaryDim reportSalaryDim = saveStaffDim(pool, date, reportSalaryId);
235 230 userDims.add(reportSalaryDim);
236 231 final Long userId = pool.getUserId();
237 232 final Long reportSalaryDimId = reportSalaryDim.getId();
... ... @@ -291,7 +286,9 @@ public class SalaryReportTask {
291 286 if (PublicUtil.isEmpty(shopDimReportIds)) {
292 287 continue;
293 288 }
294   - final Long shopReportSalaryDimId = this.saveShopDimDB(shopId, shopMap, date, reportSalaryId, userDims, shopDimReportIds);
  289 + BigDecimal averageSalary = calcAverageTotalSalary(userDims, shopDimReportIds);
  290 + BigDecimal kpiScoreRatio = calcAverageKpiScoreRatio(userDims, shopDimReportIds);
  291 + final Long shopReportSalaryDimId = this.saveShopDimDB(shopId, shopMap, date, reportSalaryId, averageSalary, kpiScoreRatio);
295 292  
296 293 for (SalaryGroupProjectBO salaryGroupProject : salaryGroupProjects) {
297 294 BigDecimal value = calcAverageValue(userSalaryValues, shopDimReportIds, salaryGroupProject.getId().toString());
... ... @@ -344,9 +341,9 @@ public class SalaryReportTask {
344 341 if (PublicUtil.isEmpty(managerStaffDimReportIds)) {
345 342 continue;
346 343 }
347   - //BigDecimal kpiScoreRatio = calcAverageKpiScoreRatio(userDims, managerStaffDimReportIds);
348   - //BigDecimal averageSalary = calcAverageTotalSalary(userDims, managerStaffDimReportIds);
349   - final Long reportSalaryDimId = this.saveManagerDimDB(manager, date, reportSalaryId, managerMap,manageStaffIds,managerStaffDimReportIds,userDims);
  344 + BigDecimal kpiScoreRatio = calcAverageKpiScoreRatio(userDims, managerStaffDimReportIds);
  345 + BigDecimal averageSalary = calcAverageTotalSalary(userDims, managerStaffDimReportIds);
  346 + final Long reportSalaryDimId = this.saveManagerDimDB(manager, date, reportSalaryId, managerMap, averageSalary, kpiScoreRatio, manageStaffIds);
350 347 for (SalaryGroupProjectBO salaryGroupProject : salaryGroupProjects) {
351 348 BigDecimal value = calcAverageValue(userSalaryValues, managerStaffDimReportIds, salaryGroupProject.getId().toString());
352 349 childReportSalaryDimValues.add(this.convertProjectValueDB(salaryGroupProject, value));
... ... @@ -374,44 +371,6 @@ public class SalaryReportTask {
374 371 return staffInfos.stream().collect(Collectors.toMap(StaffBaseInfoDTO::getId, Function.identity(), (v1, v2) -> v1));
375 372 }
376 373  
377   - /**
378   - * 抽象处理平均值计算
379   - * @param data
380   - * @param predicate
381   - * @param field
382   - * @return
383   - */
384   - private <T> BigDecimal calcAverage(final Collection<T> data,Predicate<T> predicate, final ToDoubleFunction<T> field) {
385   - if (CollectionUtils.isEmpty(data)) {
386   - return BigDecimal.ZERO;
387   - }
388   - Double averageRatioDouble = data.stream()
389   - .filter(predicate)
390   - .mapToDouble(field)
391   - .average()
392   - .orElse(0);
393   - return BigDecimal.valueOf(averageRatioDouble);
394   - }
395   -
396   - /**
397   - * 抽象处理平均值计算
398   - * @param data
399   - * @param field
400   - * @return
401   - * @param <T>
402   - */
403   - private <T> BigDecimal calcAverage(final Collection<T> data, final ToDoubleFunction<T> field) {
404   - if (CollectionUtils.isEmpty(data)) {
405   - return BigDecimal.ZERO;
406   - }
407   - Double averageRatioDouble = data.stream()
408   - .mapToDouble(field)
409   - .average()
410   - .orElse(0);
411   - return BigDecimal.valueOf(averageRatioDouble);
412   - }
413   -
414   -
415 374 public BigDecimal calcAverageTotalSalary(List<ReportSalaryDim> dims, Set<Long> ReportDimIds) {
416 375 Double averageRatioDouble = dims.stream()
417 376 .filter(user -> ReportDimIds.contains(user.getId()))
... ... @@ -439,12 +398,8 @@ public class SalaryReportTask {
439 398 return new BigDecimal(averageRatioDouble.toString());
440 399 }
441 400  
442   - public Long saveShopDimDB(Long shopId,
443   - Map<Long, String> shopMap,
444   - LocalDate date,
445   - Long reportSalaryId,
446   - List<ReportSalaryDim> userDims,
447   - Set<Long> shopDimReportIds) {
  401 + public Long saveShopDimDB(Long shopId, Map<Long, String> shopMap,
  402 + LocalDate date, Long reportSalaryId, BigDecimal averageSalary, BigDecimal kpiScoreRatio) {
448 403 ReportSalaryDim reportSalaryDim = new ReportSalaryDim();
449 404 reportSalaryDim.setDimension(ReportDimensionEnum.SHOP);
450 405 reportSalaryDim.setReferId(shopId);
... ... @@ -452,118 +407,24 @@ public class SalaryReportTask {
452 407 reportSalaryDim.setShopName(shopMap.get(shopId));
453 408 reportSalaryDim.setDataDate(date);
454 409 reportSalaryDim.setReportSalaryId(reportSalaryId);
455   - //计算平均值薪酬的额外项
456   - extCalcAverage(userDims, shopDimReportIds, reportSalaryDim);
  410 + reportSalaryDim.setTotalReward(averageSalary);
  411 + reportSalaryDim.setKpiScoreRatio(kpiScoreRatio);
457 412 reportSalaryDimService.save(reportSalaryDim);
458 413 return reportSalaryDim.getId();
459 414 }
460   -
461   - /**
462   - * 计算平均值薪酬的额外项
463   - * @param userDims
464   - * @param shopDimReportIds
465   - * @param reportSalaryDim
466   - */
467   - private void extCalcAverage(List<ReportSalaryDim> userDims, Set<Long> shopDimReportIds, ReportSalaryDim reportSalaryDim) {
468   - List<ReportSalaryDim> filterUserDims = userDims.stream().filter(e -> shopDimReportIds.contains(e.getId())).collect(Collectors.toList());
469   - //绩效得分率(N)
470   - reportSalaryDim.setKpiScoreRatio(calcAverage(filterUserDims, e -> Optional.ofNullable(e.getKpiScoreRatio()).orElse(BigDecimal.ZERO).doubleValue()));
471   - //收入-平均值
472   - reportSalaryDim.setActKpiMoney(calcAverage(filterUserDims, e -> Optional.ofNullable(e.getActKpiMoney()).orElse(BigDecimal.ZERO).doubleValue()));
473   - reportSalaryDim.setActAwardMoney(calcAverage(filterUserDims, e -> Optional.ofNullable(e.getActAwardMoney()).orElse(BigDecimal.ZERO).doubleValue()));
474   - reportSalaryDim.setActSubsidyMoney(calcAverage(filterUserDims, e -> Optional.ofNullable(e.getActSubsidyMoney()).orElse(BigDecimal.ZERO).doubleValue()));
475   - reportSalaryDim.setActProbationMoney(calcAverage(filterUserDims, e -> Optional.ofNullable(e.getActProbationMoney()).orElse(BigDecimal.ZERO).doubleValue()));
476   - reportSalaryDim.setActJobCompensateMoney(calcAverage(filterUserDims, e -> Optional.ofNullable(e.getActJobCompensateMoney()).orElse(BigDecimal.ZERO).doubleValue()));
477   - reportSalaryDim.setActEvalAwardMoney(calcAverage(filterUserDims, e -> Optional.ofNullable(e.getActEvalAwardMoney()).orElse(BigDecimal.ZERO).doubleValue()));
478   - //总收入合计平均值
479   - reportSalaryDim.setActRevenueTotalMoney(calcAverage(filterUserDims, e -> Optional.ofNullable(e.getActRevenueTotalMoney()).orElse(BigDecimal.ZERO).doubleValue()));
480   - //reportSalaryDim.setActRevenueTotalMoney(
481   - // reportSalaryDim.getActKpiMoney()
482   - // .add(reportSalaryDim.getActAwardMoney())
483   - // .add(reportSalaryDim.getActSubsidyMoney())
484   - // .add(reportSalaryDim.getActProbationMoney())
485   - // .add(reportSalaryDim.getActJobCompensateMonry())
486   - // .add(reportSalaryDim.getActEvalAwardMoney())
487   - //);
488   - //扣除-平均值
489   - reportSalaryDim.setActPenaltyMoney(calcAverage(filterUserDims, e -> Optional.ofNullable(e.getActPenaltyMoney()).orElse(BigDecimal.ZERO).doubleValue()));
490   - reportSalaryDim.setActNecessaryMoney(calcAverage(filterUserDims, e -> Optional.ofNullable(e.getActNecessaryMoney()).orElse(BigDecimal.ZERO).doubleValue()));
491   - reportSalaryDim.setActPersonTaxMoney(calcAverage(filterUserDims, e -> Optional.ofNullable(e.getActPersonTaxMoney()).orElse(BigDecimal.ZERO).doubleValue()));
492   - reportSalaryDim.setActAccumulationFundMoney(calcAverage(filterUserDims, e -> Optional.ofNullable(e.getActAccumulationFundMoney()).orElse(BigDecimal.ZERO).doubleValue()));
493   - //总扣除合计平均值
494   - reportSalaryDim.setActDeductTotalMoney(calcAverage(filterUserDims, e -> Optional.ofNullable(e.getActDeductTotalMoney()).orElse(BigDecimal.ZERO).doubleValue()));
495   - //reportSalaryDim.setActDeductTotalMoney(
496   - // reportSalaryDim.getActPenaltyMoney()
497   - // .add(reportSalaryDim.getActNecessaryMoney())
498   - // .add(reportSalaryDim.getActPersonTaxMoney())
499   - // .add(reportSalaryDim.getActAccumulationFundMoney())
500   - //);
501   - //总薪酬平均值 = 总收入合计 - 总扣除合计 or 直接取平均值
502   - reportSalaryDim.setTotalReward(calcAverage(filterUserDims, e -> Optional.ofNullable(e.getTotalReward()).orElse(BigDecimal.ZERO).doubleValue()));
503   - //reportSalaryDim.setTotalReward(
504   - // reportSalaryDim.getActRevenueTotalMoney()
505   - // .subtract(reportSalaryDim.getActDeductTotalMoney()));
506   - }
507   -
508   - /**
509   - * 计算人员的
510   - * 增加 薪资类型相关项目处理 ++
511   - * @param salaryPoolDetails
512   - * @param reportSalaryDim
513   - */
514   - private void extCaleUserMoney(List<SalaryPoolDetail> salaryPoolDetails, ReportSalaryDim reportSalaryDim) {
515   - //额外计算项++
516   - Map<SalaryTypeEnum, List<SalaryPoolDetail>> salaryTypeEnumListMap = salaryPoolDetails
517   - .stream()
518   - .collect(Collectors.groupingBy(SalaryPoolDetail::getType));
519   - //收入
520   - reportSalaryDim.setActKpiMoney(getSalaryTypeEnumMoney(salaryTypeEnumListMap,SalaryTypeEnum.ROYALTIES));
521   - reportSalaryDim.setActAwardMoney(getSalaryTypeEnumMoney(salaryTypeEnumListMap,SalaryTypeEnum.AWARD));
522   - reportSalaryDim.setActSubsidyMoney(getSalaryTypeEnumMoney(salaryTypeEnumListMap,SalaryTypeEnum.SUBSIDY));
523   - reportSalaryDim.setActProbationMoney(getSalaryTypeEnumMoney(salaryTypeEnumListMap,SalaryTypeEnum.PROBATION));
524   - reportSalaryDim.setActJobCompensateMoney(BigDecimal.ZERO);
525   - reportSalaryDim.setActEvalAwardMoney(BigDecimal.ZERO);
526   - //总收入合计
527   - reportSalaryDim.setActRevenueTotalMoney(
528   - reportSalaryDim.getActKpiMoney()
529   - .add(reportSalaryDim.getActAwardMoney())
530   - .add(reportSalaryDim.getActSubsidyMoney())
531   - .add(reportSalaryDim.getActProbationMoney())
532   - .add(reportSalaryDim.getActJobCompensateMoney())
533   - .add(reportSalaryDim.getActEvalAwardMoney())
534   - );
535   - //扣除
536   - reportSalaryDim.setActPenaltyMoney(getSalaryTypeEnumMoney(salaryTypeEnumListMap,SalaryTypeEnum.PENALTY));
537   - reportSalaryDim.setActNecessaryMoney(getSalaryTypeEnumMoney(salaryTypeEnumListMap,SalaryTypeEnum.NECESSARY));
538   - reportSalaryDim.setActPersonTaxMoney(getSalaryTypeEnumMoney(salaryTypeEnumListMap,SalaryTypeEnum.PERSON_TAX));
539   - reportSalaryDim.setActAccumulationFundMoney(BigDecimal.ZERO);
540   - //总扣除合计
541   - reportSalaryDim.setActDeductTotalMoney(
542   - reportSalaryDim.getActPenaltyMoney()
543   - .add(reportSalaryDim.getActNecessaryMoney())
544   - .add(reportSalaryDim.getActPersonTaxMoney())
545   - .add(reportSalaryDim.getActAccumulationFundMoney())
546   - );
547   - //总薪酬 = 总收入合计 - 总扣除合计
548   - reportSalaryDim.setTotalReward(
549   - reportSalaryDim.getActRevenueTotalMoney()
550   - .subtract(reportSalaryDim.getActDeductTotalMoney()));
551   - }
552   -
553   -
554 415 public Long saveManagerDimDB(ManagerDTO manager,
555 416 LocalDate date,
556 417 Long reportSalaryId,
557 418 Map<Long, StaffBaseInfoDTO> managerMap,
558   - List<Long> manageStaffIds,
559   - Set<Long> managerStaffDimReportIds,
560   - List<ReportSalaryDim> userDims) {
  419 + BigDecimal averageSalary,
  420 + BigDecimal kpiScoreRatio,
  421 + List<Long> manageStaffIds) {
561 422 ReportSalaryDim reportSalaryDim = new ReportSalaryDim();
562 423 reportSalaryDim.setDimension(ReportDimensionEnum.MANAGER);
563 424 reportSalaryDim.setUserId(manager.getStaffId());
564 425 reportSalaryDim.setUserName(manager.getStaffName());
565   - //计算平均值薪酬的额外项
566   - extCalcAverage(userDims, managerStaffDimReportIds, reportSalaryDim);
  426 + reportSalaryDim.setTotalReward(averageSalary);
  427 + reportSalaryDim.setKpiScoreRatio(kpiScoreRatio);
567 428 reportSalaryDim.setDataDate(date);
568 429 reportSalaryDim.setReportSalaryId(reportSalaryId);
569 430 if (managerMap.containsKey(manager.getStaffId())) {
... ... @@ -689,25 +550,7 @@ public class SalaryReportTask {
689 550 return userGroupIndicatorHitMap;
690 551 }
691 552  
692   - /**
693   - * 这个薪酬详情每天6:00 会计算完成,cn.fw.morax.server.task.SalaryCalcTask#cacheCalculableKpiGroup()
694   - * @param date
695   - * @param pools
696   - * @return <薪酬池id: 薪酬池详情list>
697   - */
698   - private Map<Long, List<SalaryPoolDetail>> getSalaryPoolDetailMap(LocalDate date, List<SalaryPool> pools) {
699   - if (CollectionUtils.isEmpty(pools)){
700   - return Collections.emptyMap();
701   - }
702   - List<SalaryPoolDetail> salaryPoolDetailList = salaryPoolDetailService.list(Wrappers.<SalaryPoolDetail>lambdaQuery()
703   - .in(SalaryPoolDetail::getSalaryPoolId, pools.stream().map(SalaryPool::getId).collect(Collectors.toSet()))
704   - .eq(SalaryPoolDetail::getSalaryDate, date)
705   - .eq(SalaryPoolDetail::getYn, Boolean.TRUE));
706   - if (CollectionUtils.isEmpty(salaryPoolDetailList)){
707   - return Collections.emptyMap();
708   - }
709   - return salaryPoolDetailList.stream().collect(Collectors.groupingBy(SalaryPoolDetail::getSalaryPoolId));
710   - }
  553 +
711 554  
712 555 public Map<Long, SalaryGroupProjectTargetHitLog> queryUserTargetValue(Long referId, Long userId, LocalDate dataDate) {
713 556 List<SalaryGroupProjectTargetHitLog> targetHitLogs = salaryGroupProjectTargetHitLogService.list(Wrappers.<SalaryGroupProjectTargetHitLog>lambdaQuery()
... ... @@ -858,8 +701,7 @@ public class SalaryReportTask {
858 701 projectBO.setCodeType(codeType);
859 702 break;
860 703 }
861   - case FIXATION:
862   - case CAR_SERIES: {
  704 + case FIXATION: CAR_SERIES: {
863 705 projectBO.setCode(project.getCommissionCode());
864 706 projectBO.setCodeType(IndicatorCodeTypeEnum.COMBINE_INDICATOR);
865 707 break;
... ... @@ -879,7 +721,7 @@ public class SalaryReportTask {
879 721 return projects;
880 722 }
881 723  
882   - public ReportSalaryDim saveStaffDim(SalaryPool pool, LocalDate date, Long reportSalaryRankId,List<SalaryPoolDetail> salaryPoolDetails){
  724 + public ReportSalaryDim saveStaffDim(SalaryPool pool, LocalDate date, Long reportSalaryRankId){
883 725 ReportSalaryDim reportSalaryDim = new ReportSalaryDim();
884 726 reportSalaryDim.setDimension(ReportDimensionEnum.STAFF);
885 727 reportSalaryDim.setReferId(pool.getUserId());
... ... @@ -893,32 +735,14 @@ public class SalaryReportTask {
893 735 reportSalaryDim.setDataDate(date);
894 736 reportSalaryDim.setReportSalaryId(reportSalaryRankId);
895 737 reportSalaryDim.setStarLevel(pool.getStarLevel());
  738 + reportSalaryDim.setTotalReward(pool.getReward());
896 739 // KpiPool kpiPool = kpiPoolCommonService.queryPool(pool);
897 740 // if (PublicUtil.isNotEmpty(kpiPool)) {
898 741 // BigDecimal kpiScoreRatio = Optional.ofNullable(kpiPool.getKpiScoreRatio()).orElse(BigDecimal.ZERO);
899 742 // reportSalaryDim.setKpiScoreRatio(kpiScoreRatio.multiply(Constant.ONE_HUNDRED));
900 743 // }
901   - //薪资类型相关项目处理
902   - extCaleUserMoney(salaryPoolDetails, reportSalaryDim);
903 744 reportSalaryDimService.save(reportSalaryDim);
904 745 return reportSalaryDim;
905 746 }
906 747  
907   - /**
908   - * 获取 SalaryTypeEnum 对应的薪酬总值
909   - * @param salaryTypeEnumListMap
910   - * @param salaryTypeEnum
911   - * @return
912   - */
913   - private BigDecimal getSalaryTypeEnumMoney(Map<SalaryTypeEnum, List<SalaryPoolDetail>> salaryTypeEnumListMap,SalaryTypeEnum salaryTypeEnum){
914   - if (CollectionUtils.isEmpty(salaryTypeEnumListMap)){
915   - return BigDecimal.ZERO;
916   - }
917   - List<SalaryPoolDetail> list = salaryTypeEnumListMap.get(salaryTypeEnum);
918   - if (CollectionUtils.isEmpty(list)){
919   - return BigDecimal.ZERO;
920   - }
921   - return list.stream().filter(Objects::nonNull).map(SalaryPoolDetail::getSalaryAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
922   - }
923   -
924 748 }
... ...