From fca21683e1b5b906d2514082ddfbae8eb820c9ea Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期五, 15 五月 2026 17:12:55 +0800
Subject: [PATCH] feat:合同模版、出库标的物、合同管理拆分

---
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java |   21 ++++++++++++++++++++-
 1 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java
index 8451ea7..41635d1 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java
@@ -98,6 +98,7 @@
 			if (ArrayUtil.isNotEmpty(scheduleList.toArray())){
 				BigDecimal remain = addDTO.getTransationAmount();
 				for (ContractPaymentSchedule schedule:scheduleList) {
+					BigDecimal lastRemain = remain;
 					remain = remain.subtract(StrUtil.equals(schedule.getPaymentStatus()+"","0")?schedule.getPlannedAmount():
 							schedule.getPlannedAmount().subtract(schedule.getActualAmount()));
 					if (remain.compareTo(new BigDecimal("0"))>=0){
@@ -112,16 +113,34 @@
 							//鏂板閫炬湡鍘嗗彶
 							HistoryOverdue historyOverdue = BeanUtil.copyProperties(currentOverdue,HistoryOverdue.class,"id");
 							historyOverdue.setPaymentTime(addDTO.getConfirmTime());
+							historyOverdue.setCompId(schedule.getCompId());
 							historyOverdueMapper.insert(historyOverdue);
 							//鍒犻櫎褰撳墠閫炬湡
 							currentOverdueMapper.deleteById(currentOverdue);
 						}
 					}else {
 						schedule.setActualAmount(StrUtil.equals(schedule.getPaymentStatus()+"","0")?schedule.getPlannedAmount().add(remain):
-								schedule.getPlannedAmount().subtract(schedule.getActualAmount()).add(remain));
+								schedule.getActualAmount().add(lastRemain));
 						schedule.setPaymentDate(addDTO.getConfirmTime());
 						schedule.setPaymentStatus(1);
 						contractPaymentScheduleMapper.updateById(schedule);
+						//鏌ヨ鏄惁鏈夊綋鍓嶉�炬湡
+						CurrentOverdue currentOverdue = currentOverdueMapper.selectOne(Wrappers.<CurrentOverdue>lambdaQuery().eq(CurrentOverdue::getScheduleId,schedule.getId())
+								.eq(CurrentOverdue::getContractId,schedule.getContractId()).last("limit 1"));
+						if (ObjUtil.isNotNull(currentOverdue)){
+							//鏂板閫炬湡鍘嗗彶
+							HistoryOverdue historyOverdue = BeanUtil.copyProperties(currentOverdue,HistoryOverdue.class,"id");
+							historyOverdue.setReceivableAmount(lastRemain);
+							historyOverdue.setPaymentTime(addDTO.getConfirmTime());
+							historyOverdue.setCompId(schedule.getCompId());
+							historyOverdueMapper.insert(historyOverdue);
+							//鏌ヨ鍘嗗彶宸蹭粯閫炬湡閲戦
+							List<HistoryOverdue> historyOverdueList = historyOverdueMapper.selectList(Wrappers.<HistoryOverdue>lambdaQuery().eq(HistoryOverdue::getScheduleId,currentOverdue.getScheduleId()));
+							BigDecimal hisTotal = historyOverdueList.stream().map(item->item.getReceivableAmount()).reduce(BigDecimal.ZERO,BigDecimal::add);
+							//鏇存柊褰撳墠閫炬湡
+							currentOverdue.setReceivableAmount(schedule.getPlannedAmount().subtract(hisTotal));
+							currentOverdueMapper.updateById(currentOverdue);
+						}
 						break;
 					}
 				}

--
Gitblit v1.9.1