|
|
|
@ -1,10 +1,10 @@
|
|
|
|
|
package kr.co.palnet.kac.socket.core.command.impl; |
|
|
|
|
|
|
|
|
|
import kr.co.palnet.kac.common.model.common.ControlDto; |
|
|
|
|
import kr.co.palnet.kac.common.model.common.DronDto; |
|
|
|
|
import kr.co.palnet.kac.common.model.common.DronHistoryDto; |
|
|
|
|
import kr.co.palnet.kac.socket.core.command.DronCommand; |
|
|
|
|
import kr.co.palnet.kac.socket.core.model.ControlDto; |
|
|
|
|
import kr.co.palnet.kac.socket.core.model.DronDTO; |
|
|
|
|
import kr.co.palnet.kac.socket.core.model.DronHistoryDTO; |
|
|
|
|
import kr.co.palnet.kac.socket.core.model.DronRQ; |
|
|
|
|
import kr.co.palnet.kac.socket.core.model.DronRq; |
|
|
|
|
import kr.co.palnet.kac.socket.core.storage.ControlStorage; |
|
|
|
|
import kr.co.palnet.kac.socket.core.storage.DronStorage; |
|
|
|
|
import kr.co.palnet.kac.socket.core.util.DronUtil; |
|
|
|
@ -44,15 +44,15 @@ public class SandboxDronCommandImpl implements DronCommand {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void command(DronRQ rq) { |
|
|
|
|
public void command(DronRq rq) { |
|
|
|
|
log.info(">>>> SandboxCommandServiceImpl <<<<<"); |
|
|
|
|
List<DronDTO> resultList = rq.getBody(); |
|
|
|
|
List<DronDto> resultList = rq.getBody(); |
|
|
|
|
/** 전문 설정 ***/ |
|
|
|
|
final String messageType = "LTEM"; |
|
|
|
|
final String objectType = "DRON"; |
|
|
|
|
|
|
|
|
|
/** 데이터 모델링 **/ |
|
|
|
|
for (DronDTO dron : resultList) { |
|
|
|
|
for (DronDto dron : resultList) { |
|
|
|
|
// 위,경도 좌표가 0으로 들어오는 것은 무시 처리
|
|
|
|
|
if (DronUtil.latlonCheck(dron.getLat(), dron.getLon())) { |
|
|
|
|
|
|
|
|
@ -65,9 +65,9 @@ public class SandboxDronCommandImpl implements DronCommand {
|
|
|
|
|
dron.setServerRcvDt(Instant.now()); |
|
|
|
|
|
|
|
|
|
// 관제 이력 정보
|
|
|
|
|
List<DronHistoryDTO> hisList; |
|
|
|
|
List<DronHistoryDto> hisList; |
|
|
|
|
|
|
|
|
|
DronHistoryDTO history = DronHistoryDTO.builder() |
|
|
|
|
DronHistoryDto history = DronHistoryDto.builder() |
|
|
|
|
.objectId(dron.getObjectId()) |
|
|
|
|
.lat(dron.getLat()) |
|
|
|
|
.lon(dron.getLon()) |
|
|
|
@ -85,8 +85,8 @@ public class SandboxDronCommandImpl implements DronCommand {
|
|
|
|
|
Long start = System.currentTimeMillis(); |
|
|
|
|
|
|
|
|
|
// STEP 1. 전에 내부 메모리에서 controlId 조회
|
|
|
|
|
ControlStorage controlCacheUtil = ControlStorage.getInstance(); |
|
|
|
|
ControlDto dronCacheDTO = controlCacheUtil.get(dron.getObjectId()); |
|
|
|
|
ControlStorage controlStorage = ControlStorage.getInstance(); |
|
|
|
|
ControlDto dronCacheDTO = controlStorage.get(dron.getObjectId()); |
|
|
|
|
|
|
|
|
|
if (dronCacheDTO == null) { |
|
|
|
|
// STEP 1. Control ID 발급 -> Application Server Http 통신
|
|
|
|
@ -121,7 +121,7 @@ public class SandboxDronCommandImpl implements DronCommand {
|
|
|
|
|
controlDto.setRegTime(System.currentTimeMillis()); |
|
|
|
|
|
|
|
|
|
ControlDto newDronCacheDTO = ControlDto.builder().build(); |
|
|
|
|
controlCacheUtil.put(dron.getObjectId(), newDronCacheDTO); |
|
|
|
|
controlStorage.put(dron.getObjectId(), newDronCacheDTO); |
|
|
|
|
|
|
|
|
|
} catch (IOException e) { |
|
|
|
|
log.error("요청한 URL 정보가 잘못되었습니다.", e.getMessage()); |
|
|
|
@ -136,16 +136,15 @@ public class SandboxDronCommandImpl implements DronCommand {
|
|
|
|
|
dron.setControlWarnCd(dronCacheDTO.isControlWarnCd()); |
|
|
|
|
dronCacheDTO.setRegTime(System.currentTimeMillis()); |
|
|
|
|
|
|
|
|
|
controlCacheUtil.put(dron.getObjectId(), dronCacheDTO); |
|
|
|
|
controlStorage.put(dron.getObjectId(), dronCacheDTO); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// STEP 2. 이력 생성할 전문 전달 -> DRON의 대한 식별정보만 이력 관리
|
|
|
|
|
try { |
|
|
|
|
// 저장 해 놓았다가 한거번에 전송
|
|
|
|
|
DronStorage dronCacheUtil = DronStorage.getInstance(); |
|
|
|
|
// dronCacheUtil.set(dron);
|
|
|
|
|
DronStorage dronStorage = DronStorage.getInstance(); |
|
|
|
|
// dronStorage.set(dron);
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error("ERROR : {}\n{}", e.getMessage(), e.getStackTrace()); |
|
|
|
|
} |
|
|
|
@ -154,7 +153,7 @@ public class SandboxDronCommandImpl implements DronCommand {
|
|
|
|
|
// webSocketService.sendData(dron);
|
|
|
|
|
|
|
|
|
|
Long end = System.currentTimeMillis(); |
|
|
|
|
log.info(">>> during time : {}::{}", dron.getObjectId(),end - start); |
|
|
|
|
log.info(">>> during time : {}::{}", dron.getObjectId(), end - start); |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
log.error("좌표 정보가 존재하지 않습니다."); |
|
|
|
|