From 5fde24f6056f85ebb6f86ac459f10b93686f200d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?scnoh=28=EB=85=B8=EC=8A=B9=EC=B2=A0=29?= Date: Fri, 12 Aug 2022 18:23:38 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B9=84=EC=A0=95=EC=83=81=20=EC=83=81?= =?UTF-8?q?=ED=99=A9=20=EC=95=8C=EB=A6=BC=20=EC=A4=91=EB=B3=B5=20=EB=A7=89?= =?UTF-8?q?=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/palnet/comn/model/CtrCntrlModel.java | 6 +++++- .../message/consumer/MessageConsumer.java | 16 +++++++++++++++- .../process/scheduler/GpHistoryScheduler.java | 5 ++--- .../task/ctr/service/CtrCntrlTaskService.java | 9 +++++++++ 4 files changed, 31 insertions(+), 5 deletions(-) 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); }); }