From 1b0c6f2962aae9febe172afa62979191c68131e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dhji=28=EC=A7=80=EB=8C=80=ED=95=9C=29?= Date: Fri, 21 Jun 2024 19:26:06 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=93=9C=EB=A1=A0=EC=9B=90=EC=8A=A4?= =?UTF-8?q?=ED=86=B1=20=EC=8B=A0=EC=B2=AD=EB=AA=A9=EB=A1=9D=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20-=20DB=20=EC=BB=AC=EB=9F=BC=20=EC=B6=94=EA=B0=80(?= =?UTF-8?q?=EC=84=B8=EB=B6=80=EC=82=AC=ED=95=AD,=20=EA=B8=B4=EA=B8=89?= =?UTF-8?q?=EA=B5=AC=EC=A1=B0=EA=B8=B0=EA=B4=80,=20=EB=B9=84=EA=B3=A0)=20-?= =?UTF-8?q?=20=EC=A1=B0=ED=9A=8C=EC=8B=9C=20=EC=8B=A0=EC=B2=AD=EC=9D=BC?= =?UTF-8?q?=EC=9E=90=20=EB=B6=84=EB=A6=AC(=EC=9B=94,=EC=9D=BC)=20-=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=EC=8B=9C=20=EC=A3=BC=EC=86=8C=20=EB=B6=84?= =?UTF-8?q?=EA=B8=B0(=ED=96=89=EC=A0=95=EA=B5=AC=EC=97=AD1,=20=ED=96=89?= =?UTF-8?q?=EC=A0=95=EA=B5=AC=EC=97=AD,=20=EC=83=81=EC=84=B8=EC=A3=BC?= =?UTF-8?q?=EC=86=8C)=20-=20=EB=B9=84=ED=96=89=EB=AA=A9=EC=A0=81=20?= =?UTF-8?q?=ED=8A=B9=EC=A0=95=EB=AC=B8=EA=B5=AC(=EB=A0=88=EC=A0=80?= =?UTF-8?q?=EB=B9=84=ED=96=89,=20=EC=82=AC=EC=A7=84/=EC=98=81=EC=83=81?= =?UTF-8?q?=EC=B4=AC=EC=98=81)=20=EC=A0=9C=EC=99=B8=ED=95=98=EA=B3=A0=20?= =?UTF-8?q?=EA=B8=B0=ED=83=80=EB=A1=9C=20=EC=B9=98=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- http/server/server.http | 5 ++ .../api/bas/dos/model/BasDosPlanAreaRs.java | 15 ++++ .../biz/api/bas/dos/model/BasDosPlanRs.java | 6 ++ .../api/bas/dos/service/BasDosService.java | 74 +++++++++++++++++-- .../palnet/biz/jpa/entity/DosFltPlanArea.java | 9 +++ 5 files changed, 103 insertions(+), 6 deletions(-) diff --git a/http/server/server.http b/http/server/server.http index 26c3c999..b1417eac 100644 --- a/http/server/server.http +++ b/http/server/server.http @@ -35,6 +35,11 @@ Content-Type: application/json "userPswd": "palnet!234" } +> {% + const accessToken = 'palnet ' + response.body.data.accessToken + client.global.set("accessToken", accessToken) +%} + ### profile < {% request.variables.set("cstmrSno", "37") diff --git a/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanAreaRs.java b/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanAreaRs.java index 714e4983..37c38e14 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanAreaRs.java +++ b/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanAreaRs.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.time.Instant; +import java.time.LocalDate; import java.util.List; import java.util.Map; @@ -20,6 +21,10 @@ public class BasDosPlanAreaRs { private Long planSno; // 문서번호 private String applyNo; + // 신청일자 + private LocalDate applyDt; + private String applyDtMonth; + private String applyDtDay; // client area id private String zoneNo; // 버퍼존(반경) @@ -34,6 +39,16 @@ public class BasDosPlanAreaRs { private Double lon; // 주소 private String addr; + private String addr1; + private String addr2; + private String addr3; + + // 세부사항 + private String dtl; + // 긴급구조기관 + private String era; + // 비고 + private String rm; // 수정일시 private Instant updateDt; // 생성일시 diff --git a/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanRs.java b/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanRs.java index 8782ea3d..db18c068 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanRs.java +++ b/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanRs.java @@ -20,12 +20,18 @@ public class BasDosPlanRs { private String applyNo; // 신청일자 private LocalDate applyDt; + private String applyDtMonth; + private String applyDtDay; + // 신청자 + private String applyNm; // 제작번호 private String fbctnNo; // 예상비행시작일시 private LocalDate schFltStDt; // 예상비행종료일시 private LocalDate schFltEndDt; + // 비행목적 + private String purpose; // 수정일시 private Instant updateDt; // 생성일시 diff --git a/pav-server/src/main/java/com/palnet/biz/api/bas/dos/service/BasDosService.java b/pav-server/src/main/java/com/palnet/biz/api/bas/dos/service/BasDosService.java index f3fd76d7..c5f30ae6 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/bas/dos/service/BasDosService.java +++ b/pav-server/src/main/java/com/palnet/biz/api/bas/dos/service/BasDosService.java @@ -17,11 +17,11 @@ import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.Geometry; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.time.LocalDate; +import java.time.Month; +import java.util.*; import java.util.stream.Collectors; @Slf4j @@ -62,6 +62,30 @@ public class BasDosService { for (DosFltPlanBas bas : planBasList) { Long planSno = bas.getPlanSno(); String applyNo = bas.getApplyNo(); + + // 신청일시 분할 + LocalDate applyDt = bas.getApplyDt(); + String applyDtMonth = applyDt.getMonthValue() + ""; + String applyDtDay = applyDt.getDayOfMonth() + ""; + + // 비행목적 - 비행목적은 레저비행, 사진/영상촬영을 제외한 나머지 목적은 기타 로 표현 + String purpose = bas.getPurpose(); + String[] purposeTexts = {"레저비행", "사진/영상촬영"}; + if (StringUtils.hasText(purpose)) { + boolean isEtc = true; + for(String compareStr: purposeTexts){ + if(purpose.contains(compareStr)){ + isEtc = false; + break; + } + } + if(isEtc) { + purpose = "기타"; + } + + } + + List areaRsList = new ArrayList<>(); for (DosFltPlanArea area : areaList) { @@ -95,19 +119,52 @@ public class BasDosService { List> bufferCoordList = coordBuffers.stream().map(coord -> Map.of("lat", coord.y, "lon", coord.x)).collect(Collectors.toList()); + // TODO 추후 Utils 생성 + // 주소 분할 - 임시 순서대로 split + String addr = area.getAddr(); + String[] addrArr = addr.split(" "); + String addr1 = ""; + String addr2 = ""; + StringBuilder addrRest = new StringBuilder(); + for (int i = 0; i < addrArr.length; i++) { + switch (i) { + case 0: + addr1 = addrArr[i]; + break; + case 1: + addr2 = addrArr[i]; + break; + case 2: + addrRest.append(addrArr[i]); + break; + default: + addrRest.append(" ").append(addrArr[i]); + break; + } + } + String addr3 = addrRest.toString(); BasDosPlanAreaRs areaRs = BasDosPlanAreaRs.builder() .planAreaSno(area.getPlanAreaSno()) .planSno(area.getPlanSno()) .applyNo(applyNo) + .applyDt(applyDt) + .applyDtMonth(applyDtMonth) + .applyDtDay(applyDtDay) .zoneNo(area.getZoneNo()) .bufferZone(area.getBufferZone()) .fltElev(area.getFltElev()) .lat(area.getLat()) .lon(area.getLon()) - .addr(area.getAddr()) + .addr(addr) + .addr1(addr1) + .addr2(addr2) + .addr3(addr3) .approvalCd(approvalCd) .fltElevMax(fltElevMax) + .dtl(area.getDtl()) + .era(area.getEra()) + .rm(area.getRm()) .bufferCoordList(bufferCoordList) .build(); areaRsList.add(areaRs); @@ -118,13 +175,18 @@ public class BasDosService { continue; } + BasDosPlanRs basRs = BasDosPlanRs.builder() .planSno(bas.getPlanSno()) .applyNo(bas.getApplyNo()) - .applyDt(bas.getApplyDt()) + .applyDt(applyDt) + .applyDtMonth(applyDtMonth) + .applyDtDay(applyDtDay) + .applyNm(bas.getApplyNm()) .fbctnNo(bas.getFbctnNo()) .schFltStDt(bas.getSchFltStDt()) .schFltEndDt(bas.getSchFltEndDt()) + .purpose(purpose) .updateDt(bas.getUpdateDt()) .createDt(bas.getCreateDt()) .areaList(areaRsList) diff --git a/pav-server/src/main/java/com/palnet/biz/jpa/entity/DosFltPlanArea.java b/pav-server/src/main/java/com/palnet/biz/jpa/entity/DosFltPlanArea.java index 7a024cda..38fe6f3c 100644 --- a/pav-server/src/main/java/com/palnet/biz/jpa/entity/DosFltPlanArea.java +++ b/pav-server/src/main/java/com/palnet/biz/jpa/entity/DosFltPlanArea.java @@ -41,6 +41,15 @@ public class DosFltPlanArea { // 주소 @Column(name = "ADDR") private String addr; + // 세부사항 + @Column(name = "DTL") + private String dtl; + // 긴급구조기관 + @Column(name = "era") + private String era; + // 비고 + @Column(name = "RM") + private String rm; // 수정일시 @Column(name = "UPDATE_DT", columnDefinition = "TIMESTAMP") private Instant updateDt;