Browse Source

feat: 드론원스톱 요청고도 항목 추가

feature/change-airspace
지대한 1 month ago
parent
commit
5ee991f153
  1. 2
      pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanAreaRs.java
  2. 2
      pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosUpdatePlanRq.java
  3. 2
      pav-server/src/main/java/com/palnet/biz/api/bas/dos/service/BasDosService.java
  4. 10
      pav-server/src/main/java/com/palnet/biz/api/external/service/DronOneStopService.java
  5. 3
      pav-server/src/main/java/com/palnet/biz/jpa/entity/DosFltPlanArea.java

2
pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanAreaRs.java

@ -56,6 +56,8 @@ public class BasDosPlanAreaRs {
private String reviewedReason;
// 요청반경
private Long reqRadius;
// 요청고도
private Long reqElev;
// 허용반경
private Long allowRadius;
// 장애물제한표면

2
pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosUpdatePlanRq.java

@ -18,6 +18,8 @@ public class BasDosUpdatePlanRq {
private Long reqRadius;
// 고도
private Double fltElev;
// 요청고도
private Long reqElev;
// 세부사항
private String dtl;
// 긴급구조기관

2
pav-server/src/main/java/com/palnet/biz/api/bas/dos/service/BasDosService.java

@ -255,6 +255,7 @@ public class BasDosService {
.addr3(addr3)
.approvalCd(approvalCd.getCode())
.fltElevMax(fltElevMax)
.reqElev(area.getReqElev())
.dtl(area.getDtl())
.era(area.getEra())
.rm(area.getRm())
@ -338,6 +339,7 @@ public class BasDosService {
DosFltPlanArea area = optional.get();
area.setFltElev(planRq.getFltElev());
area.setReqElev(planRq.getReqElev());
area.setReqRadius(planRq.getReqRadius());
area.setDtl(planRq.getDtl());
area.setEra(planRq.getEra());

10
pav-server/src/main/java/com/palnet/biz/api/external/service/DronOneStopService.java vendored

@ -25,7 +25,6 @@ import java.time.Instant;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Slf4j
@ -120,6 +119,10 @@ public class DronOneStopService {
Coordinate centerCoordinate = new Coordinate(area.getLon(), area.getLat());
DosApprovalResult approvalResult = getApprovalResult(area.getRadius(), area.getElev(), centerCoordinate);
ApprovalCd saveApprovalCd = approvalResult.getApprovalCd();
Double fltElevMax = approvalResult.getFltElevMax();
// fltElevMax를 Long 타입으로 reqElev라는 변수로 10의 자리로 표현
// Long reqElev = fltElevMax != null ? (long) (Math.floor(fltElevMax / 10.0) * 10) : null;
Long reqElev = fltElevMax != null ? (long) Math.floor(fltElevMax) : null;
// 검토결과 - approvalCd가 비대상일 경우 검토불필요 그외 대기
ReviewedType reviewedType = saveApprovalCd == ApprovalCd.UNTARGETED_AREA ? ReviewedType.UNNECESSARY : ReviewedType.WAIT;
@ -137,13 +140,14 @@ public class DronOneStopService {
.reqRadius(approvalResult.getReqRadius())
.limitZone(approvalResult.getLimitZone())
.reviewedType(reviewedType)
.reqElev(reqElev)
.updateDt(Instant.now())
.createDt(Instant.now())
.build();
DosFltPlanArea saveDosFltPlanArea = dosFltPlanAreaRepository.save(dosFltPlanAreaInsert);
// 비행 목적이 특정 문구(수색구조, 인명구조, 시설정검 등)인 경우 승인 처리
if(PASS_PURPOSES.contains(fltaply.getPrps())) {
if (PASS_PURPOSES.contains(fltaply.getPrps())) {
saveApprovalCd = ApprovalCd.APPROVAL;
}
@ -152,7 +156,7 @@ public class DronOneStopService {
.planSno(saveDosFltPlanArea.getPlanSno())
.planAreaSno(saveDosFltPlanArea.getPlanAreaSno())
.approvalCd(saveApprovalCd.getCode())
.fltElevMax(approvalResult.getFltElevMax())
.fltElevMax(fltElevMax)
.updateDt(Instant.now())
.createDt(Instant.now())
.build();

3
pav-server/src/main/java/com/palnet/biz/jpa/entity/DosFltPlanArea.java

@ -68,6 +68,9 @@ public class DosFltPlanArea {
// 장애물 제한 표면
@Column(name = "LIMIT_ZONE")
private String limitZone;
// 요청고도
@Column(name = "REQ_ELEV")
private Long reqElev;
// 수정일시
@Column(name = "UPDATE_DT", columnDefinition = "TIMESTAMP")
private Instant updateDt;

Loading…
Cancel
Save