From 22aba721f5498d42156885d0e9e596c41f426d71 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 07 二月 2025 16:17:49 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index 01ef587..f4352b6 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1100,7 +1100,7 @@
 				if(1 == doubleIntegration){
 					num1 *= 2;
 				}
-				
+
 			}
 			
 			GetInviteUser query = new GetInviteUser();
@@ -1945,11 +1945,11 @@
 	 */
 	@Override
 	@GlobalTransactional(rollbackFor = Exception.class)
-	public void endChargeBillingCharge(TransactionRecordMessageVO vo) {
+	public R endChargeBillingCharge(TransactionRecordMessageVO vo) {
 		TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, vo.getTransaction_serial_number()));
 		Integer status = chargingOrder.getStatus();
 		if(status == 5){
-			return;
+			return R.ok();
 		}
 		
 		//如果使用优惠券需要判断优惠券是否满足使用条件
@@ -2089,6 +2089,7 @@
 			}
 		}catch (Exception e){
 			e.printStackTrace();
+			R.fail("处理失败");
 		}
 		
 		//开始处理明细
@@ -2176,16 +2177,20 @@
 		discountAmount = discountAmount.setScale(4, RoundingMode.HALF_EVEN);
 		payAmount = payAmount.subtract(discountAmount);
 		periodServicePrice_total = periodServicePrice_total.subtract(discountAmount);
-		
+
 		TChargingOrder order = new TChargingOrder();
 		order.setId(chargingOrder.getId());
 		order.setAppUserId(chargingOrder.getAppUserId());
 		UploadRealTimeMonitoringData uploadRealTimeMonitoringData = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData();
 		if(null != uploadRealTimeMonitoringData && null == chargingOrder.getEndMode()){
 			Integer soc = uploadRealTimeMonitoringData.getSoc();
-			order.setEndMode(soc > 98 ? 2 : 3);
-		}else{
-			order.setEndMode(1);
+			if(soc > 98){
+				order.setEndMode(2);
+			}else if(order.getResidualAmount().compareTo(new BigDecimal(1)) <= 0){
+				order.setEndMode(3);
+			}else{
+				order.setEndMode(0);
+			}
 		}
 		order.setResidualAmount(rechargeAmount.subtract(total).setScale(2, RoundingMode.HALF_EVEN));
 		order.setStartTime(LocalDateTime.parse(vo.getStart_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS")));
@@ -2369,6 +2374,7 @@
 			}
 			
 		}
+		return R.ok();
 	}
 	
 	

--
Gitblit v1.7.1