From e7e6d39b095b6a763e54ab34631171c3de32ec9e Mon Sep 17 00:00:00 2001
From: 李白 <7387820+wjli_13439841639@user.noreply.gitee.com>
Date: 星期五, 15 五月 2026 08:33:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java |   83 +++++++++++++++++++++--------------------
 1 files changed, 42 insertions(+), 41 deletions(-)

diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java
index 629e3cb..9f9e4bb 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java
@@ -166,19 +166,6 @@
 		baseMapper.updateById(contract);
 		ContractPaymentSchedule fitstSchedule = contractPaymentScheduleMapper.selectOne(Wrappers.<ContractPaymentSchedule>lambdaQuery().eq(ContractPaymentSchedule::getContractId,contract.getId())
 				.orderByAsc(ContractPaymentSchedule::getCreateTime).last("limit 1"));
-//		PaymentConfirm entity = new PaymentConfirm();
-//		entity.setContractId(contract.getId());
-//		entity.setContractName(contract.getContractName());
-//		entity.setContractNo(contract.getContractNo());
-//		entity.setBusGuestId(contract.getPartyAId());
-//		entity.setBusGuestName(contract.getPartyA());
-//		entity.setBusinessType(fitstSchedule.getStageName()+"搴旀敹");
-//		entity.setTransationAmount(new BigDecimal(fitstSchedule.getPlannedAmount()));
-//		entity.setReceivableAmount(new BigDecimal(fitstSchedule.getPlannedAmount()));
-//		entity.setTotalAmount(new BigDecimal("0").subtract(new BigDecimal(fitstSchedule.getPlannedAmount())));
-//		entity.setConfirmTime(new Date());
-//		paymentConfirmMapper.insert(entity);
-
 		if (fitstSchedule.getStageName().equals("鍚堝悓绛捐")){
 			//鏂板搴旀敹
 			PaymentConfirm paymentConfirm = new PaymentConfirm();
@@ -207,43 +194,57 @@
 		//鏌ヨ鏄惁鏈夊悗缁樁娈�
 		List<ContractPaymentSchedule> afterSchedule = contractPaymentScheduleMapper.selectList(Wrappers.<ContractPaymentSchedule>lambdaQuery()
 				.eq(ContractPaymentSchedule::getContractId, fitstSchedule.getContractId())
-				.gt(ContractPaymentSchedule::getStageOrder, fitstSchedule.getStageOrder()));
+				.gt(ContractPaymentSchedule::getStageOrder, fitstSchedule.getStageOrder())
+				.orderByAsc(ContractPaymentSchedule::getCreateTime));
 		if (ArrayUtil.isNotEmpty(afterSchedule.toArray())&&afterSchedule.size()==1){
 			//鏈�鍚庨樁娈电敓鏁堟椂闂�
 			ContractPaymentSchedule endSchedule = afterSchedule.get(0);
-			endSchedule.setEffectiveDate(DateUtil.offsetDay(new Date(),endSchedule.getAgreedDays()));
-			endSchedule.setEffectiveEndDate(contract.getExpirationDate());
-			contractPaymentScheduleMapper.updateById(endSchedule);
-			//绗竴闃舵鐢熸晥鏃堕棿
-			fitstSchedule.setEffectiveDate(DateUtil.offsetDay(new Date(),fitstSchedule.getAgreedDays()));
-			fitstSchedule.setEffectiveEndDate(endSchedule.getEffectiveDate());
-			contractPaymentScheduleMapper.updateById(fitstSchedule);
+			if (StrUtil.equals(endSchedule.getStageName(),"璐ㄤ繚閲�")){
+				endSchedule.setEffectiveDate(DateUtil.offsetDay(new Date(),endSchedule.getAgreedDays()));
+				endSchedule.setEffectiveEndDate(contract.getExpirationDate());
+				contractPaymentScheduleMapper.updateById(endSchedule);
+				//绗竴闃舵鐢熸晥鏃堕棿
+				fitstSchedule.setEffectiveDate(DateUtil.offsetDay(new Date(),fitstSchedule.getAgreedDays()));
+				fitstSchedule.setEffectiveEndDate(endSchedule.getEffectiveDate());
+				contractPaymentScheduleMapper.updateById(fitstSchedule);
 
-			//鏈�鍚庨樁娈靛簲鏀�
-			PaymentConfirm newConfim = new PaymentConfirm();
-			newConfim.setBusinessType(endSchedule.getStageName()+"搴旀敹");
-			newConfim.setBusGuestId(contract.getPartyAId());
-			newConfim.setBusGuestName(contract.getPartyA());
-			newConfim.setContractId(contract.getId());
-			newConfim.setContractName(contract.getContractName());
-			newConfim.setContractNo(contract.getContractNo());
-			newConfim.setScheduleId(endSchedule.getId());
-			newConfim.setScheduleName(endSchedule.getStageName());
-			newConfim.setConfirmTime(new Date());
-			newConfim.setTransationAmount(endSchedule.getPlannedAmount());
-			newConfim.setReceivableAmount(endSchedule.getPlannedAmount());
-			PaymentConfirm lastNewConfirm = paymentConfirmMapper.selectOne(Wrappers.<PaymentConfirm>lambdaQuery().eq(PaymentConfirm::getContractId,contract.getId())
-					.orderByDesc(PaymentConfirm::getCreateTime).last("limit 1"));
-			BigDecimal lastNewTotal = new BigDecimal("0");
-			if(ObjUtil.isNotNull(lastNewConfirm)){
-				lastNewTotal = lastNewConfirm.getTotalAmount();
+				//鏈�鍚庨樁娈靛簲鏀�
+				PaymentConfirm newConfim = new PaymentConfirm();
+				newConfim.setBusinessType(endSchedule.getStageName()+"搴旀敹");
+				newConfim.setBusGuestId(contract.getPartyAId());
+				newConfim.setBusGuestName(contract.getPartyA());
+				newConfim.setContractId(contract.getId());
+				newConfim.setContractName(contract.getContractName());
+				newConfim.setContractNo(contract.getContractNo());
+				newConfim.setScheduleId(endSchedule.getId());
+				newConfim.setScheduleName(endSchedule.getStageName());
+				newConfim.setConfirmTime(new Date());
+				newConfim.setTransationAmount(endSchedule.getPlannedAmount());
+				newConfim.setReceivableAmount(endSchedule.getPlannedAmount());
+				PaymentConfirm lastNewConfirm = paymentConfirmMapper.selectOne(Wrappers.<PaymentConfirm>lambdaQuery().eq(PaymentConfirm::getContractId,contract.getId())
+						.orderByDesc(PaymentConfirm::getCreateTime).last("limit 1"));
+				BigDecimal lastNewTotal = new BigDecimal("0");
+				if(ObjUtil.isNotNull(lastNewConfirm)){
+					lastNewTotal = lastNewConfirm.getTotalAmount();
+				}
+				newConfim.setTotalAmount(lastNewTotal.subtract(newConfim.getReceivableAmount()));
+				paymentConfirmMapper.insert(newConfim);
 			}
-			newConfim.setTotalAmount(lastNewTotal.subtract(newConfim.getReceivableAmount()));
-			paymentConfirmMapper.insert(newConfim);
+			//鏇存柊鍚堝悓涓嬩釜闃舵
+			contract.setNextScheduleName(endSchedule.getStageName());
+			baseMapper.updateById(contract);
+		}
+		if(ArrayUtil.isNotEmpty(afterSchedule.toArray())&&afterSchedule.size()>1){
+			//鏇存柊鍚堝悓涓嬩釜闃舵
+			contract.setNextScheduleName(afterSchedule.get(0).getStageName());
+			baseMapper.updateById(contract);
 		}
 		if(ArrayUtil.isEmpty(afterSchedule.toArray())){
 			fitstSchedule.setEffectiveEndDate(contract.getExpirationDate());
 			contractPaymentScheduleMapper.updateById(fitstSchedule);
+			//鏇存柊鍚堝悓涓嬩釜闃舵
+			contract.setNextScheduleName("鏃�");
+			baseMapper.updateById(contract);
 		}
 		return Boolean.TRUE;
 	}

--
Gitblit v1.9.1