|
|
|
@ -13,9 +13,7 @@ import com.palnet.biz.jpa.entity.*;
|
|
|
|
|
import com.palnet.biz.jpa.repository.flt.*; |
|
|
|
|
import com.palnet.biz.jpa.repository.pty.PtyCstmrQueryRepository; |
|
|
|
|
import com.palnet.biz.jpa.repository.pty.PtyGroupBasRepository; |
|
|
|
|
import com.palnet.biz.jpa.repository.pty.PtyGroupQueryRepository; |
|
|
|
|
import com.palnet.biz.jpa.repository.pty.PtyTermsAgreeTxnRepository; |
|
|
|
|
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.AirspaceUtils; |
|
|
|
@ -67,7 +65,7 @@ public class BasLaancService {
|
|
|
|
|
|
|
|
|
|
// LAANC 검증
|
|
|
|
|
public BasLaancValidatedRs validationLaanc(BasLaancPlanRq rq) { |
|
|
|
|
BasLaancValidatedRs basLaancValidatedRs = this.validationAreaAndArcrft(rq); |
|
|
|
|
BasLaancValidatedRs basLaancValidatedRs = this.validationPlanAreaAndArcrftAndAirspace(rq); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// TODO 조종사 자격 및 기체보험 확인
|
|
|
|
@ -79,12 +77,10 @@ public class BasLaancService {
|
|
|
|
|
PilotValidRs pilotValidRs = tsService.callPilotValid(pilotValidRq); |
|
|
|
|
if (pilotValidRs == null) { |
|
|
|
|
basLaancValidatedRs.setPilotQlfcYn("N"); |
|
|
|
|
basLaancValidatedRs.setAcrftInsuranceYn("N"); |
|
|
|
|
basLaancValidatedRs.setCorpRegYn("N"); |
|
|
|
|
basLaancValidatedRs.setArcrftInsuranceYn("N"); |
|
|
|
|
} else { |
|
|
|
|
basLaancValidatedRs.setPilotQlfcYn(pilotValidRs.getPilotcredentialyn()); |
|
|
|
|
basLaancValidatedRs.setAcrftInsuranceYn(pilotValidRs.getArcrftinsuranceyn()); |
|
|
|
|
basLaancValidatedRs.setCorpRegYn(pilotValidRs.getCorpregyn()); |
|
|
|
|
basLaancValidatedRs.setArcrftInsuranceYn(pilotValidRs.getArcrftinsuranceyn()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return basLaancValidatedRs; |
|
|
|
@ -94,12 +90,12 @@ public class BasLaancService {
|
|
|
|
|
// 비행계획서 등록, 약관 등록, 공문 생성
|
|
|
|
|
@Transactional |
|
|
|
|
public BasLaancLastRs createFlightPlan(BasLaancPlanRq rq) { |
|
|
|
|
BasLaancValidatedRs basLaancValidatedRs = this.validationAreaAndArcrft(rq); |
|
|
|
|
BasLaancValidatedRs basLaancValidatedRs = this.validationPlanAreaAndArcrftAndAirspace(rq); |
|
|
|
|
// LAANC가 검증된것들만 DB저장
|
|
|
|
|
if (!basLaancValidatedRs.isValidAirspace()) new CustomException(ErrorCode.PLAN_DATA_DUPLICATE); |
|
|
|
|
if (!basLaancValidatedRs.isValid()) new CustomException(ErrorCode.PLAN_DATA_DUPLICATE); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 비행계획서 - // TODO 작성자 정보 불러와서 넣기
|
|
|
|
|
// 비행계획서
|
|
|
|
|
String userId = jwtTokenUtil.getUserIdByToken(); |
|
|
|
|
Integer cstmrSno = jwtTokenUtil.getCstmrSnoByToken(); |
|
|
|
|
// 개인정보 가져오기 - 비행계획서 작성자 정보, 조종사 정보
|
|
|
|
@ -117,7 +113,7 @@ public class BasLaancService {
|
|
|
|
|
String groupId = ""; |
|
|
|
|
String groupNm = ""; |
|
|
|
|
List<PtyGroupBas> kac = ptyGroupBasRepository.findByGroupNm("KAC"); |
|
|
|
|
if(kac != null && !kac.isEmpty()) { |
|
|
|
|
if (kac != null && !kac.isEmpty()) { |
|
|
|
|
groupId = kac.get(0).getGroupId(); |
|
|
|
|
groupNm = kac.get(0).getGroupNm(); |
|
|
|
|
} |
|
|
|
@ -169,7 +165,7 @@ public class BasLaancService {
|
|
|
|
|
arcrftEntity.setCreateUserId(userId); |
|
|
|
|
arcrftEntity.setUpdateUserId(userId); |
|
|
|
|
// 추가 필드
|
|
|
|
|
arcrftEntity.setAcrftInsuranceYn(rq.getValidatedRs().getAcrftInsuranceYn()); // 보험여부
|
|
|
|
|
arcrftEntity.setAcrftInsuranceYn(rq.getValidatedRs().getArcrftInsuranceYn()); // 보험여부
|
|
|
|
|
// arcrftEntity.setInsuranceExperiod(null); // 보헌 유효기간
|
|
|
|
|
// arcrftEntity.setCorporationNm(null); // 법인명
|
|
|
|
|
fltPlanArcrftRepository.save(arcrftEntity); |
|
|
|
@ -209,14 +205,14 @@ public class BasLaancService {
|
|
|
|
|
return rs; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// LAANC 검증 및 기체 중복 확인
|
|
|
|
|
private BasLaancValidatedRs validationAreaAndArcrft(BasLaancPlanRq rq) { |
|
|
|
|
// LAANC 검증
|
|
|
|
|
private BasLaancValidatedRs validationPlanAreaAndArcrftAndAirspace(BasLaancPlanRq rq) { |
|
|
|
|
|
|
|
|
|
// 초기화
|
|
|
|
|
BasLaancValidatedRs rs = BasLaancValidatedRs.builder() |
|
|
|
|
.pilotQlfcYn("N") |
|
|
|
|
.acrftInsuranceYn("N") |
|
|
|
|
.acrftDuplicatedYn("N") |
|
|
|
|
.arcrftInsuranceYn("N") |
|
|
|
|
.arcrftDuplicatedYn("N") |
|
|
|
|
.planAreaDuplicatdYn("N") |
|
|
|
|
.evaluatedTargetAreaYn("N") |
|
|
|
|
.flightAreaYn("N") |
|
|
|
@ -224,7 +220,7 @@ public class BasLaancService {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 비행계획서
|
|
|
|
|
List<FltPlanBas> fltPlanBasList = fltPlanBasRepository.findBySchFltStDtGreaterThanEqualAndSchFltEndDtLessThanEqualAndDelYn(rq.getSchFltEndDt(), rq.getSchFltStDt(), "N"); |
|
|
|
|
List<FltPlanBas> fltPlanBasList = fltPlanBasRepository.findBySchFltStDtLessThanEqualAndSchFltEndDtGreaterThanEqualAndAprvlYnAndDelYn(rq.getSchFltEndDt(), rq.getSchFltStDt(), "Y", "N"); |
|
|
|
|
if (fltPlanBasList != null && !fltPlanBasList.isEmpty()) { |
|
|
|
|
|
|
|
|
|
if (rq.getPlanSno() != null) { |
|
|
|
@ -302,7 +298,7 @@ public class BasLaancService {
|
|
|
|
|
) |
|
|
|
|
); |
|
|
|
|
if (isDuplicatedArcrft) { |
|
|
|
|
rs.setAcrftDuplicatedYn("Y"); |
|
|
|
|
rs.setArcrftDuplicatedYn("Y"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -339,12 +335,16 @@ public class BasLaancService {
|
|
|
|
|
rs.setEvaluatedTargetAreaYn(duplicatedAirspace ? "Y" : "N"); |
|
|
|
|
|
|
|
|
|
// 비행 가능 지역 판단
|
|
|
|
|
if (duplicatedAirspace) { |
|
|
|
|
boolean validLaancAirspace = airspaceUtils.isValidLaancAirspace(featureInfo); |
|
|
|
|
rs.setFlightAreaYn(validLaancAirspace ? "Y" : "N"); |
|
|
|
|
} else { |
|
|
|
|
rs.setFlightAreaYn("N"); |
|
|
|
|
} |
|
|
|
|
// if (duplicatedAirspace) {
|
|
|
|
|
// boolean validLaancAirspace = airspaceUtils.isValidLaancAirspace(featureInfo);
|
|
|
|
|
// rs.setFlightAreaYn(validLaancAirspace ? "Y" : "N");
|
|
|
|
|
// } else {
|
|
|
|
|
// rs.setFlightAreaYn("N");
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// 비행 가능 지역 판단
|
|
|
|
|
boolean validLaancAirspace = airspaceUtils.isValidLaancAirspace(featureInfo); |
|
|
|
|
rs.setFlightAreaYn(validLaancAirspace ? "Y" : "N"); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
return rs; |
|
|
|
|