fix: 按每一个eqmid有一个时间,多属性相同时间

main
huangfeng 7 months ago
parent 9a49f77476
commit 0ea6cc68f1

@ -34,7 +34,7 @@ public class IEDCollectService {
BizConfig _bizConfig;
String folder = "/record";
String firstOneTime;
HashMap<Integer, String> 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<Rptparamindex> rptList, String paramindex) {

Loading…
Cancel
Save