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("apiTriggerService#triggerOnline").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