|
|
|
@ -103,9 +103,6 @@ public class BasLaancService {
|
|
|
|
|
// LAANC 검증
|
|
|
|
|
public BasLaancValidatedRs validationLaanc(BasLaancPlanRq rq) { |
|
|
|
|
|
|
|
|
|
// False면 파라미터에 문제있음, true면 통과
|
|
|
|
|
if(!(this.laancParamValid(rq))) throw new CustomException(ErrorCode.NON_VALID_PARAMETER); |
|
|
|
|
|
|
|
|
|
BasLaancValidatedRs rs = new BasLaancValidatedRs(); |
|
|
|
|
|
|
|
|
|
// 조종사 자격 확인 - 무게가 2kg 초과이거나 상업적일 경우에만 진행
|
|
|
|
@ -159,6 +156,8 @@ public class BasLaancService {
|
|
|
|
|
BasLaancValidatedRs validationPlanDbRs = this.validationPlanAirspace(rq); |
|
|
|
|
rs.setEvaluatedTargetArea(validationPlanDbRs.isEvaluatedTargetArea()); |
|
|
|
|
rs.setFlightArea(validationPlanDbRs.isFlightArea()); |
|
|
|
|
rs.setNotSpecial(this.laancParamValid(rq)); |
|
|
|
|
|
|
|
|
|
return rs; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
@ -523,7 +522,8 @@ public class BasLaancService {
|
|
|
|
|
*/ |
|
|
|
|
private boolean laancParamValid(BasLaancPlanRq rq){ |
|
|
|
|
|
|
|
|
|
if(rq == null) return false; |
|
|
|
|
// 시작날짜보다 종료날짜가 뒤에있으면 Exception발생
|
|
|
|
|
if(!(rq.getSchFltEndDt().isAfter(rq.getSchFltStDt()))) throw new CustomException(ErrorCode.NON_VALID_PARAMETER); |
|
|
|
|
|
|
|
|
|
// TODO :: Instant는 ChronoUnit.MONTHS 지원을 해주지 않아 LocalDateTime으로 계산을 진행했습니다.
|
|
|
|
|
LocalDateTime today = Instant.now().atZone(ZoneId.of(InstantUtils.DEFAULT_ZONE)).toLocalDateTime(); |
|
|
|
@ -536,8 +536,7 @@ public class BasLaancService {
|
|
|
|
|
stDt.isBefore(today.plus(90, ChronoUnit.DAYS)); |
|
|
|
|
|
|
|
|
|
// schFltEndDt가 SchFltStDt보다 뒤에 있고, 금일부터 6개월 이내에 있는지 확인
|
|
|
|
|
boolean isSchFltEndDtValid = endDt.isAfter(stDt) && |
|
|
|
|
endDt.isBefore(today.plus(6, ChronoUnit.MONTHS)); |
|
|
|
|
boolean isSchFltEndDtValid = endDt.isBefore(today.plus(6, ChronoUnit.MONTHS)); |
|
|
|
|
|
|
|
|
|
// 시간 파라미터가 맞지 않을경우
|
|
|
|
|
if(!(isSchFltStDtValid && isSchFltEndDtValid)) return false; |
|
|
|
|