From 0911dabe2e8dff4d79c1243d2d613600b3eeeb4d Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 08 七月 2026 16:00:34 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |   25 ++++++++++++++++++-------
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java                     |    9 +++++++++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java    |    5 +++++
 3 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index edce79f..438247f 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -33,6 +33,7 @@
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
 import com.ruoyi.order.api.dto.ChargingStatisticeDTO;
 import com.ruoyi.order.api.model.*;
 import com.ruoyi.order.api.query.ChargingOrderQuery;
@@ -827,6 +828,10 @@
     @ResponseBody
     @PostMapping(value = "/refund")
     public R refund(@RequestParam(value = "code") String code){
+        List<UploadRealTimeMonitoringData> dataByOrderCode = uploadRealTimeMonitoringDataService.getDataByOrderCode(code);
+        if(!dataByOrderCode.isEmpty()){
+            return R.fail("订单有充电数据,无法全额退款");
+        }
         chargingOrderService.refund(code);
         return R.ok();
     }
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 6756bd9..ac69b53 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
@@ -1057,7 +1057,7 @@
 		log.info(code + ":-------------------开始检查调起充电结果-------------------" + data.toString());
 		Site site = siteClient.getSiteByIds(Arrays.asList(chargingOrder.getSiteId())).getData().get(0);
 		if (!data.isEmpty()) {
-			PlatformStartChargingReply platformStartChargingReply = data.get(1);
+			PlatformStartChargingReply platformStartChargingReply = data.get(0);
 			Integer startup_result = platformStartChargingReply.getStartup_result();
 			Integer failure_cause = platformStartChargingReply.getFailure_cause();
 			Integer counter = counter_map.get(code);
@@ -1082,8 +1082,11 @@
 				chargingOrder.setStatus(2);
 				chargingOrder.setEndMode(0);
 				this.updateById(chargingOrder);
-				//启动失败后取消订单,退款操作
-				refund(code);
+                List<UploadRealTimeMonitoringData> dataByOrderCode = uploadRealTimeMonitoringDataService.getDataByOrderCode(code);
+                if(dataByOrderCode.isEmpty()){
+                    //启动失败后取消订单,退款操作
+                    refund(code);
+                }
 			} else {
 				//启动成功
 				preChargeCheck1.setStartupSuccess(2);
@@ -1167,8 +1170,11 @@
 				order.setStatus(2);
 				order.setEndMode(0);
 				this.updateById(order);
-				//启动失败后取消订单,退款操作
-				refund(code);
+                List<UploadRealTimeMonitoringData> dataByOrderCode = uploadRealTimeMonitoringDataService.getDataByOrderCode(code);
+                if(dataByOrderCode.isEmpty()){
+                    //启动失败后取消订单,退款操作
+                    refund(code);
+                }
 				redisService.setCacheObject(key, preChargeCheck1, 24L, TimeUnit.HOURS);
 				//推送三方平台订单状态
 				if (2 == chargingOrder.getOrderSource() && 1 == site.getIsOpenSynchronization()) {
@@ -1236,8 +1242,13 @@
 			order.setStatus(2);
 			order.setEndMode(0);
 			this.updateById(order);
-			//启动失败后取消订单,退款操作
-			refund(code);
+
+
+            List<UploadRealTimeMonitoringData> dataByOrderCode = uploadRealTimeMonitoringDataService.getDataByOrderCode(code);
+            if(dataByOrderCode.isEmpty()){
+                //启动失败后取消订单,退款操作
+                refund(code);
+            }
 		} else {
 			//启动成功
 			preChargeCheck1.setStartupSuccess(2);
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
index 173f3da..8e6fcaf 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
@@ -319,6 +319,15 @@
                         order.setStatus(-1);
                         chargingOrderService.updateById(order);
                     }
+                }else{
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    LocalDateTime dateTime = LocalDateTime.parse(sdf.format(dataByOrderCode.get(0).getCreate_time()), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault()));
+                    if(dateTime.plusMinutes(30).isBefore(LocalDateTime.now())){
+                        order.setStartTime(LocalDateTime.parse(sdf.format(dataByOrderCode.get(dataByOrderCode.size() - 1).getCreate_time()), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault())));
+                        order.setEndTime(dateTime);
+                        order.setStatus(4);
+                        chargingOrderService.updateById(order);
+                    }
                 }
             }
 

--
Gitblit v1.7.1