From d36a5483f0287028bf65cfcd69b88543070e7e98 Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期四, 28 五月 2026 14:44:27 +0800
Subject: [PATCH] feat:新增房屋租赁/水电代缴合同新增功能 新增逾期出库功能 新增水电代缴合同抄表功能

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

diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java
index 3b5e5e9..f329f11 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java
@@ -40,6 +40,7 @@
 	private final ContractMapper contractMapper;
 	private final ContractPaymentScheduleProcessMapper scheduleProcessMapper;
 	private final ContractOutBoundMapper contractOutBoundMapper;
+	private final DeliveryOverdueMapper deliveryOverdueMapper;
 
 	@Override
 	public R add(OutBoundAddDTO addDTO) {
@@ -384,5 +385,25 @@
 		contractOutBound.setOutBoundAttPaths(addDTO.getOutBoundAttPaths());
 		contractOutBound.setOutBoundId(outBoundId);
 		contractOutBoundMapper.insert(contractOutBound);
+		if (StrUtil.isEmpty(contract.getContractCategory())){
+			if (DateUtil.compare(addDTO.getOutBoundTime(),contract.getExpirationDate())>0){
+				saveOverdueOutBound(contract, addDTO, subjectMatter);
+			}
+		}
+	}
+
+	private void saveOverdueOutBound(Contract contract, OutBoundAddDTO addDTO, ContractSubjectMatter subjectMatter) {
+		DeliveryOverdue overdue = new DeliveryOverdue();
+		overdue.setContractId(contract.getId());
+		overdue.setContractName(contract.getContractName());
+		overdue.setBusGuestId(contract.getPartyAId());
+		overdue.setBusGuestName(contract.getPartyA());
+		overdue.setMaterialName(subjectMatter.getMaterialName());
+		overdue.setMaterialInternalName(subjectMatter.getMaterialInternalName());
+		overdue.setMaterialCode(subjectMatter.getMaterialCode());
+		overdue.setOverdueNum(subjectMatter.getLastDeliveredQuantity());
+		overdue.setTotalAmount(subjectMatter.getUnitPrice().multiply(subjectMatter.getLastDeliveredQuantity()));
+		overdue.setOverdueDuration(new BigDecimal(DateUtil.betweenDay(addDTO.getOutBoundTime(),contract.getExpirationDate(),true)));
+		deliveryOverdueMapper.insert(overdue);
 	}
 }
\ No newline at end of file

--
Gitblit v1.9.1