From 7a4f9541331bef779a506b38a27ed5c3373c0bec Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 15 五月 2025 13:53:22 +0800
Subject: [PATCH] 开发二级等保功能及心跳消息队列修改

---
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java |   31 ++++++++++++++++++++++++++++++-
 1 files changed, 30 insertions(+), 1 deletions(-)

diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java
index e45fa9b..14214bf 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java
@@ -4,7 +4,9 @@
 import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.chargingPile.api.dto.CheckChargingStrategyDTO;
 import com.ruoyi.chargingPile.api.feignClient.AccountingStrategyDetailClient;
+import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
 import com.ruoyi.chargingPile.api.model.TAccountingStrategyDetail;
+import com.ruoyi.chargingPile.api.vo.UpdateChargingPileStatusVo;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.integration.api.model.*;
@@ -21,6 +23,7 @@
 import org.apache.rocketmq.client.producer.SendResult;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -30,6 +33,7 @@
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 
 /**
  * iotda消息监听
@@ -47,6 +51,12 @@
     private IotMessageProduce iotMessageProduce;
     @Resource
     private AccountingStrategyDetailClient accountingStrategyDetailClient;
+    
+    @Resource
+    private RedisTemplate redisTemplate;
+    
+    @Resource
+    private ChargingPileClient chargingPileClient;
     
     
     
@@ -99,7 +109,10 @@
                 break;
             case SendTagConstant.PING:
                 PingMessage pingMessage = JSON.parseObject(content.toJSONString(),PingMessage.class);
-                sendResult = enhanceProduce.pingMessage(pingMessage);
+                //存储缓存中,5分钟有效
+                redisTemplate.opsForValue().set("ping:" + pingMessage.getCharging_pile_code() + pingMessage.getCharging_gun_code(), pingMessage, 5, TimeUnit.MINUTES);
+                sendResult = null;
+//                sendResult = enhanceProduce.pingMessage(pingMessage);
 //                chargingMessage.setPingMessage(pingMessage);
 //                chargingMessageUtil.handleMessage(chargingMessage);
                 // 响应硬件
@@ -108,6 +121,22 @@
                 pong.setCharging_gun_code(pingMessage.getCharging_gun_code());
                 pong.setCharging_gun_status(0);
                 iotMessageProduce.sendMessage(pong.getCharging_pile_code(), ServiceIdMenu.PONG.getKey(), messageUtil.pong(pong));
+    
+                UpdateChargingPileStatusVo vo1 = new UpdateChargingPileStatusVo();
+                vo1.setGun_code(pingMessage.getCharging_gun_code());
+                vo1.setPile_code(pingMessage.getCharging_pile_code());
+                vo1.setStatus(pingMessage.getCharging_gun_status());
+                chargingPileClient.updateChargingPileStatus(vo1);
+                // 监管平台推送充电设备状态
+                String gunCode = pingMessage.getCharging_pile_code() + pingMessage.getCharging_gun_code();
+                ChargingMessage chargingMessage1 = new ChargingMessage();
+                chargingMessage1.setServiceId(SendTagConstant.GUN_STATUS);
+                GunStatusMessage gunStatusMessage = new GunStatusMessage();
+                gunStatusMessage.setFullNumber(gunCode);
+                chargingMessage1.setGunStatusMessage(gunStatusMessage);
+                sendResult = enhanceProduce.gunStatusMessage(chargingMessage1);
+                
+                
 //                sendResult = enhanceProduce.chargingMessage(chargingMessage);
                 break;
             case SendTagConstant.END_CHARGE:

--
Gitblit v1.7.1