|
|
@ -1,5 +1,11 @@ |
|
|
|
package com.palnet.biz.api.ctr.cntrl.controller; |
|
|
|
package com.palnet.biz.api.ctr.cntrl.controller; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.io.BufferedReader; |
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
|
|
|
|
|
import java.io.InputStreamReader; |
|
|
|
|
|
|
|
import java.net.HttpURLConnection; |
|
|
|
|
|
|
|
import java.net.URL; |
|
|
|
|
|
|
|
import java.net.URLEncoder; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Map; |
|
|
@ -8,12 +14,14 @@ import com.palnet.biz.api.ctr.cntrl.model.*; |
|
|
|
import io.swagger.annotations.ApiImplicitParam; |
|
|
|
import io.swagger.annotations.ApiImplicitParam; |
|
|
|
import io.swagger.annotations.ApiOperation; |
|
|
|
import io.swagger.annotations.ApiOperation; |
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag; |
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag; |
|
|
|
|
|
|
|
import org.json.simple.JSONObject; |
|
|
|
|
|
|
|
import org.json.simple.parser.JSONParser; |
|
|
|
|
|
|
|
import org.json.simple.parser.ParseException; |
|
|
|
import org.springframework.http.HttpStatus; |
|
|
|
import org.springframework.http.HttpStatus; |
|
|
|
import org.springframework.http.MediaType; |
|
|
|
import org.springframework.http.MediaType; |
|
|
|
import org.springframework.http.ResponseEntity; |
|
|
|
import org.springframework.http.ResponseEntity; |
|
|
|
import org.springframework.web.bind.annotation.*; |
|
|
|
import org.springframework.web.bind.annotation.*; |
|
|
|
|
|
|
|
|
|
|
|
import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrGroupModel; |
|
|
|
|
|
|
|
import com.palnet.biz.api.bas.flight.model.BasFlightPlanModel; |
|
|
|
import com.palnet.biz.api.bas.flight.model.BasFlightPlanModel; |
|
|
|
import com.palnet.biz.api.comn.response.BasicResponse; |
|
|
|
import com.palnet.biz.api.comn.response.BasicResponse; |
|
|
|
import com.palnet.biz.api.comn.response.ErrorResponse; |
|
|
|
import com.palnet.biz.api.comn.response.ErrorResponse; |
|
|
@ -48,10 +56,10 @@ public class CtrCntrlController { |
|
|
|
public ResponseEntity<? extends BasicResponse> historyList(@PathVariable String id) { |
|
|
|
public ResponseEntity<? extends BasicResponse> historyList(@PathVariable String id) { |
|
|
|
List<GPHistoryModel> result = null; |
|
|
|
List<GPHistoryModel> result = null; |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
try { |
|
|
|
result = service.getListHistory(id); |
|
|
|
result = service.getListHistory(id); |
|
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("IGNORE : {}", e); |
|
|
|
log.error("IGNORE : {}", e); |
|
|
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) |
|
|
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) |
|
|
|
.body(new ErrorResponse("Server Error", "-1")); |
|
|
|
.body(new ErrorResponse("Server Error", "-1")); |
|
|
@ -63,7 +71,7 @@ public class CtrCntrlController { |
|
|
|
/** |
|
|
|
/** |
|
|
|
* TODO 드론 관제 상세 정보 |
|
|
|
* TODO 드론 관제 상세 정보 |
|
|
|
* |
|
|
|
* |
|
|
|
* @param id - 관제 ID |
|
|
|
* @param id - 관제 ID |
|
|
|
* @return |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@GetMapping(value = "/detail/{id}") |
|
|
|
@GetMapping(value = "/detail/{id}") |
|
|
@ -72,11 +80,11 @@ public class CtrCntrlController { |
|
|
|
@ApiImplicitParam(name = "id",value = "관제ID", dataTypeClass = String.class) |
|
|
|
@ApiImplicitParam(name = "id",value = "관제ID", dataTypeClass = String.class) |
|
|
|
public ResponseEntity<? extends BasicResponse> detail(@PathVariable String id) { |
|
|
|
public ResponseEntity<? extends BasicResponse> detail(@PathVariable String id) { |
|
|
|
CtrCntrlDtlModel result = null; |
|
|
|
CtrCntrlDtlModel result = null; |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
try { |
|
|
|
result = service.getDetail(id); |
|
|
|
result = service.getDetail(id); |
|
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("IGNORE : {}", e); |
|
|
|
log.error("IGNORE : {}", e); |
|
|
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) |
|
|
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) |
|
|
|
.body(new ErrorResponse("Server Error", "-1")); |
|
|
|
.body(new ErrorResponse("Server Error", "-1")); |
|
|
@ -108,6 +116,44 @@ public class CtrCntrlController { |
|
|
|
return ResponseEntity.ok().body(new SuccessResponse<>(history)); |
|
|
|
return ResponseEntity.ok().body(new SuccessResponse<>(history)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@GetMapping("/api/weather") |
|
|
|
|
|
|
|
@ApiOperation(value = "TODO 드론 관제 '실시간' 이력 목록") |
|
|
|
|
|
|
|
@Tag(name = "드론 관제 시스템", description = "드론 관제 관련 API") |
|
|
|
|
|
|
|
public ResponseEntity<? extends BasicResponse> restApiGetWeather(CtrCntrlWeatherModel rs) throws IOException, ParseException { |
|
|
|
|
|
|
|
StringBuilder urlBuilder = new StringBuilder("http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst"); |
|
|
|
|
|
|
|
urlBuilder.append("?" + URLEncoder.encode("serviceKey","UTF-8") + "=r6RMUsk3Vtama7D6uq7MiWV9dTC9MwfIIr4%2F45y0uVNw6BaYbgpKmL%2BLUDFVTfIYUmEe4K%2FaniEjdV9mg5t82Q%3D%3D"); |
|
|
|
|
|
|
|
urlBuilder.append("&" + URLEncoder.encode("pageNo","UTF-8") + "=" + URLEncoder.encode(rs.getPageNo(),"UTF-8")); |
|
|
|
|
|
|
|
urlBuilder.append("&" + URLEncoder.encode("numOfRows","UTF-8") + "=" + URLEncoder.encode(rs.getNumOfRows(), "UTF-8")); /*한 페이지 결과 수*/ |
|
|
|
|
|
|
|
urlBuilder.append("&" + URLEncoder.encode("dataType","UTF-8") + "=" + URLEncoder.encode(rs.getDataType(), "UTF-8")); /*요청자료형식(XML/JSON) Default: XML*/ |
|
|
|
|
|
|
|
urlBuilder.append("&" + URLEncoder.encode("base_date","UTF-8") + "=" + URLEncoder.encode(rs.getBase_date(), "UTF-8")); /*'21년 6월 28일 발표*/ |
|
|
|
|
|
|
|
urlBuilder.append("&" + URLEncoder.encode("base_time","UTF-8") + "=" + URLEncoder.encode(rs.getBase_time(), "UTF-8")); /*06시 발표(정시단위) */ |
|
|
|
|
|
|
|
urlBuilder.append("&" + URLEncoder.encode("nx","UTF-8") + "=" + URLEncoder.encode(rs.getNx(), "UTF-8")); /*예보지점의 X 좌표값*/ |
|
|
|
|
|
|
|
urlBuilder.append("&" + URLEncoder.encode("ny","UTF-8") + "=" + URLEncoder.encode(rs.getNy(), "UTF-8")); /*예보지점의 Y 좌표값*/ |
|
|
|
|
|
|
|
URL url = new URL(urlBuilder.toString()); |
|
|
|
|
|
|
|
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); |
|
|
|
|
|
|
|
conn.setRequestMethod("GET"); |
|
|
|
|
|
|
|
conn.setRequestProperty("Content-type", "application/json"); |
|
|
|
|
|
|
|
log.info("Response code: " + conn.getResponseCode()); |
|
|
|
|
|
|
|
BufferedReader rd; |
|
|
|
|
|
|
|
if(conn.getResponseCode() >= 200 && conn.getResponseCode() <= 300) { |
|
|
|
|
|
|
|
rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
rd = new BufferedReader(new InputStreamReader(conn.getErrorStream())); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
StringBuilder sb = new StringBuilder(); |
|
|
|
|
|
|
|
String line; |
|
|
|
|
|
|
|
while ((line = rd.readLine()) != null) { |
|
|
|
|
|
|
|
sb.append(line); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
String str = sb.toString(); |
|
|
|
|
|
|
|
JSONParser parser = new JSONParser(); |
|
|
|
|
|
|
|
JSONObject jsonObject = (JSONObject) parser.parse(str); |
|
|
|
|
|
|
|
rd.close(); |
|
|
|
|
|
|
|
conn.disconnect(); |
|
|
|
|
|
|
|
log.info(sb.toString()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ResponseEntity.ok().body(new SuccessResponse<>(jsonObject)); |
|
|
|
|
|
|
|
} |
|
|
|
/** |
|
|
|
/** |
|
|
|
* TODO 비행 관제 사용자 권한 정보 |
|
|
|
* TODO 비행 관제 사용자 권한 정보 |
|
|
|
* |
|
|
|
* |
|
|
@ -155,10 +201,10 @@ public class CtrCntrlController { |
|
|
|
|
|
|
|
|
|
|
|
return ResponseEntity.ok().body(new SuccessResponse<List>(list)); |
|
|
|
return ResponseEntity.ok().body(new SuccessResponse<List>(list)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* TODO 드론 운행 시작 후 알람 목록 |
|
|
|
* TODO 드론 운행 시작 후 알람 목록 |
|
|
|
* |
|
|
|
* |
|
|
|
* @param id - 관제 ID |
|
|
|
* @param id - 관제 ID |
|
|
|
* @return |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
*/ |
|
|
@ -168,7 +214,7 @@ public class CtrCntrlController { |
|
|
|
@ApiImplicitParam(name = "id",value = "관제ID", dataTypeClass = String.class) |
|
|
|
@ApiImplicitParam(name = "id",value = "관제ID", dataTypeClass = String.class) |
|
|
|
public ResponseEntity<? extends BasicResponse> warnDetail(@PathVariable String id){ |
|
|
|
public ResponseEntity<? extends BasicResponse> warnDetail(@PathVariable String id){ |
|
|
|
List<CtrCntrlWarnLogModel> warnLog; |
|
|
|
List<CtrCntrlWarnLogModel> warnLog; |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
try { |
|
|
|
warnLog = service.getWarnLog(id); |
|
|
|
warnLog = service.getWarnLog(id); |
|
|
|
} catch (Exception e) { |
|
|
|
} catch (Exception e) { |
|
|
@ -270,4 +316,4 @@ public class CtrCntrlController { |
|
|
|
} |
|
|
|
} |
|
|
|
return ResponseEntity.ok().body(new SuccessResponse(result)); |
|
|
|
return ResponseEntity.ok().body(new SuccessResponse(result)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |