diff --git a/pav-server/src/main/java/com/palnet/biz/api/external/model/ApprovalCd.java b/pav-server/src/main/java/com/palnet/biz/api/external/model/ApprovalCd.java index 27131f33..573861df 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/external/model/ApprovalCd.java +++ b/pav-server/src/main/java/com/palnet/biz/api/external/model/ApprovalCd.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; public enum ApprovalCd { APPROVAL("S", "관제권내 허용고도"), // 승인 UNAPPROVED("F", "관제권내 제한고도"), // 미승인 + CONDITIONAL_APPROVED("C", "관제권내 조건부 승인"), // 조건부 승인 UNTARGETED_AREA("U", "미대상 지역"); // 미대상 private final String code; diff --git a/pav-server/src/main/java/com/palnet/biz/api/external/service/DronOneStopService.java b/pav-server/src/main/java/com/palnet/biz/api/external/service/DronOneStopService.java index a8c001db..b6014409 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/external/service/DronOneStopService.java +++ b/pav-server/src/main/java/com/palnet/biz/api/external/service/DronOneStopService.java @@ -138,8 +138,12 @@ public class DronOneStopService { String approvalCdStr = (String) saveZone.get("approvalCd"); ApprovalCd approvalCd = ApprovalCd.fromCode(approvalCdStr); + + // 조건부 승인인 경우 미승인으로 변경 - 아직 드론원스톱에서 작업을 안함으로 인한 작업 if (approvalCd == null) { approvalCd = ApprovalCd.UNTARGETED_AREA; + } else if (approvalCd == ApprovalCd.CONDITIONAL_APPROVED) { + approvalCd = ApprovalCd.UNAPPROVED; } log.info("approvalCd : {}/{}", approvalCdStr, approvalCd); @@ -173,6 +177,7 @@ public class DronOneStopService { /* - 김포공항 관제지역 외 - U: 허용 관제권이 아닌 지역 - 김포공항 관제지역 승인 - S: 관제권내 허용고도 + - 김포공항 관제지역 조건부승인 - C: 관제권내 제한고도 - 김포공항 관제지역 미승인 - F: 관제권내 제한고도 */ // 김포지역의 고도 데이터가 있는 경우만 검증 @@ -205,9 +210,10 @@ public class DronOneStopService { // 가장 낮음 허용고도보다 신청 고도가 낮을 경우 승인 처리 result.setFltElevMax(minHighElev); - - if(targetHighElev > minHighElev) { + if(minHighElev <= 0){ result.setApprovalCd(ApprovalCd.UNAPPROVED); + } else if(targetHighElev > minHighElev) { + result.setApprovalCd(ApprovalCd.CONDITIONAL_APPROVED); } else { result.setApprovalCd(ApprovalCd.APPROVAL); } diff --git a/pav-server/src/main/resources/application-database.yml b/pav-server/src/main/resources/application-database.yml index ad7c391c..40b1eb0f 100644 --- a/pav-server/src/main/resources/application-database.yml +++ b/pav-server/src/main/resources/application-database.yml @@ -14,8 +14,10 @@ spring: idletimeout: 60000 maxlifetime: 300000 connectiontimeout: 30000 - validationtimeout: 5000 ---- + validationtimeout: 5000 + +--- + spring: config: activate: @@ -32,8 +34,10 @@ spring: idletimeout: 60000 maxlifetime: 300000 connectiontimeout: 30000 - validationtimeout: 5000 + validationtimeout: 5000 + --- + spring: config: activate: @@ -52,7 +56,8 @@ spring: connectiontimeout: 30000 validationtimeout: 5000 ---- +--- + spring: config: activate: diff --git a/pav-server/src/test/java/com/palnet/biz/api/external/service/DronOneStopServiceTest.java b/pav-server/src/test/java/com/palnet/biz/api/external/service/DronOneStopServiceTest.java index 1d6cf789..d2abf014 100644 --- a/pav-server/src/test/java/com/palnet/biz/api/external/service/DronOneStopServiceTest.java +++ b/pav-server/src/test/java/com/palnet/biz/api/external/service/DronOneStopServiceTest.java @@ -33,7 +33,7 @@ class DronOneStopServiceTest { void saveDosPlan() { List areaList = dosFltPlanAreaRepository.findAll(); List resultList = dosFltPlanResultRepository.findAll(); - for(DosFltPlanArea area : areaList) { + for (DosFltPlanArea area : areaList) { // Circle만 체크 Double bufferZone = area.getBufferZone(); @@ -47,10 +47,10 @@ class DronOneStopServiceTest { List rList = resultList.stream().filter(result -> result.getPlanSno().equals(area.getPlanSno()) && result.getPlanAreaSno().equals(area.getPlanAreaSno())).collect(Collectors.toList()); log.info("rList size: {}", rList.size()); - if(!rList.isEmpty()){ + if (!rList.isEmpty()) { rList.forEach(r -> { - if(r.getApprovalCd().equals(approvalResult.getApprovalCd().getCode())) { + if (r.getApprovalCd().equals(approvalResult.getApprovalCd().getCode())) { log.info("approvalCd is same"); } else { log.info("approvalCd is different{} -> {}", r.getApprovalCd(), approvalResult.getApprovalCd().getCode()); @@ -77,11 +77,11 @@ class DronOneStopServiceTest { } @Test - void updateFltElevMax() { + void updateFltElevMaxAndApprovalCd() { List areaList = dosFltPlanAreaRepository.findAll(); List resultList = dosFltPlanResultRepository.findAll(); - for(DosFltPlanArea area : areaList) { + for (DosFltPlanArea area : areaList) { // Circle만 체크 Double bufferZone = area.getBufferZone(); Double fltElev = area.getFltElev() != null ? area.getFltElev() : 0; @@ -94,16 +94,13 @@ class DronOneStopServiceTest { List rList = resultList.stream().filter(result -> result.getPlanSno().equals(area.getPlanSno()) && result.getPlanAreaSno().equals(area.getPlanAreaSno())).collect(Collectors.toList()); log.info("rList size: {}", rList.size()); - if(!rList.isEmpty()){ + if (!rList.isEmpty()) { rList.forEach(r -> { - - if(r.getFltElevMax() == null){ - log.info("fltElevMax is null"); - r.setFltElevMax(approvalResult.getFltElevMax()); - r.setUpdateDt(Instant.now()); - DosFltPlanResult save = dosFltPlanResultRepository.save(r); - log.info("update: {}", save); - } + r.setApprovalCd(approvalResult.getApprovalCd().getCode()); + r.setFltElevMax(approvalResult.getFltElevMax()); + r.setUpdateDt(Instant.now()); + DosFltPlanResult save = dosFltPlanResultRepository.save(r); + log.info("update: {}", save); }); } else { log.info("result is empty");