From 02db7284cb1c40b624dfcd5220027795a30809a6 Mon Sep 17 00:00:00 2001 From: huangfeng Date: Mon, 9 Dec 2024 11:42:03 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A6=82=E6=9E=9C=E9=87=87=E9=9B=86?= =?UTF-8?q?=E7=9A=84=E6=97=B6=E9=97=B4=E5=B0=8F=E4=BA=8E2000=E5=B9=B4?= =?UTF-8?q?=EF=BC=8C=E5=BF=BD=E7=95=A5=E8=AF=A5=E6=9D=A1=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/xydl/cac/iec/IEDCollectService.java | 3 +++ src/main/java/com/xydl/cac/model/StaticVariable.java | 3 +++ src/main/java/com/xydl/cac/util/DateUtil.java | 7 +++++++ 3 files changed, 13 insertions(+) diff --git a/src/main/java/com/xydl/cac/iec/IEDCollectService.java b/src/main/java/com/xydl/cac/iec/IEDCollectService.java index ba525e6..c8beed9 100644 --- a/src/main/java/com/xydl/cac/iec/IEDCollectService.java +++ b/src/main/java/com/xydl/cac/iec/IEDCollectService.java @@ -131,6 +131,9 @@ public class IEDCollectService { String time = timeNode.getValueString(); log.info("采集到" + fc + " " + paramindexNew + "=" + value + ", t=" + time); time = DateUtil.fromZoneUTCToLocal(time); + if (time == null) { + return; + } time = this.makeSameTime(rpt.getEqmid(), time); _dataService.insertData(rpt.getTablename(), rpt.getEqmid(), time, rpt.getColname(), value); diff --git a/src/main/java/com/xydl/cac/model/StaticVariable.java b/src/main/java/com/xydl/cac/model/StaticVariable.java index 74f9b90..a9bf35a 100644 --- a/src/main/java/com/xydl/cac/model/StaticVariable.java +++ b/src/main/java/com/xydl/cac/model/StaticVariable.java @@ -76,6 +76,9 @@ public class StaticVariable { value = bda.getValueString(); if ("acquisitionTime".equals(colname)) { value = DateUtil.fromZoneUTCToLocal(value); + if (value == null) { + return; + } } updateLastData(eqmid, colname, value, null); } diff --git a/src/main/java/com/xydl/cac/util/DateUtil.java b/src/main/java/com/xydl/cac/util/DateUtil.java index d033d15..f5c5d44 100644 --- a/src/main/java/com/xydl/cac/util/DateUtil.java +++ b/src/main/java/com/xydl/cac/util/DateUtil.java @@ -1,5 +1,7 @@ package com.xydl.cac.util; +import lombok.extern.slf4j.Slf4j; + import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.*; @@ -8,6 +10,7 @@ import java.time.temporal.ChronoUnit; import java.util.Calendar; import java.util.Date; +@Slf4j public class DateUtil { public final static String defaultDatePattern = "yyyy-MM-dd HH:mm:ss"; public static DateTimeFormatter defaultFormatter = DateTimeFormatter.ofPattern(defaultDatePattern); @@ -109,6 +112,10 @@ public class DateUtil { Date date = parse(time); time = format(date); LocalDateTime localtime = LocalDateTime.parse(time, defaultFormatter); + if (localtime.getYear() < 2000) { + log.warn("该时间小于2000年: " + str); + return null; + } ZonedDateTime zonedDateTime = localtime.atZone(ZoneOffset.UTC); ZonedDateTime convertedDateTime = zonedDateTime.withZoneSameInstant(ZoneId.systemDefault()); String result = convertedDateTime.format(defaultFormatter);