From a16c9bebf9ab97e04afa67db1665549af86948fb Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 07 二月 2025 17:02:30 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile --- ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java | 39 ++++++++++++++++++++++++++++++++++----- 1 files changed, 34 insertions(+), 5 deletions(-) diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java index 12d2fa6..4124ed6 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java @@ -11,6 +11,7 @@ import com.ruoyi.chargingPile.api.model.TFaultMessage; import com.ruoyi.chargingPile.api.vo.GetChargingGunByCode; import com.ruoyi.chargingPile.api.vo.UpdateChargingPileStatusVo; +import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.integration.api.model.*; import com.ruoyi.integration.iotda.constant.SendTagConstant; import com.ruoyi.integration.iotda.enums.ServiceIdMenu; @@ -33,6 +34,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.stream.annotation.StreamListener; import org.springframework.cloud.stream.messaging.Sink; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; @@ -41,6 +43,7 @@ import java.time.LocalDateTime; import java.util.Date; import java.util.Objects; +import java.util.Set; @Slf4j @Component @@ -75,10 +78,6 @@ private UploadRealTimeMonitoringDataService uploadRealTimeMonitoringDataService; @Resource private AccountingStrategyDetailClient accountingStrategyDetailClient; - @Resource - private ChargingGunClient chargingGunClient; - @Resource - private FaultMessageClient faultMessageClient; @Autowired private ChargingHandshakeService chargingHandshakeService; @Autowired @@ -122,6 +121,9 @@ @Resource private ChargingPileClient chargingPileClient; + + @Resource + private RedisTemplate redisTemplate; @@ -340,7 +342,13 @@ //计算费用 TransactionRecordMessageVO vo = new TransactionRecordMessageVO(); BeanUtils.copyProperties(transactionRecordMessage,vo); - chargingOrderClient.endChargeBillingCharge(vo); + int code = chargingOrderClient.endChargeBillingCharge(vo).getCode(); + if(200 != code){ + //失败后添加到队列中继续处理数据 + redisTemplate.opsForSet().add(SendTagConstant.TRANSACTION_RECORD, transactionRecordMessage.getTransaction_serial_number()); + } + + // 添加实时上传记录结束记录 // 查询mogondb上一条数据 UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataService.getLastDataById(transactionRecordMessage.getTransaction_serial_number()); @@ -490,4 +498,25 @@ public void onMessage(ChargingMessage message) { super.dispatchMessage(message); } + + + /** + * 处理未正常完成费用计算的订单 + */ + public void transactionRecord(){ + Set<String> members = redisTemplate.opsForSet().members(SendTagConstant.TRANSACTION_RECORD); + for (String member : members) { + TransactionRecord transactionRecord = transactionRecordService.findOne(member); + if(null == transactionRecord){ + redisTemplate.opsForSet().remove(SendTagConstant.TRANSACTION_RECORD, member); + }else{ + TransactionRecordMessageVO vo = new TransactionRecordMessageVO(); + BeanUtils.copyProperties(transactionRecord, vo); + int code = chargingOrderClient.endChargeBillingCharge(vo).getCode(); + if(200 == code){ + redisTemplate.opsForSet().remove(SendTagConstant.TRANSACTION_RECORD, member); + } + } + } + } } \ No newline at end of file -- Gitblit v1.7.1