diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/excelCellStrategy/EmisSettlePayRecordCustomExcelUtil.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/excelCellStrategy/EmisSettlePayRecordCustomExcelUtil.java index d5620284e..c25ee471f 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/excelCellStrategy/EmisSettlePayRecordCustomExcelUtil.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/excelCellStrategy/EmisSettlePayRecordCustomExcelUtil.java @@ -95,41 +95,53 @@ public class EmisSettlePayRecordCustomExcelUtil { createCell(row, 6, data.getBillCodes() != null ? data.getBillCodes() : "", dataStyle); // 账单金额 - BigDecimal billAmount = data.getBillAmount() != null ? data.getBillAmount() : BigDecimal.ZERO; + BigDecimal billAmount = data.getBillAmount(); createCell(row, 7, billAmount, numberStyle); - totalBillAmount = totalBillAmount.add(billAmount); + if (billAmount != null && billAmount.compareTo(BigDecimal.ZERO) != 0) { + totalBillAmount = totalBillAmount.add(billAmount); + } // 开票金额 - BigDecimal invoiceAmount = data.getInvoiceAmount() != null ? data.getInvoiceAmount() : BigDecimal.ZERO; + BigDecimal invoiceAmount = data.getInvoiceAmount(); createCell(row, 8, invoiceAmount, numberStyle); - totalInvoiceAmount = totalInvoiceAmount.add(invoiceAmount); + if (invoiceAmount != null && invoiceAmount.compareTo(BigDecimal.ZERO) != 0) { + totalInvoiceAmount = totalInvoiceAmount.add(invoiceAmount); + } // 支付金额 - BigDecimal payMoney = data.getPayMoney() != null ? data.getPayMoney() : BigDecimal.ZERO; + BigDecimal payMoney = data.getPayMoney(); createCell(row, 9, payMoney, numberStyle); - totalPayMoney = totalPayMoney.add(payMoney); + if (payMoney != null && payMoney.compareTo(BigDecimal.ZERO) != 0) { + totalPayMoney = totalPayMoney.add(payMoney); + } // 理赔金额 - BigDecimal satisfyMoney = data.getSatisfyMoney() != null ? data.getSatisfyMoney() : BigDecimal.ZERO; + BigDecimal satisfyMoney = data.getSatisfyMoney(); createCell(row, 10, satisfyMoney, numberStyle); - totalSatisfyMoney = totalSatisfyMoney.add(satisfyMoney); + if (satisfyMoney != null && satisfyMoney.compareTo(BigDecimal.ZERO) != 0) { + totalSatisfyMoney = totalSatisfyMoney.add(satisfyMoney); + } // 折让金额 - BigDecimal allowanceMoney = data.getAllowanceMoney() != null ? data.getAllowanceMoney() - : BigDecimal.ZERO; + BigDecimal allowanceMoney = data.getAllowanceMoney(); createCell(row, 11, allowanceMoney, numberStyle); - totalAllowanceMoney = totalAllowanceMoney.add(allowanceMoney); + if (allowanceMoney != null && allowanceMoney.compareTo(BigDecimal.ZERO) != 0) { + totalAllowanceMoney = totalAllowanceMoney.add(allowanceMoney); + } // 抵扣金额 - BigDecimal deductionMoney = data.getDeductionMoney() != null ? data.getDeductionMoney() - : BigDecimal.ZERO; + BigDecimal deductionMoney = data.getDeductionMoney(); createCell(row, 12, deductionMoney, numberStyle); - totalDeductionMoney = totalDeductionMoney.add(deductionMoney); + if (deductionMoney != null && deductionMoney.compareTo(BigDecimal.ZERO) != 0) { + totalDeductionMoney = totalDeductionMoney.add(deductionMoney); + } // 其他收费 - BigDecimal otherMoney = data.getOtherMoney() != null ? data.getOtherMoney() : BigDecimal.ZERO; + BigDecimal otherMoney = data.getOtherMoney(); createCell(row, 13, otherMoney, numberStyle); - totalOtherMoney = totalOtherMoney.add(otherMoney); + if (otherMoney != null && otherMoney.compareTo(BigDecimal.ZERO) != 0) { + totalOtherMoney = totalOtherMoney.add(otherMoney); + } // 理赔原因 createCell(row, 14, data.getSatisfyReason() != null ? data.getSatisfyReason() : "", dataStyle); @@ -367,9 +379,14 @@ public class EmisSettlePayRecordCustomExcelUtil { */ private static void createCell(Row row, int columnIndex, BigDecimal value, CellStyle style) { Cell cell = row.createCell(columnIndex); - BigDecimal formattedValue = formatBigDecimal(value); - // 使用toPlainString()避免科学计数法,然后转换为double - cell.setCellValue(formattedValue.toPlainString()); + // 如果BigDecimal值为null或为0,则设置为空字符串 + if (value == null || value.compareTo(BigDecimal.ZERO) == 0) { + cell.setCellValue(""); + } else { + BigDecimal formattedValue = formatBigDecimal(value); + // 使用toPlainString()避免科学计数法,然后转换为double + cell.setCellValue(formattedValue.toPlainString()); + } cell.setCellStyle(style); }