From 2db76f2066701cbe292f206ad49a7f8523b8aa9f Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期五, 14 八月 2026 16:30:25 +0800
Subject: [PATCH] feat:银行流水关联多个合同,新增预收款开票,所有List校验调整为ColUtil

---
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentOffsetServiceImpl.java |   46 +++++++++++++++++++++++++++++++++-------------
 1 files changed, 33 insertions(+), 13 deletions(-)

diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentOffsetServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentOffsetServiceImpl.java
index c6a44b4..aed8023 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentOffsetServiceImpl.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentOffsetServiceImpl.java
@@ -1,7 +1,7 @@
 package com.by4cloud.platformx.business.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -16,7 +16,8 @@
 
 import java.math.BigDecimal;
 import java.util.List;
-import java.util.Objects;
+
+;
 
 /**
  * 鎶垫姽璐�
@@ -30,14 +31,32 @@
 
 	private final ContractService contractService;
 	private final PaymentConfirmMapper paymentConfirmMapper;
+	private final BusinessCustomerMapper businessCustomerMapper;
 	private final ContractPaymentScheduleMapper contractPaymentScheduleMapper;
 	private final CurrentOverdueMapper currentOverdueMapper;
 	private final HistoryOverdueMapper historyOverdueMapper;
+	private final PaymentSlipMapper paymentSlipMapper;
+
 
 	@Override
 	public R add(PaymentOffset paymentOffset) {
 		baseMapper.insert(paymentOffset);
+		BusinessCustomer customer = businessCustomerMapper.selectById(paymentOffset.getBusGuestId());
+
 		Contract contract = contractService.getById(paymentOffset.getContractId());
+
+		//鏂板浠樻鍗�
+		PaymentSlip slip = new PaymentSlip();
+		slip.setBusGuestId(paymentOffset.getBusGuestId());
+		slip.setBusGuestName(customer.getCompanyName());
+		slip.setPayeeCompId(contract.getPartyBId());
+		slip.setPayee(contract.getPartyB());
+		slip.setPaymentTime(paymentOffset.getOffsetTime());
+		slip.setPaymentAmount(paymentOffset.getOffsetAmount());
+		slip.setPayType("3");
+		paymentSlipMapper.insert(slip);
+
+
 
 		PaymentConfirm lastConfirm = paymentConfirmMapper.selectOne(Wrappers.<PaymentConfirm>lambdaQuery().eq(PaymentConfirm::getContractId,contract.getId())
 				.orderByDesc(PaymentConfirm::getCreateTime).last("limit 1"));
@@ -50,7 +69,7 @@
 		entity.setContractName(contract.getContractName());
 		entity.setContractNo(contract.getContractNo());
 		entity.setBusGuestId(paymentOffset.getBusGuestId());
-		entity.setBusGuestName(paymentOffset.getBusGuestName());
+		entity.setBusGuestName(customer.getCompanyName());
 		entity.setBusinessType("鎶垫姽璐�");
 		entity.setConfirmTime(paymentOffset.getOffsetTime());
 		entity.setTransationAmount(paymentOffset.getOffsetAmount());
@@ -60,8 +79,8 @@
 		//鏇存柊浠樻闃舵浠樻
 		List<ContractPaymentSchedule> scheduleList = contractPaymentScheduleMapper.selectList(Wrappers.<ContractPaymentSchedule>lambdaQuery()
 				.eq(ContractPaymentSchedule::getContractId,contract.getId()).ne(ContractPaymentSchedule::getPaymentStatus,2)
-				.orderByAsc(ContractPaymentSchedule::getCreateTime));
-		if (ArrayUtil.isNotEmpty(scheduleList.toArray())){
+				.ne(ContractPaymentSchedule::getPaymentStatus,3).orderByAsc(ContractPaymentSchedule::getCreateTime));
+		if (CollUtil.isNotEmpty(scheduleList)){
 			BigDecimal remain = paymentOffset.getOffsetAmount();
 			for (ContractPaymentSchedule schedule:scheduleList) {
 				BigDecimal lastRemain = remain;
@@ -118,17 +137,18 @@
 		}
 		paid = paid.add(paymentOffset.getOffsetAmount());
 		contract.setPaidAmount(paid);
-		if (paid.compareTo(contract.getAmount())>0){
-			contract.setPaidAmount(contract.getAmount());
+		if (paid.compareTo(contract.getAmount())==0){
+//			contract.setBillingStatus("2");
+			contract.setContractStatus(3);
 		}
 		contractService.updateById(contract);
 		// 鏌ヨ鎵�鏈変粯娆鹃樁娈垫槸鍚﹂兘浠樻瀹屾垚
-		if (ArrayUtil.isNotEmpty(scheduleList.toArray())){
-			if (scheduleList.stream().allMatch(item -> Objects.equals(item.getPaymentStatus(), 2))){
-				contract.setContractStatus(3);
-				contractService.updateById(contract);
-			};
-		}
+//		if (.isNotEmpty(scheduleList)){
+//			if (scheduleList.stream().allMatch(item -> Objects.equals(item.getPaymentStatus(), 2))){
+//				contract.setContractStatus(3);
+//				contractService.updateById(contract);
+//			};
+//		}
 		return R.ok();
 	}
 }
\ No newline at end of file

--
Gitblit v1.9.1