demand: TMS系统 - 统计报表 - 财务收款统计 - 逾期已收金额(60天)无法查看收款明细bug修复 TMS系统 - 客户账单管理 - 现金账单核销/月结账单核销 - 收款时更新发票状态时只更新运单对应发票的状态

This commit is contained in:
aike 2026-01-09 13:25:52 +08:00
parent 5e3d62bcb1
commit 2a962d60d7
2 changed files with 26 additions and 16 deletions

View File

@ -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<EmisSettleInvoiceRel> 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) {

View File

@ -575,6 +575,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and b.trade_date <![CDATA[ > ]]> esb.payment_due_date
and b.trade_date <![CDATA[ >= ]]> DATE_SUB( esb.payment_due_date, INTERVAL (esb.credit_period-60) DAY )
)
OR
(
( (esb.settle_type='2' and esb.credit_period <![CDATA[ < ]]> 30) or esb.settle_type='1' )
and b.trade_date <![CDATA[ > ]]> esb.payment_due_date
)
)
</if>