Browse Source

공역(금지구역) 포함여부 api

pull/12/head
지대한 11 months ago
parent
commit
7f51aeac43
  1. 33
      pav-server/src/main/java/com/palnet/biz/api/bas/laanc/controller/BasLaancController.java
  2. 26
      pav-server/src/main/java/com/palnet/biz/api/bas/laanc/model/BasLaancDuplicatedAirspaceRs.java
  3. 40
      pav-server/src/main/java/com/palnet/biz/api/bas/laanc/service/BasLaancService.java

33
pav-server/src/main/java/com/palnet/biz/api/bas/laanc/controller/BasLaancController.java

@ -55,7 +55,7 @@ public class BasLaancController {
log.debug(">>> rs : {}", rs); log.debug(">>> rs : {}", rs);
} catch (CustomException e) { } catch (CustomException e) {
Map<String, Object> resultMap = new HashMap<String, Object>(); Map<String, Object> resultMap = new HashMap<>();
log.error("IGNORE : ", e); log.error("IGNORE : ", e);
resultMap.put("result", false); resultMap.put("result", false);
resultMap.put("errorCode", e.getErrorCode()); resultMap.put("errorCode", e.getErrorCode());
@ -80,7 +80,7 @@ public class BasLaancController {
try { try {
rs = basLaancService.createFlightPlan(rq); rs = basLaancService.createFlightPlan(rq);
} catch (CustomException e) { } catch (CustomException e) {
Map<String, Object> resultMap = new HashMap<String, Object>(); Map<String, Object> resultMap = new HashMap<>();
log.error("IGNORE : ", e); log.error("IGNORE : ", e);
resultMap.put("result", false); resultMap.put("result", false);
resultMap.put("errorCode", e.getErrorCode()); resultMap.put("errorCode", e.getErrorCode());
@ -104,7 +104,7 @@ public class BasLaancController {
try { try {
rs = basLaancService.getAllowableElevation(rq); rs = basLaancService.getAllowableElevation(rq);
} catch (CustomException e) { } catch (CustomException e) {
Map<String, Object> resultMap = new HashMap<String, Object>(); Map<String, Object> resultMap = new HashMap<>();
log.error("IGNORE : ", e); log.error("IGNORE : ", e);
resultMap.put("result", false); resultMap.put("result", false);
resultMap.put("errorCode", e.getErrorCode()); resultMap.put("errorCode", e.getErrorCode());
@ -119,6 +119,7 @@ public class BasLaancController {
return ResponseEntity.ok().body(new SuccessResponse<>(rs)); return ResponseEntity.ok().body(new SuccessResponse<>(rs));
} }
// TS 연동 // TS 연동
@PostMapping(value = "/valid/ts/pilot") @PostMapping(value = "/valid/ts/pilot")
@ApiOperation(value = "TS 연동 - 비행자격 조회(조종사 자격증명, 기체보험 여부)") @ApiOperation(value = "TS 연동 - 비행자격 조회(조종사 자격증명, 기체보험 여부)")
@ -128,7 +129,31 @@ public class BasLaancController {
try { try {
rs = basLaancService.getTsValid(idntfNumList); rs = basLaancService.getTsValid(idntfNumList);
} catch (CustomException e) { } catch (CustomException e) {
Map<String, Object> resultMap = new HashMap<String, Object>(); Map<String, Object> resultMap = new HashMap<>();
log.error("IGNORE : ", e);
resultMap.put("result", false);
resultMap.put("errorCode", e.getErrorCode());
resultMap.put("errorMessage", e.getMessage());
return ResponseEntity.ok().body(new SuccessResponse<Map>(resultMap));
} catch (Exception e) {
log.error("IGNORE : ", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ErrorResponse("Server Error", "-1"));
}
return ResponseEntity.ok().body(new SuccessResponse<>(rs));
}
// 허용고도 조회
@PostMapping(value = "/valid/duplicated/airspace")
@ApiOperation(value = "공역(금지구역) 포함 여부")
@Tag(name = "LAANC", description = "LAANC 관련 API")
public ResponseEntity<? extends BasicResponse> getDuplicatedAirspace(@RequestBody List<BasLaancAreaModel> rq) {
List<BasLaancDuplicatedAirspaceRs> rs = null;
try {
rs = basLaancService.getDuplicatedAirspace(rq);
} catch (CustomException e) {
Map<String, Object> resultMap = new HashMap<>();
log.error("IGNORE : ", e); log.error("IGNORE : ", e);
resultMap.put("result", false); resultMap.put("result", false);
resultMap.put("errorCode", e.getErrorCode()); resultMap.put("errorCode", e.getErrorCode());

26
pav-server/src/main/java/com/palnet/biz/api/bas/laanc/model/BasLaancDuplicatedAirspaceRs.java

@ -0,0 +1,26 @@
package com.palnet.biz.api.bas.laanc.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* packageName : com.palnet.biz.api.bas.laanc.model
* fileName : BasLaancDuplicatedAirspaceRs
* author : dhji
* date : 2023-10-25(025)
* description :
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2023-10-25(025) dhji 최초 생성
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class BasLaancDuplicatedAirspaceRs {
private boolean isDuplicated;
private BasLaancAreaModel rq;
}

40
pav-server/src/main/java/com/palnet/biz/api/bas/laanc/service/BasLaancService.java

@ -636,6 +636,7 @@ public class BasLaancService {
return allowElevationList; return allowElevationList;
} }
// TS 연동
public BasLaancTsRs getTsValid(List<String> idntfNumList) { public BasLaancTsRs getTsValid(List<String> idntfNumList) {
// List<String> idntfNumList = rq.getIdntfNumList(); // List<String> idntfNumList = rq.getIdntfNumList();
Integer cstmrSno = jwtTokenUtil.getCstmrSnoByToken(); Integer cstmrSno = jwtTokenUtil.getCstmrSnoByToken();
@ -657,4 +658,43 @@ public class BasLaancService {
.build(); .build();
return rs; return rs;
} }
// 관제권 포함 여부
public List<BasLaancDuplicatedAirspaceRs> getDuplicatedAirspace(List<BasLaancAreaModel> rq) {
AirspaceUtils airspaceUtils = AirspaceUtils.getInstance();
List<BasLaancDuplicatedAirspaceRs> rs = new ArrayList<>();
for (BasLaancAreaModel area : rq) {
//rq로 들어온 좌표로 버퍼좌표 생성
List<Coordinate> targetCoord = new ArrayList<>();
List<Coordinate> targetCoordBufferList = new ArrayList<>();
for (BasLaancAreaCoordModel basLaancAreaCoordModel : area.getCoordList()) {
Coordinate coords = new Coordinate(basLaancAreaCoordModel.getLon(), basLaancAreaCoordModel.getLat());
targetCoord.add(coords);
}
if ("LINE".equals(area.getAreaType())) {
List<Coordinate> trans = areaUtils.transform(targetCoord, "EPSG:4326", "EPSG:5181");
List<Coordinate> bufferList = areaUtils.buffer(trans, area.getBufferZone());
targetCoordBufferList = areaUtils.transform(bufferList, "EPSG:5181", "EPSG:4326");
} else if ("POLYGON".equals(area.getAreaType())) {
targetCoordBufferList.addAll(targetCoord);
} else if ("CIRCLE".equals(area.getAreaType())) {
targetCoordBufferList = areaUtils.createCircle(targetCoord.get(0), area.getBufferZone());
}
Geometry targetGeometry = airspaceUtils.createGeometryByCoordinate(targetCoordBufferList);
Integer fltElev = area.getFltElev() != null ? Integer.parseInt(area.getFltElev()) : 0;
AirspaceUtils.FeatureInfo targetFeatureInfo = new AirspaceUtils.FeatureInfo(null, null, 0, fltElev, targetGeometry);
boolean duplicatedAirspace = airspaceUtils.isDuplicatedAirspace(targetFeatureInfo);
BasLaancDuplicatedAirspaceRs duplicatedAirspaceRs = BasLaancDuplicatedAirspaceRs.builder()
.isDuplicated(duplicatedAirspace)
.rq(area)
.build();
rs.add(duplicatedAirspaceRs);
}
return rs;
}
} }

Loading…
Cancel
Save