Commit f72163d1df1d3df05587bda6c19a95678897d1b1
Merge branch 'main-bug' into 'main'
feature(bug): 计算试用期工资bug 计算试用期工资bug See merge request !69
Showing
1 changed file
with
5 additions
and
2 deletions
fw-morax-service/src/main/java/cn/fw/morax/service/biz/salary/SalaryCalcService.java
... | ... | @@ -29,6 +29,8 @@ import java.math.BigDecimal; |
29 | 29 | import java.math.RoundingMode; |
30 | 30 | import java.time.LocalDate; |
31 | 31 | import java.time.YearMonth; |
32 | +import java.time.temporal.TemporalAdjuster; | |
33 | +import java.time.temporal.TemporalAdjusters; | |
32 | 34 | import java.util.*; |
33 | 35 | import java.util.concurrent.RejectedExecutionException; |
34 | 36 | import java.util.concurrent.ThreadPoolExecutor; |
... | ... | @@ -408,16 +410,17 @@ public class SalaryCalcService { |
408 | 410 | .eq(SalaryGroupUser::getProbationer, Boolean.TRUE) |
409 | 411 | .eq(SalaryGroupUser::getFrozen, Boolean.FALSE) |
410 | 412 | .eq(SalaryGroupUser::getYn, Boolean.TRUE) |
413 | + .ge(SalaryGroupUser::getDataDate, user.getDataDate().with(TemporalAdjusters.firstDayOfMonth())) | |
411 | 414 | .le(SalaryGroupUser::getDataDate, user.getDataDate()) |
412 | 415 | ); |
413 | 416 | if (count <= 0) { |
414 | 417 | return; |
415 | 418 | } |
416 | 419 | int lengthOfMonth = YearMonth.from(user.getDataDate()).lengthOfMonth(); |
417 | - BigDecimal dayP = new BigDecimal(count).divide(new BigDecimal(lengthOfMonth), 2, RoundingMode.HALF_UP); | |
420 | + BigDecimal dayP = new BigDecimal(count).divide(new BigDecimal(lengthOfMonth), 2, RoundingMode.DOWN); | |
418 | 421 | BigDecimal baseValue = ehrRpcService.queryProbationerSalary(user.getUserId(), user.getDataDate()); |
419 | 422 | BV.notNull(baseValue, () -> "试用期工资查询失败"); |
420 | - BigDecimal probationSalary = baseValue.multiply(dayP).divide(BigDecimal.ONE, 2, RoundingMode.HALF_UP); | |
423 | + BigDecimal probationSalary = baseValue.multiply(dayP).divide(BigDecimal.ONE, 2, RoundingMode.DOWN); | |
421 | 424 | SalaryPoolDetail detail = createDetail(pool, user.getDataDate()); |
422 | 425 | detail.setType(SalaryTypeEnum.PROBATION); |
423 | 426 | detail.setSalaryAmount(probationSalary); | ... | ... |