|
|
|
@ -17,11 +17,11 @@ import org.locationtech.jts.geom.Coordinate;
|
|
|
|
|
import org.locationtech.jts.geom.Geometry; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
import org.springframework.util.StringUtils; |
|
|
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Map; |
|
|
|
|
import java.util.Optional; |
|
|
|
|
import java.time.LocalDate; |
|
|
|
|
import java.time.Month; |
|
|
|
|
import java.util.*; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
@Slf4j |
|
|
|
@ -62,6 +62,30 @@ public class BasDosService {
|
|
|
|
|
for (DosFltPlanBas bas : planBasList) { |
|
|
|
|
Long planSno = bas.getPlanSno(); |
|
|
|
|
String applyNo = bas.getApplyNo(); |
|
|
|
|
|
|
|
|
|
// 신청일시 분할
|
|
|
|
|
LocalDate applyDt = bas.getApplyDt(); |
|
|
|
|
String applyDtMonth = applyDt.getMonthValue() + ""; |
|
|
|
|
String applyDtDay = applyDt.getDayOfMonth() + ""; |
|
|
|
|
|
|
|
|
|
// 비행목적 - 비행목적은 레저비행, 사진/영상촬영을 제외한 나머지 목적은 기타 로 표현
|
|
|
|
|
String purpose = bas.getPurpose(); |
|
|
|
|
String[] purposeTexts = {"레저비행", "사진/영상촬영"}; |
|
|
|
|
if (StringUtils.hasText(purpose)) { |
|
|
|
|
boolean isEtc = true; |
|
|
|
|
for(String compareStr: purposeTexts){ |
|
|
|
|
if(purpose.contains(compareStr)){ |
|
|
|
|
isEtc = false; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if(isEtc) { |
|
|
|
|
purpose = "기타"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<BasDosPlanAreaRs> areaRsList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
for (DosFltPlanArea area : areaList) { |
|
|
|
@ -95,19 +119,52 @@ public class BasDosService {
|
|
|
|
|
|
|
|
|
|
List<Map<String, Double>> bufferCoordList = coordBuffers.stream().map(coord -> Map.of("lat", coord.y, "lon", coord.x)).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
// TODO 추후 Utils 생성
|
|
|
|
|
// 주소 분할 - 임시 순서대로 split
|
|
|
|
|
String addr = area.getAddr(); |
|
|
|
|
String[] addrArr = addr.split(" "); |
|
|
|
|
String addr1 = ""; |
|
|
|
|
String addr2 = ""; |
|
|
|
|
StringBuilder addrRest = new StringBuilder(); |
|
|
|
|
for (int i = 0; i < addrArr.length; i++) { |
|
|
|
|
switch (i) { |
|
|
|
|
case 0: |
|
|
|
|
addr1 = addrArr[i]; |
|
|
|
|
break; |
|
|
|
|
case 1: |
|
|
|
|
addr2 = addrArr[i]; |
|
|
|
|
break; |
|
|
|
|
case 2: |
|
|
|
|
addrRest.append(addrArr[i]); |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
addrRest.append(" ").append(addrArr[i]); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
String addr3 = addrRest.toString(); |
|
|
|
|
|
|
|
|
|
BasDosPlanAreaRs areaRs = BasDosPlanAreaRs.builder() |
|
|
|
|
.planAreaSno(area.getPlanAreaSno()) |
|
|
|
|
.planSno(area.getPlanSno()) |
|
|
|
|
.applyNo(applyNo) |
|
|
|
|
.applyDt(applyDt) |
|
|
|
|
.applyDtMonth(applyDtMonth) |
|
|
|
|
.applyDtDay(applyDtDay) |
|
|
|
|
.zoneNo(area.getZoneNo()) |
|
|
|
|
.bufferZone(area.getBufferZone()) |
|
|
|
|
.fltElev(area.getFltElev()) |
|
|
|
|
.lat(area.getLat()) |
|
|
|
|
.lon(area.getLon()) |
|
|
|
|
.addr(area.getAddr()) |
|
|
|
|
.addr(addr) |
|
|
|
|
.addr1(addr1) |
|
|
|
|
.addr2(addr2) |
|
|
|
|
.addr3(addr3) |
|
|
|
|
.approvalCd(approvalCd) |
|
|
|
|
.fltElevMax(fltElevMax) |
|
|
|
|
.dtl(area.getDtl()) |
|
|
|
|
.era(area.getEra()) |
|
|
|
|
.rm(area.getRm()) |
|
|
|
|
.bufferCoordList(bufferCoordList) |
|
|
|
|
.build(); |
|
|
|
|
areaRsList.add(areaRs); |
|
|
|
@ -118,13 +175,18 @@ public class BasDosService {
|
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BasDosPlanRs basRs = BasDosPlanRs.builder() |
|
|
|
|
.planSno(bas.getPlanSno()) |
|
|
|
|
.applyNo(bas.getApplyNo()) |
|
|
|
|
.applyDt(bas.getApplyDt()) |
|
|
|
|
.applyDt(applyDt) |
|
|
|
|
.applyDtMonth(applyDtMonth) |
|
|
|
|
.applyDtDay(applyDtDay) |
|
|
|
|
.applyNm(bas.getApplyNm()) |
|
|
|
|
.fbctnNo(bas.getFbctnNo()) |
|
|
|
|
.schFltStDt(bas.getSchFltStDt()) |
|
|
|
|
.schFltEndDt(bas.getSchFltEndDt()) |
|
|
|
|
.purpose(purpose) |
|
|
|
|
.updateDt(bas.getUpdateDt()) |
|
|
|
|
.createDt(bas.getCreateDt()) |
|
|
|
|
.areaList(areaRsList) |
|
|
|
|