From d4760093ab2b7373ab5a52e1867697105372d01a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?lkd9125=28=EC=9D=B4=EA=B2=BD=EB=8F=84=29?= Date: Tue, 17 Oct 2023 14:15:36 +0900 Subject: [PATCH] =?UTF-8?q?Laanc=20=EA=B2=80=EC=A6=9D=20RS=ED=8C=8C?= =?UTF-8?q?=EB=9D=BC=EB=AF=B8=ED=84=B0=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/api/bas/laanc/model/BasLaancValidatedRs.java | 4 ++++ .../biz/api/bas/laanc/service/BasLaancService.java | 11 +++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/model/BasLaancValidatedRs.java b/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/model/BasLaancValidatedRs.java index 50be0f12..055afbf4 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/model/BasLaancValidatedRs.java +++ b/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 pilotValidRsList; // 자격여부 @@ -51,11 +53,13 @@ public class BasLaancValidatedRs { // && !isArcrftDuplicated // 기체 중복여부 // && !isPlanAreaDuplicatd // 비행구역 중복여부 && isFlightArea // 비행가능여부 + && isNotSpecial && isCheckingLance(); } return isCheckingLance() // && !isPlanAreaDuplicatd // && !isArcrftDuplicated + && isNotSpecial && isFlightArea; } diff --git a/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/service/BasLaancService.java b/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/service/BasLaancService.java index 40e55132..33b5c91b 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/service/BasLaancService.java +++ b/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;