diff --git a/src/main/java/com/palnet/comn/model/CtrCntrlModel.java b/src/main/java/com/palnet/comn/model/CtrCntrlModel.java index ebc9d51..0eac139 100644 --- a/src/main/java/com/palnet/comn/model/CtrCntrlModel.java +++ b/src/main/java/com/palnet/comn/model/CtrCntrlModel.java @@ -66,7 +66,7 @@ public class CtrCntrlModel implements Comparable{ // 비정상 상황 알림 표출 코드 (알림: true, 미알림: false) private boolean controlWarnNotyCd; // 비정상 상황 알림 중복 체크 - private String warnNotyExposure; + private Integer controlCacheCount; @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 3701e6a..0049d5e 100644 --- a/src/main/java/com/palnet/process/message/consumer/MessageConsumer.java +++ b/src/main/java/com/palnet/process/message/consumer/MessageConsumer.java @@ -30,7 +30,7 @@ public class MessageConsumer { @RabbitHandler @RabbitListener(queues = {"websocket.drone.queue"}) public void receiveDroneMessage(final String message) throws JsonProcessingException { - log.info("websocket message : {}", message); +// log.info("websocket message : {}", message); GPModel model = objectMapper.readValue(message, GPModel.class); CtrCntrlModel history = this.modelConvert(model); // 웹 표출 model로 변환 @@ -88,7 +88,9 @@ public class MessageConsumer { if(!prevModel.isControlWarnCd() && model.isControlWarnCd()) { model.setControlWarnNotyCd(true); // 정상 -> 비정상상 } - } + } + + model.setControlCacheCount(1); return model; } 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 b59a715..2235954 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,14 +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); -// } -// } + // 데이터가 수신 되지 않고 이전 데이터를 표출하고 있는 경우 + // 비정상 상황 판별하여 알림 표출 X + if(v.getControlCacheCount() == 2) { + if(v.isControlWarnCd() && v.isControlWarnNotyCd()) { + v.setControlWarnNotyCd(false); + } + } + + v.setControlCacheCount(2); list.add(v); });