diff --git a/src/com/engine/salary/timer/DepartureAnnualLeaveJob.java b/src/com/engine/salary/timer/DepartureAnnualLeaveJob.java index 162dfd416..10f3572be 100644 --- a/src/com/engine/salary/timer/DepartureAnnualLeaveJob.java +++ b/src/com/engine/salary/timer/DepartureAnnualLeaveJob.java @@ -98,13 +98,19 @@ public class DepartureAnnualLeaveJob extends BaseCronJob { long dayBeforeLeave = firstDayOfYear.until(localDate, ChronoUnit.DAYS) + 1; String ynjjs = BigDecimal.valueOf(dayBeforeLeave).divide(BigDecimal.valueOf(365), 5, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(balanceOfLeaveDTO.getBaseAmount())).toString(); // 保留一位小数,不满0.5取0,满0.5 不满1,取0.5 + // 250826修改 计算的结果小数点后数字为1-5按半天计算,小数点后数字为6-9按1天计算 if (ynjjs.contains(".")) { Integer value = Integer.valueOf(ynjjs.substring(ynjjs.indexOf(".") + 1 , ynjjs.indexOf(".") + 2)); - if (value >= 5) { + if (value > 5) { ynjjs = ynjjs.substring(0, ynjjs.indexOf(".")) + ".5"; } else { ynjjs = ynjjs.substring(0, ynjjs.indexOf(".")) + ".0"; } + try { + ynjjs = new BigDecimal(ynjjs).add(new BigDecimal("0.5")).setScale(1, BigDecimal.ROUND_HALF_UP).toString(); + } catch (Exception e) { + baseBean.writeLog("0.5error:"+ynjjs +e.toString()); + } } balanceOfLeaveDTO.setYnjjs(Float.valueOf(ynjjs)); balanceOfLeaveDTO.setXzszy(SalaryDateUtil.getFormatLocalDate(localDate.withDayOfMonth(1)));