From b0ba33dce8487581d2bb3c49f886d158724dc44e Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期一, 08 六月 2026 17:19:49 +0800
Subject: [PATCH] fix:产品列表接口

---
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java |   47 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 39 insertions(+), 8 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 9846cf2..986a3a1 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
@@ -53,6 +53,7 @@
 	private final HistoryOverdueMapper historyOverdueMapper;
 	private final PaymentSlipMapper paymentSlipMapper;
 	private final BipRequestRecordMapper bipRequestRecordMapper;
+	private final ContractExecDateMapper contractExecDateMapper;
 	private final RemoteDeptService remoteDeptService;
 	private final RedisTemplate redisTemplate;
 
@@ -387,13 +388,27 @@
 					if (contract.getAmount().compareTo(contract.getPaidAmount()) == 0) {
 						contract.setBillingStatus("2");
 						contract.setContractStatus(3);
-						contractService.updateById(contract);
 						payCompleteContractList.add(contract);
 					}
 					//浠樻 涓� 浠樻鏈叏浠�
 					if (contract.getAmount().compareTo(contract.getPaidAmount()) > 0) {
 						payNoCompleteContractList.add(contract);
 					}
+					if (StrUtil.isNotEmpty(contract.getContractCategory())&&StrUtil.equals(contract.getContractCategory(),"water_house")){
+						List<ContractExecDate> execDateList = contractExecDateMapper.selectList(Wrappers.<ContractExecDate>lambdaQuery()
+								.eq(ContractExecDate::getContractId,contract.getId()).eq(ContractExecDate::getGenFlag,"0"));
+						if (ArrayUtil.isEmpty(execDateList.toArray())){
+							List<ContractPaymentSchedule> contractPaymentScheduleList = contractPaymentScheduleMapper.selectList(Wrappers.<ContractPaymentSchedule>lambdaQuery()
+									.eq(ContractPaymentSchedule::getContractId, contract.getId()));
+							if (ArrayUtil.isNotEmpty(contractPaymentScheduleList.toArray())&&contractPaymentScheduleList.stream().allMatch(item -> Objects.equals(item.getPaymentStatus(), 2))) {
+								contract.setContractStatus(3);
+								contractService.updateById(contract);
+							}
+						}
+					}else {
+						contractService.updateById(contract);
+					}
+
 				}
 			});
 
@@ -450,7 +465,7 @@
 				String result = HttpUtil.post(url + "/yonbip/EFI/collection/list?access_token=" + finalAccessToken, params.toJSONString());
 				log.info("SK_CX Response:{}", result);
 				//淇濆瓨璇锋眰璁板綍
-				saveBipRequestRecord(params, result);
+				saveBipRequestRecord(params,"<XSJZ_SK_CX_001>-鏀舵鍗曟煡璇㈡帴鍙�", result);
 				JSONObject resultJson = JSONObject.parseObject(result);
 				if (resultJson.containsKey("code") && resultJson.getString("code").equals("200")) {
 					handleAndSave(bipCode, resultJson);
@@ -478,7 +493,8 @@
 		return params;
 	}
 
-	private void getAccessToken(String accessToken) {
+	@Override
+	public String getAccessToken(String accessToken) {
 		long timestamp = System.currentTimeMillis();
 		Map<String, Object> paramMap = new HashMap<>();
 		paramMap.put("appKey", appKey);
@@ -499,20 +515,22 @@
 		JSONObject tokenJson = JSONObject.parseObject(getTokenResult);
 		if (!tokenJson.containsKey("code") || !tokenJson.getString("code").equals("200")) {
 			log.error("Get access_token ERROR");
-			return;
+			return "";
 		}
 		if (ObjUtil.isNull(tokenJson.get("data")) || ObjUtil.isNull(JSONObject.parseObject(tokenJson.getString("data")))) {
 			log.error("access_token value exception");
-			return;
+			return "";
 		}
 		accessToken = JSONObject.parseObject(tokenJson.getString("data")).getString("access_token");
 		log.info("access_token value:", accessToken);
 		redisTemplate.opsForValue().set("BIP_TOKEN", accessToken, tokenJson.getIntValue("expire") - 10, TimeUnit.SECONDS);
+		return accessToken;
 	}
 
-	private void saveBipRequestRecord(JSONObject params, String result) {
+	@Override
+	public void saveBipRequestRecord(JSONObject params, String methodName, String result) {
 		BipRequestRecord record = new BipRequestRecord();
-		record.setInterfaceName("<XSJZ_SK_CX_001>-鏀舵鍗曟煡璇㈡帴鍙�");
+		record.setInterfaceName(methodName);
 		record.setRequestParams(params.toJSONString());
 		record.setResponseParams(result);
 		record.setResponseCode(JSONObject.parseObject(result).getString("code"));
@@ -715,13 +733,26 @@
 				if (contract.getAmount().compareTo(contract.getPaidAmount()) == 0) {
 					contract.setBillingStatus("2");
 					contract.setContractStatus(3);
-					contractService.updateById(contract);
 					payCompleteContractList.add(contract);
 				}
 				//浠樻 涓� 浠樻鏈叏浠�
 				if (contract.getAmount().compareTo(contract.getPaidAmount()) > 0) {
 					payNoCompleteContractList.add(contract);
 				}
+				if (StrUtil.isNotEmpty(contract.getContractCategory())&&StrUtil.equals(contract.getContractCategory(),"water_house")){
+					List<ContractExecDate> execDateList = contractExecDateMapper.selectList(Wrappers.<ContractExecDate>lambdaQuery()
+							.eq(ContractExecDate::getContractId,contract.getId()).eq(ContractExecDate::getGenFlag,"0"));
+					if (ArrayUtil.isEmpty(execDateList)){
+						List<ContractPaymentSchedule> contractPaymentScheduleList = contractPaymentScheduleMapper.selectList(Wrappers.<ContractPaymentSchedule>lambdaQuery()
+								.eq(ContractPaymentSchedule::getContractId, contract.getId()));
+						if (ArrayUtil.isNotEmpty(contractPaymentScheduleList.toArray())&&contractPaymentScheduleList.stream().allMatch(item -> Objects.equals(item.getPaymentStatus(), 2))) {
+							contract.setContractStatus(3);
+							contractService.updateById(contract);
+						}
+					}
+				}else {
+					contractService.updateById(contract);
+				}
 			}
 		});
 

--
Gitblit v1.9.1