diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWriteoffApplyServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWriteoffApplyServiceImpl.java index 79f4df0cb..0b94abbd7 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWriteoffApplyServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWriteoffApplyServiceImpl.java @@ -1329,17 +1329,17 @@ public class EmisWriteoffApplyServiceImpl extends EmisBaseService implements IEm return; } - // 按 invoice_no 分组处理开票记录 - Map> invoiceGroups = invoiceRecords.stream() - .filter(record -> StringUtil.isNotBlank(record.getInvoiceNo())) - .collect(java.util.stream.Collectors.groupingBy(EmisSettleInvoiceRecord::getInvoiceNo)); + // 按 id 分组处理开票记录 + Map> invoiceGroups = invoiceRecords.stream() + .filter(record -> record.getId() != null) + .collect(java.util.stream.Collectors.groupingBy(EmisSettleInvoiceRecord::getId)); - for (Map.Entry> entry : invoiceGroups.entrySet()) { - String invoiceNo = entry.getKey(); + for (Map.Entry> entry : invoiceGroups.entrySet()) { + Long recordId = entry.getKey(); List invoiceList = entry.getValue(); try { - // 计算该发票号对应的总申请金额 + // 计算该开票记录对应的总申请金额 BigDecimal totalApplyMoney = detailList.stream() .filter(detail -> StringUtil.isNotBlank(detail.getBillCode())) .map(detail -> detail.getApplyMoney() != null ? detail.getApplyMoney() : BigDecimal.ZERO) @@ -1386,12 +1386,12 @@ public class EmisWriteoffApplyServiceImpl extends EmisBaseService implements IEm } } - log.info("开票记录付款状态更新成功,发票号: {}, 更新记录数: {}, 新已收金额: {}, 付款状态: {}, 申请金额: {}, 开票金额: {}", - invoiceNo, updateCount, newRecedMoney, paymentStatus, totalApplyMoney, applyMoney); + log.info("开票记录付款状态更新成功,记录ID: {}, 更新记录数: {}, 新已收金额: {}, 付款状态: {}, 申请金额: {}, 开票金额: {}", + recordId, updateCount, newRecedMoney, paymentStatus, totalApplyMoney, applyMoney); } catch (Exception e) { - log.error("更新开票记录付款状态失败,发票号: {}", invoiceNo, e); - // 继续处理其他发票,不抛出异常 + log.error("更新开票记录付款状态失败,记录ID: {}", recordId, e); + // 继续处理其他记录,不抛出异常 } } diff --git a/emis-biz/src/main/resources/mapper/EmisSettleInvoiceRecordMapper.xml b/emis-biz/src/main/resources/mapper/EmisSettleInvoiceRecordMapper.xml index f537f4ceb..90dc49859 100644 --- a/emis-biz/src/main/resources/mapper/EmisSettleInvoiceRecordMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisSettleInvoiceRecordMapper.xml @@ -235,7 +235,7 @@ where a.del_flag = '0' and exists ( select 1 from emis_settle_invoice_rel rel - where rel.del_flag = '0' + where rel.del_flag = '0' and rel.apply_seq_no = a.apply_seq_no and rel.bill_no in @@ -468,6 +468,8 @@ open_money_max = #{openMoneyMax}, open_money = #{openMoney}, invoice_no = #{invoiceNo}, + reced_money = #{recedMoney}, + payment_status = #{paymentStatus}, invoice_status = #{invoiceStatus}, invoice_status_desc = #{invoiceStatusDesc}, recieve_address = #{recieveAddress},