@ -1,51 +1,6 @@
package com.palnet.biz.api.bas.flight.controller ;
import java.io.BufferedReader ;
import java.io.FileInputStream ;
import java.io.IOException ;
import java.io.InputStream ;
import java.io.InputStreamReader ;
import java.io.UnsupportedEncodingException ;
import java.net.URLEncoder ;
import java.util.ArrayList ;
import java.util.HashMap ;
import java.util.List ;
import java.util.Map ;
import org.json.simple.JSONArray ;
import org.json.simple.JSONObject ;
import org.json.simple.parser.JSONParser ;
import org.json.simple.parser.ParseException ;
import org.locationtech.jts.geom.Coordinate ;
import org.locationtech.jts.geom.GeometryFactory ;
import org.locationtech.jts.geom.MultiPoint ;
import org.locationtech.jts.geom.Point ;
import org.locationtech.jts.geom.Polygon ;
import org.springframework.beans.factory.annotation.Value ;
import org.springframework.core.env.Environment ;
import org.springframework.core.io.ClassPathResource ;
import org.springframework.core.io.Resource ;
import org.springframework.http.HttpStatus ;
import org.springframework.http.MediaType ;
import org.springframework.http.ResponseEntity ;
import org.springframework.web.bind.annotation.DeleteMapping ;
import org.springframework.web.bind.annotation.GetMapping ;
import org.springframework.web.bind.annotation.PathVariable ;
import org.springframework.web.bind.annotation.PostMapping ;
import org.springframework.web.bind.annotation.PutMapping ;
import org.springframework.web.bind.annotation.RequestBody ;
import org.springframework.web.bind.annotation.RequestMapping ;
import org.springframework.web.bind.annotation.RequestParam ;
import org.springframework.web.bind.annotation.RestController ;
import com.palnet.biz.api.bas.flight.model.BasFlightAprovRq ;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanArcrftModel ;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanAreaModel ;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanListRq ;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanModel ;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanPilotModel ;
import com.palnet.biz.api.bas.flight.model.BasFlightScheduleRs ;
import com.palnet.biz.api.bas.flight.model.BasFlightWeatherModel ;
import com.palnet.biz.api.bas.flight.model.* ;
import com.palnet.biz.api.bas.flight.service.BasFlightService ;
import com.palnet.biz.api.comn.file.service.ComnFileService ;
import com.palnet.biz.api.comn.model.ComnPagingRs ;
@ -55,20 +10,33 @@ import com.palnet.biz.api.comn.response.SuccessResponse;
import com.palnet.biz.scheduler.ctr.service.CtrTrnsLctnService ;
import com.palnet.comn.exception.CustomException ;
import com.palnet.comn.utils.AreaUtils ;
import com.palnet.comn.utils.FlightUtils ;
import com.palnet.comn.utils.PdfUtils ;
import io.swagger.annotations.ApiImplicitParam ;
import io.swagger.annotations.ApiOperation ;
import io.swagger.v3.oas.annotations.tags.Tag ;
import lombok.RequiredArgsConstructor ;
import lombok.extern.slf4j.Slf4j ;
import org.json.simple.JSONObject ;
import org.json.simple.parser.JSONParser ;
import org.json.simple.parser.ParseException ;
import org.locationtech.jts.geom.Coordinate ;
import org.springframework.core.env.Environment ;
import org.springframework.core.io.ClassPathResource ;
import org.springframework.core.io.Resource ;
import org.springframework.http.HttpStatus ;
import org.springframework.http.MediaType ;
import org.springframework.http.ResponseEntity ;
import org.springframework.web.bind.annotation.* ;
import java.io.* ;
import java.net.URLEncoder ;
import java.util.HashMap ;
import java.util.List ;
import java.util.Map ;
@Slf4j
@Tag ( name = "비행계획서" , description = "비행계획서 관련 API" )
@RequiredArgsConstructor
@RestController
@RequestMapping ( value = "/api/bas/flight" , produces = { MediaType . APPLICATION_JSON_VALUE } )
@Tag ( name = "비행계획서" , description = "비행계획서 관련 API" )
public class BasFlightController {
private final BasFlightService basFlightService ;
@ -78,9 +46,15 @@ public class BasFlightController {
private final ComnFileService comnFileService ;
private final PdfUtils pdfUtils ;
/ * *
* 공역데이터 내려주는 기능 .
* @return
* @throws IOException
* @throws ParseException
* /
@GetMapping ( "/area" )
@Tag ( name = "비행계획서" , description = "비행계획서 관련 API" )
public ResponseEntity < Object > findAirSpace ( ) throws IOException , ParseException {
// 1. file read
Resource resource = new ClassPathResource ( "air/airgeo.json" ) ;
InputStream jsonInputStream = resource . getInputStream ( ) ;
@ -102,16 +76,28 @@ public class BasFlightController {
return ResponseEntity . ok ( ) . body ( airArea ) ;
}
// 비행계획서 조회
/ * *
* 비행계획서 조회하는 기능 ,
* BasFlightPlanListRq 모델에 조건값에 따라 조회함 .
* @param rq
* @return
* /
@GetMapping ( value = "/plan/list" )
@ApiOperation ( value = "비행계획서 조회" )
@Tag ( name = "비행계획서" , description = "비행계획서 관련 API" )
// @ApiOperation(value = "비행계획서 조회")
// @Tag(name = "비행계획서", description = "비행계획서 관련 API")
public ResponseEntity < ? extends BasicResponse > findPlanList ( BasFlightPlanListRq rq ) {
ComnPagingRs < BasFlightPlanModel > result = null ;
log . debug ( ">>> rq : {}" , rq ) ;
try {
result = basFlightService . listPlan ( rq ) ;
result = basFlightService . listPlan ( rq ) ; // 비행계획서 조회하는 기능
} catch ( Exception e ) {
/ * *
* try {
. . .
}
* try 영역 안 코드들중 문제가 생기면 오는 곳 .
* log . error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
* /
log . error ( "IGNORE : {}" , e ) ;
return ResponseEntity . status ( HttpStatus . INTERNAL_SERVER_ERROR )
. body ( new ErrorResponse ( "Server Error" , "-1" ) ) ;
@ -120,16 +106,28 @@ public class BasFlightController {
return ResponseEntity . ok ( ) . body ( new SuccessResponse < > ( result ) ) ;
}
// 비행계획서 상세 조회
/ * *
* 비행계획서 상세 조회기능 ,
* 비행계획서 번호 [ planSno ] 로 상세조회
* @param planSno
* @return
* /
@GetMapping ( value = "/plan/detail/{planSno}" )
@ApiOperation ( value = "비행계획서 상세 조회" )
@Tag ( name = "비행계획서" , description = "비행계획서 관련 API" )
@ApiImplicitParam ( name = "planSno" , value = "비행계획서일련번호" , dataTypeClass = Integer . class )
// @ApiOperation(value = "비행계획서 상세 조회")
// @Tag(name = "비행계획서", description = "비행계획서 관련 API")
// @ApiImplicitParam(name = "planSno", value = "비행계획서일련번호", dataTypeClass = Integer.class)
public ResponseEntity < ? extends BasicResponse > detailPlan ( @PathVariable ( "planSno" ) Integer planSno ) {
BasFlightPlanModel result = null ;
try {
result = basFlightService . detailPlan ( planSno ) ;
result = basFlightService . detailPlan ( planSno ) ; // 비행계획서 고유번호[planSno]로 상세 조회하는 기능.
} catch ( Exception e ) {
/ * *
* try {
. . .
}
* try 영역 안 코드들중 문제가 생기면 오는 곳 .
* log . error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
* /
log . error ( "IGNORE : {}" , e ) ;
return ResponseEntity . status ( HttpStatus . INTERNAL_SERVER_ERROR )
. body ( new ErrorResponse ( "Server Error" , "-1" ) ) ;
@ -138,25 +136,46 @@ public class BasFlightController {
return ResponseEntity . ok ( ) . body ( new SuccessResponse < > ( result ) ) ;
}
// 비행계획서 등록
/ * *
* 비행계획서 등록하는 기능 ,
* BasFlightPlanModel모델에 입력받은값으로 등록함 .
* @param rq
* @return
* /
@PostMapping ( value = "/plan/create" )
@ApiOperation ( value = "비행계획서 등록" )
@Tag ( name = "비행계획서" , description = "비행계획서 관련 API" )
// @ApiOperation(value = "비행계획서 등록")
// @Tag(name = "비행계획서", description = "비행계획서 관련 API")
public ResponseEntity < ? extends BasicResponse > createPlan ( @RequestBody BasFlightPlanModel rq ) {
Map < String , Object > resultMap = new HashMap < String , Object > ( ) ;
try {
log . error ( ">>> rq : {}" , rq ) ;
boolean result = basFlightService . createPlan ( rq ) ;
boolean result = basFlightService . createPlan ( rq ) ; // 입력받은 값으로 비행계획서 등록하는 기능.
resultMap . put ( "result" , result ) ;
log . info ( ">>> resultMap : " , resultMap ) ;
} catch ( CustomException e ) {
/ * *
* try {
. . .
}
* try 영역 안 코드들중 문제가 생기면 오는 곳 .
* CustomException은 개발자가 "의도적으로" 낸 예외처리 ,
* log . error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
* /
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 ) {
/ * *
* try {
. . .
}
* try 영역 안 코드들중 문제가 생기면 오는 곳 .
* log . error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
* /
log . error ( "IGNORE : {}" , e ) ;
return ResponseEntity . status ( HttpStatus . INTERNAL_SERVER_ERROR )
. body ( new ErrorResponse ( "Server Error" , "-1" ) ) ;
@ -165,23 +184,43 @@ public class BasFlightController {
return ResponseEntity . ok ( ) . body ( new SuccessResponse < > ( resultMap ) ) ;
}
// 비행계획서 수정
/ * *
* 비행계획서 수정하는 기능 ,
* BasFlightPlanModel 모델에 입력받은 값으로 수정함
* @param rq
* @return
* /
@PutMapping ( value = "/plan/update" )
@ApiOperation ( value = "비행계획서 수정" )
@Tag ( name = "비행계획서" , description = "비행계획서 관련 API" )
// @ApiOperation(value = "비행계획서 수정")
// @Tag(name = "비행계획서", description = "비행계획서 관련 API")
public ResponseEntity < ? extends BasicResponse > updatePlan ( @RequestBody BasFlightPlanModel rq ) {
Map < String , Object > resultMap = new HashMap < String , Object > ( ) ;
try {
boolean result = basFlightService . updatePlan ( rq ) ;
boolean result = basFlightService . updatePlan ( rq ) ; // 입력받은 값으로 비행계획서 수정하는 기능.
resultMap . put ( "result" , result ) ;
} catch ( CustomException e ) {
/ * *
* try {
. . .
}
* try 영역 안 코드들중 문제가 생기면 오는 곳 .
* CustomException은 개발자가 "의도적으로" 낸 예외처리 ,
* log . error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
* /
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 ) {
/ * *
* try {
. . .
}
* try 영역 안 코드들중 문제가 생기면 오는 곳 .
* log . error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
* /
log . error ( "IGNORE : {}" , e ) ;
return ResponseEntity . status ( HttpStatus . INTERNAL_SERVER_ERROR )
. body ( new ErrorResponse ( "Server Error" , "-1" ) ) ;
@ -190,23 +229,43 @@ public class BasFlightController {
return ResponseEntity . ok ( ) . body ( new SuccessResponse < > ( resultMap ) ) ;
}
// 비행계획서 삭제
/ * *
* 비행계획서 삭제하는 기능 ,
* 비행계획서 고유번호 [ planSno ] 로 삭제함 .
* @param planSno
* @return
* /
@DeleteMapping ( value = "/plan/delete/{planSno}" )
@ApiOperation ( value = "비행계획서 삭제" )
@Tag ( name = "비행계획서" , description = "비행계획서 관련 API" )
@ApiImplicitParam ( name = "planSno" , value = "비행계획서일련번호" , dataTypeClass = Integer . class )
// @ApiOperation(value = "비행계획서 삭제")
// @Tag(name = "비행계획서", description = "비행계획서 관련 API")
// @ApiImplicitParam(name = "planSno", value = "비행계획서일련번호", dataTypeClass = Integer.class)
public ResponseEntity < ? extends BasicResponse > deletePlan ( @PathVariable ( "planSno" ) Integer planSno ) {
Map < String , Object > resultMap = new HashMap < String , Object > ( ) ;
try {
boolean result = basFlightService . deletePlan ( planSno ) ;
boolean result = basFlightService . deletePlan ( planSno ) ; // 비행계획서 고유번호[planSno]로 비행계획서 삭제하는 기능.
resultMap . put ( "result" , result ) ;
} catch ( CustomException e ) {
/ * *
* try {
. . .
}
* try 영역 안 코드들중 문제가 생기면 오는 곳 .
* CustomException은 개발자가 "의도적으로" 낸 예외처리 ,
* log . error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
* /
log . error ( "IGNORE : {}" , e ) ;
resultMap . put ( "result" , false ) ;
resultMap . put ( "errorCode" , e . getErrorCode ( ) ) ;
return ResponseEntity . ok ( ) . body ( new SuccessResponse < Map > ( resultMap ) ) ;
} catch ( Exception e ) {
/ * *
* try {
. . .
}
* try 영역 안 코드들중 문제가 생기면 오는 곳 .
* log . error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
* /
log . error ( "IGNORE : {}" , e ) ;
return ResponseEntity . status ( HttpStatus . INTERNAL_SERVER_ERROR )
. body ( new ErrorResponse ( "Server Error" , "-1" ) ) ;
@ -215,17 +274,29 @@ public class BasFlightController {
return ResponseEntity . ok ( ) . body ( new SuccessResponse < > ( resultMap ) ) ;
}
// 그룹 조종사 조회
/ * *
* 그룹 조종사 조회하는 기능
* 그룹아이디 [ groupId ] 로 조회함 .
* @param groupId
* @return
* /
@GetMapping ( value = "/plan/pilot/{groupId}" )
@ApiOperation ( value = "그룹의 조종사 조회" )
@Tag ( name = "비행계획서" , description = "비행계획서 관련 API" )
@ApiImplicitParam ( name = "groupId" , value = "그룹ID" , dataTypeClass = String . class )
// @ApiOperation(value = "그룹의 조종사 조회")
// @Tag(name = "비행계획서", description = "비행계획서 관련 API")
// @ApiImplicitParam(name = "groupId", value = "그룹ID", dataTypeClass = String.class)
public ResponseEntity < ? extends BasicResponse > findPilot ( @PathVariable ( "groupId" ) String groupId ) {
List < BasFlightPlanPilotModel > result = null ;
try {
result = basFlightService . listPilotByGroup ( groupId ) ;
result = basFlightService . listPilotByGroup ( groupId ) ; // 그룹아이디[groupId]로 그룹 조종사 조회하는 기능.
} catch ( Exception e ) {
/ * *
* try {
. . .
}
* try 영역 안 코드들중 문제가 생기면 오는 곳 .
* log . error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
* /
log . error ( "IGNORE : {}" , e ) ;
return ResponseEntity . status ( HttpStatus . INTERNAL_SERVER_ERROR )
. body ( new ErrorResponse ( "Server Error" , "-1" ) ) ;
@ -235,16 +306,28 @@ public class BasFlightController {
}
// 그룹 기체 조회
/ * *
* 그룹 기체 조회하는 기능 ,
* 그룹아이디 [ groupId ] 로 조회함 .
* @param groupId
* @return
* /
@GetMapping ( value = "/plan/arcrft/{groupId}" )
@ApiOperation ( value = "그룹의 기체 조회" )
@Tag ( name = "비행계획서" , description = "비행계획서 관련 API" )
@ApiImplicitParam ( name = "groupId" , value = "그룹ID" , dataTypeClass = String . class )
// @ApiOperation(value = "그룹의 기체 조회")
// @Tag(name = "비행계획서", description = "비행계획서 관련 API")
// @ApiImplicitParam(name = "groupId", value = "그룹ID", dataTypeClass = String.class)
public ResponseEntity < ? extends BasicResponse > findArcrft ( @PathVariable ( "groupId" ) String groupId ) {
List < BasFlightPlanArcrftModel > result = null ;
try {
result = basFlightService . listArcrftByGroup ( groupId ) ;
result = basFlightService . listArcrftByGroup ( groupId ) ; // 그룹아이디[groupId]로 그룹 기체 조회하는 기능.
} catch ( Exception e ) {
/ * *
* try {
. . .
}
* try 영역 안 코드들중 문제가 생기면 오는 곳 .
* log . error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
* /
log . error ( "IGNORE : {}" , e ) ;
return ResponseEntity . status ( HttpStatus . INTERNAL_SERVER_ERROR )
. body ( new ErrorResponse ( "Server Error" , "-1" ) ) ;
@ -254,15 +337,26 @@ public class BasFlightController {
}
// 비행 구역 버퍼 존 생성
/ * *
* 비행 구역 버퍼 존 생성하는 기능
* @param rq
* @return
* /
@PostMapping ( "/plan/area/buffer" )
@ApiOperation ( value = "비행 구역 버퍼 존 생성" )
@Tag ( name = "비행계획서" , description = "비행계획서 관련 API" )
// @ApiOperation(value = "비행 구역 버퍼 존 생성")
// @Tag(name = "비행계획서", description = "비행계획서 관련 API")
public ResponseEntity < ? extends BasicResponse > findBuffer ( @RequestBody List < BasFlightPlanAreaModel > rq ) {
List < BasFlightPlanAreaModel > rs = null ;
try {
rs = basFlightService . getBuffer ( rq ) ;
rs = basFlightService . getBuffer ( rq ) ; // 비행 구역 buffer zone 생성하는 기능.
} catch ( Exception e ) {
/ * *
* try {
. . .
}
* try 영역 안 코드들중 문제가 생기면 오는 곳 .
* log . error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
* /
log . error ( "IGNORE : {}" , e ) ;
return ResponseEntity . status ( HttpStatus . INTERNAL_SERVER_ERROR )
. body ( new ErrorResponse ( "Server Error" , "-1" ) ) ;
@ -271,15 +365,27 @@ public class BasFlightController {
return ResponseEntity . ok ( ) . body ( new SuccessResponse < > ( rs ) ) ;
}
/ * *
* 비행계획서 날씨 확인하는 기능 .
* @param rq
* @return
* /
@GetMapping ( "/plan/api/weather" )
@ApiOperation ( value = "비행계획서 날씨" )
@Tag ( name = "비행계획서" , description = "비행계획서 관련 API" )
// @ApiOperation(value = "비행계획서 날씨")
// @Tag(name = "비행계획서", description = "비행계획서 관련 API")
public ResponseEntity < ? extends BasicResponse > restApiGetWeather ( BasFlightWeatherModel rq ) {
JSONObject jsonObject = null ;
try {
jsonObject = basFlightService . getWeather ( rq ) ;
jsonObject = basFlightService . getWeather ( rq ) ; // 지역과 날씨에 대한 정보를 얻는 기능.
} catch ( Exception e ) {
/ * *
* try {
. . .
}
* try 영역 안 코드들중 문제가 생기면 오는 곳 .
* log . error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
* /
log . error ( "IGNORE : {}" , e ) ;
return ResponseEntity . status ( HttpStatus . INTERNAL_SERVER_ERROR )
. body ( new ErrorResponse ( "Server Error" , "-1" ) ) ;
@ -289,15 +395,27 @@ public class BasFlightController {
return ResponseEntity . ok ( ) . body ( new SuccessResponse < > ( jsonObject ) ) ;
}
// 비행계획서 리스트(승인)
/ * *
* 비행계획서 리스트 ( 승인 ) 를 조회하는 기능 ,
* 입력받은 값으로 승인관련된 비행계획서 리스트를 조회함 .
* @param rq
* @return
* /
@GetMapping ( value = "/aprv/list" )
@ApiOperation ( value = "비행계획서 리스트(승인)" )
@Tag ( name = "비행계획서" , description = "비행계획서 관련 API" )
// @ApiOperation(value = "비행계획서 리스트(승인)")
// @Tag(name = "비행계획서", description = "비행계획서 관련 API")
public ResponseEntity < ? extends BasicResponse > findAprvList ( BasFlightPlanListRq rq ) {
ComnPagingRs < BasFlightPlanModel > result = null ;
try {
result = basFlightService . aprvList ( rq ) ;
result = basFlightService . aprvList ( rq ) ; // 비행계획서 리스트(승인)를 조회하는 기능
} catch ( Exception e ) {
/ * *
* try {
. . .
}
* try 영역 안 코드들중 문제가 생기면 오는 곳 .
* log . error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
* /
log . error ( "IGNORE : {}" , e ) ;
return ResponseEntity . status ( HttpStatus . INTERNAL_SERVER_ERROR )
. body ( new ErrorResponse ( "Server Error" , "-1" ) ) ;
@ -306,22 +424,42 @@ public class BasFlightController {
return ResponseEntity . ok ( ) . body ( new SuccessResponse < > ( result ) ) ;
}
// 비행계획서 승인/미승인
/ * *
* 비행계획서 승인 / 미승인 하는 기능 ,
* BasFlightAprovRq에 있는 값을 토대로 승인 / 미승인 함 .
* @param rq
* @return
* /
@PutMapping ( value = "/aprv/proc" )
@ApiOperation ( value = "비행 계획서 승인/미승인" )
@Tag ( name = "비행계획서" , description = "비행계획서 관련 API" )
// @ApiOperation(value = "비행 계획서 승인/미승인")
// @Tag(name = "비행계획서", description = "비행계획서 관련 API")
public ResponseEntity < ? extends BasicResponse > updateAprvProc ( @RequestBody BasFlightAprovRq rq ) {
Map < String , Object > resultMap = new HashMap < String , Object > ( ) ;
try {
int result = basFlightService . aprovePlan ( rq ) ;
int result = basFlightService . aprovePlan ( rq ) ; // 비행계획서 승인/미승인하는 기능.
resultMap . put ( "result" , result ) ;
} catch ( CustomException e ) {
/ * *
* try {
. . .
}
* try 영역 안 코드들중 문제가 생기면 오는 곳 .
* CustomException은 개발자가 "의도적으로" 낸 예외처리 ,
* log . error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
* /
log . error ( "IGNORE : {}" , e ) ;
resultMap . put ( "result" , false ) ;
resultMap . put ( "errorCode" , e . getErrorCode ( ) ) ;
return ResponseEntity . ok ( ) . body ( new SuccessResponse < Map > ( resultMap ) ) ;
} catch ( Exception e ) {
/ * *
* try {
. . .
}
* try 영역 안 코드들중 문제가 생기면 오는 곳 .
* log . error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
* /
log . error ( "IGNORE : {}" , e ) ;
return ResponseEntity . status ( HttpStatus . INTERNAL_SERVER_ERROR )
. body ( new ErrorResponse ( "Server Error" , "-1" ) ) ;
@ -331,15 +469,27 @@ public class BasFlightController {
}
/ * *
* 비행경로 체크하는 기능 .
* @param rq
* @return
* /
@PostMapping ( "/airspace/contains" )
@Tag ( name = "비행계획서" , description = "비행계획서 관련 API" )
// @Tag(name = "비행계획서", description = "비행계획서 관련 API")
public ResponseEntity < ? extends BasicResponse > checkAirspaceContains ( @RequestBody List < BasFlightPlanAreaModel > rq ) {
Map < String , Object > resultMap = new HashMap < String , Object > ( ) ;
try {
boolean result = basFlightService . checkAirspaceContains ( rq ) ;
boolean result = basFlightService . checkAirspaceContains ( rq ) ; // 비행경로 체크하는 기능.
resultMap . put ( "result" , result ) ;
} catch ( Exception e ) {
/ * *
* try {
. . .
}
* try 영역 안 코드들중 문제가 생기면 오는 곳 .
* log . error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
* /
log . error ( "IGNORE : {}" , e ) ;
return ResponseEntity . status ( HttpStatus . INTERNAL_SERVER_ERROR )
. body ( new ErrorResponse ( "Server Error" , "-1" ) ) ;
@ -349,15 +499,21 @@ public class BasFlightController {
}
//지역 검색
/ * *
* 지역 검색하는 기능 .
* @param query
* @return
* @throws ParseException
* /
@GetMapping ( "/plan/area/search" )
@ApiOperation ( value = "지역 검색" )
@Tag ( name = "비행계획서" , description = "비행계획서 관련 API" )
// @ApiOperation(value = "지역 검색")
// @Tag(name = "비행계획서", description = "비행계획서 관련 API")
public ResponseEntity < ? extends BasicResponse > searchArea ( String query ) throws ParseException {
String text = null ;
try {
text = URLEncoder . encode ( query , "UTF-8" ) ;
} catch ( UnsupportedEncodingException e ) {
// UTF-8 포맷팅으로 인코딩 실패시 에러 던짐
throw new RuntimeException ( "검색어 인코딩 실패" , e ) ;
}
@ -373,16 +529,29 @@ public class BasFlightController {
return ResponseEntity . ok ( ) . body ( new SuccessResponse < > ( obj ) ) ;
}
/ * *
* 비행계획서 스케줄 검색하는 기능 ,
* 검색일 [ searchDate ] 조건으로 조회함 .
* @param searchDate
* @return
* /
@GetMapping ( "/schedule" )
@Tag ( name = "비행계획서" , description = "비행계획서 관련 API" )
// @Tag(name = "비행계획서", description = "비행계획서 관련 API")
public ResponseEntity < ? extends BasicResponse > findSchedule ( @RequestParam ( "searchDate" ) String searchDate ) {
List < BasFlightScheduleRs > response ;
try {
response = basFlightService . findSchecdule ( searchDate ) ;
response = basFlightService . findSchecdule ( searchDate ) ; // 검색날짜 조건으로 비행스케줄 조회하는 기능.
} catch ( Exception e ) {
/ * *
* try {
. . .
}
* try 영역 안 코드들중 문제가 생기면 오는 곳 .
* log . error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
* /
log . error ( "IGNORE : {}" , e ) ;
return ResponseEntity . status ( HttpStatus . INTERNAL_SERVER_ERROR )
. body ( new ErrorResponse ( "Server Error" , "-1" ) ) ;
@ -391,10 +560,15 @@ public class BasFlightController {
return ResponseEntity . ok ( ) . body ( new SuccessResponse < List > ( response ) ) ;
}
// @PostMapping("/coord")
// public JSONObject coordTest(@RequestBody Coordinate coordinate) throws IOException, ParseException {
//
// return FlightUtils.getCoordinateGis(coordinate);
//
// }
@PostMapping ( "/adex/buffer" )
public List < Coordinate > adexBuffer ( @RequestBody BasFlightCoordModel model ) {
List < Coordinate > transCoordList = utils . transform ( model . getCoordinates ( ) , "EPSG:4326" , "EPSG:5181" ) ;
List < Coordinate > bufferList = utils . buffer ( transCoordList , model . getBuffer ( ) ) ; // buffer 영역 생성
List < Coordinate > transBufferList = utils . transform ( bufferList , "EPSG:5181" , "EPSG:4326" ) ; // buffer 영역 좌표계 변환
return transBufferList ;
}
}