From 92dac47d97bf793368f8c854450d40724111a6bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sanguu=28=EB=B0=95=EC=83=81=ED=98=84=29?= Date: Mon, 7 Nov 2022 16:46:27 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B9=84=ED=96=89=EA=B3=84=ED=9A=8D=EC=84=9C?= =?UTF-8?q?=20=EB=82=A0=EC=94=A8=20API=20=EC=97=B0=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BasFlightController.java | 54 ++++++++++++++++--- .../flight/model/BasFlightWeatherModel.java | 16 ++++++ .../cntrl/controller/CtrCntrlController.java | 14 ++--- 3 files changed, 69 insertions(+), 15 deletions(-) create mode 100644 src/main/java/com/palnet/biz/api/bas/flight/model/BasFlightWeatherModel.java diff --git a/src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java b/src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java index 2dcebf7..42b18ad 100644 --- a/src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java +++ b/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 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 = "비행계획서 리스트(승인)") diff --git a/src/main/java/com/palnet/biz/api/bas/flight/model/BasFlightWeatherModel.java b/src/main/java/com/palnet/biz/api/bas/flight/model/BasFlightWeatherModel.java new file mode 100644 index 0000000..c72229a --- /dev/null +++ b/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; + +} diff --git a/src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java b/src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java index d8af247..326107e 100644 --- a/src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java +++ b/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) {