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) {