Browse Source

비행계획서 날씨 API 연동

Test
sanguu(박상현) 2 years ago
parent
commit
92dac47d97
  1. 52
      src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java
  2. 16
      src/main/java/com/palnet/biz/api/bas/flight/model/BasFlightWeatherModel.java
  3. 14
      src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java

52
src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java

@ -5,11 +5,21 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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 org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
@ -30,13 +40,6 @@ 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.service.BasFlightService;
import com.palnet.biz.api.comn.model.ComnPagingRs;
import com.palnet.biz.api.comn.response.BasicResponse;
@ -255,7 +258,42 @@ public class BasFlightController {
return ResponseEntity.ok().body(new SuccessResponse<>(rs));
}
@GetMapping("/plan/api/weather")
public ResponseEntity<? extends BasicResponse> restApiGetWeather(BasFlightWeatherModel 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("JSON", "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));
}
// 비행계획서 리스트(승인)
@GetMapping(value = "/aprv/list")
@ApiOperation(value = "비행계획서 리스트(승인)")

16
src/main/java/com/palnet/biz/api/bas/flight/model/BasFlightWeatherModel.java

@ -0,0 +1,16 @@
package com.palnet.biz.api.bas.flight.model;
import lombok.Data;
@Data
public class BasFlightWeatherModel {
private String serviceKey;
private String numOfRows;
private String pageNo;
private String dataType;
private String base_date;
private String base_time;
private String nx;
private String ny;
}

14
src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java

@ -153,37 +153,37 @@ public class CtrCntrlController {
else if ((Integer.parseInt(strhour) >= 5 && Integer.parseInt(strminute ) > 9) && Integer.parseInt(strhour) < 8) {
basetime = "0500";
}
else if (Integer.parseInt(strhour) >= 8 && Integer.parseInt(strminute ) < 10) {
else if (Integer.parseInt(strhour) <= 8 && Integer.parseInt(strminute ) < 10) {
basetime = "0500";
}
else if ((Integer.parseInt(strhour) >= 8 && Integer.parseInt(strminute ) > 9) && Integer.parseInt(strhour) < 11) {
basetime = "0800";
}
else if (Integer.parseInt(strhour) >= 11 && Integer.parseInt(strminute ) < 10) {
else if (Integer.parseInt(strhour) <= 11 && Integer.parseInt(strminute ) < 10) {
basetime = "0800";
}
else if (Integer.parseInt(strhour) >= 11 && Integer.parseInt(strhour) < 14) {
else if ((Integer.parseInt(strhour) >= 11 && Integer.parseInt(strminute ) > 9) && Integer.parseInt(strhour) < 14) {
basetime = "1100";
}
else if (Integer.parseInt(strhour) >= 14 && Integer.parseInt(strminute ) < 10) {
else if (Integer.parseInt(strhour) <= 14 && Integer.parseInt(strminute ) < 10) {
basetime = "1100";
}
else if ((Integer.parseInt(strhour) >= 14 && Integer.parseInt(strminute ) > 9) && Integer.parseInt(strhour) < 17) {
basetime = "1400";
}
else if (Integer.parseInt(strhour) >= 17 && Integer.parseInt(strminute ) < 10) {
else if (Integer.parseInt(strhour) <= 17 && Integer.parseInt(strminute ) < 10) {
basetime = "1400";
}
else if ((Integer.parseInt(strhour) >= 17 && Integer.parseInt(strminute ) > 9) && Integer.parseInt(strhour) < 20) {
basetime = "1700";
}
else if (Integer.parseInt(strhour) >= 20 && Integer.parseInt(strminute ) < 10) {
else if (Integer.parseInt(strhour) <= 20 && Integer.parseInt(strminute ) < 10) {
basetime = "2000";
}
else if ((Integer.parseInt(strhour) >= 20 && Integer.parseInt(strminute ) > 9) && Integer.parseInt(strhour) < 23) {
basetime = "2000";
}
else if (Integer.parseInt(strhour) >= 23 && Integer.parseInt(strminute ) < 10) {
else if (Integer.parseInt(strhour) <= 23 && Integer.parseInt(strminute ) < 10) {
basetime = "2300";
}
else if (Integer.parseInt(strhour) >= 23 && Integer.parseInt(strminute ) > 9) {

Loading…
Cancel
Save