Browse Source

.

pull/10/head
지대한 12 months ago
parent
commit
98ab8d343d
  1. 1
      .gitignore
  2. 4
      pav-server/src/main/java/com/palnet/biz/api/bas/laanc/controller/BasLaancController.java
  3. 10
      pav-server/src/main/java/com/palnet/biz/api/bas/laanc/model/BasLaancValidatedRs.java
  4. 48
      pav-server/src/main/java/com/palnet/biz/api/bas/laanc/service/BasLaancService.java
  5. 4
      pav-server/src/main/java/com/palnet/biz/api/comn/file/controller/ComnFileController.java
  6. 5
      pav-server/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanBasRepository.java

1
.gitignore vendored

@ -35,3 +35,4 @@ out/
### VS Code ###
.vscode/
/files/

4
pav-server/src/main/java/com/palnet/biz/api/bas/laanc/controller/BasLaancController.java

@ -46,7 +46,7 @@ public class BasLaancController {
// LAANC 검증
@PostMapping(value = "/plan/valid")
@ApiOperation(value = "LAANC 검증")
@Tag(name = "LAANC 검증", description = "LAANC 관련 API")
@Tag(name = "LAANC", description = "LAANC 관련 API")
public ResponseEntity<? extends BasicResponse> validationLaanc(@RequestBody BasLaancPlanRq rq) {
BasLaancValidatedRs rs = null;
try {
@ -73,7 +73,7 @@ public class BasLaancController {
// 비행계획서 등록, 약관 등록, 공문 생성
@PostMapping(value = "/plan/create")
@ApiOperation(value = "비행계획서 등록")
@Tag(name = "비행계획서", description = "비행계획서 관련 API")
@Tag(name = "LAANC", description = "LAANC 관련 API")
public ResponseEntity<? extends BasicResponse> createPlan(@RequestBody BasLaancPlanRq rq) {
BasLaancLastRs rs = null;
try {

10
pav-server/src/main/java/com/palnet/biz/api/bas/laanc/model/BasLaancValidatedRs.java

@ -24,8 +24,8 @@ import lombok.NoArgsConstructor;
public class BasLaancValidatedRs {
private String pilotQlfcYn; // 자격여부
private String acrftInsuranceYn; // 항공기보험여부
private String acrftDuplicatedYn; // 기체 중복여부
private String arcrftInsuranceYn; // 항공기보험여부
private String arcrftDuplicatedYn; // 기체 중복여부
private String planAreaDuplicatdYn; // 비행계획서비행구역 중복여부
private String evaluatedTargetAreaYn; // 평가대상지역여부 - 공역과 겹칠때만
private String flightAreaYn; // LAANC 기준 비행가능여부
@ -34,8 +34,8 @@ public class BasLaancValidatedRs {
public boolean isValid() {
return "Y".equals(pilotQlfcYn)
&& "Y".equals(acrftInsuranceYn)
&& "N".equals(acrftDuplicatedYn)
&& "Y".equals(arcrftInsuranceYn)
&& "N".equals(arcrftDuplicatedYn)
&& "N".equals(planAreaDuplicatdYn)
&& "Y".equals(evaluatedTargetAreaYn)
&& "Y".equals(flightAreaYn);
@ -43,7 +43,7 @@ public class BasLaancValidatedRs {
@JsonIgnore
public boolean isValidAirspace() {
return "N".equals(acrftDuplicatedYn)
return "N".equals(arcrftDuplicatedYn)
&& "N".equals(planAreaDuplicatdYn)
&& "Y".equals(evaluatedTargetAreaYn)
&& "Y".equals(flightAreaYn);

48
pav-server/src/main/java/com/palnet/biz/api/bas/laanc/service/BasLaancService.java

@ -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;

4
pav-server/src/main/java/com/palnet/biz/api/comn/file/controller/ComnFileController.java

@ -1,8 +1,6 @@
package com.palnet.biz.api.comn.file.controller;
import com.palnet.biz.api.comn.file.service.ComnFileService;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
@ -21,7 +19,6 @@ import org.springframework.web.bind.annotation.RestController;
* 2023-09-25(025) dhji 최초 생성
*/
@Slf4j
@Tag(name = "공통 파일", description = "공통 파일 관련 API")
@RequiredArgsConstructor
@RequestMapping("/api/comn/file")
@RestController
@ -30,7 +27,6 @@ public class ComnFileController {
private final ComnFileService comnFileService;
@GetMapping("/download")
@ApiOperation(value = "파일 다운로드")
public void downloadPDF(int fileSno) {
try {
comnFileService.fileDownload(fileSno);

5
pav-server/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanBasRepository.java

@ -15,7 +15,9 @@ import java.util.Optional;
public interface FltPlanBasRepository extends JpaRepository<FltPlanBas, Integer> {
List<FltPlanBas> findBySchFltStDtGreaterThanEqualAndSchFltEndDtLessThanEqualAndDelYn(Instant schFltStDt, Instant schFltEndDt, String delYn);
List<FltPlanBas> findBySchFltStDtLessThanEqualAndSchFltEndDtGreaterThanEqualAndDelYn(Instant schFltEndDt, Instant schFltStDt, String delYn);
List<FltPlanBas> findBySchFltStDtLessThanEqualAndSchFltEndDtGreaterThanEqualAndAprvlYnAndDelYn(Instant schFltEndDt, Instant schFltStDt, String aprvlYn, String delYn);
@Query("select f from FltPlanBas f " +
"where ((SCH_FLT_ST_DT <= :schFltStDt and SCH_FLT_END_DT >= :schFltEndDt)"
@ -51,4 +53,5 @@ public interface FltPlanBasRepository extends JpaRepository<FltPlanBas, Integer>
"and f.aprvlYn = 'Y' ")
List<FltPlanBas> findBasList(@Param("planSno") int planSno);
}

Loading…
Cancel
Save