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);