From 6495040bbda5308c86e852ad1b080097bfa916a9 Mon Sep 17 00:00:00 2001 From: vince <757871790@qq.com> Date: 星期三, 09 七月 2025 09:22:17 +0800 Subject: [PATCH] 优化粮温检测 --- src/main/java/com/fzzy/gateway/GatewayUtils.java | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 100 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/fzzy/gateway/GatewayUtils.java b/src/main/java/com/fzzy/gateway/GatewayUtils.java index b87a207..c0e9aee 100644 --- a/src/main/java/com/fzzy/gateway/GatewayUtils.java +++ b/src/main/java/com/fzzy/gateway/GatewayUtils.java @@ -2,7 +2,9 @@ import com.fzzy.api.Constant; import com.fzzy.api.data.ApiCommonDevice; +import com.fzzy.api.data.DepotType; import com.fzzy.api.data.GatewayDeviceType; +import com.fzzy.gateway.data.GrainCableData; import com.fzzy.gateway.entity.GatewayDevice; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; @@ -21,11 +23,6 @@ public static Map<String, GatewayDevice> cacheMapDeviceId = new HashMap<>(); /** - * 璁惧缂撳瓨 - */ - public static Map<String, GatewayDevice> cacheMapDeviceSn = new HashMap<>(); - - /** * 璁惧缂撳瓨-鍙拡瀵� */ public static Map<String, GatewayDevice> cacheMapDeviceWeight = new HashMap<>(); @@ -33,21 +30,65 @@ public static void add2Cache(GatewayDevice device) { cacheMapDeviceId.put(device.getDeviceId(), device); - cacheMapDeviceSn.put(device.getDeviceSn(), device); - //淇濆瓨鍦扮 if (GatewayDeviceType.TYPE_01.getCode().equals(device.getType())) { cacheMapDeviceWeight.put(device.getDeviceId(), device); } } + public static Collection<GatewayDevice> allCacheDevice() { + return cacheMapDeviceId.values(); + } + public static GatewayDevice getCacheByDeviceId(String deviceId) { return cacheMapDeviceId.get(deviceId); } + + /** + * 閽堝涓�涓垎鏈哄寤掗棿鐨勬儏鍐� + * + * @param deviceSn + * @return + */ public static GatewayDevice getCacheByDeviceSn(String deviceSn) { - return cacheMapDeviceSn.get(deviceSn); + Collection<GatewayDevice> list = allCacheDevice(); + if (null == list || list.isEmpty()) return null; + + for (GatewayDevice device : list) { + if (deviceSn.equals(device.getDeviceSn())) return device; + } + + 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; + } + + /** + * 閽堝涓�涓�氳鍒嗘満瀵瑰涓粨鎯呭喌 + * + * @param deviceSn + * @return + */ + public static List<GatewayDevice> getCacheByDeviceSn2(String deviceSn) { + Collection<GatewayDevice> list = allCacheDevice(); + if (null == list || list.isEmpty()) return null; + + List<GatewayDevice> result = new ArrayList<>(); + for (GatewayDevice device : list) { + if (deviceSn.equals(device.getDeviceSn())) result.add(device); + } + return result; + } + public static List<GatewayDevice> getCacheByDeviceType(String deviceType) { List<GatewayDevice> result = new ArrayList<>(); @@ -67,7 +108,7 @@ public static void removeCache(GatewayDevice data) { cacheMapDeviceId.remove(data.getDeviceId()); - cacheMapDeviceSn.remove(data.getDeviceSn()); + //cacheMapDeviceSn.remove(data.getDeviceSn()); } public static String getStatus(String sn) { @@ -87,4 +128,54 @@ public static Collection<GatewayDevice> listDeviceWeight() { return cacheMapDeviceWeight.values(); } + + public static GatewayDevice getCacheByDepotSysId(String depotSysId) { + + if (null == depotSysId) return null; + Collection<GatewayDevice> list = allCacheDevice(); + if (null == list || list.isEmpty()) return null; + + for (GatewayDevice device : list) { + if (null == device.getDepotIdSys()) continue; + if (depotSysId.equals(device.getDepotIdSys())) return device; + } + return null; + } + + + public static GrainCableData getCableData(GatewayDevice gatewayDevice) { + String cableRule = gatewayDevice.getCableRule(); + String cableCir = gatewayDevice.getCableCir(); + + GrainCableData result = new GrainCableData(); + result.setCableRule(cableRule); + result.setCableCir(cableCir); + + int cableY, cableX; + String[] attCable = cableRule.split("-"); + int cableZ = Integer.valueOf(attCable[0]); + + if (StringUtils.isEmpty(cableCir)) { + cableY = Integer.valueOf(attCable[1]); + cableX = Integer.valueOf(attCable[2]); + } else { + String[] attCir = cableCir.split("-"); + cableZ = Integer.valueOf(attCir[0]); + cableY = 1; + cableX = 0; + //閽堝澶氬湀璁$畻鎬昏繃澶氬皯鏍圭數缂� + for (int i = 0; i < attCir.length; i++) { + cableX += Integer.valueOf(attCable[i]); + } + } + + result.setCableY(cableY); + result.setCableZ(cableZ); + result.setCableX(cableX); + result.setSumNum(cableZ * cableY * cableX); + + result.setTotalCircle(attCable.length); + + return result; + } } -- Gitblit v1.9.3