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

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

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

Loading…
Cancel
Save