|
|
|
@ -4,28 +4,40 @@ import java.io.BufferedReader;
|
|
|
|
|
import java.io.IOException; |
|
|
|
|
import java.io.InputStream; |
|
|
|
|
import java.io.InputStreamReader; |
|
|
|
|
import java.io.UnsupportedEncodingException; |
|
|
|
|
import java.net.HttpURLConnection; |
|
|
|
|
import java.net.MalformedURLException; |
|
|
|
|
import java.net.URL; |
|
|
|
|
import java.net.URLEncoder; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.Date; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Map; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
import com.palnet.biz.api.bas.flight.model.*; |
|
|
|
|
import com.palnet.comn.code.ErrorCode; |
|
|
|
|
import com.palnet.comn.exception.CustomException; |
|
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
|
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.beans.factory.annotation.Autowired; |
|
|
|
|
import org.springframework.data.domain.PageImpl; |
|
|
|
|
import org.springframework.data.domain.PageRequest; |
|
|
|
|
import org.springframework.data.domain.Pageable; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
import com.palnet.biz.api.acnt.jwt.model.JwtGroupModel; |
|
|
|
|
import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil; |
|
|
|
|
import com.palnet.biz.api.anls.hstry.model.AnlsHstryRsModel; |
|
|
|
|
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.BasFlightPlanAreaCoordModel; |
|
|
|
|
import com.palnet.biz.api.bas.flight.model.BasFlightPlanAreaCoordRq; |
|
|
|
|
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.group.model.BasGroupJoinModel; |
|
|
|
|
import com.palnet.biz.api.comn.model.ComnPagingRs; |
|
|
|
|
import com.palnet.biz.jpa.entity.FltPlanArcrft; |
|
|
|
@ -33,7 +45,6 @@ import com.palnet.biz.jpa.entity.FltPlanArea;
|
|
|
|
|
import com.palnet.biz.jpa.entity.FltPlanAreaCoord; |
|
|
|
|
import com.palnet.biz.jpa.entity.FltPlanBas; |
|
|
|
|
import com.palnet.biz.jpa.entity.FltPlanPilot; |
|
|
|
|
import com.palnet.biz.jpa.repository.com.ComArcrftBasRepository; |
|
|
|
|
import com.palnet.biz.jpa.repository.flt.FltPlanArcrftRepository; |
|
|
|
|
import com.palnet.biz.jpa.repository.flt.FltPlanAreaCoordRepository; |
|
|
|
|
import com.palnet.biz.jpa.repository.flt.FltPlanAreaRepository; |
|
|
|
@ -41,12 +52,14 @@ import com.palnet.biz.jpa.repository.flt.FltPlanBasRepository;
|
|
|
|
|
import com.palnet.biz.jpa.repository.flt.FltPlanPilotRepository; |
|
|
|
|
import com.palnet.biz.jpa.repository.flt.FltPlanQueryRepository; |
|
|
|
|
import com.palnet.biz.jpa.repository.pty.PtyGroupQueryRepository; |
|
|
|
|
import com.palnet.biz.scheduler.ctr.model.CtrTrnsLctnModel; |
|
|
|
|
import com.palnet.biz.scheduler.ctr.service.CtrTrnsLctnService; |
|
|
|
|
import com.palnet.comn.code.ErrorCode; |
|
|
|
|
import com.palnet.comn.exception.CustomException; |
|
|
|
|
import com.palnet.comn.utils.AreaUtils; |
|
|
|
|
import com.palnet.comn.utils.EncryptUtils; |
|
|
|
|
|
|
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
|
import lombok.extern.log4j.Log4j2; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Log4j2 |
|
|
|
@ -54,6 +67,9 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
@Transactional(readOnly = true) |
|
|
|
|
public class BasFlightService { |
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
private CtrTrnsLctnService ctrTrnsLctnService; |
|
|
|
|
|
|
|
|
|
private final FltPlanBasRepository fltPlanBasRepository; |
|
|
|
|
private final FltPlanArcrftRepository fltPlanArcrftRepository; |
|
|
|
|
private final FltPlanAreaRepository fltPlanAreaRepository; |
|
|
|
@ -648,4 +664,54 @@ public class BasFlightService {
|
|
|
|
|
|
|
|
|
|
return schedule; |
|
|
|
|
} |
|
|
|
|
public JSONObject getWeather(BasFlightWeatherModel rq) 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(rq.getPageNo(),"UTF-8")); |
|
|
|
|
urlBuilder.append("&" + URLEncoder.encode("numOfRows","UTF-8") + "=" + URLEncoder.encode(rq.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(rq.getBase_date(), "UTF-8")); /*'21년 6월 28일 발표*/ |
|
|
|
|
urlBuilder.append("&" + URLEncoder.encode("base_time","UTF-8") + "=" + URLEncoder.encode(rq.getBase_time(), "UTF-8")); /*06시 발표(정시단위) */ |
|
|
|
|
urlBuilder.append("&" + URLEncoder.encode("nx","UTF-8") + "=" + URLEncoder.encode(rq.getNx(), "UTF-8")); /*예보지점의 X 좌표값*/ |
|
|
|
|
urlBuilder.append("&" + URLEncoder.encode("ny","UTF-8") + "=" + URLEncoder.encode(rq.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); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
CtrTrnsLctnModel weatherResult = ctrTrnsLctnService.convertLatlonToAddress(rq.getNx2(),rq.getNy2()); |
|
|
|
|
log.info("weatherResult >>>> : {}", weatherResult); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String str = sb.toString(); |
|
|
|
|
JSONParser parser = new JSONParser(); |
|
|
|
|
JSONObject jsonObject = (JSONObject) parser.parse(str); |
|
|
|
|
if(weatherResult != null) { |
|
|
|
|
jsonObject.put("area1",weatherResult.getArea1()); |
|
|
|
|
jsonObject.put("area2",weatherResult.getArea2()); |
|
|
|
|
jsonObject.put("area3",weatherResult.getArea3()); |
|
|
|
|
jsonObject.put("landNm",weatherResult.getLandNm()); |
|
|
|
|
jsonObject.put("landNum",weatherResult.getLandNum()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rd.close(); |
|
|
|
|
conn.disconnect(); |
|
|
|
|
log.info(sb.toString()); |
|
|
|
|
|
|
|
|
|
return jsonObject; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|