Browse Source

비정상 상황 작업

master
노승철 2 years ago
parent
commit
8d0644f7b5
  1. 56
      src/main/java/com/palnet/process/message/consumer/MessageConsumer.java
  2. 10
      src/main/resources/application.yml

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

@ -10,8 +10,18 @@ import com.palnet.server.collection.ChannelCollection;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.HashMap;
import java.util.Map;
@Component
@Slf4j
public class MessageConsumer {
@ -20,10 +30,12 @@ public class MessageConsumer {
private final ObjectMapper objectMapper;
private final CtrHistoryShareContext gpHistoryShareModel;
private final Environment env;
public MessageConsumer(CtrHistoryShareContext gpHistoryShareModel) {
public MessageConsumer(CtrHistoryShareContext gpHistoryShareModel, Environment env) {
this.objectMapper = JsonUtils.getObjectMapper();
this.gpHistoryShareModel = gpHistoryShareModel;
this.env = env;
}
@RabbitHandler
@ -32,15 +44,18 @@ public class MessageConsumer {
log.info("websocket message : {}", message);
GPModel model = objectMapper.readValue(message, GPModel.class);
CtrCntrlModel history = this.modelConvert(model); // 웹 표출 model로 변환
/**
* 비정상 Check
*/
boolean controlWarnCd = this.checkControlWarring(model);
model.setControlWarnCd(controlWarnCd);
// boolean noty = this.checkWarnNoty(history, model.getObjectId()); // 비정상 상황 알림 여부
// history.setControlWarnNotyCd(noty);
CtrCntrlModel history = this.convertModel(model); // 웹 표출 model로 변환
gpHistoryShareModel.putHistory(model.getObjectId(), history);
}
public CtrCntrlModel modelConvert(final GPModel dataInfo) {
public CtrCntrlModel convertModel(final GPModel dataInfo) {
CtrCntrlModel model = new CtrCntrlModel();
CtrCntrlModel prevModel = gpHistoryShareModel.getHistory(dataInfo.getObjectId());
@ -93,4 +108,35 @@ public class MessageConsumer {
return model;
}
public boolean checkControlWarring(GPModel model) {
try {
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI(
// "http://211.253.38.218:8080/api/ctr/cntrl/id/" + model.getObjectId()
env.getProperty("app.host") + "api/ctr/cntrl/warn/" + model.getObjectId()
+ "/" + model.getLat()
+ "/" + model.getLng()
))
.version(HttpClient.Version.HTTP_2)
.GET()
.build();
HttpResponse<String> response = HttpClient
.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
Map body = JsonUtils.fromJson(response.body(), HashMap.class);
Map data = (Map) body.get("data");
return "Y".equals(data.get("controlWarnCd")) ? true : false;
} catch (URISyntaxException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}

10
src/main/resources/application.yml

@ -28,6 +28,9 @@ message:
exchange-name: websocket.drone.exchange
routing-key: websocket.drone.routing.#
app:
host: http://127.0.0.1:8080/
---
spring:
@ -68,6 +71,8 @@ logging:
level:
com.palnet: debug
app:
host: http://211.253.38.218:8080/
---
@ -107,4 +112,7 @@ logging:
file:
name: /data/logs/data.log
level:
com.palnet: debug
com.palnet: debug
app:
host: http://211.253.38.218:8080/
Loading…
Cancel
Save