From 312710045c2b5d84ed0dc97af4a4fe7704f619d5 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期五, 30 一月 2026 10:31:01 +0800
Subject: [PATCH] 增加定时校验网关是否在线

---
 fzzy-igdss-core/src/main/java/com/fzzy/igds/timer/JobWarnService.java      |    3 -
 fzzy-igdss-core/src/main/java/com/fzzy/igds/timer/GatewayScheduled.java    |   54 +++++++++++++++++++++++++++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java |   27 ++++++++++++-
 3 files changed, 80 insertions(+), 4 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java
index 3fc2456..f299811 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java
@@ -139,10 +139,9 @@
 
         if(isUpdateTime){
             //蹇冭烦鏃堕棿
-            ser.setHeartbeatTime(new Date());
+            ser.setUpdateTime(new Date());
         }
 
-        ser.setUpdateTime(new Date());
         ser.setStatus(status);
         gatewaySerMapper.updateById(ser);
 
@@ -159,7 +158,31 @@
 
         //鍒犻櫎缂撳瓨
         delCache(ser);
+    }
 
+    /**
+     * 鑾峰彇缁勭粐涓嬫墍鏈夌綉鍏充俊鎭�
+     * @param companyId
+     * @return
+     */
+    public List<GatewaySer> getCacheSer(String companyId) {
+        if (StringUtils.isEmpty(companyId)) {
+            companyId = ContextUtil.getCompanyId();
+        }
+
+        List<GatewaySer> result = new ArrayList<>();
+        String patten = RedisConst.buildKey(companyId, RedisConst.KEY_GATEWAY_SER_LIST) + "*";
+        Collection<String> keys = redisCache.keys(patten);
+        if (null != keys) {
+            for (String key : keys) {
+                result.add((GatewaySer) redisCache.getCacheObject(key));
+            }
+        }
+        if(result.isEmpty()){
+            result = getAllSer();
+            this.setCacheSer(result);
+        }
+        return result;
     }
 
     /**
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/timer/GatewayScheduled.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/timer/GatewayScheduled.java
new file mode 100644
index 0000000..626532d
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/timer/GatewayScheduled.java
@@ -0,0 +1,54 @@
+package com.fzzy.igds.timer;
+
+import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.domain.GatewaySer;
+import com.fzzy.igds.service.GatewaySerService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description  瀹氭椂鏍搁獙缃戝叧鏄惁鍦ㄧ嚎骞舵洿鏂�
+ * @Author CZT
+ * @Date 2026/1/30 9:47
+ */
+@Slf4j
+@Component
+public class GatewayScheduled {
+
+    @Resource
+    private GatewaySerService gatewaySerService;
+
+    /**
+     * 姣�15鍒嗘墽琛屼竴娆�
+     */
+    @Scheduled(cron = "0 0/15 * * * ?")
+    public void timer() {
+
+        //鑾峰彇缂撳瓨涓墍鏈夌綉鍏�
+        List<GatewaySer> list = gatewaySerService.getCacheSer(null);
+        if(null == list || list.isEmpty()){
+            log.error("------------鑾峰彇缃戝叧淇℃伅涓虹┖锛屼笉鏍¢獙鏄惁绂荤嚎------------");
+            return;
+        }
+
+        Date cur = new Date();
+        Date update;
+        long min = 0;
+        for (GatewaySer gatewaySer : list) {
+            update = gatewaySer.getUpdateTime();
+            //璁$畻鍒嗛挓宸�
+            min = (cur.getTime() - update.getTime())/(60*1000);
+
+            if(min > 15){
+                //璁剧疆缃戝叧绂荤嚎
+                gatewaySerService.updateStatus(gatewaySer, Constant.YN_N, false);
+            }
+        }
+
+    }
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/timer/JobWarnService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/timer/JobWarnService.java
index 729763a..7913bef 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/timer/JobWarnService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/timer/JobWarnService.java
@@ -42,8 +42,7 @@
     /**
      * 姣忓ぉ涓ょ偣鎵ц锛氳繕娆炬彁閱�
      */
-//    @Scheduled(cron = "0 0 2 * * ?")
-    @Scheduled(cron = "0 6 10 * * ?")
+    @Scheduled(cron = "0 0 2 * * ?")
     public void timer() {
         doExe();
     }

--
Gitblit v1.9.3