|
|
|
@ -7,11 +7,13 @@ import com.palnet.biz.api.bas.flight.model.BasFlightPlanAreaCoordModel;
|
|
|
|
|
import com.palnet.biz.api.bas.flight.model.BasFlightPlanAreaModel; |
|
|
|
|
import com.palnet.biz.api.bas.flight.model.BasFlightPlanModel; |
|
|
|
|
import com.palnet.biz.api.bas.flight.service.BasFlightMapper; |
|
|
|
|
import com.palnet.biz.api.comn.model.ControlGpsDataContext; |
|
|
|
|
import com.palnet.biz.api.ctr.cntrl.model.*; |
|
|
|
|
import com.palnet.biz.jpa.entity.*; |
|
|
|
|
import com.palnet.biz.jpa.repository.com.ComArcrftBasRepository; |
|
|
|
|
import com.palnet.biz.jpa.repository.com.ComIdntBasRepository; |
|
|
|
|
import com.palnet.biz.jpa.repository.ctr.CtrCntrlBasRepository; |
|
|
|
|
import com.palnet.biz.jpa.repository.ctr.CtrCntrlHstryRepository; |
|
|
|
|
import com.palnet.biz.jpa.repository.ctr.CtrCntrlWarnLogRepository; |
|
|
|
|
import com.palnet.biz.jpa.repository.flt.*; |
|
|
|
|
import com.palnet.comn.utils.AreaUtils; |
|
|
|
@ -31,9 +33,11 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
@Service |
|
|
|
|
@Log4j2 |
|
|
|
|
@Transactional(readOnly = true) |
|
|
|
|
public class CtrCntrlService { |
|
|
|
|
private final CtrCntrlQueryRepository query; |
|
|
|
|
private final CtrCntrlBasRepository cntrlBasRepository; |
|
|
|
|
private final CtrCntrlHstryRepository cntrlHstryRepository; |
|
|
|
|
private final CtrCntrlWarnLogRepository warnLogRepository; |
|
|
|
|
private final ComIdntBasRepository idntfRepository; |
|
|
|
|
private final ComArcrftBasRepository arcrftRepository; |
|
|
|
@ -43,10 +47,12 @@ public class CtrCntrlService {
|
|
|
|
|
private final FltPlanAreaRepository planAreaRepository; |
|
|
|
|
private final FltPlanAreaCoordRepository planCoordRepository; |
|
|
|
|
private final AreaUtils areaUtils; |
|
|
|
|
private final ControlGpsDataContext shareContext; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public CtrCntrlService(CtrCntrlQueryRepository query, |
|
|
|
|
CtrCntrlBasRepository cntrlBasRepository, |
|
|
|
|
CtrCntrlHstryRepository cntrlHstryRepository, |
|
|
|
|
CtrCntrlWarnLogRepository warnLogRepository, |
|
|
|
|
ComIdntBasRepository idntfRepository, |
|
|
|
|
ComArcrftBasRepository arcrftRepository, |
|
|
|
@ -55,9 +61,11 @@ public class CtrCntrlService {
|
|
|
|
|
FltPlanPilotRepository planPilotRepository, |
|
|
|
|
FltPlanAreaRepository planAreaRepository, |
|
|
|
|
FltPlanAreaCoordRepository planCoordRepository, |
|
|
|
|
AreaUtils areaUtils) { |
|
|
|
|
AreaUtils areaUtils, |
|
|
|
|
ControlGpsDataContext shareContext) { |
|
|
|
|
this.query = query; |
|
|
|
|
this.cntrlBasRepository = cntrlBasRepository; |
|
|
|
|
this.cntrlHstryRepository = cntrlHstryRepository; |
|
|
|
|
this.warnLogRepository = warnLogRepository; |
|
|
|
|
this.idntfRepository = idntfRepository; |
|
|
|
|
this.arcrftRepository = arcrftRepository; |
|
|
|
@ -67,6 +75,7 @@ public class CtrCntrlService {
|
|
|
|
|
this.planAreaRepository = planAreaRepository; |
|
|
|
|
this.planCoordRepository = planCoordRepository; |
|
|
|
|
this.areaUtils = areaUtils; |
|
|
|
|
this.shareContext = shareContext; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private Logger logger = LoggerFactory.getLogger(getClass()); |
|
|
|
@ -184,6 +193,7 @@ public class CtrCntrlService {
|
|
|
|
|
return warnLog; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<CtrCntrlArcrftWarnModel> getArcrftWarnList(String id) { |
|
|
|
|
Map<String, CtrCntrlArcrftWarnModel> map = new HashMap<>(); |
|
|
|
|
List<CtrCntrlArcrftWarnModel> result = new ArrayList<>(); |
|
|
|
@ -225,7 +235,7 @@ public class CtrCntrlService {
|
|
|
|
|
* @param idntfNum |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@Transactional(readOnly = true) |
|
|
|
|
|
|
|
|
|
public List<BasFlightPlanModel> getFlightPlan(String idntfNum) { |
|
|
|
|
List<BasFlightPlanModel> rs = new ArrayList<>(); |
|
|
|
|
|
|
|
|
@ -368,4 +378,46 @@ public class CtrCntrlService {
|
|
|
|
|
|
|
|
|
|
return rs; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Map<String, String> getId(String id) { |
|
|
|
|
Map<String, String> result = new HashMap<>(); |
|
|
|
|
|
|
|
|
|
/* 식별번호의 가장 최근 이력 불러오기 */ |
|
|
|
|
CtrCntrlBas latestControl = cntrlBasRepository.findFirstByIdntfNumOrderByCreateDtDesc(id).orElse(null); |
|
|
|
|
|
|
|
|
|
boolean isControl = false; |
|
|
|
|
|
|
|
|
|
if(latestControl != null) { |
|
|
|
|
CtrCntrlHstry latestHistory = cntrlHstryRepository.findFirstByCntrlIdOrderBySrvrRcvDtDesc(latestControl.getCntrlId()); |
|
|
|
|
long diffMinute = DateUtils.diffMinute(latestHistory.getSrvrRcvDt(), new Date()); |
|
|
|
|
log.info("DIFF MINUTE : {}", diffMinute); |
|
|
|
|
|
|
|
|
|
if("01".equals(latestControl.getEndTypeCd()) || diffMinute > 5) { |
|
|
|
|
isControl = false; |
|
|
|
|
} |
|
|
|
|
if(!"01".equals(latestControl.getEndTypeCd()) && diffMinute < 5) { |
|
|
|
|
isControl = true; |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
isControl = false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(isControl) { |
|
|
|
|
result.put("controlId", latestControl.getCntrlId()); |
|
|
|
|
result.put("typeCd", "02"); |
|
|
|
|
result.put("areaTrnsYn", "E"); |
|
|
|
|
} else { |
|
|
|
|
String controlID = UUID.randomUUID().toString(); |
|
|
|
|
|
|
|
|
|
result.put("controlId", controlID); |
|
|
|
|
result.put("typeCd", "01"); |
|
|
|
|
result.put("areaTrnsYn", "N"); |
|
|
|
|
// model.setControlStartDt(DateUtils.getCurrentTime());
|
|
|
|
|
|
|
|
|
|
// 기체 식별번호의 관제 ID 저장 (single ton)
|
|
|
|
|
shareContext.putIdntfKey(id, controlID); |
|
|
|
|
} |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|