From 50dde470ec18f292e8e58547ef1c4a4cbd4138b2 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 24 九月 2025 15:08:54 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |  277 +++++++++++++++++++++++++-----------------------------
 1 files changed, 128 insertions(+), 149 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 3f98910..4297ea2 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
@@ -52,7 +52,6 @@
 import com.ruoyi.order.service.TChargingOrderService;
 import com.ruoyi.order.service.TOrderEvaluateService;
 import com.ruoyi.order.service.*;
-import com.ruoyi.order.util.RedisLock;
 import com.ruoyi.order.util.mongodb.service.PlatformStartChargingReplyService;
 import com.ruoyi.order.util.mongodb.service.TransactionRecordService;
 import com.ruoyi.order.util.mongodb.service.UploadRealTimeMonitoringDataService;
@@ -584,6 +583,8 @@
 			AccountingStrategyDetailOrder accountingStrategyDetailOrder = new AccountingStrategyDetailOrder();
 			BeanUtils.copyProperties(tAccountingStrategyDetail, accountingStrategyDetailOrder);
 			accountingStrategyDetailOrder.setChargingOrderId(chargingOrder.getId());
+			accountingStrategyDetailOrder.setCreateTime(LocalDateTime.now());
+			accountingStrategyDetailOrder.setDelFlag(false);
 			list1.add(accountingStrategyDetailOrder);
 		}
 		accountingStrategyDetailOrderService.saveBatch(list1);
@@ -940,7 +941,7 @@
 			chargingGun.setStatus(4);
 			chargingGunClient.updateChargingGunById(chargingGun);
 			//推送状态给三方平台
-			tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), chargingGun.getStatus());
+			tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), 4);
 		}
 		redisService.setCacheObject("AQJC_" + order.getChargingGunId(), preChargeCheck1, 24L, TimeUnit.HOURS);
 		this.updateById(order);
@@ -1531,6 +1532,7 @@
 		if (siteIds.isEmpty()) siteIds.add(-1);
 		dto.setSiteIds(siteIds);
 		List<ChargingOrderVO> list = this.baseMapper.chargingOrder(pageInfo, dto, startTime1, startTime2, endTime1, endTime2);
+
 		BigDecimal total = new BigDecimal("0");
 		long time = 0L;
 		BigDecimal electronicMoney = new BigDecimal("0");
@@ -1603,42 +1605,7 @@
 				
 			}
 		}
-
-//		List<TChargingOrderRefund> chargingOrderRefunds = chargingOrderRefundService.lambdaQuery()
-//				.eq(TChargingOrderRefund::getRefundStatus,2).list();
-		
-		
 		Map<String, Object> map = this.baseMapper.chargingOrderNolimit(dto, startTime1, startTime2, endTime1, endTime2);
-//		for (ChargingOrderVO chargingOrderVO : list1) {
-//			if(null == chargingOrderVO.getStatus() || 5 != chargingOrderVO.getStatus()){
-//				continue;
-//			}
-//			List<TChargingOrderAccountingStrategy> list4 = list3.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderVO.getId())).collect(Collectors.toList());
-//			BigDecimal electronic_reduce = list4.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
-//			BigDecimal service_reduce = list4.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
-//			BigDecimal chargingCapacity = list4.stream().map(TChargingOrderAccountingStrategy::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add);
-//			electronicMoney = electronicMoney.add(electronic_reduce);
-//			total = total.add(chargingCapacity);
-//			if (!chargingOrderVO.getOrderSource().equals(2)) {
-//				serviceMoney = serviceMoney.add(service_reduce);
-//				paymentMoney = paymentMoney.add(electronic_reduce).add(service_reduce);
-//			}else{
-//				serviceMoney = serviceMoney.add(service_reduce.multiply(new BigDecimal("0.8")));
-//				paymentMoney = paymentMoney.add(electronic_reduce).add(service_reduce.multiply(new BigDecimal("0.8")));
-//			}
-//			if (chargingOrderVO.getStartTime()!=null && chargingOrderVO.getEndTime()!=null){
-//				LocalDateTime startTime = chargingOrderVO.getStartTime();
-//				LocalDateTime endTime = chargingOrderVO.getEndTime();
-//				// 计算时间差 单位秒
-//				long between = ChronoUnit.SECONDS.between(startTime, endTime);
-//				time+=between;
-//			}
-////			List<TChargingOrderRefund> list2 = chargingOrderRefunds.stream().filter(e -> e.getChargingOrderId() != null && e.getChargingOrderId().equals(chargingOrderVO.getId()))
-////					.collect(Collectors.toList());
-////			for (TChargingOrderRefund tChargingOrderRefund : list2) {
-////				refundMoney = refundMoney.add(tChargingOrderRefund.getRefundTotalAmount());
-////			}
-//		}
 		if (null != map) {
 			tCharingOrderVO.setTotal(map.get("total") == null ? BigDecimal.ZERO : (BigDecimal) map.get("total"));
 			tCharingOrderVO.setTime(map.get("time") == null ? 0L : (Long) map.get("time"));
@@ -1826,9 +1793,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) {
@@ -2323,6 +2288,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();
@@ -2533,31 +2502,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));
 			}
 			
 			//计算优惠券
@@ -2582,9 +2548,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) {
@@ -2604,8 +2570,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());
 					}
 				}
@@ -2619,13 +2585,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()) {
@@ -2642,9 +2610,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();
@@ -2662,9 +2630,10 @@
 			chargingGun.setStatus(2);
 			chargingGun.setChargingPower(BigDecimal.ZERO);
 			chargingGunClient.updateChargingGunById(chargingGun);
+			chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
 			//推送状态给三方平台
 			if (2 == chargingOrder.getOrderSource()) {
-				tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), chargingGun.getStatus());
+				tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), 2);
 			}
 			
 			//添加积分
@@ -2917,7 +2886,6 @@
 				tChargingOrder.setStatus(5);
 			}
 			
-			
 			TChargingOrderRefund chargingOrderRefund = new TChargingOrderRefund();
 			chargingOrderRefund.setChargingOrderId(tChargingOrder.getId());
 			chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount());
@@ -2926,7 +2894,7 @@
 			chargingOrderRefund.setRefundTime(LocalDateTime.now());
 			chargingOrderRefund.setCode(tChargingOrder.getCode());
 			SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
-			chargingOrderRefund.setRefundCode("GDF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue()));
+			chargingOrderRefund.setRefundCode("CDF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue()));
 			chargingOrderRefund.setRefundTitle("后台退款");
 			chargingOrderRefund.setRefundContent("后台退款");
 			chargingOrderRefund.setRefundReason("后台退款");
@@ -2940,7 +2908,7 @@
 				model.setOut_refund_no(chargingOrderRefund.getRefundCode());
 				model.setTransaction_id(tChargingOrder.getRechargeSerialNumber());
 				model.setReason("取消订单");
-				model.setNotify_url("/order/t-shopping-order/cancelShoppingOrderWxRefund");
+				model.setNotify_url("/payment/wx/refund/notify");
 				WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount();
 				amount.setRefund(payOrderQueryDto.getRefundAmount().multiply(new BigDecimal(100)).intValue());
 				amount.setTotal(tChargingOrder.getRechargeAmount().multiply(new BigDecimal(100)).intValue());
@@ -2993,69 +2961,69 @@
 			}
 		}
 		if (payOrderQueryDto.getType() == 2) {
-			TShoppingOrder tChargingOrder = shoppingOrderService.getById(payOrderQueryDto.getOrderId());
-			if (tChargingOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount()) == -1) {
+			TShoppingOrder shoppingOrder = shoppingOrderService.getById(payOrderQueryDto.getOrderId());
+			if (shoppingOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount()) == -1) {
 				return R.fail("退款金额需小于支付金额");
 			}
-			if ((tChargingOrder.getPaymentAmount().subtract(tChargingOrder.getRefundAmount()).compareTo(payOrderQueryDto.getRefundAmount())) == 0) {
-				tChargingOrder.setStatus(5);
+			if ((shoppingOrder.getPaymentAmount().subtract(shoppingOrder.getRefundAmount()).compareTo(payOrderQueryDto.getRefundAmount())) == 0) {
+				shoppingOrder.setStatus(5);
 			}
 			
-			TShoppingOrderRefund chargingOrderRefund = new TShoppingOrderRefund();
-			chargingOrderRefund.setShoppingOrderId(tChargingOrder.getId());
-			chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount());
-			chargingOrderRefund.setRefundStatus(1);
-			chargingOrderRefund.setPayType(tChargingOrder.getPaymentType());
-			chargingOrderRefund.setRefundTime(LocalDateTime.now());
-			chargingOrderRefund.setCode(tChargingOrder.getCode());
+			TShoppingOrderRefund shoppingOrderRefund = new TShoppingOrderRefund();
+			shoppingOrderRefund.setShoppingOrderId(shoppingOrder.getId());
+			shoppingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount());
+			shoppingOrderRefund.setRefundStatus(1);
+			shoppingOrderRefund.setPayType(shoppingOrder.getPaymentType());
+			shoppingOrderRefund.setRefundTime(LocalDateTime.now());
+			shoppingOrderRefund.setCode(shoppingOrder.getCode());
 			SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
-			chargingOrderRefund.setRefundCode("GDF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue()));
-			chargingOrderRefund.setRefundTitle("后台退款");
-			chargingOrderRefund.setRefundContent("后台退款");
-			chargingOrderRefund.setRefundReason("后台退款");
-			chargingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark());
-			chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount()));
-			chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount());
+			shoppingOrderRefund.setRefundCode("GWF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue()));
+			shoppingOrderRefund.setRefundTitle("后台退款");
+			shoppingOrderRefund.setRefundContent("后台退款");
+			shoppingOrderRefund.setRefundReason("后台退款");
+			shoppingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark());
+			shoppingOrderRefund.setRefundTotalAmount(shoppingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount()));
+			shoppingOrderRefund.setPayAmount(shoppingOrder.getPaymentAmount());
 			
-			if (1 == tChargingOrder.getPaymentType()) {
+			if (1 == shoppingOrder.getPaymentType()) {
 				WxPaymentRefundModel model = new WxPaymentRefundModel();
-				model.setOut_trade_no(tChargingOrder.getCode());
-				model.setOut_refund_no(chargingOrderRefund.getRefundCode());
-				model.setTransaction_id(tChargingOrder.getSerialNumber());
+				model.setOut_trade_no(shoppingOrder.getCode());
+				model.setOut_refund_no(shoppingOrderRefund.getRefundCode());
+				model.setTransaction_id(shoppingOrder.getSerialNumber());
 				model.setReason("取消订单");
-				model.setNotify_url("/order/t-shopping-order/cancelShoppingOrderWxRefund");
+				model.setNotify_url("/payment/wx/refund/notify");
 				WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount();
 				amount.setRefund(payOrderQueryDto.getRefundAmount().multiply(new BigDecimal(100)).intValue());
-				amount.setTotal(tChargingOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue());
+				amount.setTotal(shoppingOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue());
 				amount.setCurrency("CNY");
 				model.setAmount(amount);
 				R<Map<String, Object>> orderR = wxPaymentClient.refundOrderR(model);
 				if (200 == orderR.getCode()) {
-					tChargingOrder.setRefundStatus(2);
-					tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
-					shoppingOrderService.updateById(tChargingOrder);
-					shoppingOrderRefundService.save(chargingOrderRefund);
+					shoppingOrder.setRefundStatus(2);
+					shoppingOrder.setRefundAmount((shoppingOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : shoppingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
+					shoppingOrderService.updateById(shoppingOrder);
+					shoppingOrderRefundService.save(shoppingOrderRefund);
 					//手续费
 					Map<String, Object> amount1 = (Map<String, Object>) orderR.getData().get("amount");
 					Object refund_fee1 = amount1.get("refund_fee");
 					BigDecimal refund_fee = new BigDecimal(null == refund_fee1 ? "0" : refund_fee1.toString()).divide(new BigDecimal(100));
-					chargingOrderRefund.setRefundFee(refund_fee);
-					shoppingOrderRefundService.updateById(chargingOrderRefund);
+					shoppingOrderRefund.setRefundFee(refund_fee);
+					shoppingOrderRefundService.updateById(shoppingOrderRefund);
 				}
 			}
 			
-			if (2 == tChargingOrder.getPaymentType()) {
+			if (2 == shoppingOrder.getPaymentType()) {
 				RefundReq dto = new RefundReq();
-				dto.setOutTradeNo(tChargingOrder.getCode());
-				dto.setOutRequestNo(tChargingOrder.getCode());
+				dto.setOutTradeNo(shoppingOrder.getCode());
+				dto.setOutRequestNo(shoppingOrder.getCode());
 				dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString());
 				dto.setRefundReason("取消订单");
 				RefundResp resp = aliPaymentClient.refund(dto).getData();
 				if (null != resp) {
-					tChargingOrder.setRefundStatus(2);
-					tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
-					shoppingOrderService.updateById(tChargingOrder);
-					shoppingOrderRefundService.save(chargingOrderRefund);
+					shoppingOrder.setRefundStatus(2);
+					shoppingOrder.setRefundAmount((shoppingOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : shoppingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
+					shoppingOrderService.updateById(shoppingOrder);
+					shoppingOrderRefundService.save(shoppingOrderRefund);
 				}
 			}
 //				if(3 == tChargingOrder.getPaymentType()){
@@ -3076,65 +3044,65 @@
 		}
 		
 		if (payOrderQueryDto.getType() == 3) {
-			TVipOrder tChargingOrder = vipOrderService.getById(payOrderQueryDto.getOrderId());
-			if (tChargingOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount()) == -1) {
+			TVipOrder vipOrder = vipOrderService.getById(payOrderQueryDto.getOrderId());
+			if (vipOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount()) == -1) {
 				return R.fail("退款金额需小于支付金额");
 			}
-			TVipOrderRefund chargingOrderRefund = new TVipOrderRefund();
-			chargingOrderRefund.setVipOrderId(tChargingOrder.getId());
-			chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount());
-			chargingOrderRefund.setRefundStatus(1);
-			chargingOrderRefund.setPayType(tChargingOrder.getPaymentType());
-			chargingOrderRefund.setRefundTime(LocalDateTime.now());
-			chargingOrderRefund.setCode(tChargingOrder.getCode());
+			TVipOrderRefund vipOrderRefund = new TVipOrderRefund();
+			vipOrderRefund.setVipOrderId(vipOrder.getId());
+			vipOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount());
+			vipOrderRefund.setRefundStatus(1);
+			vipOrderRefund.setPayType(vipOrder.getPaymentType());
+			vipOrderRefund.setRefundTime(LocalDateTime.now());
+			vipOrderRefund.setCode(vipOrder.getCode());
 			SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
-			chargingOrderRefund.setRefundCode("GDF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue()));
-			chargingOrderRefund.setRefundTitle("后台退款");
-			chargingOrderRefund.setRefundContent("后台退款");
-			chargingOrderRefund.setRefundReason("后台退款");
-			chargingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark());
-			chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount()));
-			chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount());
+			vipOrderRefund.setRefundCode("HYF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue()));
+			vipOrderRefund.setRefundTitle("后台退款");
+			vipOrderRefund.setRefundContent("后台退款");
+			vipOrderRefund.setRefundReason("后台退款");
+			vipOrderRefund.setRefundRemark(payOrderQueryDto.getRemark());
+			vipOrderRefund.setRefundTotalAmount(vipOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount()));
+			vipOrderRefund.setPayAmount(vipOrder.getPaymentAmount());
 			
-			if (1 == tChargingOrder.getPaymentType()) {
+			if (1 == vipOrder.getPaymentType()) {
 				WxPaymentRefundModel model = new WxPaymentRefundModel();
-				model.setOut_trade_no(tChargingOrder.getCode());
-				model.setOut_refund_no(chargingOrderRefund.getRefundCode());
-				model.setTransaction_id(tChargingOrder.getSerialNumber());
+				model.setOut_trade_no(vipOrder.getCode());
+				model.setOut_refund_no(vipOrderRefund.getRefundCode());
+				model.setTransaction_id(vipOrder.getSerialNumber());
 				model.setReason("取消订单");
-				model.setNotify_url("/order/t-shopping-order/cancelShoppingOrderWxRefund");
+				model.setNotify_url("/payment/wx/refund/notify");
 				WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount();
 				amount.setRefund(payOrderQueryDto.getRefundAmount().multiply(new BigDecimal(100)).intValue());
-				amount.setTotal(tChargingOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue());
+				amount.setTotal(vipOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue());
 				amount.setCurrency("CNY");
 				model.setAmount(amount);
 				R<Map<String, Object>> orderR = wxPaymentClient.refundOrderR(model);
 				if (200 == orderR.getCode()) {
-					tChargingOrder.setRefundStatus(2);
-					tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
-					vipOrderService.updateById(tChargingOrder);
-					vipOrderRefundService.save(chargingOrderRefund);
+					vipOrder.setRefundStatus(2);
+					vipOrder.setRefundAmount((vipOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : vipOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
+					vipOrderService.updateById(vipOrder);
+					vipOrderRefundService.save(vipOrderRefund);
 					//手续费
 					Map<String, Object> amount1 = (Map<String, Object>) orderR.getData().get("amount");
 					Object refund_fee1 = amount1.get("refund_fee");
 					BigDecimal refund_fee = new BigDecimal(null == refund_fee1 ? "0" : refund_fee1.toString()).divide(new BigDecimal(100));
-					chargingOrderRefund.setRefundFee(refund_fee);
-					vipOrderRefundService.updateById(chargingOrderRefund);
+					vipOrderRefund.setRefundFee(refund_fee);
+					vipOrderRefundService.updateById(vipOrderRefund);
 				}
 			}
 			
-			if (2 == tChargingOrder.getPaymentType()) {
+			if (2 == vipOrder.getPaymentType()) {
 				RefundReq dto = new RefundReq();
-				dto.setOutTradeNo(tChargingOrder.getCode());
-				dto.setOutRequestNo(tChargingOrder.getCode());
+				dto.setOutTradeNo(vipOrder.getCode());
+				dto.setOutRequestNo(vipOrder.getCode());
 				dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString());
 				dto.setRefundReason("取消订单");
 				RefundResp resp = aliPaymentClient.refund(dto).getData();
 				if (null != resp) {
-					tChargingOrder.setRefundStatus(2);
-					tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
-					vipOrderService.updateById(tChargingOrder);
-					vipOrderRefundService.save(chargingOrderRefund);
+					vipOrder.setRefundStatus(2);
+					vipOrder.setRefundAmount((vipOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : vipOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
+					vipOrderService.updateById(vipOrder);
+					vipOrderRefundService.save(vipOrderRefund);
 				}
 			}
 //			if(3 == tChargingOrder.getPaymentType()){
@@ -4104,6 +4072,8 @@
 			AccountingStrategyDetailOrder accountingStrategyDetailOrder = new AccountingStrategyDetailOrder();
 			BeanUtils.copyProperties(tAccountingStrategyDetail, accountingStrategyDetailOrder);
 			accountingStrategyDetailOrder.setChargingOrderId(chargingOrder.getId());
+			accountingStrategyDetailOrder.setCreateTime(LocalDateTime.now());
+			accountingStrategyDetailOrder.setDelFlag(false);
 			list1.add(accountingStrategyDetailOrder);
 		}
 		accountingStrategyDetailOrderService.saveBatch(list1);
@@ -4218,9 +4188,9 @@
 	@Override
 	public R pushOrderInfo(String code) {
 		TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, code));
-		tcecClient.notificationEquipChargeStatus(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId());
-		tcecClient.notificationStopChargeResult(chargingOrder.getStartChargeSeq(), chargingOrder.getChargingGunId().toString(),
-				chargingOrder.getOperatorId());
+//		tcecClient.notificationEquipChargeStatus(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId());
+//		tcecClient.notificationStopChargeResult(chargingOrder.getStartChargeSeq(), chargingOrder.getChargingGunId().toString(),
+//				chargingOrder.getOperatorId());
 		tcecClient.notificationChargeOrderInfo(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId());
 		return R.ok();
 	}
@@ -4363,4 +4333,13 @@
 	public List<TChargingOrder> findChargingOrder() {
 		return this.baseMapper.findChargingOrder();
 	}
+
+	/**
+	 * 获取已结束的数据
+	 * @return
+	 */
+	@Override
+	public List<TChargingOrder> findEndChargingOrder() {
+		return this.baseMapper.findEndChargingOrder();
+	}
 }

--
Gitblit v1.7.1