From db0b7644a9a5a62ac2da3cf571fee41bb8b6974f Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 25 九月 2025 15:54:15 +0800
Subject: [PATCH] 添加E路通推送数据功能

---
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/TaskUtil.java |   97 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 95 insertions(+), 2 deletions(-)

diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/TaskUtil.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/TaskUtil.java
index a463b33..af9be75 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/TaskUtil.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/util/TaskUtil.java
@@ -1,18 +1,32 @@
 package com.ruoyi.chargingPile.util;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.ruoyi.chargingPile.api.model.Site;
+import com.ruoyi.chargingPile.api.model.TChargingGun;
+import com.ruoyi.chargingPile.service.ISiteService;
+import com.ruoyi.chargingPile.service.TChargingGunService;
 import com.ruoyi.chargingPile.service.TChargingPileService;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.integration.api.elutong.model.*;
+import com.ruoyi.integration.api.feignClient.ELuTongClient;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.boot.web.context.WebServerInitializedEvent;
 import org.springframework.context.ApplicationListener;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
 
 
 /**
  * 定时任务工具类
  */
+@Slf4j
 @Component
 public class TaskUtil implements ApplicationListener<WebServerInitializedEvent> {
     
@@ -20,6 +34,15 @@
     private TChargingPileService chargingPileService;
     
     private Integer port = null;
+
+    @Resource
+    private ELuTongClient eLuTongClient;
+
+    @Resource
+    private ISiteService siteService;
+
+    @Resource
+    private TChargingGunService chargingGunService;
     
     
     @Override
@@ -35,8 +58,78 @@
     public void taskMinute(){
         if(null != port && port == 5300){
             chargingPileService.updateStatus();
+            pushStationsStatus();
         }
     }
-    
-    
+
+
+    /**
+     * 1分钟定时推送设备状态E路通
+     */
+    private void pushStationsStatus(){
+        List<Site> list = siteService.list(new LambdaQueryWrapper<Site>().eq(Site::getDelFlag, 0).isNotNull(Site::getSerAreaCode));
+        for (Site site : list) {
+            if(StringUtils.isEmpty(site.getSerAreaCode())){
+                continue;
+            }
+            StationsStatusReq stationsStatusReq = new StationsStatusReq();
+            stationsStatusReq.setOperatorId("91510903906171535D");
+            stationsStatusReq.setSerAreaCode(site.getSerAreaCode());
+            stationsStatusReq.setStationId(site.getId().toString());
+            List<StationStausInfo> stationStausInfos = new ArrayList<>();
+            stationStausInfos.add(buildStationStaus(site));
+            stationsStatusReq.setItemSize(stationStausInfos.size());
+            stationsStatusReq.setStationStausInfos(stationStausInfos);
+            R r = eLuTongClient.pushStationsStatus(stationsStatusReq);
+            if(200 != r.getCode()){
+                log.error(r.getMsg());
+            }
+        }
+
+    }
+
+
+    private StationStausInfo buildStationStaus(Site site){
+        StationStausInfo stationStausInfo = new StationStausInfo();
+        stationStausInfo.setStationId(site.getId().toString());
+        stationStausInfo.setConnectorStatusInfos(buildConnectorStatus(site));
+        return stationStausInfo;
+    }
+
+    private List<ConnectorStatusInfo> buildConnectorStatus(Site site){
+        List<TChargingGun> list = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getDelFlag, 0)
+                .eq(TChargingGun::getSiteId, site.getId()));
+        return new ArrayList<ConnectorStatusInfo>(){{
+            for (TChargingGun chargingGun : list) {
+                ConnectorStatusInfo connectorStatusInfo = new ConnectorStatusInfo();
+                connectorStatusInfo.setConnectorId(chargingGun.getId().toString());
+                switch (chargingGun.getStatus()){
+                    case 1:
+                        connectorStatusInfo.setStatus(0);
+                        break;
+                    case 2:
+                        connectorStatusInfo.setStatus(1);
+                        break;
+                    case 3:
+                        connectorStatusInfo.setStatus(2);
+                        break;
+                    case 4:
+                        connectorStatusInfo.setStatus(3);
+                        break;
+                    case 5:
+                        connectorStatusInfo.setStatus(3);
+                        break;
+                    case 6:
+                        connectorStatusInfo.setStatus(4);
+                        break;
+                    case 7:
+                        connectorStatusInfo.setStatus(255);
+                        break;
+                }
+                connectorStatusInfo.setSoc(0D);
+                connectorStatusInfo.setRemainingTime(0);
+                add(connectorStatusInfo);
+            }
+        }};
+    }
 }

--
Gitblit v1.7.1