|
|
|
@ -32,47 +32,6 @@ public class SocketCommand {
|
|
|
|
|
this.env = (Environment) ContextUtils.getBean("environment"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GPCollection collection = new GPCollection(); |
|
|
|
|
|
|
|
|
|
public void openSkyCollectionPut(SocketPayload payload) { |
|
|
|
|
/** Socket Body **/ |
|
|
|
|
List<LinkedHashMap<?, ?>> resultList = (ArrayList) payload.getBody(); |
|
|
|
|
|
|
|
|
|
/** 전문 설정 ***/ |
|
|
|
|
final String messageType = "OPENSKY"; |
|
|
|
|
final String objectType = "FLIGHT"; |
|
|
|
|
|
|
|
|
|
List<GPModel> dataList = new ArrayList<GPModel>(); |
|
|
|
|
|
|
|
|
|
for (LinkedHashMap<?, ?> obj : resultList) { |
|
|
|
|
GPModel model = new GPModel(); |
|
|
|
|
|
|
|
|
|
model.setObjectType(objectType); |
|
|
|
|
model.setMessageType(messageType); |
|
|
|
|
model.setObjectId(obj.get("objectId").toString().trim()); |
|
|
|
|
model.setTerminalId(obj.get("terminalId").toString().trim()); |
|
|
|
|
model.setLat((Double) obj.get("lat")); |
|
|
|
|
model.setLng((Double) obj.get("lng")); |
|
|
|
|
model.setElev((Double) obj.get("elev")); |
|
|
|
|
model.setTerminalRcvDt(obj.get("terminalRcvDt").toString().trim()); |
|
|
|
|
model.setSpeed((Double) obj.get("speed")); |
|
|
|
|
model.setHeading((Double) obj.get("heading")); |
|
|
|
|
model.setSpeedType((String) obj.get("speedType")); |
|
|
|
|
model.setElevType((String) obj.get("elevType")); |
|
|
|
|
model.setMoveDistanceType((String) obj.get("moveDistanceType")); |
|
|
|
|
model.setMoveDistance((Double) obj.get("moveDistance")); |
|
|
|
|
|
|
|
|
|
model.setBetteryLevel((Double) obj.get("betteryLevel")); |
|
|
|
|
model.setBetteryVoltage((Double) obj.get("betteryVoltage")); |
|
|
|
|
model.setDronStatus((String) obj.get("dronStatus")); |
|
|
|
|
|
|
|
|
|
dataList.add(model); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
collection.putData(dataList); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 들어온 데이터를 collection넣는 작업을 한다. |
|
|
|
|
* |
|
|
|
@ -85,11 +44,9 @@ public class SocketCommand {
|
|
|
|
|
final String messageType = "LTEM"; |
|
|
|
|
final String objectType = "DRON"; |
|
|
|
|
|
|
|
|
|
// List<GPModel> dataList = new ArrayList<GPModel>();
|
|
|
|
|
|
|
|
|
|
/** 데이터 모델링 **/ |
|
|
|
|
for (LinkedHashMap<?, ?> obj : resultList) { |
|
|
|
|
//위,경도 좌표가 0으로 들어오는 것은 무시 처리
|
|
|
|
|
// 위,경도 좌표가 0으로 들어오는 것은 무시 처리
|
|
|
|
|
if ((Double) obj.get("lat") > 0 && (Double) obj.get("lon") > 0) { |
|
|
|
|
GPModel model = new GPModel(); |
|
|
|
|
|
|
|
|
@ -128,7 +85,7 @@ public class SocketCommand {
|
|
|
|
|
hisList.add(history); |
|
|
|
|
model.setPostionHistory(hisList); |
|
|
|
|
|
|
|
|
|
Long start = System.currentTimeMillis(); |
|
|
|
|
// Long start = System.currentTimeMillis();
|
|
|
|
|
// STEP 1. 전에 내부 메모리에서 controlId 조회
|
|
|
|
|
ControlCacheModel control = ControlCacheUtils.getControl(model.getObjectId()); |
|
|
|
|
|
|
|
|
@ -179,9 +136,11 @@ public class SocketCommand {
|
|
|
|
|
ControlCacheUtils.setControl(model.getObjectId(),control); |
|
|
|
|
} |
|
|
|
|
Long end = System.currentTimeMillis(); |
|
|
|
|
logger.info(">>> during time : {}::{}", model.getObjectId(),end - start); |
|
|
|
|
// STEP 2. 이력 생성할 전문 전달
|
|
|
|
|
messageProducer.sendControlHistoryMessage(model); |
|
|
|
|
// logger.info(">>> during time : {}::{}", model.getObjectId(),end - start);
|
|
|
|
|
// STEP 2. 이력 생성할 전문 전달 -> DRON의 대한 식별정보만 이력 관리
|
|
|
|
|
if (model.getObjectId().indexOf("PAVDRON") > -1) { |
|
|
|
|
messageProducer.sendControlHistoryMessage(model); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// STEP 3. 화면에 표출할 정보 WebSocket 전달
|
|
|
|
|
messageProducer.sendControlMessage(model); |
|
|
|
|