|
|
@ -66,9 +66,9 @@ import lombok.extern.log4j.Log4j2; |
|
|
|
@Transactional(readOnly = true) |
|
|
|
@Transactional(readOnly = true) |
|
|
|
public class BasFlightService { |
|
|
|
public class BasFlightService { |
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
@Autowired |
|
|
|
private CtrTrnsLctnService ctrTrnsLctnService; |
|
|
|
private CtrTrnsLctnService ctrTrnsLctnService; |
|
|
|
|
|
|
|
|
|
|
|
private final FltPlanBasRepository fltPlanBasRepository; |
|
|
|
private final FltPlanBasRepository fltPlanBasRepository; |
|
|
|
private final FltPlanArcrftRepository fltPlanArcrftRepository; |
|
|
|
private final FltPlanArcrftRepository fltPlanArcrftRepository; |
|
|
|
private final FltPlanAreaRepository fltPlanAreaRepository; |
|
|
|
private final FltPlanAreaRepository fltPlanAreaRepository; |
|
|
@ -107,43 +107,43 @@ public class BasFlightService { |
|
|
|
String appAuth = jwtTokenUtil.getUserAuthByToken(); |
|
|
|
String appAuth = jwtTokenUtil.getUserAuthByToken(); |
|
|
|
|
|
|
|
|
|
|
|
ComnPagingRs<BasFlightPlanModel> response = new ComnPagingRs<>(); |
|
|
|
ComnPagingRs<BasFlightPlanModel> response = new ComnPagingRs<>(); |
|
|
|
|
|
|
|
|
|
|
|
Pageable pageable = PageRequest.of(rq.getPage()-1, rq.getRecord()); |
|
|
|
Pageable pageable = PageRequest.of(rq.getPage() - 1, rq.getRecord()); |
|
|
|
if(groupList.size() > 0) { |
|
|
|
if (groupList.size() > 0) { |
|
|
|
for (BasGroupJoinModel list : groupList) { |
|
|
|
for (BasGroupJoinModel list : groupList) { |
|
|
|
if (list.getGroupId().equals(rq.getGroupId())) { |
|
|
|
if (list.getGroupId().equals(rq.getGroupId())) { |
|
|
|
userAccount = list.getGroupAuthCd(); |
|
|
|
userAccount = list.getGroupAuthCd(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (appAuth.equals("SUPER") || appAuth.equals("ADMIN")) { |
|
|
|
if (appAuth.equals("SUPER") || appAuth.equals("ADMIN")) { |
|
|
|
masterAccount = "ADMIN"; |
|
|
|
masterAccount = "ADMIN"; |
|
|
|
} else if (userAccount.equals("MASTER") || userAccount.equals("LEADER")) { |
|
|
|
} else if (userAccount.equals("MASTER") || userAccount.equals("LEADER")) { |
|
|
|
masterAccount = "ADMIN"; |
|
|
|
masterAccount = "ADMIN"; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
masterAccount = "NORMAL"; |
|
|
|
masterAccount = "NORMAL"; |
|
|
|
} |
|
|
|
} |
|
|
|
PageImpl<BasFlightPlanModel> result = fltPlanQueryRepository.listPlan(rq, masterAccount, pageable); |
|
|
|
PageImpl<BasFlightPlanModel> result = fltPlanQueryRepository.listPlan(rq, masterAccount, pageable); |
|
|
|
|
|
|
|
|
|
|
|
long total = fltPlanQueryRepository.listPlanCount(rq, masterAccount); |
|
|
|
long total = fltPlanQueryRepository.listPlanCount(rq, masterAccount); |
|
|
|
|
|
|
|
|
|
|
|
long totalPage = total % rq.getRecord() > 0 ? (total/rq.getRecord()) + 1 : total/rq.getRecord(); |
|
|
|
long totalPage = total % rq.getRecord() > 0 ? (total / rq.getRecord()) + 1 : total / rq.getRecord(); |
|
|
|
|
|
|
|
|
|
|
|
response.setItems(result.getContent()); |
|
|
|
response.setItems(result.getContent()); |
|
|
|
response.setTotal(total); |
|
|
|
response.setTotal(total); |
|
|
|
response.setPage(rq.getPage()); |
|
|
|
response.setPage(rq.getPage()); |
|
|
|
response.setTotalPage(totalPage); |
|
|
|
response.setTotalPage(totalPage); |
|
|
|
|
|
|
|
|
|
|
|
return response; |
|
|
|
return response; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 비행계획서 상세 조회
|
|
|
|
// 비행계획서 상세 조회
|
|
|
|
public BasFlightPlanModel detailPlan(Integer planSno) { |
|
|
|
public BasFlightPlanModel detailPlan(Integer planSno) { |
|
|
|
BasFlightPlanModel rs = new BasFlightPlanModel(); |
|
|
|
BasFlightPlanModel rs = new BasFlightPlanModel(); |
|
|
|
// 비행계획서
|
|
|
|
// 비행계획서
|
|
|
|
FltPlanBas planEntity = fltPlanBasRepository.findByPlanSnoAndDelYnNot(planSno, "Y").orElse(null); |
|
|
|
FltPlanBas planEntity = fltPlanBasRepository.findByPlanSnoAndDelYnNot(planSno, "Y").orElse(null); |
|
|
|
if(planEntity != null){ |
|
|
|
if (planEntity != null) { |
|
|
|
rs = BasFlightMapper.mapper.entityToModel(planEntity); |
|
|
|
rs = BasFlightMapper.mapper.entityToModel(planEntity); |
|
|
|
// 버퍼영역
|
|
|
|
// 버퍼영역
|
|
|
|
List<FltPlanArea> areaEntityList = fltPlanAreaRepository.findByPlanSnoOrderByPlanAreaSnoAsc(planSno); |
|
|
|
List<FltPlanArea> areaEntityList = fltPlanAreaRepository.findByPlanSnoOrderByPlanAreaSnoAsc(planSno); |
|
|
|
if (areaEntityList != null && !areaEntityList.isEmpty()) { |
|
|
|
if (areaEntityList != null && !areaEntityList.isEmpty()) { |
|
|
@ -155,7 +155,7 @@ public class BasFlightService { |
|
|
|
areaModel.setCoordList(BasFlightMapper.mapper.entityToModelCoordList(coordEntityList)); |
|
|
|
areaModel.setCoordList(BasFlightMapper.mapper.entityToModelCoordList(coordEntityList)); |
|
|
|
|
|
|
|
|
|
|
|
// Line인 경우 BufferList 생성
|
|
|
|
// Line인 경우 BufferList 생성
|
|
|
|
if("LINE".equals(areaEntity.getAreaType())) { |
|
|
|
if ("LINE".equals(areaEntity.getAreaType())) { |
|
|
|
List<Coordinate> convertCoordinates = areaUtils.convertCoordinates(areaModel.getCoordList()); |
|
|
|
List<Coordinate> convertCoordinates = areaUtils.convertCoordinates(areaModel.getCoordList()); |
|
|
|
List<Coordinate> bufferList = areaUtils.buffer(convertCoordinates, areaModel.getBufferZone()); |
|
|
|
List<Coordinate> bufferList = areaUtils.buffer(convertCoordinates, areaModel.getBufferZone()); |
|
|
|
List<BasFlightPlanAreaCoordModel> bufferCoordList = areaUtils.convertModel(bufferList); |
|
|
|
List<BasFlightPlanAreaCoordModel> bufferCoordList = areaUtils.convertModel(bufferList); |
|
|
@ -180,93 +180,93 @@ public class BasFlightService { |
|
|
|
} |
|
|
|
} |
|
|
|
return rs; |
|
|
|
return rs; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public void planValid(BasFlightPlanModel rq) { |
|
|
|
public void planValid(BasFlightPlanModel rq) { |
|
|
|
boolean isEqualsFltElev = false; |
|
|
|
boolean isEqualsFltElev = false; |
|
|
|
List<BasFlightPlanAreaModel> rqAreaList = rq.getAreaList(); |
|
|
|
List<BasFlightPlanAreaModel> rqAreaList = rq.getAreaList(); |
|
|
|
String rqFltElev = rqAreaList.get(0).getFltElev(); |
|
|
|
String rqFltElev = rqAreaList.get(0).getFltElev(); |
|
|
|
|
|
|
|
|
|
|
|
List<BasFlightPlanModel> effectivePlanList = fltPlanQueryRepository.CoordCheck(rq); |
|
|
|
List<BasFlightPlanModel> effectivePlanList = fltPlanQueryRepository.CoordCheck(rq); |
|
|
|
|
|
|
|
|
|
|
|
List<BasFlightPlanAreaModel> effectivePlanArea = new ArrayList<>(); |
|
|
|
List<BasFlightPlanAreaModel> effectivePlanArea = new ArrayList<>(); |
|
|
|
for(BasFlightPlanModel plan : effectivePlanList) { |
|
|
|
for (BasFlightPlanModel plan : effectivePlanList) { |
|
|
|
effectivePlanArea.addAll(plan.getAreaList()); |
|
|
|
effectivePlanArea.addAll(plan.getAreaList()); |
|
|
|
} |
|
|
|
} |
|
|
|
for(BasFlightPlanAreaModel area : effectivePlanArea) { |
|
|
|
for (BasFlightPlanAreaModel area : effectivePlanArea) { |
|
|
|
if(rqFltElev.equals(area.getFltElev())) isEqualsFltElev = true; |
|
|
|
if (rqFltElev.equals(area.getFltElev())) isEqualsFltElev = true; |
|
|
|
} |
|
|
|
} |
|
|
|
List<BasFlightPlanAreaCoordRq> effectivePlanCount = fltPlanQueryRepository.CoordCount(rq); |
|
|
|
List<BasFlightPlanAreaCoordRq> effectivePlanCount = fltPlanQueryRepository.CoordCount(rq); |
|
|
|
for(BasFlightPlanModel i : effectivePlanList) { |
|
|
|
for (BasFlightPlanModel i : effectivePlanList) { |
|
|
|
if(rq.getPlanSno().equals(i.getPlanSno()))return; |
|
|
|
if (rq.getPlanSno().equals(i.getPlanSno())) return; |
|
|
|
} |
|
|
|
} |
|
|
|
if(effectivePlanList != null && !effectivePlanList.isEmpty()) { |
|
|
|
if (effectivePlanList != null && !effectivePlanList.isEmpty()) { |
|
|
|
for(BasFlightPlanModel plan : effectivePlanList) { |
|
|
|
for (BasFlightPlanModel plan : effectivePlanList) { |
|
|
|
// 1. 구역 조회
|
|
|
|
// 1. 구역 조회
|
|
|
|
List<FltPlanArea> areaList = fltPlanAreaRepository.findByPlanSnoOrderByPlanAreaSnoAsc(plan.getPlanSno()); |
|
|
|
List<FltPlanArea> areaList = fltPlanAreaRepository.findByPlanSnoOrderByPlanAreaSnoAsc(plan.getPlanSno()); |
|
|
|
|
|
|
|
|
|
|
|
// 2. 좌표 조회 -> 영역 포함 여부 확인
|
|
|
|
// 2. 좌표 조회 -> 영역 포함 여부 확인
|
|
|
|
for(FltPlanArea area : areaList) { |
|
|
|
for (FltPlanArea area : areaList) { |
|
|
|
List<FltPlanAreaCoord> coordList = fltPlanAreaCoordRepository.findByPlanAreaSnoOrderByPlanAreaCoordSnoAsc(area.getPlanAreaSno()); |
|
|
|
List<FltPlanAreaCoord> coordList = fltPlanAreaCoordRepository.findByPlanAreaSnoOrderByPlanAreaCoordSnoAsc(area.getPlanAreaSno()); |
|
|
|
|
|
|
|
|
|
|
|
if(coordList != null && !coordList.isEmpty()) { |
|
|
|
if (coordList != null && !coordList.isEmpty()) { |
|
|
|
List<BasFlightPlanAreaCoordModel> coordListMapping = BasFlightMapper.mapper.entityToModelCoordList(coordList); |
|
|
|
List<BasFlightPlanAreaCoordModel> coordListMapping = BasFlightMapper.mapper.entityToModelCoordList(coordList); |
|
|
|
|
|
|
|
|
|
|
|
// 2-1 영역 좌표 -> jts model로 mapping
|
|
|
|
// 2-1 영역 좌표 -> jts model로 mapping
|
|
|
|
List<Coordinate> effectiveCoordList = areaUtils.convertCoordinates(coordListMapping); |
|
|
|
List<Coordinate> effectiveCoordList = areaUtils.convertCoordinates(coordListMapping); |
|
|
|
List<Coordinate> effectiveCoordBufferList = new ArrayList<>(); |
|
|
|
List<Coordinate> effectiveCoordBufferList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
// Query에서 조회한 좌표로 버퍼좌표 생성
|
|
|
|
// Query에서 조회한 좌표로 버퍼좌표 생성
|
|
|
|
if("LINE".equals(area.getAreaType())){ |
|
|
|
if ("LINE".equals(area.getAreaType())) { |
|
|
|
List<Coordinate> trans = areaUtils.transform(effectiveCoordList, "EPSG:4326", "EPSG:5181"); |
|
|
|
List<Coordinate> trans = areaUtils.transform(effectiveCoordList, "EPSG:4326", "EPSG:5181"); |
|
|
|
List<Coordinate> bufferList = areaUtils.buffer(trans, area.getBufferZone()); |
|
|
|
List<Coordinate> bufferList = areaUtils.buffer(trans, area.getBufferZone()); |
|
|
|
effectiveCoordBufferList = areaUtils.transform(bufferList, "EPSG:5181", "EPSG:4326"); |
|
|
|
effectiveCoordBufferList = areaUtils.transform(bufferList, "EPSG:5181", "EPSG:4326"); |
|
|
|
} |
|
|
|
} |
|
|
|
if("POLYGON".equals(area.getAreaType())) { |
|
|
|
if ("POLYGON".equals(area.getAreaType())) { |
|
|
|
effectiveCoordBufferList.addAll(effectiveCoordList); |
|
|
|
effectiveCoordBufferList.addAll(effectiveCoordList); |
|
|
|
} |
|
|
|
} |
|
|
|
if("CIRCLE".equals(area.getAreaType())) { |
|
|
|
if ("CIRCLE".equals(area.getAreaType())) { |
|
|
|
effectiveCoordBufferList = areaUtils.createCircle(effectiveCoordList.get(0), area.getBufferZone()); |
|
|
|
effectiveCoordBufferList = areaUtils.createCircle(effectiveCoordList.get(0), area.getBufferZone()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 유효한 비행구역 검증하기.
|
|
|
|
// 유효한 비행구역 검증하기.
|
|
|
|
for(BasFlightPlanAreaModel rqArea : rq.getAreaList()) { |
|
|
|
for (BasFlightPlanAreaModel rqArea : rq.getAreaList()) { |
|
|
|
boolean overlapCheck = false; |
|
|
|
boolean overlapCheck = false; |
|
|
|
boolean overlapCheck2 = false; |
|
|
|
boolean overlapCheck2 = false; |
|
|
|
boolean containCheck = false; |
|
|
|
boolean containCheck = false; |
|
|
|
boolean containCheck2 = false; |
|
|
|
boolean containCheck2 = false; |
|
|
|
List<Coordinate> rqCoord = new ArrayList<>(); |
|
|
|
List<Coordinate> rqCoord = new ArrayList<>(); |
|
|
|
List<Coordinate> rqCoordBufferList = new ArrayList<>(); |
|
|
|
List<Coordinate> rqCoordBufferList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
//rq로 들어온 좌표로 버퍼좌표 생성
|
|
|
|
//rq로 들어온 좌표로 버퍼좌표 생성
|
|
|
|
for(BasFlightPlanAreaCoordModel coord : rqArea.getCoordList()) { |
|
|
|
for (BasFlightPlanAreaCoordModel coord : rqArea.getCoordList()) { |
|
|
|
Coordinate coords = new Coordinate(coord.getLon(), coord.getLat()); |
|
|
|
Coordinate coords = new Coordinate(coord.getLon(), coord.getLat()); |
|
|
|
rqCoord.add(coords); |
|
|
|
rqCoord.add(coords); |
|
|
|
} |
|
|
|
} |
|
|
|
if("LINE".equals(rqArea.getAreaType())){ |
|
|
|
if ("LINE".equals(rqArea.getAreaType())) { |
|
|
|
List<Coordinate> trans = areaUtils.transform(rqCoord, "EPSG:4326", "EPSG:5181"); |
|
|
|
List<Coordinate> trans = areaUtils.transform(rqCoord, "EPSG:4326", "EPSG:5181"); |
|
|
|
List<Coordinate> bufferList = areaUtils.buffer(trans, rqArea.getBufferZone()); |
|
|
|
List<Coordinate> bufferList = areaUtils.buffer(trans, rqArea.getBufferZone()); |
|
|
|
rqCoordBufferList = areaUtils.transform(bufferList, "EPSG:5181", "EPSG:4326"); |
|
|
|
rqCoordBufferList = areaUtils.transform(bufferList, "EPSG:5181", "EPSG:4326"); |
|
|
|
}else if( "POLYGON".equals(rqArea.getAreaType())) { |
|
|
|
} else if ("POLYGON".equals(rqArea.getAreaType())) { |
|
|
|
rqCoordBufferList.addAll(rqCoord); |
|
|
|
rqCoordBufferList.addAll(rqCoord); |
|
|
|
}else if("CIRCLE".equals(rqArea.getAreaType())) { |
|
|
|
} else if ("CIRCLE".equals(rqArea.getAreaType())) { |
|
|
|
rqCoordBufferList = areaUtils.createCircle(rqCoord.get(0), rqArea.getBufferZone()); |
|
|
|
rqCoordBufferList = areaUtils.createCircle(rqCoord.get(0), rqArea.getBufferZone()); |
|
|
|
} |
|
|
|
} |
|
|
|
//검증
|
|
|
|
//검증
|
|
|
|
|
|
|
|
|
|
|
|
overlapCheck = areaUtils.overlaps(rqCoordBufferList, effectiveCoordBufferList); |
|
|
|
overlapCheck = areaUtils.overlaps(rqCoordBufferList, effectiveCoordBufferList); |
|
|
|
overlapCheck2 = areaUtils.overlaps(effectiveCoordBufferList, rqCoordBufferList); |
|
|
|
overlapCheck2 = areaUtils.overlaps(effectiveCoordBufferList, rqCoordBufferList); |
|
|
|
if((overlapCheck || overlapCheck2) && isEqualsFltElev) { |
|
|
|
if ((overlapCheck || overlapCheck2) && isEqualsFltElev) { |
|
|
|
throw new CustomException(ErrorCode.PLAN_DATA_DUPLICATE); |
|
|
|
throw new CustomException(ErrorCode.PLAN_DATA_DUPLICATE); |
|
|
|
} |
|
|
|
} |
|
|
|
for(Coordinate coord : effectiveCoordBufferList) { |
|
|
|
for (Coordinate coord : effectiveCoordBufferList) { |
|
|
|
containCheck = areaUtils.contains(rqCoordBufferList, coord); |
|
|
|
containCheck = areaUtils.contains(rqCoordBufferList, coord); |
|
|
|
if(containCheck && isEqualsFltElev) { |
|
|
|
if (containCheck && isEqualsFltElev) { |
|
|
|
throw new CustomException(ErrorCode.PLAN_DATA_DUPLICATE); |
|
|
|
throw new CustomException(ErrorCode.PLAN_DATA_DUPLICATE); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
for(Coordinate coord : rqCoordBufferList) { |
|
|
|
for (Coordinate coord : rqCoordBufferList) { |
|
|
|
containCheck2 = areaUtils.contains(effectiveCoordBufferList , coord); |
|
|
|
containCheck2 = areaUtils.contains(effectiveCoordBufferList, coord); |
|
|
|
if(containCheck2 && isEqualsFltElev) { |
|
|
|
if (containCheck2 && isEqualsFltElev) { |
|
|
|
throw new CustomException(ErrorCode.PLAN_DATA_DUPLICATE); |
|
|
|
throw new CustomException(ErrorCode.PLAN_DATA_DUPLICATE); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -275,18 +275,18 @@ public class BasFlightService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 3. 중복 기체 확인
|
|
|
|
// 3. 중복 기체 확인
|
|
|
|
for(BasFlightPlanAreaCoordRq idntfNum : effectivePlanCount) { |
|
|
|
for (BasFlightPlanAreaCoordRq idntfNum : effectivePlanCount) { |
|
|
|
for(BasFlightPlanArcrftModel rqArcrft : rq.getArcrftList()) { |
|
|
|
for (BasFlightPlanArcrftModel rqArcrft : rq.getArcrftList()) { |
|
|
|
if(rqArcrft.getIdntfNum().equals(idntfNum.getIdntfNum())) { |
|
|
|
if (rqArcrft.getIdntfNum().equals(idntfNum.getIdntfNum())) { |
|
|
|
throw new CustomException(ErrorCode.ARCRFT_DATA_DUPLICATE); |
|
|
|
throw new CustomException(ErrorCode.ARCRFT_DATA_DUPLICATE); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 비행계획서 등록
|
|
|
|
// 비행계획서 등록
|
|
|
|
@Transactional |
|
|
|
@Transactional |
|
|
|
public boolean createPlan(BasFlightPlanModel rq) { |
|
|
|
public boolean createPlan(BasFlightPlanModel rq) { |
|
|
@ -355,10 +355,10 @@ public class BasFlightService { |
|
|
|
// 비행계획서 수정
|
|
|
|
// 비행계획서 수정
|
|
|
|
@Transactional |
|
|
|
@Transactional |
|
|
|
public boolean updatePlan(BasFlightPlanModel rq) { |
|
|
|
public boolean updatePlan(BasFlightPlanModel rq) { |
|
|
|
|
|
|
|
|
|
|
|
// 비행계획서 유효성 검사.
|
|
|
|
// 비행계획서 유효성 검사.
|
|
|
|
this.planValid(rq); |
|
|
|
this.planValid(rq); |
|
|
|
|
|
|
|
|
|
|
|
if (rq != null && rq.getPlanSno() != null) { |
|
|
|
if (rq != null && rq.getPlanSno() != null) { |
|
|
|
String userId = jwtTokenUtil.getUserIdByToken(); |
|
|
|
String userId = jwtTokenUtil.getUserIdByToken(); |
|
|
|
Integer planSno = rq.getPlanSno(); |
|
|
|
Integer planSno = rq.getPlanSno(); |
|
|
@ -426,17 +426,17 @@ public class BasFlightService { |
|
|
|
|
|
|
|
|
|
|
|
// 조종사
|
|
|
|
// 조종사
|
|
|
|
List<BasFlightPlanPilotModel> pilotModelList = rq.getPilotList(); |
|
|
|
List<BasFlightPlanPilotModel> pilotModelList = rq.getPilotList(); |
|
|
|
if(pilotModelList != null && !pilotModelList.isEmpty()){ |
|
|
|
if (pilotModelList != null && !pilotModelList.isEmpty()) { |
|
|
|
List<FltPlanPilot> pilotEntityList = fltPlanPilotRepository.findByPlanSnoOrderByPlanPilotSnoAsc(planSno); |
|
|
|
List<FltPlanPilot> pilotEntityList = fltPlanPilotRepository.findByPlanSnoOrderByPlanPilotSnoAsc(planSno); |
|
|
|
for(BasFlightPlanPilotModel pilotModel : pilotModelList){ |
|
|
|
for (BasFlightPlanPilotModel pilotModel : pilotModelList) { |
|
|
|
FltPlanPilot pilotEntity = pilotEntityList.stream().filter(fltPlanPilot -> fltPlanPilot.getPlanPilotSno().equals(pilotModel.getPlanPilotSno())).findFirst().orElse(null); |
|
|
|
FltPlanPilot pilotEntity = pilotEntityList.stream().filter(fltPlanPilot -> fltPlanPilot.getPlanPilotSno().equals(pilotModel.getPlanPilotSno())).findFirst().orElse(null); |
|
|
|
if(pilotEntity == null){ |
|
|
|
if (pilotEntity == null) { |
|
|
|
pilotEntity = BasFlightMapper.mapper.modelToEntity(pilotModel); |
|
|
|
pilotEntity = BasFlightMapper.mapper.modelToEntity(pilotModel); |
|
|
|
pilotEntity.setUpdateUserId(userId); |
|
|
|
pilotEntity.setUpdateUserId(userId); |
|
|
|
pilotEntity.setCreateUserId(userId); |
|
|
|
pilotEntity.setCreateUserId(userId); |
|
|
|
|
|
|
|
|
|
|
|
}else { |
|
|
|
} else { |
|
|
|
BasFlightMapper.mapper.updateEntityByModel(pilotEntity, pilotModel); |
|
|
|
BasFlightMapper.mapper.updateEntityByModel(pilotEntity, pilotModel); |
|
|
|
} |
|
|
|
} |
|
|
|
fltPlanPilotRepository.save(pilotEntity); |
|
|
|
fltPlanPilotRepository.save(pilotEntity); |
|
|
|
} |
|
|
|
} |
|
|
@ -452,16 +452,16 @@ public class BasFlightService { |
|
|
|
|
|
|
|
|
|
|
|
// 기체
|
|
|
|
// 기체
|
|
|
|
List<BasFlightPlanArcrftModel> arcrftModelList = rq.getArcrftList(); |
|
|
|
List<BasFlightPlanArcrftModel> arcrftModelList = rq.getArcrftList(); |
|
|
|
if(arcrftModelList != null && !arcrftModelList.isEmpty()){ |
|
|
|
if (arcrftModelList != null && !arcrftModelList.isEmpty()) { |
|
|
|
List<FltPlanArcrft> arcrftEntityList = fltPlanArcrftRepository.findByPlanSnoOrderByPlanArcrftSnoAsc(planSno); |
|
|
|
List<FltPlanArcrft> arcrftEntityList = fltPlanArcrftRepository.findByPlanSnoOrderByPlanArcrftSnoAsc(planSno); |
|
|
|
for(BasFlightPlanArcrftModel arcrftModel : arcrftModelList){ |
|
|
|
for (BasFlightPlanArcrftModel arcrftModel : arcrftModelList) { |
|
|
|
FltPlanArcrft arcrftEntity = arcrftEntityList.stream().filter(fltPlanArcrft -> fltPlanArcrft.getPlanArcrftSno().equals(arcrftModel.getPlanArcrftSno())).findFirst().orElse(null); |
|
|
|
FltPlanArcrft arcrftEntity = arcrftEntityList.stream().filter(fltPlanArcrft -> fltPlanArcrft.getPlanArcrftSno().equals(arcrftModel.getPlanArcrftSno())).findFirst().orElse(null); |
|
|
|
if(arcrftEntity == null){ |
|
|
|
if (arcrftEntity == null) { |
|
|
|
arcrftEntity = BasFlightMapper.mapper.modelToEntity(arcrftModel); |
|
|
|
arcrftEntity = BasFlightMapper.mapper.modelToEntity(arcrftModel); |
|
|
|
arcrftEntity.setUpdateUserId(userId); |
|
|
|
arcrftEntity.setUpdateUserId(userId); |
|
|
|
arcrftEntity.setCreateUserId(userId); |
|
|
|
arcrftEntity.setCreateUserId(userId); |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
BasFlightMapper.mapper.updateEntityByModel(arcrftEntity, arcrftModel); |
|
|
|
BasFlightMapper.mapper.updateEntityByModel(arcrftEntity, arcrftModel); |
|
|
|
} |
|
|
|
} |
|
|
|
fltPlanArcrftRepository.save(arcrftEntity); |
|
|
|
fltPlanArcrftRepository.save(arcrftEntity); |
|
|
|
} |
|
|
|
} |
|
|
@ -488,22 +488,21 @@ public class BasFlightService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 그룹 조종사 조회
|
|
|
|
// 그룹 조종사 조회
|
|
|
|
public List<BasFlightPlanPilotModel> listPilotByGroup(String groupId) { |
|
|
|
public List<BasFlightPlanPilotModel> listPilotByGroup(String groupId) { |
|
|
|
List<BasFlightPlanPilotModel> pilotList = fltPlanQueryRepository.listPilot(groupId); |
|
|
|
List<BasFlightPlanPilotModel> pilotList = fltPlanQueryRepository.listPilot(groupId); |
|
|
|
|
|
|
|
|
|
|
|
/* 개인정보 복호화 처리 */ |
|
|
|
/* 개인정보 복호화 처리 */ |
|
|
|
for(BasFlightPlanPilotModel model : pilotList) { |
|
|
|
for (BasFlightPlanPilotModel model : pilotList) { |
|
|
|
if(!StringUtils.isEmpty(model.getHpno())) { |
|
|
|
if (!StringUtils.isEmpty(model.getHpno())) { |
|
|
|
model.setHpno(EncryptUtils.decrypt(model.getHpno())); |
|
|
|
model.setHpno(EncryptUtils.decrypt(model.getHpno())); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if(!StringUtils.isEmpty(model.getMemberName())) { |
|
|
|
if (!StringUtils.isEmpty(model.getMemberName())) { |
|
|
|
// model.setMemberName(EncryptUtils.decrypt(model.getMemberName()));
|
|
|
|
// model.setMemberName(EncryptUtils.decrypt(model.getMemberName()));
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if(!StringUtils.isEmpty(model.getEmail())) { |
|
|
|
if (!StringUtils.isEmpty(model.getEmail())) { |
|
|
|
model.setEmail(EncryptUtils.decrypt(model.getEmail())); |
|
|
|
model.setEmail(EncryptUtils.decrypt(model.getEmail())); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -523,9 +522,9 @@ public class BasFlightService { |
|
|
|
// 비행 구역 buffer zone
|
|
|
|
// 비행 구역 buffer zone
|
|
|
|
public List<BasFlightPlanAreaModel> getBuffer(List<BasFlightPlanAreaModel> rq) { |
|
|
|
public List<BasFlightPlanAreaModel> getBuffer(List<BasFlightPlanAreaModel> rq) { |
|
|
|
|
|
|
|
|
|
|
|
for(BasFlightPlanAreaModel area : rq) { |
|
|
|
for (BasFlightPlanAreaModel area : rq) { |
|
|
|
|
|
|
|
|
|
|
|
if("LINE".equals(area.getAreaType())) { |
|
|
|
if ("LINE".equals(area.getAreaType())) { |
|
|
|
List<Coordinate> convertCoordinates = areaUtils.convertCoordinates(area.getCoordList()); // 객체 타입 변환
|
|
|
|
List<Coordinate> convertCoordinates = areaUtils.convertCoordinates(area.getCoordList()); // 객체 타입 변환
|
|
|
|
List<Coordinate> transCoordList = areaUtils.transform(convertCoordinates, "EPSG:4326", "EPSG:5181"); |
|
|
|
List<Coordinate> transCoordList = areaUtils.transform(convertCoordinates, "EPSG:4326", "EPSG:5181"); |
|
|
|
|
|
|
|
|
|
|
@ -545,17 +544,17 @@ public class BasFlightService { |
|
|
|
public ComnPagingRs<BasFlightPlanModel> aprvList(BasFlightPlanListRq rq) { |
|
|
|
public ComnPagingRs<BasFlightPlanModel> aprvList(BasFlightPlanListRq rq) { |
|
|
|
String appAuth = jwtTokenUtil.getUserAuthByToken(); |
|
|
|
String appAuth = jwtTokenUtil.getUserAuthByToken(); |
|
|
|
|
|
|
|
|
|
|
|
ComnPagingRs<BasFlightPlanModel> response = new ComnPagingRs<>(); |
|
|
|
ComnPagingRs<BasFlightPlanModel> response = new ComnPagingRs<>(); |
|
|
|
|
|
|
|
|
|
|
|
Pageable pageable = PageRequest.of(rq.getPage()-1, rq.getRecord()); |
|
|
|
Pageable pageable = PageRequest.of(rq.getPage() - 1, rq.getRecord()); |
|
|
|
|
|
|
|
|
|
|
|
List<JwtGroupModel> groupAuthList = jwtTokenUtil.getGroupAuthByToken(); |
|
|
|
List<JwtGroupModel> groupAuthList = jwtTokenUtil.getGroupAuthByToken(); |
|
|
|
|
|
|
|
|
|
|
|
List<String> groupIdList = new ArrayList<>(); |
|
|
|
List<String> groupIdList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
String userAccount = null; |
|
|
|
String userAccount = null; |
|
|
|
String masterAccount = null; |
|
|
|
String masterAccount = null; |
|
|
|
if(groupAuthList.size() > 0) { |
|
|
|
if (groupAuthList.size() > 0) { |
|
|
|
for (JwtGroupModel list : groupAuthList) { |
|
|
|
for (JwtGroupModel list : groupAuthList) { |
|
|
|
if (list.getGroupId().equals(rq.getGroupId())) { |
|
|
|
if (list.getGroupId().equals(rq.getGroupId())) { |
|
|
|
userAccount = list.getGroupAuthCd(); |
|
|
|
userAccount = list.getGroupAuthCd(); |
|
|
@ -570,18 +569,19 @@ public class BasFlightService { |
|
|
|
masterAccount = "NORMAL"; |
|
|
|
masterAccount = "NORMAL"; |
|
|
|
} |
|
|
|
} |
|
|
|
PageImpl<BasFlightPlanModel> result = fltPlanQueryRepository.aprvList(rq, masterAccount, pageable); |
|
|
|
PageImpl<BasFlightPlanModel> result = fltPlanQueryRepository.aprvList(rq, masterAccount, pageable); |
|
|
|
|
|
|
|
|
|
|
|
long total = fltPlanQueryRepository.aprvCount(rq, masterAccount); |
|
|
|
long total = fltPlanQueryRepository.aprvCount(rq, masterAccount); |
|
|
|
|
|
|
|
|
|
|
|
long totalPage = total % rq.getRecord() > 0 ? (total/rq.getRecord()) + 1 : total/rq.getRecord(); |
|
|
|
long totalPage = total % rq.getRecord() > 0 ? (total / rq.getRecord()) + 1 : total / rq.getRecord(); |
|
|
|
|
|
|
|
|
|
|
|
response.setItems(result.getContent()); |
|
|
|
response.setItems(result.getContent()); |
|
|
|
response.setTotal(total); |
|
|
|
response.setTotal(total); |
|
|
|
response.setPage(rq.getPage()); |
|
|
|
response.setPage(rq.getPage()); |
|
|
|
response.setTotalPage(totalPage); |
|
|
|
response.setTotalPage(totalPage); |
|
|
|
|
|
|
|
|
|
|
|
return response; |
|
|
|
return response; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 비행계획서 승인/미승인
|
|
|
|
// 비행계획서 승인/미승인
|
|
|
|
@Transactional |
|
|
|
@Transactional |
|
|
|
public int aprovePlan(BasFlightAprovRq rq) { |
|
|
|
public int aprovePlan(BasFlightAprovRq rq) { |
|
|
@ -592,20 +592,20 @@ public class BasFlightService { |
|
|
|
public boolean checkAirspaceContains(List<BasFlightPlanAreaModel> rq) { |
|
|
|
public boolean checkAirspaceContains(List<BasFlightPlanAreaModel> rq) { |
|
|
|
boolean result = false; |
|
|
|
boolean result = false; |
|
|
|
|
|
|
|
|
|
|
|
for(BasFlightPlanAreaModel area : rq) { |
|
|
|
for (BasFlightPlanAreaModel area : rq) { |
|
|
|
List<Coordinate> coordinates = areaUtils.convertCoordinates(area.getCoordList()); |
|
|
|
List<Coordinate> coordinates = areaUtils.convertCoordinates(area.getCoordList()); |
|
|
|
if("LINE".equals(area.getAreaType())) { |
|
|
|
if ("LINE".equals(area.getAreaType())) { |
|
|
|
List<Coordinate> transCoordList = areaUtils.transform(coordinates, "EPSG:4326", "EPSG:5181"); |
|
|
|
List<Coordinate> transCoordList = areaUtils.transform(coordinates, "EPSG:4326", "EPSG:5181"); |
|
|
|
List<Coordinate> buffer = areaUtils.buffer(transCoordList, area.getBufferZone()); |
|
|
|
List<Coordinate> buffer = areaUtils.buffer(transCoordList, area.getBufferZone()); |
|
|
|
List<Coordinate> transBufferList = areaUtils.transform(buffer, "EPSG:5181", "EPSG:4326"); |
|
|
|
List<Coordinate> transBufferList = areaUtils.transform(buffer, "EPSG:5181", "EPSG:4326"); |
|
|
|
result = areaUtils.overlaps(transBufferList); |
|
|
|
result = areaUtils.overlaps(transBufferList); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if("POLYGON".equals(area.getAreaType())) { |
|
|
|
if ("POLYGON".equals(area.getAreaType())) { |
|
|
|
result = areaUtils.overlaps(coordinates); |
|
|
|
result = areaUtils.overlaps(coordinates); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if("CIRCLE".equals(area.getAreaType())) { |
|
|
|
if ("CIRCLE".equals(area.getAreaType())) { |
|
|
|
List<Coordinate> circle = areaUtils.createCircle(coordinates.get(0), area.getBufferZone()); |
|
|
|
List<Coordinate> circle = areaUtils.createCircle(coordinates.get(0), area.getBufferZone()); |
|
|
|
result = areaUtils.overlaps(circle); |
|
|
|
result = areaUtils.overlaps(circle); |
|
|
|
} |
|
|
|
} |
|
|
@ -614,56 +614,56 @@ public class BasFlightService { |
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//지역 검색
|
|
|
|
//지역 검색
|
|
|
|
public String searchArea(String apiUrl, Map<String, String> requestHeaders) { |
|
|
|
public String searchArea(String apiUrl, Map<String, String> requestHeaders) { |
|
|
|
HttpURLConnection con = connect(apiUrl); |
|
|
|
HttpURLConnection con = connect(apiUrl); |
|
|
|
try { |
|
|
|
try { |
|
|
|
con.setRequestMethod("GET"); |
|
|
|
con.setRequestMethod("GET"); |
|
|
|
for(Map.Entry<String, String> header :requestHeaders.entrySet()) { |
|
|
|
for (Map.Entry<String, String> header : requestHeaders.entrySet()) { |
|
|
|
con.setRequestProperty(header.getKey(), header.getValue()); |
|
|
|
con.setRequestProperty(header.getKey(), header.getValue()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int responseCode = con.getResponseCode(); |
|
|
|
int responseCode = con.getResponseCode(); |
|
|
|
if(responseCode == HttpURLConnection.HTTP_OK) { |
|
|
|
if (responseCode == HttpURLConnection.HTTP_OK) { |
|
|
|
return readBody(con.getInputStream()); |
|
|
|
return readBody(con.getInputStream()); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
return readBody(con.getErrorStream()); |
|
|
|
return readBody(con.getErrorStream()); |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (IOException e) { |
|
|
|
} catch (IOException e) { |
|
|
|
throw new RuntimeException("API 요청과 응답 실패", e); |
|
|
|
throw new RuntimeException("API 요청과 응답 실패", e); |
|
|
|
} finally { |
|
|
|
} finally { |
|
|
|
con.disconnect(); |
|
|
|
con.disconnect(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public HttpURLConnection connect(String apiUrl) { |
|
|
|
public HttpURLConnection connect(String apiUrl) { |
|
|
|
try { |
|
|
|
try { |
|
|
|
URL url = new URL(apiUrl); |
|
|
|
URL url = new URL(apiUrl); |
|
|
|
return (HttpURLConnection)url.openConnection(); |
|
|
|
return (HttpURLConnection) url.openConnection(); |
|
|
|
} catch (MalformedURLException e) { |
|
|
|
} catch (MalformedURLException e) { |
|
|
|
throw new RuntimeException("API URL이 잘못되었습니다. : " + apiUrl, e); |
|
|
|
throw new RuntimeException("API URL이 잘못되었습니다. : " + apiUrl, e); |
|
|
|
} catch (IOException e) { |
|
|
|
} catch (IOException e) { |
|
|
|
throw new RuntimeException("연결이 실패했습니다. : " + apiUrl, e); |
|
|
|
throw new RuntimeException("연결이 실패했습니다. : " + apiUrl, e); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public String readBody(InputStream body) { |
|
|
|
public String readBody(InputStream body) { |
|
|
|
InputStreamReader streamReader = new InputStreamReader(body); |
|
|
|
InputStreamReader streamReader = new InputStreamReader(body); |
|
|
|
|
|
|
|
|
|
|
|
try(BufferedReader lineReader = new BufferedReader(streamReader)) { |
|
|
|
try (BufferedReader lineReader = new BufferedReader(streamReader)) { |
|
|
|
StringBuilder responseBody = new StringBuilder(); |
|
|
|
StringBuilder responseBody = new StringBuilder(); |
|
|
|
|
|
|
|
|
|
|
|
String line; |
|
|
|
String line; |
|
|
|
while ((line = lineReader.readLine()) != null) { |
|
|
|
while ((line = lineReader.readLine()) != null) { |
|
|
|
responseBody.append(line); |
|
|
|
responseBody.append(line); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return responseBody.toString(); |
|
|
|
return responseBody.toString(); |
|
|
|
} catch (IOException e) { |
|
|
|
} catch (IOException e) { |
|
|
|
throw new RuntimeException("API 응답을 읽는데 실패했습니다.", e); |
|
|
|
throw new RuntimeException("API 응답을 읽는데 실패했습니다.", e); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public List<BasFlightScheduleRs> findSchecdule(String searchDate) { |
|
|
|
public List<BasFlightScheduleRs> findSchecdule(String searchDate) { |
|
|
@ -672,23 +672,24 @@ public class BasFlightService { |
|
|
|
|
|
|
|
|
|
|
|
return schedule; |
|
|
|
return schedule; |
|
|
|
} |
|
|
|
} |
|
|
|
public JSONObject getWeather(BasFlightWeatherModel rq) throws IOException, ParseException { |
|
|
|
|
|
|
|
StringBuilder urlBuilder = new StringBuilder("http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst"); |
|
|
|
public JSONObject getWeather(BasFlightWeatherModel rq) throws IOException, ParseException { |
|
|
|
urlBuilder.append("?" + URLEncoder.encode("serviceKey","UTF-8") + "=r6RMUsk3Vtama7D6uq7MiWV9dTC9MwfIIr4%2F45y0uVNw6BaYbgpKmL%2BLUDFVTfIYUmEe4K%2FaniEjdV9mg5t82Q%3D%3D"); |
|
|
|
StringBuilder urlBuilder = new StringBuilder("http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst"); |
|
|
|
urlBuilder.append("&" + URLEncoder.encode("pageNo","UTF-8") + "=" + URLEncoder.encode(rq.getPageNo(),"UTF-8")); |
|
|
|
urlBuilder.append("?" + URLEncoder.encode("serviceKey", "UTF-8") + "=r6RMUsk3Vtama7D6uq7MiWV9dTC9MwfIIr4%2F45y0uVNw6BaYbgpKmL%2BLUDFVTfIYUmEe4K%2FaniEjdV9mg5t82Q%3D%3D"); |
|
|
|
urlBuilder.append("&" + URLEncoder.encode("numOfRows","UTF-8") + "=" + URLEncoder.encode(rq.getNumOfRows(), "UTF-8")); /*한 페이지 결과 수*/ |
|
|
|
urlBuilder.append("&" + URLEncoder.encode("pageNo", "UTF-8") + "=" + URLEncoder.encode(rq.getPageNo(), "UTF-8")); |
|
|
|
urlBuilder.append("&" + URLEncoder.encode("dataType","UTF-8") + "=" + URLEncoder.encode("JSON", "UTF-8")); /*요청자료형식(XML/JSON) Default: XML*/ |
|
|
|
urlBuilder.append("&" + URLEncoder.encode("numOfRows", "UTF-8") + "=" + URLEncoder.encode(rq.getNumOfRows(), "UTF-8")); /*한 페이지 결과 수*/ |
|
|
|
urlBuilder.append("&" + URLEncoder.encode("base_date","UTF-8") + "=" + URLEncoder.encode(rq.getBase_date(), "UTF-8")); /*'21년 6월 28일 발표*/ |
|
|
|
urlBuilder.append("&" + URLEncoder.encode("dataType", "UTF-8") + "=" + URLEncoder.encode("JSON", "UTF-8")); /*요청자료형식(XML/JSON) Default: XML*/ |
|
|
|
urlBuilder.append("&" + URLEncoder.encode("base_time","UTF-8") + "=" + URLEncoder.encode(rq.getBase_time(), "UTF-8")); /*06시 발표(정시단위) */ |
|
|
|
urlBuilder.append("&" + URLEncoder.encode("base_date", "UTF-8") + "=" + URLEncoder.encode(rq.getBase_date(), "UTF-8")); /*'21년 6월 28일 발표*/ |
|
|
|
urlBuilder.append("&" + URLEncoder.encode("nx","UTF-8") + "=" + URLEncoder.encode(rq.getNx(), "UTF-8")); /*예보지점의 X 좌표값*/ |
|
|
|
urlBuilder.append("&" + URLEncoder.encode("base_time", "UTF-8") + "=" + URLEncoder.encode(rq.getBase_time(), "UTF-8")); /*06시 발표(정시단위) */ |
|
|
|
urlBuilder.append("&" + URLEncoder.encode("ny","UTF-8") + "=" + URLEncoder.encode(rq.getNy(), "UTF-8")); /*예보지점의 Y 좌표값*/ |
|
|
|
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()); |
|
|
|
URL url = new URL(urlBuilder.toString()); |
|
|
|
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); |
|
|
|
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); |
|
|
|
conn.setRequestMethod("GET"); |
|
|
|
conn.setRequestMethod("GET"); |
|
|
|
conn.setRequestProperty("Content-type", "application/json"); |
|
|
|
conn.setRequestProperty("Content-type", "application/json"); |
|
|
|
log.info("Response code: " + conn.getResponseCode()); |
|
|
|
log.info("Response code: " + conn.getResponseCode()); |
|
|
|
BufferedReader rd; |
|
|
|
BufferedReader rd; |
|
|
|
if(conn.getResponseCode() >= 200 && conn.getResponseCode() <= 300) { |
|
|
|
if (conn.getResponseCode() >= 200 && conn.getResponseCode() <= 300) { |
|
|
|
rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); |
|
|
|
rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
rd = new BufferedReader(new InputStreamReader(conn.getErrorStream())); |
|
|
|
rd = new BufferedReader(new InputStreamReader(conn.getErrorStream())); |
|
|
@ -700,26 +701,26 @@ public class BasFlightService { |
|
|
|
sb.append(line); |
|
|
|
sb.append(line); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
CtrTrnsLctnModel weatherResult = ctrTrnsLctnService.convertLatlonToAddress(rq.getNx2(),rq.getNy2()); |
|
|
|
CtrTrnsLctnModel weatherResult = ctrTrnsLctnService.convertLatlonToAddress(rq.getNx2(), rq.getNy2()); |
|
|
|
log.info("weatherResult >>>> : {}", weatherResult); |
|
|
|
log.info("weatherResult >>>> : {}", weatherResult); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String str = sb.toString(); |
|
|
|
String str = sb.toString(); |
|
|
|
JSONParser parser = new JSONParser(); |
|
|
|
JSONParser parser = new JSONParser(); |
|
|
|
JSONObject jsonObject = (JSONObject) parser.parse(str); |
|
|
|
JSONObject jsonObject = (JSONObject) parser.parse(str); |
|
|
|
if(weatherResult != null) { |
|
|
|
if (weatherResult != null) { |
|
|
|
jsonObject.put("area1",weatherResult.getArea1()); |
|
|
|
jsonObject.put("area1", weatherResult.getArea1()); |
|
|
|
jsonObject.put("area2",weatherResult.getArea2()); |
|
|
|
jsonObject.put("area2", weatherResult.getArea2()); |
|
|
|
jsonObject.put("area3",weatherResult.getArea3()); |
|
|
|
jsonObject.put("area3", weatherResult.getArea3()); |
|
|
|
jsonObject.put("landNm",weatherResult.getLandNm()); |
|
|
|
jsonObject.put("landNm", weatherResult.getLandNm()); |
|
|
|
jsonObject.put("landNum",weatherResult.getLandNum()); |
|
|
|
jsonObject.put("landNum", weatherResult.getLandNum()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rd.close(); |
|
|
|
rd.close(); |
|
|
|
conn.disconnect(); |
|
|
|
conn.disconnect(); |
|
|
|
log.info(sb.toString()); |
|
|
|
log.info(sb.toString()); |
|
|
|
|
|
|
|
|
|
|
|
return jsonObject; |
|
|
|
return jsonObject; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|