|
|
@ -1,50 +1,27 @@ |
|
|
|
package com.palnet.biz.api.bas.laanc.service; |
|
|
|
package com.palnet.biz.api.bas.laanc.service; |
|
|
|
|
|
|
|
|
|
|
|
import java.time.Instant; |
|
|
|
import com.google.zxing.WriterException; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
|
|
|
|
import java.time.LocalTime; |
|
|
|
|
|
|
|
import java.time.ZoneId; |
|
|
|
|
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.palnet.biz.api.bas.laanc.model.*; |
|
|
|
|
|
|
|
import com.palnet.biz.api.comn.sunriseset.model.ComnSunrisesetCoordRq; |
|
|
|
|
|
|
|
import com.palnet.biz.api.comn.sunriseset.model.ComnSunrisesetRs; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.type.FltMethod; |
|
|
|
|
|
|
|
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 com.palnet.biz.api.acnt.cstmr.model.AnctCstmrModel; |
|
|
|
import com.palnet.biz.api.acnt.cstmr.model.AnctCstmrModel; |
|
|
|
import com.palnet.biz.api.acnt.cstmr.model.AnctCstmrTermsModel; |
|
|
|
import com.palnet.biz.api.acnt.cstmr.model.AnctCstmrTermsModel; |
|
|
|
import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil; |
|
|
|
import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil; |
|
|
|
|
|
|
|
import com.palnet.biz.api.bas.laanc.model.*; |
|
|
|
import com.palnet.biz.api.comn.file.model.LaancPdfModel; |
|
|
|
import com.palnet.biz.api.comn.file.model.LaancPdfModel; |
|
|
|
import com.palnet.biz.api.comn.file.service.ComnFileService; |
|
|
|
import com.palnet.biz.api.comn.file.service.ComnFileService; |
|
|
|
import com.palnet.biz.api.comn.sms.model.ComnSmsLaancAprovModel; |
|
|
|
import com.palnet.biz.api.comn.sms.model.ComnSmsLaancAprovModel; |
|
|
|
import com.palnet.biz.api.comn.sms.service.ComnSmsService; |
|
|
|
import com.palnet.biz.api.comn.sms.service.ComnSmsService; |
|
|
|
|
|
|
|
import com.palnet.biz.api.comn.sunriseset.model.ComnSunrisesetCoordRq; |
|
|
|
|
|
|
|
import com.palnet.biz.api.comn.sunriseset.model.ComnSunrisesetRs; |
|
|
|
import com.palnet.biz.api.external.model.PilotValidRq; |
|
|
|
import com.palnet.biz.api.external.model.PilotValidRq; |
|
|
|
import com.palnet.biz.api.external.model.PilotValidRs; |
|
|
|
import com.palnet.biz.api.external.model.PilotValidRs; |
|
|
|
|
|
|
|
import com.palnet.biz.api.external.model.TsQrcodeRq; |
|
|
|
import com.palnet.biz.api.external.service.TsService; |
|
|
|
import com.palnet.biz.api.external.service.TsService; |
|
|
|
import com.palnet.biz.jpa.entity.ComFileBas; |
|
|
|
import com.palnet.biz.jpa.entity.*; |
|
|
|
import com.palnet.biz.jpa.entity.FltPlanArcrft; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.FltPlanArea; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.FltPlanAreaCoord; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.FltPlanBas; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.FltPlanPilot; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.PtyGroupBas; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.PtyTermsAgreeTxn; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.type.ArcrftWghtCd; |
|
|
|
import com.palnet.biz.jpa.entity.type.ArcrftWghtCd; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.type.FltMethod; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.type.FltPurpose; |
|
|
|
import com.palnet.biz.jpa.entity.type.FltType; |
|
|
|
import com.palnet.biz.jpa.entity.type.FltType; |
|
|
|
import com.palnet.biz.jpa.repository.com.ComRiseSetQueryRepository; |
|
|
|
import com.palnet.biz.jpa.repository.com.ComRiseSetQueryRepository; |
|
|
|
import com.palnet.biz.jpa.repository.flt.FltPlanArcrftRepository; |
|
|
|
import com.palnet.biz.jpa.repository.flt.*; |
|
|
|
import com.palnet.biz.jpa.repository.flt.FltPlanAreaCoordRepository; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.repository.flt.FltPlanAreaRepository; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.repository.flt.FltPlanBasRepository; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.repository.flt.FltPlanPilotRepository; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.repository.pty.PtyCstmrQueryRepository; |
|
|
|
import com.palnet.biz.jpa.repository.pty.PtyCstmrQueryRepository; |
|
|
|
import com.palnet.biz.jpa.repository.pty.PtyGroupBasRepository; |
|
|
|
import com.palnet.biz.jpa.repository.pty.PtyGroupBasRepository; |
|
|
|
import com.palnet.biz.jpa.repository.pty.PtyTermsAgreeTxnRepository; |
|
|
|
import com.palnet.biz.jpa.repository.pty.PtyTermsAgreeTxnRepository; |
|
|
@ -52,13 +29,27 @@ import com.palnet.biz.scheduler.ctr.model.CtrTrnsLctnModel; |
|
|
|
import com.palnet.biz.scheduler.ctr.service.CtrTrnsLctnService; |
|
|
|
import com.palnet.biz.scheduler.ctr.service.CtrTrnsLctnService; |
|
|
|
import com.palnet.comn.code.ErrorCode; |
|
|
|
import com.palnet.comn.code.ErrorCode; |
|
|
|
import com.palnet.comn.exception.CustomException; |
|
|
|
import com.palnet.comn.exception.CustomException; |
|
|
|
import com.palnet.comn.utils.AirspaceUtils; |
|
|
|
import com.palnet.comn.utils.*; |
|
|
|
import com.palnet.comn.utils.AreaUtils; |
|
|
|
|
|
|
|
import com.palnet.comn.utils.HttpUtils; |
|
|
|
|
|
|
|
import com.palnet.comn.utils.InstantUtils; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
|
|
|
import org.locationtech.jts.geom.Coordinate; |
|
|
|
|
|
|
|
import org.locationtech.jts.geom.Geometry; |
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import org.springframework.util.StringUtils; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
|
|
|
|
|
import java.time.Instant; |
|
|
|
|
|
|
|
import java.time.LocalDateTime; |
|
|
|
|
|
|
|
import java.time.LocalTime; |
|
|
|
|
|
|
|
import java.time.ZoneId; |
|
|
|
|
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
import java.util.Objects; |
|
|
|
|
|
|
|
import java.util.UUID; |
|
|
|
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* packageName : com.palnet.biz.api.bas.laanc.service |
|
|
|
* packageName : com.palnet.biz.api.bas.laanc.service |
|
|
@ -92,6 +83,12 @@ public class BasLaancService { |
|
|
|
private final AreaUtils areaUtils; |
|
|
|
private final AreaUtils areaUtils; |
|
|
|
private final ComRiseSetQueryRepository comRiseSetQueryRepository; |
|
|
|
private final ComRiseSetQueryRepository comRiseSetQueryRepository; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Value("${app.host}") |
|
|
|
|
|
|
|
private String APP_HOST; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Value("${external.ts.return.uri}") |
|
|
|
|
|
|
|
private String TS_RETURN_URI; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// LAANC 검증
|
|
|
|
// LAANC 검증
|
|
|
|
public BasLaancValidatedRs validationLaanc(BasLaancPlanRq rq) { |
|
|
|
public BasLaancValidatedRs validationLaanc(BasLaancPlanRq rq) { |
|
|
@ -612,4 +609,53 @@ public class BasLaancService { |
|
|
|
|
|
|
|
|
|
|
|
return rs; |
|
|
|
return rs; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// QR code 생성
|
|
|
|
|
|
|
|
public BasLaancQrcodeRs createQrcode(BasLaancQrcodeRq rq) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// if(rq == null || rq.getFltPurpose() == null || rq.getIdntfNum() == null || rq.getIdntfNum().isEmpty()) {
|
|
|
|
|
|
|
|
// throw new CustomException(ErrorCode.NON_VALID_PARAMETER);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Integer cstmrSno = jwtTokenUtil.getCstmrSnoByToken(); |
|
|
|
|
|
|
|
AnctCstmrModel cstmrInfo = ptyCstmrQueryRepository.findByCstmrSno(cstmrSno); |
|
|
|
|
|
|
|
String userCi = cstmrInfo.getIpinCi(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// String fltPurposeCode = null;
|
|
|
|
|
|
|
|
// if (rq != null && rq.getFltPurpose() != null && !rq.getFltPurpose().isEmpty()) {
|
|
|
|
|
|
|
|
//// fltPurposeCode = Objects.requireNonNull(FltPurpose.fromCode(rq.getFltPurpose())).getCode();
|
|
|
|
|
|
|
|
// fltPurposeCode = rq.getFltPurpose();
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
String idntfNum = null; |
|
|
|
|
|
|
|
if(rq != null && rq.getIdntfNum() != null && !rq.getIdntfNum().isEmpty()){ |
|
|
|
|
|
|
|
idntfNum = rq.getIdntfNum(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String confirmKey = UUID.randomUUID().toString(); |
|
|
|
|
|
|
|
byte[] qr = null; |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
TsQrcodeRq tsRq = TsQrcodeRq.builder() |
|
|
|
|
|
|
|
.rtnUrl(APP_HOST + TS_RETURN_URI) |
|
|
|
|
|
|
|
.reqId(confirmKey) |
|
|
|
|
|
|
|
.submittype(idntfNum) |
|
|
|
|
|
|
|
.applyUser(userCi) |
|
|
|
|
|
|
|
.build(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String str = JsonUtils.toJson(tsRq); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
qr = tsService.createQrcode(str); |
|
|
|
|
|
|
|
} catch (WriterException | IOException e) { |
|
|
|
|
|
|
|
log.error("ERROR: ", e); |
|
|
|
|
|
|
|
throw new CustomException(ErrorCode.FAIL, "QR코드 생성 실패"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// db 저장 - confirmKey(uuid)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return BasLaancQrcodeRs.builder() |
|
|
|
|
|
|
|
.qrcode(qr) |
|
|
|
|
|
|
|
.confirmKey(confirmKey) |
|
|
|
|
|
|
|
.build(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|