From 71d710e252dccfaf35804c5d0e6a3f00dac9be2b Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期三, 11 九月 2024 09:30:01 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UploadRealTimeMonitoringDataMessageListener.java |   44 +++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UploadRealTimeMonitoringDataMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UploadRealTimeMonitoringDataMessageListener.java
index dc6342c..2756d20 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UploadRealTimeMonitoringDataMessageListener.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UploadRealTimeMonitoringDataMessageListener.java
@@ -1,7 +1,11 @@
 package com.ruoyi.integration.rocket.listener;
 
 import com.ruoyi.chargingPile.api.feignClient.AccountingStrategyDetailClient;
+import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
+import com.ruoyi.chargingPile.api.feignClient.FaultMessageClient;
 import com.ruoyi.chargingPile.api.model.TAccountingStrategyDetail;
+import com.ruoyi.chargingPile.api.model.TChargingGun;
+import com.ruoyi.chargingPile.api.model.TFaultMessage;
 import com.ruoyi.integration.api.model.Online;
 import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
 import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService;
@@ -11,6 +15,7 @@
 import com.ruoyi.order.api.model.TChargingOrder;
 import com.ruoyi.order.api.query.UploadRealTimeMonitoringDataQuery;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.rocketmq.spring.annotation.MessageModel;
 import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
 import org.apache.rocketmq.spring.core.RocketMQListener;
 import org.springframework.beans.BeanUtils;
@@ -20,14 +25,16 @@
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.time.LocalDateTime;
 import java.util.Objects;
 
 @Slf4j
 @Component
 @RocketMQMessageListener(
-        consumerGroup = "enhance_consumer_group",
-        topic = "rocket_enhance",
-        selectorExpression = "*",
+        messageModel = MessageModel.CLUSTERING,
+        consumerGroup = "charge_upload_real_time_monitoring_data",
+        topic = "charge_upload_real_time_monitoring_data",
+        selectorExpression = "upload_real_time_monitoring_data",
         consumeThreadMax = 5 //默认是64个线程并发消息,配置 consumeThreadMax 参数指定并发消费线程数,避免太大导致资源不够
 )
 public class UploadRealTimeMonitoringDataMessageListener extends EnhanceMessageHandler<UploadRealTimeMonitoringDataMessage> implements RocketMQListener<UploadRealTimeMonitoringDataMessage> {
@@ -39,6 +46,10 @@
     private ChargingOrderClient chargingOrderClient;
     @Resource
     private AccountingStrategyDetailClient accountingStrategyDetailClient;
+    @Resource
+    private ChargingGunClient chargingGunClient;
+    @Resource
+    private FaultMessageClient faultMessageClient;
 
 
     @Override
@@ -73,6 +84,33 @@
         BeanUtils.copyProperties(uploadRealTimeMonitoringData, query);
         chargingOrderClient.chargeMonitoring(query);
 
+        TChargingGun chargingGun = chargingGunClient.getChargingGunByCode(message.getCharging_gun_code()).getData();
+        if(Objects.nonNull(chargingGun)){
+            // 存储状态信息
+            TFaultMessage faultMessage = new TFaultMessage();
+            if(message.getCharging_gun_status().equals(0) || message.getCharging_gun_status().equals(1)){
+                faultMessage.setSiteId(chargingGun.getSiteId());
+                faultMessage.setChargingPileId(chargingGun.getChargingPileId());
+                faultMessage.setChargingGunId(chargingGun.getId());
+                switch (message.getCharging_gun_status()){
+                    case 0:
+                        faultMessage.setStatus(1);
+                        break;
+                    case 1:
+                        faultMessage.setStatus(2);
+                        break;
+                }
+                faultMessage.setDownTime(LocalDateTime.now());
+                faultMessageClient.createFaultMessage(faultMessage);
+            }else {
+                // 空闲 充电 查询是否该设备之前存在离线记录或者故障记录
+                faultMessage = faultMessageClient.getFaultMessageByGunId(chargingGun.getId()).getData();
+                if(Objects.nonNull(faultMessage)){
+                    faultMessage.setEndTime(LocalDateTime.now());
+                    faultMessageClient.updateFaultMessage(faultMessage);
+                }
+            }
+        }
     }
 
     @Override

--
Gitblit v1.7.1