diff --git a/src/main/java/com/xydl/cac/iec/IEDCollectService.java b/src/main/java/com/xydl/cac/iec/IEDCollectService.java index 5e76b04..b16af7d 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 firstOneTime; + HashMap eqmidTimeMap = new HashMap<>(); 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(); - firstOneTime = null; + eqmidTimeMap.clear(); if (!CollectionUtils.isEmpty(rptList)) { this.doCollectAndSave(configTypeList, rptList); } @@ -120,7 +120,7 @@ public class IEDCollectService { String time = iecClient.getValue(paramindexT, fc); log.info("采集到" + fc + " " + paramindexNew + "=" + value + ", t=" + time); time = DateUtil.fromZoneUTCToLocal(time); - time = this.makeSameTime(time); + time = this.makeSameTime(rpt.getEqmid(), time); _dataService.insertData(rpt.getTablename(), rpt.getEqmid(), time, rpt.getColname(), value); // 更新最新数据缓存 @@ -135,20 +135,13 @@ public class IEDCollectService { StaticVariable.paramRelationMap.put(key, value); } - private String makeSameTime(String time) { - if (firstOneTime == null) { - firstOneTime = time; - } else { - if (!firstOneTime.equals(time)) { - long sec = DateUtil.secondDiff(firstOneTime, time); - if (sec >= 0 && sec < 3) { - - } else { - return time; - } - } + private String makeSameTime(Integer eqmid, String time) { + String sameTime = eqmidTimeMap.get(eqmid); + if (StringUtils.isBlank(sameTime)) { + sameTime = time; + eqmidTimeMap.put(eqmid, sameTime); } - return firstOneTime; + return sameTime; } private Rptparamindex findRpt(List rptList, String paramindex) {