From a9098372191b3c51995d41ee28404d1b71244d98 Mon Sep 17 00:00:00 2001
From: jiazx0107@163.com <jiazx0107@163.com>
Date: 星期二, 12 十二月 2023 18:41:04 +0800
Subject: [PATCH] 提交网关心跳和设备状态2

---
 src/main/java/com/fzzy/api/service/ApiTriggerService.java                     |   22 ++++++-
 src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java              |   26 +++++---
 src/main/java/com/fzzy/data/ConfigData.java                                   |    7 +
 src/main/java/com/fzzy/gateway/hx2023/service/HxGatewayRemoteServiceImpl.java |   33 ----------
 src/main/java/com/fzzy/gateway/hx2023/kafka/KafkaDeviceReportService.java     |    2 
 src/main/java/com/fzzy/gateway/view/GatewayDevice.view.xml                    |   12 +++
 src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java                     |   22 +++---
 src/main/java/com/fzzy/gateway/entity/GatewayDevice.java                      |    6 +-
 src/main/resources/application.yml                                            |    3 
 9 files changed, 69 insertions(+), 64 deletions(-)

diff --git a/src/main/java/com/fzzy/api/service/ApiTriggerService.java b/src/main/java/com/fzzy/api/service/ApiTriggerService.java
index adc7454..89ce105 100644
--- a/src/main/java/com/fzzy/api/service/ApiTriggerService.java
+++ b/src/main/java/com/fzzy/api/service/ApiTriggerService.java
@@ -9,11 +9,10 @@
 import com.fzzy.api.utils.RedisConst;
 import com.fzzy.api.utils.RedisUtil;
 import com.fzzy.api.view.repository.ApiTriggerRep;
-
 import org.apache.commons.lang.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -34,10 +33,10 @@
 
     private String DEFAULT_MAP_KEY = "DEFAULT";
 
-    @Autowired
+    @Resource
     private RedisUtil redisUtil;
 
-    @Autowired
+    @Resource
     private ApiTriggerRep apiTriggerRep;
 
 
@@ -158,6 +157,21 @@
 
 
     /**
+     * 鍦ㄧ嚎鎴栬�呬笉鍦ㄧ嚎
+     * <p>
+     * ${dorado.getDataProvider("apiTriggerService#triggerOnline").getResult()}
+     *
+     * @return
+     */
+    @DataProvider
+    public List<ApiTrigger> triggerOnline() {
+        List<ApiTrigger> list = new ArrayList<>();
+        list.add(new ApiTrigger(Constant.YN_N,"绂荤嚎"));
+        list.add(new ApiTrigger(Constant.YN_Y,"鍦ㄧ嚎"));
+        return list;
+    }
+
+    /**
      * 椤甸潰涓嬫媺妗嗕娇鐢紝鏍规嵁鐖剁紪鐮佽幏鍙栵紝鐖剁紪鐮佺殑瀹氭敞鎰忓湪 @See Constant
      * <p>
      * ${dorado.getDataProvider("apiTriggerService#trigger").getResult("PARENT_CODE")}
diff --git a/src/main/java/com/fzzy/data/ConfigData.java b/src/main/java/com/fzzy/data/ConfigData.java
index 6d80342..91689d3 100644
--- a/src/main/java/com/fzzy/data/ConfigData.java
+++ b/src/main/java/com/fzzy/data/ConfigData.java
@@ -24,6 +24,9 @@
     @Value("${igds.img-path}")
     private String imgPath;
 
-    @Value("${igds.weather-url}")
-    private String weatherUrl;
+    @Value("${igds.weather-path}")
+    private String weatherPath;
+
+    @Value("${igds.city-id}")
+    private String cityId;
 }
diff --git a/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java b/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java
index 0257ad6..b29de93 100644
--- a/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java
+++ b/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java
@@ -1,12 +1,7 @@
 package com.fzzy.gateway;
 
 import com.alibaba.fastjson.JSON;
-import com.fzzy.api.data.ApiParam;
 import com.fzzy.api.data.GatewayDeviceProtocol;
-import com.fzzy.api.entity.ApiConfs;
-import com.fzzy.api.service.*;
-import com.fzzy.api.utils.ContextUtil;
-import com.fzzy.api.utils.RedisUtil;
 import com.fzzy.data.ConfigData;
 import com.fzzy.gateway.api.GatewayRemoteManager;
 import com.fzzy.gateway.data.BaseReqData;
@@ -15,17 +10,13 @@
 import com.fzzy.gateway.entity.GatewayDevice;
 import com.fzzy.gateway.service.GatewayConfService;
 import com.fzzy.gateway.util.GatewayHttpUtil;
-import jdk.nashorn.internal.runtime.regexp.joni.Config;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
-import org.apache.commons.lang.time.DateUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
 import java.util.Collection;
-import java.util.Date;
 import java.util.List;
 
 /**
@@ -88,10 +79,19 @@
     public void doWeatherExe() {
 
         try {
-            String url = configData.getWeatherUrl();
+            String url = configData.getWeatherPath();
 
-            url = url.replace("{appId}", DEFAULT_APP_ID).replace("{appsecret}", DEFAULT_APP_SECRET).replace("{cityid}", DEFAULT_CITYID);
+            if (null == url) {
+                url = DEFAULT_URL;
+            }
 
+            url = url.replace("{appId}", DEFAULT_APP_ID).replace("{appsecret}", DEFAULT_APP_SECRET);
+
+            if (StringUtils.isNotEmpty(configData.getCityId())) {
+                url = url.replace("{cityid}", configData.getCityId());
+            } else {
+                url = url.replace("{cityid}", DEFAULT_CITYID);
+            }
 
             log.debug("------姘旇薄璇锋眰淇℃伅URL---{}", url);
             String result = GatewayHttpUtil.doGet(url);
diff --git a/src/main/java/com/fzzy/gateway/entity/GatewayDevice.java b/src/main/java/com/fzzy/gateway/entity/GatewayDevice.java
index 9d34078..4670371 100644
--- a/src/main/java/com/fzzy/gateway/entity/GatewayDevice.java
+++ b/src/main/java/com/fzzy/gateway/entity/GatewayDevice.java
@@ -119,9 +119,9 @@
     @PropertyDef(label = "绛掍粨灞傝鍒�", description = "閽堝绛掍粨")
     private String cableCir;
 
-    @Transient
-    @PropertyDef(label = "璁惧鍦ㄧ嚎鐘舵��")
-    private String status = Constant.YN_N;
+    @Column(name = "STATUS_", length = 2)
+    @PropertyDef(label = "鍦ㄧ嚎鐘舵��")
+    private String status = Constant.YN_Y;
 
     @Transient
     @PropertyDef(label = "璁惧涓婄嚎鏃堕棿")
diff --git a/src/main/java/com/fzzy/gateway/hx2023/kafka/KafkaDeviceReportService.java b/src/main/java/com/fzzy/gateway/hx2023/kafka/KafkaDeviceReportService.java
index 7aa9969..4b17a11 100644
--- a/src/main/java/com/fzzy/gateway/hx2023/kafka/KafkaDeviceReportService.java
+++ b/src/main/java/com/fzzy/gateway/hx2023/kafka/KafkaDeviceReportService.java
@@ -31,7 +31,7 @@
             // 娑堟伅鍦ㄥ垎鍖哄唴鐨刼ffset
             long offset = success.getRecordMetadata().offset();
 
-            log.info("---鎺ㄩ�佽嚦KAFKA鎴愬姛--:{}-{}-{}-{}", topic, partition, offset, sendData);
+            log.info("---鎺ㄩ�佽嚦KAFKA鎴愬姛--:{}-{}", topic, sendData);
         }, failure -> {
             log.info("---鎺ㄩ�佽嚦KAFKA澶辫触--:{}-{}-{}-{}", topic, sendData);
             rePublishWithTopic(sendData, topic);
diff --git a/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewayRemoteServiceImpl.java b/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewayRemoteServiceImpl.java
index f8b3c0a..fd081d6 100644
--- a/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewayRemoteServiceImpl.java
+++ b/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewayRemoteServiceImpl.java
@@ -135,8 +135,6 @@
 
             String messageInfo = JSONObject.toJSONString(heartBeatData);
 
-            log.info("---缃戝叧蹇冭烦鎺ㄩ��--{}-{}", topic, messageInfo);
-
             kafkaDeviceReportService.publishWithTopic(messageInfo, topic);
 
 
@@ -145,40 +143,13 @@
         }
 
         //鎵ц褰撳墠缃戝叧鐨勮澶囩姸鎬佹帹閫�
+        log.info("------------瀹氭椂璁惧鐘舵�佹墽琛�---------{}", gatewayConf.getKqmc());
         pushDeviceStatus(gatewayConf);
     }
 
     @Override
     public void pushInfo(GatewayConf gatewayConf) {
-        try {
-
-            if (StringUtils.isEmpty(gatewayConf.getApiUrl())) {
-                return;
-            }
-
-            gatewayConf = getCacheConf(gatewayConf.getKqdm());
-            //缃戝叧蹇冭烦鎺ュ彛
-            Map<String, String> params = new HashMap<>();
-            params.put("token", gatewayConf.getAccessToken());
-            params.put("gatewayId", gatewayConf.getGatewayId());
-            params.put("gatewayIp", gatewayConf.getGatewayIp());
-            params.put("gatewayMac", null == gatewayConf.getGatewayMac() ? "鏃�" : gatewayConf.getGatewayMac());
-            params.put("gatewayCPU", null == gatewayConf.getGatewayCPU() ? "鏃�" : gatewayConf.getGatewayCPU());
-            params.put("gatewayMem", null == gatewayConf.getGatewayMem() ? "鏃�" : gatewayConf.getGatewayMem());
-            params.put("gatewayHardDisk", null == gatewayConf.getGatewayHardDisk() ? "鏃�" : gatewayConf.getGatewayHardDisk());
-            params.put("timestamp", System.currentTimeMillis() + "");
-
-            String sign = getSign(params, gatewayConf);
-            params.put("sign", sign);
-
-            String url = gatewayConf.getApiUrl() + "reserver/api/iot/equipment/heartbeat";
-
-            String jsonStr = GatewayHttpUtil.doGet(url, params);
-            log.info("---鎺ㄩ�佺綉鍏充俊鎭�-杩斿洖---{}", jsonStr);
-
-        } catch (Exception e) {
-            log.error("------鎺ㄩ�佺綉鍏充俊鎭�--鎵ц澶辫触-----{}", e);
-        }
+        //DO NOTHING
     }
 
 
diff --git a/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java b/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java
index 4f68178..96f40ed 100644
--- a/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java
+++ b/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java
@@ -5,6 +5,7 @@
 import com.bstek.dorado.annotation.Expose;
 import com.fzzy.api.Constant;
 import com.fzzy.api.data.ApiCommonDevice;
+import com.fzzy.api.data.GatewayDeviceType;
 import com.fzzy.api.utils.ContextUtil;
 import com.fzzy.gateway.GatewayUtils;
 import com.fzzy.gateway.entity.GatewayDevice;
@@ -42,15 +43,14 @@
 
         List<GatewayDevice> result = new ArrayList<>();
 
-        GatewayDevice cacheDevice;
+        ApiCommonDevice commonDevice;
         for (GatewayDevice device : list) {
-            device.setStatus(Constant.YN_Y);
-            cacheDevice = GatewayUtils.getCacheByDeviceId(device.getDeviceId());
-            if (null != cacheDevice) {
-                device.setIp(cacheDevice.getIp());
-                device.setPort(cacheDevice.getPort());
-                device.setStatus(cacheDevice.getStatus());
-                device.setOnlineTime(cacheDevice.getOnlineTime());
+            commonDevice = Constant.getCommonDeviceCache(device.getDeviceSn());
+            if (null != commonDevice) {
+                device.setIp(commonDevice.getIp());
+                device.setPort(commonDevice.getPort());
+                device.setStatus(commonDevice.getStatus());
+                device.setOnlineTime(commonDevice.getOnlineTime());
             }
             result.add(device);
         }
@@ -66,6 +66,14 @@
     public void updateSave(GatewayDevice data) {
         GatewayDevice data2 = new GatewayDevice();
         BeanUtils.copyProperties(data, data2);
+
+
+        if (null == data2.getStatus()) {
+            data.setStatus(Constant.YN_Y);
+            if (GatewayDeviceType.TYPE_07.equals(data2.getType())) {
+                data.setStatus(Constant.YN_N);
+            }
+        }
 
         if (null == data2.getDeviceSn()) {
             if (null != data2.getIp()) {
@@ -142,9 +150,7 @@
         for (GatewayDevice device : list) {
             device.setIp(commonDevice.getIp());
             device.setPort(commonDevice.getPort());
-            //device.setOnlineTime(new Date());
             device.setStatus(Constant.YN_N);
-
             GatewayUtils.add2Cache(device);
         }
     }
diff --git a/src/main/java/com/fzzy/gateway/view/GatewayDevice.view.xml b/src/main/java/com/fzzy/gateway/view/GatewayDevice.view.xml
index 6d1e9a8..89f3b83 100644
--- a/src/main/java/com/fzzy/gateway/view/GatewayDevice.view.xml
+++ b/src/main/java/com/fzzy/gateway/view/GatewayDevice.view.xml
@@ -117,8 +117,13 @@
         <Property name="label">浣嶇疆</Property>
       </PropertyDef>
       <PropertyDef name="status">
-        <Property/>
+        <Property></Property>
         <Property name="label">鍦ㄧ嚎鐘舵��</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;apiTriggerService#triggerOnline&quot;).getResult()}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
       </PropertyDef>
       <PropertyDef name="onlineTime">
         <Property name="dataType">DateTime</Property>
@@ -431,6 +436,11 @@
               <Property name="property">cableCir</Property>
               <Editor/>
             </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">status</Property>
+              <Property name="property">status</Property>
+              <Editor/>
+            </AutoFormElement>
           </AutoForm>
         </Container>
       </Children>
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 80e8180..64fe8d6 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -42,4 +42,5 @@
     companyId: 5326
   file-path: C:/app/igds-api
   img-path: D:/IGDS/FILE/
-  weather-url: https://v1.yiketianqi.com/api?unescape=1&version=v61&appid={appId}&appsecret={appsecret}&cityid={cityid}
+  weather-path: https://v1.yiketianqi.com/api?unescape=1&version=v61&appid={appId}&appsecret={appsecret}&cityid={cityid}
+  city-id:

--
Gitblit v1.9.3