From 8461d90c8ba36e2de2c14569b31ab148a673cb81 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 22 七月 2025 15:01:05 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |   85 ++++++++++++++++++++----------------------
 1 files changed, 40 insertions(+), 45 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 d956b76..0b89153 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
@@ -1289,12 +1289,6 @@
 			sendMessageClient.platformStopCharging(platformStopCharging);
 			log.info(code1 + ":-------------------远程停止充电请求-------------------");
 			log.info(platformStopCharging.toString());
-			
-			//推送监管平台订单状态和订单详情
-			ChargingOrderVo chargingOrderVo = new ChargingOrderVo();
-			BeanUtils.copyProperties(order, chargingOrderVo);
-			chargingMessageClient.pushOrderInfo(chargingOrderVo);
-			chargingMessageClient.pushOrderStatus(chargingOrderVo);
 		});
 		//推送三方平台
 		if (2 == order.getOrderSource()) {
@@ -1832,9 +1826,7 @@
 		dto.setSiteIds(siteIds);
 		PageInfo<ChargingOrderListVO> pageInfo = new PageInfo<>(dto.getPageCurr(), dto.getPageSize());
 		List<ChargingOrderListVO> list = this.baseMapper.chargingList(pageInfo, dto, startTime1, startTime2, endTime1, endTime2);
-		List<Integer> siteIdsList = list.stream().map(ChargingOrderListVO::getSiteId).collect(Collectors.toList());
-		if (siteIdsList.isEmpty()) siteIdsList.add(-1);
-		List<Site> sites = siteClient.getSiteByIds(siteIdsList).getData();
+		List<Site> sites = siteClient.getSiteAll().getData();
 		
 		for (ChargingOrderListVO chargingOrderListVO : list) {
 			if (roleType == 2) {
@@ -2329,6 +2321,10 @@
 			return R.ok();
 		}
 		try {
+			Object cacheObject = redisService.getCacheObject("chargingOrderStatus:" + vo.getTransaction_serial_number());
+			if(null != cacheObject && 5 == (int)cacheObject){
+				return R.ok();
+			}
 			TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, vo.getTransaction_serial_number()));
 			if (null == chargingOrder) {
 				return R.ok();
@@ -2539,31 +2535,28 @@
 			//退款金额=充值金额-实际支付金额
 			BigDecimal refundAmount = rechargeAmount.subtract(payAmount);
 			
-			TChargingOrder order = new TChargingOrder();
-			order.setId(chargingOrder.getId());
-			order.setAppUserId(chargingOrder.getAppUserId());
 			UploadRealTimeMonitoringData uploadRealTimeMonitoringData = uploadRealTimeMonitoringDataService.getLastDataById(chargingOrder.getCode());
 			if (null != uploadRealTimeMonitoringData && null == chargingOrder.getEndMode()) {
 				Integer soc = uploadRealTimeMonitoringData.getSoc();
 				if (soc >= 98) {
-					order.setEndMode(2);
-				} else if (chargingOrder.getResidualAmount().compareTo(new BigDecimal(1)) <= 0) {
-					order.setEndMode(3);
+					chargingOrder.setEndMode(2);
+				} else if (null != chargingOrder.getResidualAmount() && chargingOrder.getResidualAmount().compareTo(new BigDecimal(1)) <= 0) {
+					chargingOrder.setEndMode(3);
 				} else {
-					order.setEndMode(0);
+					chargingOrder.setEndMode(1);
 				}
 			}
-			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")));
-			order.setEndTime(LocalDateTime.parse(vo.getEnd_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS")));
-			order.setStatus(5);
-			order.setOrderAmount(orderAmount.setScale(2, RoundingMode.HALF_EVEN));
-			order.setElectrovalence(periodElectricPrice_total.setScale(2, RoundingMode.HALF_EVEN));
-			order.setChargingCapacity(vo.getTotal_electricity());
-			order.setElectricity(vo.getTotal_electricity());
-			order.setVipDiscountAmount(vipDiscountAmount_total);
+			chargingOrder.setResidualAmount(rechargeAmount.subtract(total).setScale(2, RoundingMode.HALF_EVEN));
+			chargingOrder.setStartTime(LocalDateTime.parse(vo.getStart_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS")));
+			chargingOrder.setEndTime(LocalDateTime.parse(vo.getEnd_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS")));
+			chargingOrder.setStatus(5);
+			chargingOrder.setOrderAmount(orderAmount.setScale(2, RoundingMode.HALF_EVEN));
+			chargingOrder.setElectrovalence(periodElectricPrice_total.setScale(2, RoundingMode.HALF_EVEN));
+			chargingOrder.setChargingCapacity(vo.getTotal_electricity());
+			chargingOrder.setElectricity(vo.getTotal_electricity());
+			chargingOrder.setVipDiscountAmount(vipDiscountAmount_total);
 			if (vipDiscountAmount_total.compareTo(BigDecimal.ZERO) == 0) {
-				order.setVipDiscount(BigDecimal.valueOf(1));
+				chargingOrder.setVipDiscount(BigDecimal.valueOf(1));
 			}
 			
 			//计算优惠券
@@ -2588,9 +2581,9 @@
 						appCoupon.setStatus(2);
 						appCouponClient.updateAppCoupon(appCoupon);
 					} else {
-						order.setAppCouponId(null);
-						order.setCouponDiscountAmount(BigDecimal.ZERO);
 						appCouponClient.refund(chargingOrder.getAppCouponId().toString());
+						chargingOrder.setAppCouponId(null);
+						chargingOrder.setCouponDiscountAmount(BigDecimal.ZERO);
 					}
 				}
 				if (2 == preferentialMode) {
@@ -2610,8 +2603,8 @@
 						appCoupon.setStatus(2);
 						appCouponClient.updateAppCoupon(appCoupon);
 					} else {
-						order.setAppCouponId(null);
-						order.setCouponDiscountAmount(BigDecimal.ZERO);
+						chargingOrder.setAppCouponId(null);
+						chargingOrder.setCouponDiscountAmount(BigDecimal.ZERO);
 						appCouponClient.refund(chargingOrder.getAppCouponId().toString());
 					}
 				}
@@ -2625,13 +2618,15 @@
 			if (serviceCharge_total.compareTo(BigDecimal.ZERO) > 0) {
 				serviceCharge_total = serviceCharge_total.subtract(couponDiscount);
 			}
-			order.setCouponDiscountAmount(couponDiscount.setScale(2, RoundingMode.HALF_EVEN));
-			order.setServiceCharge(serviceCharge_total.setScale(2, RoundingMode.HALF_EVEN));
-			order.setPaymentAmount(payAmount.setScale(2, RoundingMode.HALF_EVEN));
-			order.setRefundAmount(refundAmount.setScale(2, RoundingMode.HALF_EVEN));
-			order.setRefundStatus(1);
-			this.updateById(order);
-			chargingOrder = this.getById(order.getId());
+			chargingOrder.setCouponDiscountAmount(couponDiscount.setScale(2, RoundingMode.HALF_EVEN));
+			chargingOrder.setServiceCharge(serviceCharge_total.setScale(2, RoundingMode.HALF_EVEN));
+			chargingOrder.setPaymentAmount(payAmount.setScale(2, RoundingMode.HALF_EVEN));
+			chargingOrder.setRefundAmount(refundAmount.setScale(2, RoundingMode.HALF_EVEN));
+			chargingOrder.setRefundStatus(1);
+			this.updateById(chargingOrder);
+			redisService.setCacheObject("chargingOrderStatus:" + vo.getTransaction_serial_number(), 5, 100L, TimeUnit.SECONDS);
+			
+			chargingOrder = this.getById(chargingOrder.getId());
 			
 			//推送三方平台
 			if (2 == chargingOrder.getOrderSource()) {
@@ -2648,9 +2643,9 @@
 			}
 			
 			//开始将优惠券优惠的金额添加到明细中
-			BigDecimal couponDiscountAmount = order.getCouponDiscountAmount();
+			BigDecimal couponDiscountAmount = chargingOrder.getCouponDiscountAmount();
 			if (null != couponDiscountAmount && couponDiscountAmount.compareTo(BigDecimal.ZERO) > 0) {
-				List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.list(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, order.getId()));
+				List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.list(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId()));
 				BigDecimal reduce = list.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
 				for (TChargingOrderAccountingStrategy chargingOrderAccountingStrategy : list) {
 					BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodServicePrice();
@@ -2807,6 +2802,12 @@
 			summaryData.setElectricPrice(electronic_reduce.setScale(2, BigDecimal.ROUND_HALF_EVEN));
 			summaryData.setServicePrice(serviceMoney.setScale(2, BigDecimal.ROUND_HALF_EVEN));
 			chargingOrderSummaryDataService.save(summaryData);
+			
+			//推送监管平台订单状态和订单详情
+			ChargingOrderVo chargingOrderVo = new ChargingOrderVo();
+			BeanUtils.copyProperties(chargingOrder, chargingOrderVo);
+			chargingMessageClient.pushOrderInfo(chargingOrderVo);
+			chargingMessageClient.pushOrderStatus(chargingOrderVo);
 		} catch (Exception e) {
 			e.printStackTrace();
 		} finally {
@@ -4183,12 +4184,6 @@
 			sendMessageClient.platformStopCharging(platformStopCharging);
 			log.info(code1 + ":-------------------远程停止充电请求-------------------");
 			log.info(platformStopCharging.toString());
-			
-			//推送监管平台订单状态和订单详情
-			ChargingOrderVo chargingOrderVo = new ChargingOrderVo();
-			BeanUtils.copyProperties(chargingOrder, chargingOrderVo);
-			chargingMessageClient.pushOrderInfo(chargingOrderVo);
-			chargingMessageClient.pushOrderStatus(chargingOrderVo);
 		});
 		return R.ok();
 	}

--
Gitblit v1.7.1