From 2a962d60d7d12da575bd407d75e404cea060b500 Mon Sep 17 00:00:00 2001 From: aike <17730485278@139.com> Date: Fri, 9 Jan 2026 13:25:52 +0800 Subject: [PATCH] =?UTF-8?q?demand:=20=20TMS=E7=B3=BB=E7=BB=9F=20-=20?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=8A=A5=E8=A1=A8=20-=20=E8=B4=A2=E5=8A=A1?= =?UTF-8?q?=E6=94=B6=E6=AC=BE=E7=BB=9F=E8=AE=A1=20-=20=E9=80=BE=E6=9C=9F?= =?UTF-8?q?=E5=B7=B2=E6=94=B6=E9=87=91=E9=A2=9D(60=E5=A4=A9)=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E6=9F=A5=E7=9C=8B=E6=94=B6=E6=AC=BE=E6=98=8E=E7=BB=86?= =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D=20=20TMS=E7=B3=BB=E7=BB=9F=20-=20?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E8=B4=A6=E5=8D=95=E7=AE=A1=E7=90=86=20-=20?= =?UTF-8?q?=E7=8E=B0=E9=87=91=E8=B4=A6=E5=8D=95=E6=A0=B8=E9=94=80/?= =?UTF-8?q?=E6=9C=88=E7=BB=93=E8=B4=A6=E5=8D=95=E6=A0=B8=E9=94=80=20-=20?= =?UTF-8?q?=E6=94=B6=E6=AC=BE=E6=97=B6=E6=9B=B4=E6=96=B0=E5=8F=91=E7=A5=A8?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=97=B6=E5=8F=AA=E6=9B=B4=E6=96=B0=E8=BF=90?= =?UTF-8?q?=E5=8D=95=E5=AF=B9=E5=BA=94=E5=8F=91=E7=A5=A8=E7=9A=84=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/EmisSettleBillServiceImpl.java | 37 +++++++++++-------- .../mapper/EmisSettlePayRecordMapper.xml | 5 +++ 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java index 96219b6c3..b9d4e09bf 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java @@ -1175,27 +1175,32 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS // 遍历每个发票记录,更新其收款状态 for (EmisSettleInvoiceRecord invoiceRecord : invoiceRecordList) { - String invoiceSettleBillNo = invoiceRecord.getSettleBillNo(); - if (StringUtils.isEmpty(invoiceSettleBillNo)) { + String applySeqNo = invoiceRecord.getApplySeqNo(); + if (StringUtils.isEmpty(applySeqNo)) { + continue; + } + + // 通过申请序号获取发票关联的子账单列表 + List invoiceRelList = emisSettleInvoiceRelMapper.selectListByApplySeqNo(applySeqNo); + if (CollectionUtils.isEmpty(invoiceRelList)) { + log.debug("updateInvoicePaymentStatus===>发票申请序号{}没有关联的子账单", applySeqNo); continue; } - // 解析发票对应的所有账单号(可能用逗号分隔) - String[] billNoArray = invoiceSettleBillNo.split(","); BigDecimal totalRecedMoney = BigDecimal.ZERO; - // 遍历发票对应的每个账单号,计算每个账单的实际收款金额并累加 - for (String billNo : billNoArray) { - billNo = billNo.trim(); - if (StringUtils.isEmpty(billNo)) { + // 遍历发票关联的每个子账单,获取运单已收金额并累加 + for (EmisSettleInvoiceRel invoiceRel : invoiceRelList) { + String subBillNo = invoiceRel.getBillNo(); + if (StringUtils.isEmpty(subBillNo)) { continue; } - // 通过账单号查询emis_settle_bill获取reced_money作为已收金额 - EmisSettleBill bill = selectEmisSettleBillBySettleBillNo(billNo); - BigDecimal billTotalHasPayMoney = (bill != null && bill.getRecedMoney() != null) - ? bill.getRecedMoney() - : BigDecimal.ZERO; - totalRecedMoney = totalRecedMoney.add(billTotalHasPayMoney); + + // 通过子账单号查询子账单,获取运单已收金额 + EmisSettleSubBill subBill = emisSettleSubBillMapper.selectSettleSubBillBySubBillNo(subBillNo); + if (subBill != null && subBill.getRecedMoney() != null) { + totalRecedMoney = totalRecedMoney.add(subBill.getRecedMoney()); + } } // 获取发票申请金额 @@ -1219,8 +1224,8 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS updateInvoiceRecord.setRecedMoney(totalRecedMoney); emisSettleInvoiceRecordMapper.updateEmisSettleInvoiceRecord(updateInvoiceRecord); - log.debug("updateInvoicePaymentStatus===>发票申请序号:{}, 收款状态:{}, 已收金额:{}, 申请金额:{}, 对应账单号:{}", - invoiceRecord.getApplySeqNo(), paymentStatus, totalRecedMoney, applyMoney, invoiceSettleBillNo); + log.debug("updateInvoicePaymentStatus===>发票申请序号:{}, 收款状态:{}, 已收金额:{}, 申请金额:{}", + invoiceRecord.getApplySeqNo(), paymentStatus, totalRecedMoney, applyMoney); } } catch (Exception e) { diff --git a/emis-biz/src/main/resources/mapper/EmisSettlePayRecordMapper.xml b/emis-biz/src/main/resources/mapper/EmisSettlePayRecordMapper.xml index daccddf6e..88c18f49a 100644 --- a/emis-biz/src/main/resources/mapper/EmisSettlePayRecordMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisSettlePayRecordMapper.xml @@ -575,6 +575,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and b.trade_date ]]> esb.payment_due_date and b.trade_date = ]]> DATE_SUB( esb.payment_due_date, INTERVAL (esb.credit_period-60) DAY ) ) + OR + ( + ( (esb.settle_type='2' and esb.credit_period 30) or esb.settle_type='1' ) + and b.trade_date ]]> esb.payment_due_date + ) )