src/main/java/com/fzzy/api/Constant.java
@@ -1,6 +1,8 @@ package com.fzzy.api; import com.alibaba.fastjson.JSON; import com.fzzy.api.data.ApiCommonDevice; import lombok.extern.slf4j.Slf4j; import java.util.Date; import java.util.HashMap; @@ -9,6 +11,7 @@ /** * å ¨å±éæç±» */ @Slf4j public class Constant { @@ -322,6 +325,7 @@ public static ApiCommonDevice getCommonDeviceCache(String sn) { if (null == sn) return null; log.info("å¨çº¿è®¾å¤ï¼" + JSON.toJSONString(contextDeviceMap)); return contextDeviceMap.get(sn); } @@ -329,13 +333,22 @@ if (null == ip) return null; if (contextDeviceMap.isEmpty()) return null; log.info("å¨çº¿è®¾å¤ï¼" + JSON.toJSONString(contextDeviceMap)); for (ApiCommonDevice device : contextDeviceMap.values()) { if (ip.equals(device)) return device; if (ip.equals(device.getIp())) return device; } return null; } public static ApiCommonDevice getCommonDeviceCacheBySn(String sn) { if (null == sn) return null; if (contextDeviceMap.isEmpty()) return null; log.info("å¨çº¿è®¾å¤ï¼" + JSON.toJSONString(contextDeviceMap)); for (ApiCommonDevice device : contextDeviceMap.values()) { if (sn.equals(device.getSn())) return device; } return null; } public static ApiCommonDevice updateCacheOnline(String ip, Integer port) { ApiCommonDevice device = getCommonDeviceCacheByIp(ip); @@ -348,7 +361,8 @@ device.setCode("SUCCESS"); device.setMsg("设å¤ä¸çº¿"); device.setOnlineTime(new Date()); contextDeviceMap.put(device.getSn(), device); contextDeviceMap.put(device.getIp(), device); log.info("设å¤ä¸çº¿ï¼" + ip); return device; } @@ -363,12 +377,12 @@ device.setStatus(Constant.YN_N); device.setCode("ERROR"); device.setMsg("设å¤ç¦»çº¿"); contextDeviceMap.put(device.getSn(), device); contextDeviceMap.put(device.getIp(), device); return device; } public static void updateCache(ApiCommonDevice device) { contextDeviceMap.put(device.getSn(), device); contextDeviceMap.put(device.getIp(), device); } } src/main/java/com/fzzy/api/data/GatewayDeviceProtocol.java
@@ -13,8 +13,8 @@ TCP_FZZY_V3("TCP_FZZY_V3", "ç²®æ -飿£è´è¿æ§å¶æåè®®V3"), GRAIN_FZZY_IGDS_V40("GRAIN_FZZY_IGDS_V40", "ç²®æ -飿£è´è¿ç³»ç»V40"), GRAIN_FZZY_BHZN_WEB("GRAIN_FZZY_BHZN_WEB", "ç²®æ -FZZY-馿µ·æºè½ç½å£åè®®"), GRAIN_FZZY_ZLDZ_WEB("GRAIN_FZZY_ZLDZ_WEB", "ç²®æ -FZZY-æ£æ¥çµåç½å£åè®®"), GRAIN_FZZY_BHZN_WEB("GRAIN_FZZY_BHZN_WEB", "ç²®æ -FZZY-BHZNå£åè®®"), GRAIN_FZZY_ZLDZ_WEB("GRAIN_FZZY_ZLDZ_WEB", "ç²®æ -FZZY-ZLDZç½å£åè®®"), DEVICE_WEIGHT_HTTP("DEVICE_WEIGHT_HTTP", "å°ç£ -HTTPåè®®"), DEVICE_WEIGHT_TCP_YH("DEVICE_WEIGHT_TCP_YH", "å°ç£ -èåTCPåè®®"), DEVICE_IDCARD_HTTP("DEVICE_IDCARD_HTTP", "身份è¯-HTTPåè®®"), src/main/java/com/fzzy/gateway/GatewayUtils.java
@@ -59,6 +59,15 @@ return null; } public static GatewayDevice getCacheByDeviceSIp(String ip) { Collection<GatewayDevice> list = allCacheDevice(); if (null == list || list.isEmpty()) return null; for (GatewayDevice device : list) { if (ip.equals(device.getIp())) return device; } return null; } /** * é对ä¸ä¸ªéè®¯åæºå¯¹å¤ä¸ªä»æ åµ src/main/java/com/fzzy/gateway/hx2023/data/GrainData.java
@@ -25,4 +25,6 @@ private String weatherStation; } src/main/java/com/fzzy/gateway/hx2023/data/GrainOutPut.java
@@ -36,7 +36,9 @@ private String maxZ = "0"; private List<GrainTH> temperatureAndhumidity; private List<GrainTemp> temperature; } src/main/java/com/fzzy/gateway/hx2023/data/GrainTH.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,35 @@ package com.fzzy.gateway.hx2023.data; import lombok.Data; /** * ç²®æ ä¿¡æ¯è¯¦ç» */ @Data public class GrainTH { //æ ¹å· private String cableNum; //å±å· private String layerNumber; //æ¸©åº¦å¼ private String temperature; //æ¸©åº¦å¼ private String humidity; //ç´¢å¼ï¼ä»0å¼å§ private String position; public GrainTH() { } public GrainTH(String temperature, String humidity ,String position) { this.humidity = humidity; this.temperature = temperature; this.position = position; } } src/main/java/com/fzzy/gateway/hx2023/service/ScGatewayTestServiceImpl.java
@@ -343,6 +343,10 @@ } outPut.setTemperature(temperature); List<GrainTH> ths = new ArrayList<>(); ths.add(new GrainTH(weather.getTem()!=null?weather.getTem()+"":"",weather.getHumidity()!=null?weather.getHumidity()+"":"","1")); outPut.setTemperatureAndhumidity(ths); grain.setOutput(JSONObject.toJSONString(outPut)); src/main/java/com/fzzy/protocol/bhzn/analysis/AnalysisService.java
@@ -98,21 +98,22 @@ private void analysisGrain(IoMessage message) { try { //æ ¹æ®åæºSNè·å设å¤é ç½®ä¿¡æ¯ GatewayDevice gatewayDevice = GatewayUtils.getCacheByDeviceSn(message.getAddr()); if (null == gatewayDevice) { replayGrain(message); log.error("主æº-------->>å¹³å°ï¼è§£æç²®æ å¤±è´¥ï¼æªè·åå°ç³»ç»è®¾å¤é 置信æ¯ï¼" + message.getAddr()); return; } //æ ¹æ®åæºå°åè·ååæºä¿¡æ¯ ApiCommonDevice commonDevice = Constant.getCommonDeviceCache(message.getAddr()); ApiCommonDevice commonDevice = Constant.getCommonDeviceCache(message.getIp()); if (commonDevice == null) { replayGrain(message); log.error("主æº-------->>å¹³å°ï¼è§£æç²®æ å¤±è´¥ï¼æªè·åå°ç³»ç»ç²®æ 主æºé ç½®ï¼" + message.getAddr()); return; } //æ ¹æ®åæºSNè·å设å¤é ç½®ä¿¡æ¯ GatewayDevice gatewayDevice = GatewayUtils.getCacheByDeviceSn(commonDevice.getSn()); if (null == gatewayDevice) { replayGrain(message); log.error("主æº-------->>å¹³å°ï¼è§£æç²®æ å¤±è´¥ï¼æªè·åå°ç³»ç»è®¾å¤é 置信æ¯ï¼" + message.getAddr()); return; } //è·å请æ±ä¿¡æ¯ BaseReqData reqData = ProtocolUtils.getSyncReq(gatewayDevice.getDepotIdSys()); @@ -323,7 +324,10 @@ outPut.setAvgTemperature(NumberUtil.keepPrecision((sumT / sumNum), 1) + ""); outPut.setMinTemperature(min + ""); outPut.setMaxTemperature(min + ""); List<GrainTH> ths = new ArrayList<>(); ths.add(new GrainTH(thDto.getTempIn()!=null?thDto.getTempIn()+"":"",thDto.getHumidityIn()!=null?thDto.getHumidityIn()+"":"","1")); outPut.setTemperatureAndhumidity(ths); grain.setOutput(JSONObject.toJSONString(outPut)); GatewayDevice gatewayDeviceWeather = GatewayUtils.getCacheByDeviceTypeOne(GatewayDeviceType.TYPE_09.getCode()); src/main/java/com/fzzy/protocol/bhzn/server/BhznGrainV2ServerEngine.java
@@ -46,9 +46,8 @@ // é 置系ç»å¿è·³é´é ioServerOption.setReaderIdleTime(5 * 60); NettyServer ioServer = new NettyServer(ioServerOption, messageConsume, ioSessionListener, heartbeatProvider); ioServer = new NettyServer(ioServerOption, messageConsume, ioSessionListener, heartbeatProvider); ioServer.startup(); log.info("* "); log.info("* ========================"); src/main/java/com/fzzy/protocol/bhzn/service/Bhzn2GatewayGrainService.java
@@ -38,7 +38,7 @@ GatewayDevice device = reqData.getDevice(); //è·åè¿æ¥ä¸ç设å¤ä¿¡æ¯ ApiCommonDevice apiCommonDevice = Constant.getCommonDeviceCache(device.getDeviceSn()); ApiCommonDevice apiCommonDevice = Constant.getCommonDeviceCache(device.getIp()); if (null == apiCommonDevice) { resp.setCode(500); src/main/java/com/fzzy/protocol/fzzy/analysis/AnalysisGrain.java
@@ -159,7 +159,11 @@ } outPut.setTemperature(temperature); List<GrainTH> ths = new ArrayList<>(); ths.add(new GrainTH(response.getTIn()!=null?response.getTIn()+"":"",response.getHIn()!=null?response.getHIn()+"":"","1")); outPut.setTemperatureAndhumidity(ths); //grain.setOutput(JSONObject.toJSONString(outPut)); grain.setOutput(com.alibaba.fastjson2.JSONObject.toJSONString(outPut)); src/main/java/com/fzzy/protocol/fzzy/analysis/AnalysisService.java
@@ -47,7 +47,7 @@ } //æ§è¡çåæºä¿¡æ¯ ApiCommonDevice commonDevice = Constant.getCommonDeviceCache(message.getSn()); ApiCommonDevice commonDevice = Constant.getCommonDeviceCacheBySn(message.getSn()); if (null == commonDevice) { log.warn("æ§å¶æ------>>>å¹³å°ï¼å½åç»ç»ç¼ç ={}ï¼åæºID={}ï¼ç³»ç»æ²¡æè·åå°åæºä¿¡æ¯ï¼æ¥ææ æ³è¿è¡è§£æ", message.getCompanyId(), message.getIedId()); return; src/main/java/com/fzzy/protocol/fzzy/service/FzzyGatewayGrainService.java
@@ -36,7 +36,7 @@ GatewayDevice device = reqData.getDevice(); //è·åè¿æ¥ä¸ç设å¤ä¿¡æ¯ ApiCommonDevice apiCommonDevice = Constant.getCommonDeviceCache(device.getDeviceSn()); ApiCommonDevice apiCommonDevice = Constant.getCommonDeviceCache(device.getIp()); if (null == apiCommonDevice) { resp.setCode(500);