From 9a49f774763f92037a47dff48a0debd63e5865e1 Mon Sep 17 00:00:00 2001 From: huangfeng Date: Mon, 2 Dec 2024 10:16:09 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=B8=80=E8=BD=AE=E9=87=87=E9=9B=86?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E7=9B=B8=E5=B7=AE3=E7=A7=92=E5=86=85?= =?UTF-8?q?=E7=94=A8=E7=AC=AC=E4=B8=80=E4=B8=AA=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xydl/cac/iec/IEDCollectService.java | 17 +++++++++++------ src/main/java/com/xydl/cac/util/DateUtil.java | 18 ++++++++++++++++++ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/xydl/cac/iec/IEDCollectService.java b/src/main/java/com/xydl/cac/iec/IEDCollectService.java index f3eb428..5e76b04 100644 --- a/src/main/java/com/xydl/cac/iec/IEDCollectService.java +++ b/src/main/java/com/xydl/cac/iec/IEDCollectService.java @@ -34,7 +34,7 @@ public class IEDCollectService { BizConfig _bizConfig; String folder = "/record"; - String sameTime; + String firstOneTime; public IEDCollectService(IcdConfigTypeRepository configRepository, IcdConfigTypeAttRepository attRepository, IcdConfigTypeInstRepository instRepository, RptparamindexRepository rptparamindexRepository, @@ -71,7 +71,7 @@ public class IEDCollectService { try { log.info("61850开始采集数据, ied=" + ied.getName() + ", ip=" + ied.getIp() + ", port=" + ied.getPort()); this.connect(); - sameTime = null; + firstOneTime = null; if (!CollectionUtils.isEmpty(rptList)) { this.doCollectAndSave(configTypeList, rptList); } @@ -136,14 +136,19 @@ public class IEDCollectService { } private String makeSameTime(String time) { - if (sameTime == null) { - sameTime = time; + if (firstOneTime == null) { + firstOneTime = time; } else { - if (!sameTime.equals(time)) { + if (!firstOneTime.equals(time)) { + long sec = DateUtil.secondDiff(firstOneTime, time); + if (sec >= 0 && sec < 3) { + } else { + return time; + } } } - return sameTime; + return firstOneTime; } private Rptparamindex findRpt(List rptList, String paramindex) { diff --git a/src/main/java/com/xydl/cac/util/DateUtil.java b/src/main/java/com/xydl/cac/util/DateUtil.java index 3922930..d033d15 100644 --- a/src/main/java/com/xydl/cac/util/DateUtil.java +++ b/src/main/java/com/xydl/cac/util/DateUtil.java @@ -115,4 +115,22 @@ public class DateUtil { return result; } + public static long secondDiff(String str1, String str2) { + try { + Date date1 = parse(str1); + Date date2 = parse(str2); + long sec1 = date1.getTime(); + long sec2 = date2.getTime(); + if (sec1 >= sec2) { + long sec = sec1 - sec2; + return sec / 1000; + } else { + long sec = sec2 - sec1; + return sec / 1000; + } + } catch (Exception e) { + return -1; + } + } + }