From 36209c007dee62444c4e2495155e9e3b44c3d14b Mon Sep 17 00:00:00 2001 From: zouyiqing <854938661@qq.com> Date: Mon, 29 Jan 2024 15:11:49 +0800 Subject: [PATCH] =?UTF-8?q?win=E4=BB=A3=E7=A0=81=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../monitor/radarData/radarData.html | 4 + .../com/ruoyi/common/utils/SocketUtil.java | 8 +- .../impl/RadarRealTimeDataServiceImpl.java | 121 +++++++++--------- .../mapper/system/PrimaryRadarDataMapper.xml | 20 +-- .../mapper/system/SysRadarMapper.xml | 6 +- 5 files changed, 82 insertions(+), 77 deletions(-) diff --git a/ruoyi-admin/src/main/resources/templates/monitor/radarData/radarData.html b/ruoyi-admin/src/main/resources/templates/monitor/radarData/radarData.html index f3c49c2..21cb170 100644 --- a/ruoyi-admin/src/main/resources/templates/monitor/radarData/radarData.html +++ b/ruoyi-admin/src/main/resources/templates/monitor/radarData/radarData.html @@ -85,6 +85,10 @@ title: 'TIME', sortable: true }, + { + field: 'radarLocation', + title: '工位', + }, { field: 'ladleNumber', title: '包号/架号' diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SocketUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SocketUtil.java index 913f3b9..2146fe7 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SocketUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SocketUtil.java @@ -24,7 +24,6 @@ public class SocketUtil { System.out.println("雷达:" + radarIp + "===" + radarLocation + ": 连接异常:{}" + connected); dataResponse.setStatus(0); dataResponse.setData(null); - return dataResponse; } InputStream inputStream = socket.getInputStream(); // 获取输入流 @@ -32,6 +31,8 @@ public class SocketUtil { byte[] buffer = new byte[available]; inputStream.read(buffer, 0, available); String hex = new BigInteger(1, buffer).toString(16); + dataResponse.setStatus(1); + RadarStatusWebSocket.sendToAll(JSON.toJSONString(dataResponse)); if (!"0".equals(hex)) { hex = "0" + hex; List decimal = new ArrayList<>(); @@ -41,11 +42,10 @@ public class SocketUtil { decimal.add(s); } dataResponse.setData(decimal); - dataResponse.setStatus(1); + return dataResponse; } - dataResponse.setStatus(1); - RadarStatusWebSocket.sendToAll(JSON.toJSONString(dataResponse)); + } catch (Exception e) { System.out.println("读取数据异常:" + radarIp); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RadarRealTimeDataServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RadarRealTimeDataServiceImpl.java index c5a2238..e6a1e1d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RadarRealTimeDataServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RadarRealTimeDataServiceImpl.java @@ -16,8 +16,7 @@ import org.springframework.stereotype.Service; import java.net.Socket; import java.util.*; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.*; import java.util.stream.Collectors; @Service @@ -59,8 +58,11 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I CompletableFuture.runAsync(() -> { while (StringUtils.equals("0",radarDelMap.get(radar.getId()))) { + long start = System.currentTimeMillis(); task(radar, socket); - System.out.println("雷达ip : =====" + radar.getRadarIp()); + + System.out.println("耗时时间: " + (System.currentTimeMillis() - start)); +// System.out.println("雷达ip : =====" + radar.getRadarIp()); } }); } catch (Exception e) { @@ -71,51 +73,49 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I } private void task(SysRadar radar, Socket socket) { + try { - try { +// long start = System.currentTimeMillis(); + Map> pulse4Number = new HashMap<>(); + int count = 0; + int consecutiveZeros = 0; +// long start = System.currentTimeMillis(); + List discernList = new ArrayList<>(); - - Map> pulse4Number = new HashMap<>(); - int count = 0 ; - int consecutiveZeros = 0; - long start = System.currentTimeMillis(); - List discernList = new ArrayList<>(); - - // socket连接成功返回数据 - DataResponse data = SocketUtil.getData(socket, radar.getRadarLocation(), radar.getRadarIp()); - // 天线号字符串转集合 - List numberList = convertStringToList(radar.getRadarNum()); - for (String number : numberList) { - if (!pulse4Number.containsKey(number)) { - pulse4Number.put(number, new ArrayList<>()); - } - List pulse4Values = pulse4Number.get(number); - if (data.getData().get(7) == 0){ - consecutiveZeros ++; - if (consecutiveZeros >= 10) { - // 10个0连续,说明该天线没有数据 从pulse4Number中删除该天线 - pulse4Number.remove(number); - - // 数据记录结束,计算最大pulse4值 - double maxPulse4 = pulse4Values.stream().mapToDouble(Integer::doubleValue).max().orElse(0); - System.out.println("天线 " + number + " 的最大pulse4值为: " + maxPulse4); - // 为下一次数据记录重置 - pulse4Values.clear(); - consecutiveZeros = 0; + // socket连接成功返回数据 + DataResponse data = SocketUtil.getData(socket, radar.getRadarLocation(), radar.getRadarIp()); + // 天线号字符串转集合 + List numberList = convertStringToList(radar.getRadarNum()); + for (String number : numberList) { + if (!pulse4Number.containsKey(number)) { + pulse4Number.put(number, new ArrayList<>()); + } + List pulse4Values = pulse4Number.get(number); + if (data.getData().get(7) == 0) { + consecutiveZeros++; + if (consecutiveZeros >= 10) { + // 10个0连续,说明该天线没有数据 从pulse4Number中删除该天线 + pulse4Number.remove(number); + + // 数据记录结束,计算最大pulse4值 + double maxPulse4 = pulse4Values.stream().mapToDouble(Integer::doubleValue).max().orElse(0); + System.out.println("天线 " + number + " 的最大pulse4值为: " + maxPulse4); + // 为下一次数据记录重置 + pulse4Values.clear(); + consecutiveZeros = 0; + } + } else { + count++; + System.out.println("天线:=== " + number + "雷达============" + radar.getRadarIp() + " 峰值为: " + data.getData().get(7) + "次数: ===" + count); + pulse4Values.add(data.getData().get(7)); } - }else { - count ++; - pulse4Values.add(data.getData().get(7)); } - } - - SysDiscern sysDiscern = copyDataToDiscern(data); - - System.out.println(radar.getRadarIp() + ": " + data); - // 雷达数据返回封装类赋值 - ModbusResponse modbusResponse = getModbusResponse(data); + SysDiscern sysDiscern = copyDataToDiscern(data); + System.out.println(radar.getRadarIp() + ": " + data); + // 雷达数据返回封装类赋值 + ModbusResponse modbusResponse = getModbusResponse(data); String tag = modbusResponse.getTagId(); // 雷达原始数据对象 @@ -136,28 +136,29 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I primaryRadarData.setRadarLocation(radar.getRadarLocation()); primaryRadarData.setRadarIp(radar.getRadarIp()); - if (modbusResponse.getValue4() != 0){ - // 给雷达识别报表赋值 - sysDiscern.setType(sysIdentifier.getType()); - sysDiscern.setRadarLocation(radar.getRadarLocation()); - sysDiscern.setLadleNumber(sysIdentifier.getLadleNumber()); - sysDiscern.setCreateTime(new Date()); + if (modbusResponse.getValue4() != 0) { + // 给雷达识别报表赋值 + sysDiscern.setType(sysIdentifier.getType()); + sysDiscern.setRadarLocation(radar.getRadarLocation()); + sysDiscern.setLadleNumber(sysIdentifier.getLadleNumber()); + sysDiscern.setCreateTime(new Date()); + } } + } else { + // 没有配置过将铁包号置空 + primaryRadarData.setLadleNumber(null); + primaryRadarData.setRadarLocation(null); + primaryRadarData.setRadarIp(radar.getRadarIp()); } - } else { - // 没有配置过将铁包号置空 - primaryRadarData.setLadleNumber(null); - primaryRadarData.setRadarLocation(null); - primaryRadarData.setRadarIp(radar.getRadarIp()); - } - if (modbusResponse.getValue4() != null && modbusResponse.getValue4() != 0) { - primaryRadarDataService.insertPrimaryRadarData(primaryRadarData); - } else { + if (modbusResponse.getValue4() != null && modbusResponse.getValue4() != 0) { + CompletableFuture.runAsync(() -> { + primaryRadarDataService.insertPrimaryRadarData(primaryRadarData); + }); + } +// System.out.println("耗时时间: " + (System.currentTimeMillis() - start)); + } catch (Exception e) { } - System.out.println("耗时时间: " + (System.currentTimeMillis() - start) ); - } catch (Exception e) { - } } @Override diff --git a/ruoyi-system/src/main/resources/mapper/system/PrimaryRadarDataMapper.xml b/ruoyi-system/src/main/resources/mapper/system/PrimaryRadarDataMapper.xml index 48cb888..2735436 100644 --- a/ruoyi-system/src/main/resources/mapper/system/PrimaryRadarDataMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/PrimaryRadarDataMapper.xml @@ -48,11 +48,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" insert into sys_primary_radar_data( id, tag_id, - value1, - value2, - value3, - value4, - value5, + value1, + value2, + value3, + value4, + value5, base_line, query_fre, number, @@ -66,11 +66,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" )values( #{id}, #{tagId}, - #{value1}, - #{value2}, - #{value3}, - #{value4}, - #{value5}, + #{value1}, + #{value2}, + #{value3}, + #{value4}, + #{value5}, #{baseLine}, #{queryFre}, #{number}, diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRadarMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRadarMapper.xml index 07c28b9..436d38a 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysRadarMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysRadarMapper.xml @@ -117,9 +117,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - - delete from sys_radar where id in (#{ids}) - + + update sys_radar set del_flag = 1 where id in (#{ids}) +