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) { } }; } } 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); } 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 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 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); } } 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); } 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); } }