处理pdf生成

This commit is contained in:
钱涛 2024-04-11 15:23:23 +08:00
parent 6a05269b2d
commit 23eba4950b
2 changed files with 25 additions and 6 deletions

View File

@ -255,8 +255,12 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService
LocalRunnable localRunnable = new LocalRunnable() {
@Override
public void execute() {
// 获取人员完整信息
Map<String, DataCollectionEmployee> 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()));

View File

@ -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));