diff --git a/src/main/java/com/palnet/comn/model/CtrCntrlModel.java b/src/main/java/com/palnet/comn/model/CtrCntrlModel.java index 75752f5..ebc9d51 100644 --- a/src/main/java/com/palnet/comn/model/CtrCntrlModel.java +++ b/src/main/java/com/palnet/comn/model/CtrCntrlModel.java @@ -61,8 +61,12 @@ public class CtrCntrlModel implements Comparable{ private List> lastHistory; - // 비정상 상황 식별 코드 + // 비정상 상황 식별 코드 (정상: true, 비정상: false) private boolean controlWarnCd; + // 비정상 상황 알림 표출 코드 (알림: true, 미알림: false) + private boolean controlWarnNotyCd; + // 비정상 상황 알림 중복 체크 + private String warnNotyExposure; @Override public int compareTo(CtrCntrlModel o) { diff --git a/src/main/java/com/palnet/process/message/consumer/MessageConsumer.java b/src/main/java/com/palnet/process/message/consumer/MessageConsumer.java index 27efdb9..137bd46 100644 --- a/src/main/java/com/palnet/process/message/consumer/MessageConsumer.java +++ b/src/main/java/com/palnet/process/message/consumer/MessageConsumer.java @@ -33,13 +33,17 @@ public class MessageConsumer { GPModel model = objectMapper.readValue(message, GPModel.class); - CtrCntrlModel history = this.modelConvert(model); + CtrCntrlModel history = this.modelConvert(model); // 웹 표출 model로 변환 + +// boolean noty = this.checkWarnNoty(history, model.getObjectId()); // 비정상 상황 알림 여부 +// history.setControlWarnNotyCd(noty); gpHistoryShareModel.putHistory(model.getObjectId(), history); } public CtrCntrlModel modelConvert(final GPModel dataInfo) { CtrCntrlModel model = new CtrCntrlModel(); + CtrCntrlModel prevModel = gpHistoryShareModel.getHistory(dataInfo.getObjectId()); model.setObjectId(dataInfo.getObjectId()); model.setControlId(dataInfo.getControlId()); @@ -70,6 +74,16 @@ public class MessageConsumer { // 비정상 상황 식별코드 추가 model.setControlWarnCd(dataInfo.isControlWarnCd()); + if(prevModel == null) { + if(model.isControlWarnCd()) { + model.setControlWarnNotyCd(true); + model.setWarnNotyExposure("N"); + } else { + model.setControlWarnNotyCd(false); + model.setWarnNotyExposure("N"); + } + } + return model; } } diff --git a/src/main/java/com/palnet/process/scheduler/GpHistoryScheduler.java b/src/main/java/com/palnet/process/scheduler/GpHistoryScheduler.java index d33c5f8..f01f2b4 100644 --- a/src/main/java/com/palnet/process/scheduler/GpHistoryScheduler.java +++ b/src/main/java/com/palnet/process/scheduler/GpHistoryScheduler.java @@ -14,7 +14,7 @@ import java.util.Objects; @Component public class GpHistoryScheduler { - private final int timeLimit = 10; + private final int timeLimit = 300; // 5분 private final GPHistoryShareContext gpHistoryShareContext; public GpHistoryScheduler(GPHistoryShareContext gpHistoryShareContext) { @@ -22,7 +22,7 @@ public class GpHistoryScheduler { } /* Client 노출 시간 5분 */ - @Scheduled(fixedDelay = 10000 * 5) + @Scheduled(fixedDelay = 1000 * 60 * 5) public void removeHistory() { Map allHistory = gpHistoryShareContext.getAllHistory(); @@ -30,7 +30,6 @@ public class GpHistoryScheduler { if(Objects.nonNull(allHistory)) { allHistory.forEach((k, v) -> { Date serverRcvDt = DateUtils.stringToDatetime(v.getServerRcvDt()); - long diffMinute = DateUtils.diffMinute(serverRcvDt, new Date()); long diffSecond = DateUtils.diffSecond(serverRcvDt, new Date()); if(diffSecond > timeLimit) { diff --git a/src/main/java/com/palnet/server/task/ctr/service/CtrCntrlTaskService.java b/src/main/java/com/palnet/server/task/ctr/service/CtrCntrlTaskService.java index a7d9a67..e6182a8 100644 --- a/src/main/java/com/palnet/server/task/ctr/service/CtrCntrlTaskService.java +++ b/src/main/java/com/palnet/server/task/ctr/service/CtrCntrlTaskService.java @@ -32,6 +32,15 @@ public class CtrCntrlTaskService { if(Objects.nonNull(allHistory)) { allHistory.forEach((k, v) -> { + if(v.isControlWarnCd() && v.isControlWarnNotyCd()) { + if(!"Y".equals(v.getWarnNotyExposure())) { + v.setControlWarnNotyCd(true); + v.setWarnNotyExposure("Y"); + } else { + v.setControlWarnNotyCd(false); + } + } + list.add(v); }); }