Browse Source

socketHandler Switch Case - ANTOS 추가

master
박재우 2 years ago
parent
commit
76ef7231cb
  1. 114
      src/main/java/com/palnet/server/command/SocketCommand.java
  2. 3
      src/main/java/com/palnet/server/handler/SocketHandler.java

114
src/main/java/com/palnet/server/command/SocketCommand.java

@ -202,6 +202,120 @@ public class SocketCommand {
model.setPostionHistory(hisList); model.setPostionHistory(hisList);
// STEP 1. 전에 내부 메모리에서 controlId 조회
ControlCacheModel control = ControlCacheUtils.getControl(model.getObjectId());
if (control == null) {
// STEP 1. Control ID 발급 -> Application Server Http 통신
try {
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI(
env.getProperty("app.host") + "api/ctr/cntrl/id/" + model.getObjectId()
))
.version(HttpClient.Version.HTTP_2)
.GET()
.build();
HttpResponse<String> response = HttpClient
.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
logger.debug("CONTROL ID RESPONSE : {}", response.body());
Map body = JsonUtils.fromJson(response.body(), HashMap.class);
Map data = (Map) body.get("data");
model.setControlId((String) data.get("controlId"));
model.setTypeCd((String) data.get("typeCd"));
model.setAreaTrnsYn((String) data.get("areaTrnsYn"));
model.setControlStartDt(DateUtils.getCurrentTime());
ControlCacheModel ccm = new ControlCacheModel();
ccm.setControlId((String) data.get("controlId"));
ccm.setTypeCd((String) data.get("typeCd"));
ccm.setAreaTrnsYn((String) data.get("areaTrnsYn"));
ccm.setRegTime(System.currentTimeMillis());
ControlCacheUtils.setControl(model.getObjectId(),ccm);
} catch (IOException e) {
logger.error("요청한 URL 정보가 잘못되었습니다.", e.getMessage());
} catch (Exception e) {
e.printStackTrace();
}
} else {
model.setControlId(control.getControlId());
model.setTypeCd("02");
model.setAreaTrnsYn(control.getAreaTrnsYn());
model.setControlWarnCd(control.isControlWarnCd());
control.setRegTime(System.currentTimeMillis());
ControlCacheUtils.setControl(model.getObjectId(),control);
}
// STEP 2. 이력 생성할 전문 전달 -> DRON의 대한 식별정보만 이력 관리
if ("PA".equals(model.getObjectId().substring(0, 2))) {
messageProducer.sendControlHistoryMessage(model);
}
// STEP 3. 화면에 표출할 정보 WebSocket 전달
messageProducer.sendControlMessage(model);
} else {
logger.error("좌표 정보가 존재하지 않습니다.");
throw new IllegalArgumentException("좌표 정보가 존재하지 않습니다.");
}
}
}
public void ANTOSCommand(final SocketPayload payload) {
List<LinkedHashMap<?, ?>> resultList = (ArrayList) payload.getBody();
/** 전문 설정 ***/
final String messageType = "LTEM";
final String objectType = "DRON";
/** 데이터 모델링 **/
for (LinkedHashMap<?, ?> obj : resultList) {
// 위,경도 좌표가 0으로 들어오는 것은 무시 처리
if ((Double) obj.get("lat") > 0 && (Double) obj.get("lon") > 0) {
GPModel model = new GPModel();
model.setObjectType(objectType);
model.setMessageType(messageType);
model.setObjectId(obj.get("objectId").toString().trim());
model.setTerminalId(payload.getTerminalId());
model.setTerminalRcvDt(obj.get("terminalRcvDt").toString().trim());
model.setSpeedType((String) obj.get("speedType"));
model.setElevType((String) obj.get("elevType"));
model.setDronStatus((String) obj.get("dronStatus"));
if (obj.get("lat") != null) model.setLat(Double.valueOf(obj.get("lat").toString()));
if (obj.get("lon") != null) model.setLng(Double.valueOf(obj.get("lon").toString()));
if (obj.get("elev") != null) model.setElev(Double.valueOf(obj.get("elev").toString()));
if (obj.get("speed") != null) model.setSpeed(Double.valueOf(obj.get("speed").toString()));
if (obj.get("heading") != null) model.setHeading(Double.valueOf(obj.get("heading").toString()));
// 서버 수신 시간 정보
model.setServerRcvDt(DateUtils.getCurrentTime());
// 관제 이력 정보
List<GPHistoryModel> hisList;
GPHistoryModel history = new GPHistoryModel();
history.setObjectId(model.getObjectId());
history.setLat(model.getLat());
history.setLng(model.getLng());
if (model.getPostionHistory() != null) {
hisList = model.getPostionHistory();
} else {
hisList = new ArrayList<>();
}
hisList.add(history);
model.setPostionHistory(hisList);
// STEP 1. 전에 내부 메모리에서 controlId 조회 // STEP 1. 전에 내부 메모리에서 controlId 조회
ControlCacheModel control = ControlCacheUtils.getControl(model.getObjectId()); ControlCacheModel control = ControlCacheUtils.getControl(model.getObjectId());

3
src/main/java/com/palnet/server/handler/SocketHandler.java

@ -54,6 +54,9 @@ public class SocketHandler extends SimpleChannelInboundHandler<SocketPayload> {
break; break;
case "ADS-B": case "ADS-B":
command.ADSBCommand(payload); command.ADSBCommand(payload);
case "ANTOS":
command.ANTOSCommand(payload);
break;
default: default:
break; break;
} }

Loading…
Cancel
Save