Browse Source

Laanc 검증 RS파라미터 적용

pull/10/head
lkd9125(이경도) 11 months ago
parent
commit
d4760093ab
  1. 4
      pav-server/src/main/java/com/palnet/biz/api/bas/laanc/model/BasLaancValidatedRs.java
  2. 11
      pav-server/src/main/java/com/palnet/biz/api/bas/laanc/service/BasLaancService.java

4
pav-server/src/main/java/com/palnet/biz/api/bas/laanc/model/BasLaancValidatedRs.java

@ -37,6 +37,8 @@ public class BasLaancValidatedRs {
private boolean isReport; // 신고 대상 - 상업적이면서 기체중량2kg 이상일경우 - true
private boolean isNotSpecial; // 특별승인 여부
private String corpRegYn; // 사업자 여부
private List<PilotValidRs> pilotValidRsList; // 자격여부
@ -51,11 +53,13 @@ public class BasLaancValidatedRs {
// && !isArcrftDuplicated // 기체 중복여부
// && !isPlanAreaDuplicatd // 비행구역 중복여부
&& isFlightArea // 비행가능여부
&& isNotSpecial
&& isCheckingLance();
}
return isCheckingLance()
// && !isPlanAreaDuplicatd
// && !isArcrftDuplicated
&& isNotSpecial
&& isFlightArea;
}

11
pav-server/src/main/java/com/palnet/biz/api/bas/laanc/service/BasLaancService.java

@ -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;

Loading…
Cancel
Save