diff --git a/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java b/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java index 755768cc2..143c1d67a 100644 --- a/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java @@ -255,8 +255,12 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService LocalRunnable localRunnable = new LocalRunnable() { @Override public void execute() { + // 获取人员完整信息 + Map allEmployeeMap = getEmployeeWholeInfo(enableSendList); //生成工资单pdf enableSendList.forEach(e -> { + // 构建人员信息 + SalaryBillBO.buildEmployeeInfo(salaryBillSendParam, allEmployeeMap.get(e.get("employeeId").toString())); SalaryBillBO.genPdf(e, salaryBillSendParam); }); @@ -574,7 +578,7 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService SalaryBillBO.sendMsg(salaryBillSendParam, Long.valueOf(e.get("id").toString()), Long.valueOf(e.get("employeeId").toString())); } - if (sendChannels.contains(MessageChannelEnum.EMAIL) || sendChannels.contains(MessageChannelEnum.SMS) || GEN_PDF) { + if (sendChannels.contains(MessageChannelEnum.EMAIL) || sendChannels.contains(MessageChannelEnum.SMS)) { // 构建人员信息 SalaryBillBO.buildEmployeeInfo(salaryBillSendParam, allEmployeeMap.get(e.get("employeeId").toString())); diff --git a/src/com/engine/salary/util/SalaryEntityUtil.java b/src/com/engine/salary/util/SalaryEntityUtil.java index 3cc5fe7dd..0b2a6d474 100644 --- a/src/com/engine/salary/util/SalaryEntityUtil.java +++ b/src/com/engine/salary/util/SalaryEntityUtil.java @@ -208,25 +208,40 @@ public class SalaryEntityUtil { } + /** + * 进位规则 + * @param newScale 小数位 + * @param rententionRule 进位规则 + * @param value 值 + * @return + */ public static BigDecimal carryRule(Integer newScale, Integer rententionRule, BigDecimal value) { - //四舍五入 RoundingMode roundingMode = RoundingMode.HALF_UP; + //原始数据 + if (Objects.equals(rententionRule, SalaryRoundingModeEnum.RAW_DATA.getValue())) { + roundingMode = RoundingMode.DOWN; + } + //四舍五入 + if (Objects.equals(rententionRule, SalaryRoundingModeEnum.ROUNDING.getValue())) { + roundingMode = RoundingMode.HALF_UP; + } //向上舍入 - if (Objects.equals(rententionRule, 3)) { + if (Objects.equals(rententionRule, SalaryRoundingModeEnum.ROUND_UP.getValue())) { roundingMode = RoundingMode.UP; } //向下舍入 - if (Objects.equals(rententionRule, 4)) { + if (Objects.equals(rententionRule, SalaryRoundingModeEnum.ROUND_DOWN.getValue())) { roundingMode = RoundingMode.DOWN; } //见分取角(只取保留小数后一位向上舍入) - if (Objects.equals(rententionRule, 5)) { + if (Objects.equals(rententionRule, SalaryRoundingModeEnum.CEILING.getValue())) { value = value.setScale(newScale + 1, RoundingMode.FLOOR); roundingMode = RoundingMode.UP; } //向上取偶 if (Objects.equals(rententionRule, SalaryRoundingModeEnum.UP_EVEN.getValue())) { - value = value.setScale(0, RoundingMode.UP); + value = value.setScale(newScale, RoundingMode.UP); + int number = value.intValue(); if (number % 2 != 0) { value = value.add(BigDecimal.valueOf(1));