From 91317e7295857bdaac361d7ab59f595860eb8d7b Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期四, 05 九月 2024 10:42:40 +0800
Subject: [PATCH] 完善功能

---
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java              |    5 ++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java                |   15 ++++++-
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/BmsAbortMessageListener.java   |   10 +++++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java                         |    9 ++++
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java                   |    8 ++++
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/MotorAbortMessageListener.java |   11 +++++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java                   |   11 ++++-
 7 files changed, 63 insertions(+), 6 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
index 688bc7f..d53879f 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
@@ -78,6 +78,11 @@
             public void endCharge(String code) {
         
             }
+    
+            @Override
+            public void excelEndCharge(String code) {
+        
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
index db4dbb1..591a275 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
@@ -83,4 +83,12 @@
      */
     @PostMapping("/t-charging-order/endCharge")
     void endCharge(@RequestParam("code") String code);
+    
+    
+    /**
+     * 硬件异常结束充电后的处理逻辑
+     * @param code
+     */
+    @PostMapping("/t-charging-order/excelEndCharge")
+    void excelEndCharge(@RequestParam("code") String code);
 }
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/BmsAbortMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/BmsAbortMessageListener.java
index 9c0e654..9d6f37c 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/BmsAbortMessageListener.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/BmsAbortMessageListener.java
@@ -5,12 +5,15 @@
 import com.ruoyi.integration.mongodb.service.BmsAbortService;
 import com.ruoyi.integration.rocket.model.BmsAbortMessage;
 import com.ruoyi.integration.rocket.util.EnhanceMessageHandler;
+import com.ruoyi.order.api.feignClient.ChargingOrderClient;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
 import org.apache.rocketmq.spring.core.RocketMQListener;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
 
 @Slf4j
 @Component
@@ -24,6 +27,12 @@
 
     @Autowired
     private BmsAbortService bmsAbortService;
+    
+    @Resource
+    private ChargingOrderClient chargingOrderClient;
+    
+    
+    
     @Override
     protected void handleMessage(BmsAbortMessage message) throws Exception {
         // 此时这里才是最终的业务处理,代码只需要处理资源类关闭异常,其他的可以交给父类重试
@@ -33,6 +42,7 @@
         BeanUtils.copyProperties(message,bmsAbort);
         bmsAbortService.create(bmsAbort);
         // 业务处理
+        chargingOrderClient.excelEndCharge(bmsAbort.getTransaction_serial_number());
     }
 
     @Override
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/MotorAbortMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/MotorAbortMessageListener.java
index 9ffff0f..8b96993 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/MotorAbortMessageListener.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/MotorAbortMessageListener.java
@@ -5,12 +5,15 @@
 import com.ruoyi.integration.mongodb.service.MotorAbortService;
 import com.ruoyi.integration.rocket.model.MotorAbortMessage;
 import com.ruoyi.integration.rocket.util.EnhanceMessageHandler;
+import com.ruoyi.order.api.feignClient.ChargingOrderClient;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
 import org.apache.rocketmq.spring.core.RocketMQListener;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
 
 @Slf4j
 @Component
@@ -24,6 +27,13 @@
 
     @Autowired
     private MotorAbortService motorAbortService;
+    
+    @Resource
+    private ChargingOrderClient chargingOrderClient;
+    
+    
+    
+    
     @Override
     protected void handleMessage(MotorAbortMessage message) throws Exception {
         // 此时这里才是最终的业务处理,代码只需要处理资源类关闭异常,其他的可以交给父类重试
@@ -33,6 +43,7 @@
         BeanUtils.copyProperties(message,motorAbort);
         motorAbortService.create(motorAbort);
         // 业务处理
+        chargingOrderClient.excelEndCharge(motorAbort.getTransaction_serial_number());
     }
 
     @Override
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 4c1927c..edce507 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
@@ -792,8 +792,15 @@
      */
     @PostMapping("/endCharge")
     public void endCharge(@RequestParam("code") String code){
-        chargingOrderService.endCharge(code);
+        chargingOrderService.endCharge(code, 2);
     }
     
-
+    /**
+     * 硬件异常结束充电后的处理逻辑
+     * @param code
+     */
+    @PostMapping("/excelEndCharge")
+    public void excelEndCharge(@RequestParam("code") String code){
+        chargingOrderService.excelEndCharge(code);
+    }
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
index fabf133..78d11b6 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
@@ -147,5 +147,12 @@
 	 * 自动结束充电后的处理逻辑
 	 * @param code
 	 */
-	void endCharge(String code);
+	void endCharge(String code, Integer endMode);
+	
+	
+	/**
+	 * 异常结束充电处理逻辑
+	 * @param orderCode
+	 */
+	void excelEndCharge(String orderCode);
 }
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 ea7bafb..d41c20d 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
@@ -877,7 +877,7 @@
 			chargingOrder.setOrderAmount(total);
 		}
 		
-		if(chargingOrder.getEndMode() != 1){
+		if(chargingOrder.getEndMode() == 2){
 			chargingOrder.setEndMode(refundAmount.compareTo(BigDecimal.ZERO) > 0 ? 2 : 3);
 		}
 		chargingOrder.setStatus(5);
@@ -1488,14 +1488,14 @@
 	 */
 	@Override
 	@GlobalTransactional(rollbackFor = Exception.class)
-	public void endCharge(String orderCode) {
+	public void endCharge(String orderCode, Integer endMode) {
 		TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, orderCode));
 		Integer status = chargingOrder.getStatus();
 		if(status == 4 || status == 5){
 			return;
 		}
 		chargingOrder.setStatus(5);
-		chargingOrder.setEndMode(2);
+		chargingOrder.setEndMode(endMode);
 		this.updateById(chargingOrder);
 		
 		//计算费用,处理退款
@@ -1540,4 +1540,13 @@
 			appUserClient.updateAppUser(appUser1);
 		}
 	}
+	
+	/**
+	 * 异常结束充电处理逻辑
+	 * @param orderCode
+	 */
+	@Override
+	public void excelEndCharge(String orderCode) {
+		endCharge(orderCode, 0);
+	}
 }

--
Gitblit v1.7.1