Browse Source

merge

pull/12/head
지대한 11 months ago
parent
commit
f49d34627c
  1. 1
      pav-server/src/main/java/com/palnet/biz/api/bas/laanc/controller/BasLaancAprvController.java
  2. 1
      pav-server/src/main/java/com/palnet/biz/api/bas/laanc/controller/BasLaancController.java
  3. 4
      pav-server/src/main/java/com/palnet/biz/api/bas/laanc/model/BasLaancValidatedRs.java
  4. 27
      pav-server/src/main/java/com/palnet/biz/api/bas/laanc/service/BasLaancService.java
  5. 2
      pav-server/src/main/java/com/palnet/comn/utils/InstantUtils.java

1
pav-server/src/main/java/com/palnet/biz/api/bas/laanc/controller/BasLaancAprvController.java

@ -135,4 +135,5 @@ public class BasLaancAprvController {
} }
return ResponseEntity.ok().body(new SuccessResponse<>(rs)); return ResponseEntity.ok().body(new SuccessResponse<>(rs));
} }
} }

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

@ -68,7 +68,6 @@ public class BasLaancController {
.body(new ErrorResponse("Server Error", "-1")); .body(new ErrorResponse("Server Error", "-1"));
} }
log.warn("new SuccessResponse<>(rs) -? {}", new SuccessResponse<>(rs));
return ResponseEntity.ok().body(new SuccessResponse<>(rs)); return ResponseEntity.ok().body(new SuccessResponse<>(rs));
} }

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

@ -37,8 +37,6 @@ public class BasLaancValidatedRs {
private boolean isReport; // 신고 대상 - 상업적이면서 기체중량2kg 이상일경우 - true private boolean isReport; // 신고 대상 - 상업적이면서 기체중량2kg 이상일경우 - true
private boolean isNotSpecial; // 특별승인 여부 - 특별승인인 경우가 아니면 - true
private String corpRegYn; // 사업자 여부 private String corpRegYn; // 사업자 여부
private List<PilotValidRs> pilotValidRsList; // 자격여부 private List<PilotValidRs> pilotValidRsList; // 자격여부
@ -53,13 +51,11 @@ public class BasLaancValidatedRs {
// && !isArcrftDuplicated // 기체 중복여부 // && !isArcrftDuplicated // 기체 중복여부
// && !isPlanAreaDuplicatd // 비행구역 중복여부 // && !isPlanAreaDuplicatd // 비행구역 중복여부
&& isFlightArea // 비행가능여부 && isFlightArea // 비행가능여부
&& isNotSpecial
&& isCheckingLance(); && isCheckingLance();
} }
return isCheckingLance() return isCheckingLance()
// && !isPlanAreaDuplicatd // && !isPlanAreaDuplicatd
// && !isArcrftDuplicated // && !isArcrftDuplicated
&& isNotSpecial
&& isFlightArea; && isFlightArea;
} }

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

@ -101,7 +101,7 @@ public class BasLaancService {
// LAANC 검증 // LAANC 검증
public BasLaancValidatedRs validationLaanc(BasLaancPlanRq rq) { public BasLaancValidatedRs validationLaanc(BasLaancPlanRq rq) {
if (!this.laancParamValid(rq)) throw new CustomException(ErrorCode.NON_VALID_PARAMETER);
BasLaancValidatedRs rs = new BasLaancValidatedRs(); BasLaancValidatedRs rs = new BasLaancValidatedRs();
// 조종사 자격 확인 - 무게가 2kg 초과이거나 상업적일 경우에만 진행 // 조종사 자격 확인 - 무게가 2kg 초과이거나 상업적일 경우에만 진행
@ -155,7 +155,6 @@ public class BasLaancService {
BasLaancValidatedRs validationPlanDbRs = this.validationPlanAirspace(rq); BasLaancValidatedRs validationPlanDbRs = this.validationPlanAirspace(rq);
rs.setEvaluatedTargetArea(validationPlanDbRs.isEvaluatedTargetArea()); rs.setEvaluatedTargetArea(validationPlanDbRs.isEvaluatedTargetArea());
rs.setFlightArea(validationPlanDbRs.isFlightArea()); rs.setFlightArea(validationPlanDbRs.isFlightArea());
rs.setNotSpecial(this.laancParamValid(rq));
return rs; return rs;
@ -165,6 +164,7 @@ public class BasLaancService {
@Transactional @Transactional
public BasLaancLastRs createFlightPlan(BasLaancPlanRq rq) { public BasLaancLastRs createFlightPlan(BasLaancPlanRq rq) {
if (rq == null || rq.getValidatedRs() == null) throw new CustomException(ErrorCode.NON_VALID_PARAMETER); if (rq == null || rq.getValidatedRs() == null) throw new CustomException(ErrorCode.NON_VALID_PARAMETER);
if (!this.laancParamValid(rq)) throw new CustomException(ErrorCode.NON_VALID_PARAMETER);
BasLaancValidatedRs basLaancValidatedRs = rq.getValidatedRs(); BasLaancValidatedRs basLaancValidatedRs = rq.getValidatedRs();
@ -519,26 +519,25 @@ public class BasLaancService {
* 1. 비행시작 일자 금일 ~ 90일 이내 * 1. 비행시작 일자 금일 ~ 90일 이내
* 2. 비행 종료일자 금일 ~ 6개월까지 -- validtion 통과후 일몰 * 2. 비행 종료일자 금일 ~ 6개월까지 -- validtion 통과후 일몰
* 3. 일몰, 일출 시간[해떠있는 시간] 체크 * 3. 일몰, 일출 시간[해떠있는 시간] 체크
*
* @param rq * @param rq
* @return * @return
*/ */
private boolean laancParamValid(BasLaancPlanRq rq) { private boolean laancParamValid(BasLaancPlanRq rq) {
// 시작날짜보다 종료날짜가 뒤에있으면 Exception발생 // 시작날짜보다 종료날짜가 뒤에있으면 Exception발생
if(!(rq.getSchFltEndDt().isAfter(rq.getSchFltStDt()))) throw new CustomException(ErrorCode.NON_VALID_PARAMETER); if (!(rq.getSchFltEndDt().isAfter(rq.getSchFltStDt())))
throw new CustomException(ErrorCode.NON_VALID_PARAMETER);
// TODO :: Instant는 ChronoUnit.MONTHS 지원을 해주지 않아 LocalDateTime으로 계산을 진행했습니다.
LocalDateTime today = Instant.now().atZone(ZoneId.of(InstantUtils.DEFAULT_ZONE)).toLocalDateTime();
LocalDateTime stDt = rq.getSchFltStDt().atZone(ZoneId.of(InstantUtils.DEFAULT_ZONE)).toLocalDateTime(); LocalDateTime today = Instant.now().atZone(ZoneId.of("Asia/Seoul")).toLocalDateTime();
LocalDateTime endDt = rq.getSchFltEndDt().atZone(ZoneId.of(InstantUtils.DEFAULT_ZONE)).toLocalDateTime(); LocalDateTime stDt = rq.getSchFltStDt().atZone(ZoneId.of("Asia/Seoul")).toLocalDateTime();
LocalDateTime endDt = rq.getSchFltEndDt().atZone(ZoneId.of("Asia/Seoul")).toLocalDateTime();
// schFltStDt가 금일부터 90일 이내에 있는지 확인 // schFltStDt가 금일부터 90일 이내에 있는지 확인
boolean isSchFltStDtValid = stDt.isAfter(today) && boolean isSchFltStDtValid = stDt.isAfter(today) && stDt.isBefore(today.plusDays(90));
stDt.isBefore(today.plus(90, ChronoUnit.DAYS));
// schFltEndDt가 SchFltStDt보다 뒤에 있고, 금일부터 6개월 이내에 있는지 확인 // schFltEndDt가 SchFltStDt보다 뒤에 있고, 금일부터 6개월 이내에 있는지 확인
boolean isSchFltEndDtValid = endDt.isBefore(today.plus(6, ChronoUnit.MONTHS)); boolean isSchFltEndDtValid = endDt.isBefore(today.plusMonths(6));
// 시간 파라미터가 맞지 않을경우 // 시간 파라미터가 맞지 않을경우
if (!(isSchFltStDtValid && isSchFltEndDtValid)) return false; if (!(isSchFltStDtValid && isSchFltEndDtValid)) return false;
@ -550,8 +549,8 @@ public class BasLaancService {
ComnSunrisesetRs comnSunrisesetRs = comRiseSetQueryRepository.findBySearchCoordDateTransform(comnSunrisesetCoordRq); ComnSunrisesetRs comnSunrisesetRs = comRiseSetQueryRepository.findBySearchCoordDateTransform(comnSunrisesetCoordRq);
LocalTime sunUp = this.convertStringToTime(comnSunrisesetRs.getSunrise(), "HHmmss"); LocalTime sunUp = this.convertStringToTime(comnSunrisesetRs.getCivilm(), "HHmmss");
LocalTime sunDown = this.convertStringToTime(comnSunrisesetRs.getSunset(), "HHmmss"); LocalTime sunDown = this.convertStringToTime(comnSunrisesetRs.getCivile(), "HHmmss");
LocalTime stringStTm = this.convertStringToTime(stringStDt[1].replace(":", ""), "HHmmss"); LocalTime stringStTm = this.convertStringToTime(stringStDt[1].replace(":", ""), "HHmmss");
LocalTime stringEndTm = this.convertStringToTime(stringEndDt[1].replace(":", ""), "HHmmss"); LocalTime stringEndTm = this.convertStringToTime(stringEndDt[1].replace(":", ""), "HHmmss");
@ -564,6 +563,7 @@ public class BasLaancService {
/** /**
* String to LocalTime - Instant는 시간정보만 담을 없음.. * String to LocalTime - Instant는 시간정보만 담을 없음..
*
* @param time * @param time
* @param format * @param format
* @return * @return
@ -575,6 +575,7 @@ public class BasLaancService {
/** /**
* 일출, 일몰 시간 아래에 있는지 확인 * 일출, 일몰 시간 아래에 있는지 확인
*
* @param sunrise * @param sunrise
* @param sunset * @param sunset
* @param timeToCheck * @param timeToCheck

2
pav-server/src/main/java/com/palnet/comn/utils/InstantUtils.java

@ -17,7 +17,7 @@ import java.time.format.DateTimeFormatter;
* 2023-09-14(014) dhji 최초 생성 * 2023-09-14(014) dhji 최초 생성
*/ */
public class InstantUtils { public class InstantUtils {
public static final String DEFAULT_ZONE = "Asia/Seoul"; private static final String DEFAULT_ZONE = "Asia/Seoul";
private static final String DEFAULT_DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; private static final String DEFAULT_DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
private static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd"; private static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";

Loading…
Cancel
Save