Browse Source

비정상 데이터 중복 알림 방지

master
노승철 2 years ago
parent
commit
f28d51a7e7
  1. 2
      src/main/java/com/palnet/comn/model/CtrCntrlModel.java
  2. 4
      src/main/java/com/palnet/process/message/consumer/MessageConsumer.java
  3. 17
      src/main/java/com/palnet/server/task/ctr/service/CtrCntrlTaskService.java

2
src/main/java/com/palnet/comn/model/CtrCntrlModel.java

@ -66,7 +66,7 @@ public class CtrCntrlModel implements Comparable<CtrCntrlModel>{
// 비정상 상황 알림 표출 코드 (알림: true, 미알림: false) // 비정상 상황 알림 표출 코드 (알림: true, 미알림: false)
private boolean controlWarnNotyCd; private boolean controlWarnNotyCd;
// 비정상 상황 알림 중복 체크 // 비정상 상황 알림 중복 체크
private String warnNotyExposure; private Integer controlCacheCount;
@Override @Override
public int compareTo(CtrCntrlModel o) { public int compareTo(CtrCntrlModel o) {

4
src/main/java/com/palnet/process/message/consumer/MessageConsumer.java

@ -30,7 +30,7 @@ public class MessageConsumer {
@RabbitHandler @RabbitHandler
@RabbitListener(queues = {"websocket.drone.queue"}) @RabbitListener(queues = {"websocket.drone.queue"})
public void receiveDroneMessage(final String message) throws JsonProcessingException { 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); GPModel model = objectMapper.readValue(message, GPModel.class);
CtrCntrlModel history = this.modelConvert(model); // 웹 표출 model로 변환 CtrCntrlModel history = this.modelConvert(model); // 웹 표출 model로 변환
@ -90,6 +90,8 @@ public class MessageConsumer {
} }
} }
model.setControlCacheCount(1);
return model; return model;
} }
} }

17
src/main/java/com/palnet/server/task/ctr/service/CtrCntrlTaskService.java

@ -32,14 +32,15 @@ public class CtrCntrlTaskService {
if(Objects.nonNull(allHistory)) { if(Objects.nonNull(allHistory)) {
allHistory.forEach((k, v) -> { allHistory.forEach((k, v) -> {
// if(v.isControlWarnCd() && v.isControlWarnNotyCd()) { // 데이터가 수신 되지 않고 이전 데이터를 표출하고 있는 경우
// if(!"Y".equals(v.getWarnNotyExposure())) { // 비정상 상황 판별하여 알림 표출 X
// v.setControlWarnNotyCd(true); if(v.getControlCacheCount() == 2) {
// v.setWarnNotyExposure("Y"); if(v.isControlWarnCd() && v.isControlWarnNotyCd()) {
// } else { v.setControlWarnNotyCd(false);
// v.setControlWarnNotyCd(false); }
// } }
// }
v.setControlCacheCount(2);
list.add(v); list.add(v);
}); });

Loading…
Cancel
Save