From 29e578c6cb1e3881ecae1d11a7acd3fbb0113f1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dhji=28=EC=A7=80=EB=8C=80=ED=95=9C=29?= Date: Mon, 16 Oct 2023 15:58:46 +0900 Subject: [PATCH] =?UTF-8?q?LAANC=20=EA=B2=80=EC=A6=9D=EC=8B=9C=20=EA=B8=B0?= =?UTF-8?q?=EC=B2=B4=20=EC=A4=91=EB=B3=B5=20=EB=B0=8F=20=EB=B9=84=ED=96=89?= =?UTF-8?q?=20=EA=B5=AC=EC=97=AD=20=EC=A4=91=EB=B3=B5=20=EC=A0=9C=EC=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bas/laanc/model/BasLaancValidatedRs.java | 18 +++--- .../bas/laanc/service/BasLaancService.java | 55 ++++--------------- .../external/service/SunRiseSetService.java | 18 ++---- 3 files changed, 24 insertions(+), 67 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 467342d9..50be0f12 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 @@ -29,8 +29,6 @@ public class BasLaancValidatedRs { private boolean isPilotQlfc; // 자격여부 private boolean isArcrftInsurance; // 항공기보험여부 - private boolean isArcrftDuplicated; // 기체 중복여부 - private boolean isPlanAreaDuplicatd; // 비행계획서비행구역 중복여부 private boolean isEvaluatedTargetArea; // 평가대상지역여부 - 공역과 겹칠때만 true private boolean isFlightArea; // 비행가능여부 - 비행가능 true @@ -42,19 +40,23 @@ public class BasLaancValidatedRs { private String corpRegYn; // 사업자 여부 private List pilotValidRsList; // 자격여부 + // 활용안함. +// private boolean isArcrftDuplicated; // 기체 중복여부 +// private boolean isPlanAreaDuplicatd; // 비행계획서비행구역 중복여부 + public boolean isValid() { if (isReport) { return isPilotQlfc && isArcrftInsurance - && !isArcrftDuplicated // 기체 중복여부 - && !isPlanAreaDuplicatd // 비행구역 중복여부 +// && !isArcrftDuplicated // 기체 중복여부 +// && !isPlanAreaDuplicatd // 비행구역 중복여부 && isFlightArea // 비행가능여부 && isCheckingLance(); } - return !isArcrftDuplicated - && !isPlanAreaDuplicatd - && isFlightArea - && isCheckingLance(); + return isCheckingLance() +// && !isPlanAreaDuplicatd +// && !isArcrftDuplicated + && isFlightArea; } public boolean isFlight() { 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 e83f162f..fe029a3b 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 @@ -116,13 +116,15 @@ public class BasLaancService { boolean isArcrftWeight = rq.getArcrftList().stream().anyMatch(arcrft -> arcrft.getArcrftWghtCd() != ArcrftWghtCd.W25KG_GO && arcrft.getArcrftWghtCd() != ArcrftWghtCd.W25KG_GO_TEST); rs.setArcrftWeight(isArcrftWeight); - // 판단구역 - 공역과 겹칠 경우, 비행가능여부 + /* 비행구역 및 기체 중복여부 확인 안하기로 함. + // 비행구역 중복여부, 기체 중복여부 BasLaancValidatedRs validationPlanAirspaceRs = this.validationPlanAreaAndArcrft(rq); rs.setPlanAreaDuplicatd(validationPlanAirspaceRs.isPlanAreaDuplicatd()); rs.setArcrftDuplicated(validationPlanAirspaceRs.isArcrftDuplicated()); + */ - // 비행구역 중복여부, 기체 중복여부 + // 판단구역 - 공역과 겹칠 경우, 비행가능여부 BasLaancValidatedRs validationPlanDbRs = this.validationPlanAirspace(rq); rs.setEvaluatedTargetArea(validationPlanDbRs.isEvaluatedTargetArea()); rs.setFlightArea(validationPlanDbRs.isFlightArea()); @@ -139,9 +141,11 @@ public class BasLaancService { // BasLaancValidatedRs validatedAirspaceRs = this.validationPlanAirspace(rq); + /* 비행구역 및 기체 중복여부 확인 안하기로 함. BasLaancValidatedRs validatedDbRs = this.validationPlanAreaAndArcrft(rq); basLaancValidatedRs.setPlanAreaDuplicatd(validatedDbRs.isPlanAreaDuplicatd()); basLaancValidatedRs.setArcrftDuplicated(validatedDbRs.isArcrftDuplicated()); + */ // BasLaancMapper.MAPPER.merge(basLaancValidatedRs, validatedRs); // LAANC가 검증된것들만 DB저장 @@ -311,7 +315,7 @@ public class BasLaancService { comnSmsService.sendLaancAprovSms(comnSmsLaancAprovModel); - } catch (Exception e){ + } catch (Exception e) { log.error("ERROR: ", e); } @@ -324,6 +328,7 @@ public class BasLaancService { } // LAANC 검증 + /* private BasLaancValidatedRs validationPlanAreaAndArcrft(BasLaancPlanRq rq) { // 초기화 @@ -419,51 +424,11 @@ public class BasLaancService { } -// // 공역 중복 확인 -// for (BasLaancAreaModel basLaancAreaModel : rq.getAreaList()) { -// List rqCoord = new ArrayList<>(); -// List rqCoordBufferList = new ArrayList<>(); -// -// //rq로 들어온 좌표로 버퍼좌표 생성 -// for (BasLaancAreaCoordModel basLaancAreaCoordModel : basLaancAreaModel.getCoordList()) { -// Coordinate coords = new Coordinate(basLaancAreaCoordModel.getLon(), basLaancAreaCoordModel.getLat()); -// rqCoord.add(coords); -// } -// if ("LINE".equals(basLaancAreaModel.getAreaType())) { -// List trans = areaUtils.transform(rqCoord, "EPSG:4326", "EPSG:5181"); -// List bufferList = areaUtils.buffer(trans, basLaancAreaModel.getBufferZone()); -// rqCoordBufferList = areaUtils.transform(bufferList, "EPSG:5181", "EPSG:4326"); -// } else if ("POLYGON".equals(basLaancAreaModel.getAreaType())) { -// rqCoordBufferList.addAll(rqCoord); -// } else if ("CIRCLE".equals(basLaancAreaModel.getAreaType())) { -// rqCoordBufferList = areaUtils.createCircle(rqCoord.get(0), basLaancAreaModel.getBufferZone()); -// } -// -// AirspaceUtils airspaceUtils = AirspaceUtils.getInstance(); -// Geometry rqGeometry = airspaceUtils.createGeometryByCoordinate(rqCoordBufferList); -// Integer fltElev = basLaancAreaModel.getFltElev() != null ? Integer.valueOf(basLaancAreaModel.getFltElev()) : 0; -// AirspaceUtils.FeatureInfo featureInfo = new AirspaceUtils.FeatureInfo(null, null, 0, fltElev, rqGeometry); -// -// // 평가 가능 지역 판단 -// boolean duplicatedAirspace = airspaceUtils.isDuplicatedAirspace(featureInfo); -// rs.setEvaluatedTargetArea(duplicatedAirspace); -// -// // 비행 가능 지역 판단 -//// if (duplicatedAirspace) { -//// boolean validLaancAirspace = airspaceUtils.isValidLaancAirspace(featureInfo); -//// rs.setFlightAreaYn(validLaancAirspace ? "Y" : "N"); -//// } else { -//// rs.setFlightAreaYn("N"); -//// } -// -// // 비행 가능 지역 판단 -// boolean validLaancAirspace = airspaceUtils.isValidLaancAirspace(featureInfo); -// rs.setFlightArea(validLaancAirspace); -// -// } return rs; } + */ + private BasLaancValidatedRs validationPlanAirspace(BasLaancPlanRq rq) { // 초기화 diff --git a/pav-server/src/main/java/com/palnet/biz/api/external/service/SunRiseSetService.java b/pav-server/src/main/java/com/palnet/biz/api/external/service/SunRiseSetService.java index d003cf5f..f9a1eb0a 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/external/service/SunRiseSetService.java +++ b/pav-server/src/main/java/com/palnet/biz/api/external/service/SunRiseSetService.java @@ -60,11 +60,11 @@ public class SunRiseSetService { // TODO db에서 누락된 데이터를 조회하여 처리 - // continue 20231202 + // continue 20231129 List locations = getLocation(); // LocalDate targetDate = LocalDate.now(); - LocalDate targetDate = LocalDate.of(2023, 12, 1); - LocalDate end = targetDate.plusMonths(12); + LocalDate targetDate = LocalDate.of(2023, 11, 29); + LocalDate end = targetDate.plusMonths(6); List sunRiseSet = new ArrayList<>(); int cnt = 0; @@ -87,7 +87,7 @@ public class SunRiseSetService { String str = (String) o; if(!str.isEmpty()) { String trim = str.trim(); - if(trim.length() < 6 && trim.length() >= 4) { + if(trim.length() <= 6 && trim.length() >= 4 && trim.matches("-?\\d+(\\.\\d+)?")) { field.set(result, String.format("%-6s", trim).replace(' ', '0')); } else { field.set(result, null); @@ -155,14 +155,4 @@ public class SunRiseSetService { return Arrays.stream(locationStr.split(",")).map(String::trim).distinct().filter(str -> !str.isEmpty()).collect(Collectors.toList()); } - public static void main(String[] args) { - // 현재 시각을 가져옵니다. - Instant now = Instant.now(); - - // 3개월을 더합니다. - Instant threeMonthsLater = now.plus(Period.ofMonths(3)); - - System.out.println("현재 시각: " + now); - System.out.println("3개월 후 시각: " + threeMonthsLater); - } }