diff --git a/pav-server/build.gradle b/pav-server/build.gradle index 987c5d7a..c7b529a3 100644 --- a/pav-server/build.gradle +++ b/pav-server/build.gradle @@ -100,6 +100,8 @@ dependencies { implementation 'org.locationtech.jts:jts-core:1.19.0' implementation 'org.geotools:gt-geojson:29.2' + testCompileOnly 'org.projectlombok:lombok:1.18.28' + testAnnotationProcessor 'org.projectlombok:lombok:1.18.28' testImplementation 'org.springframework.boot:spring-boot-starter-test' testAnnotationProcessor "org.mapstruct:mapstruct-processor:1.5.5.Final" @@ -109,10 +111,15 @@ dependencies { tasks.named('test') { useJUnitPlatform() } + tasks.withType(JavaCompile) { options.encoding = "UTF-8" } +tasks.withType(Test) { + enabled = false +} + def querydslDir = "$buildDir/generated/querydsl" querydsl { jpa = true diff --git a/pav-server/src/main/java/com/palnet/biz/api/anls/hstry/controller/AnlsHstryController.java b/pav-server/src/main/java/com/palnet/biz/api/anls/hstry/controller/AnlsHstryController.java index 16a0366a..ab2edf8a 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/anls/hstry/controller/AnlsHstryController.java +++ b/pav-server/src/main/java/com/palnet/biz/api/anls/hstry/controller/AnlsHstryController.java @@ -14,7 +14,6 @@ import io.swagger.annotations.ApiOperation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -32,10 +31,8 @@ import java.util.List; @Tag(name = "비행 이력 현황", description = "비행 이력 현황 관련 API") public class AnlsHstryController { - @Autowired private final AnlsHstryService service; - - + @GetMapping(value = "/list") @ApiOperation(value = "비행 현황 목록 출력") @Tag(name = "비행 이력 현황", description = "비행 이력 현황 관련 API") diff --git a/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/model/BasLaancLastRs.java b/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/model/BasLaancLastRs.java index 60c3c0b9..caca68ca 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/model/BasLaancLastRs.java +++ b/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/model/BasLaancLastRs.java @@ -22,4 +22,5 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class BasLaancLastRs { private String pdfUrl; + private String address; } diff --git a/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/service/BasLaancService.java b/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/service/BasLaancService.java index 6ab48e58..aa5a8b3e 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/service/BasLaancService.java +++ b/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/service/BasLaancService.java @@ -16,6 +16,8 @@ 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.PtyTermsAgreeTxnRepository; +import com.palnet.biz.scheduler.ctr.model.CtrTrnsLctnModel; +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; @@ -49,7 +51,6 @@ import java.util.stream.Collectors; @Service public class BasLaancService { - private final PtyGroupBasRepository ptyGroupBasRepository; private final FltPlanBasRepository fltPlanBasRepository; private final FltPlanArcrftRepository fltPlanArcrftRepository; @@ -59,6 +60,7 @@ public class BasLaancService { private final PtyCstmrQueryRepository ptyCstmrQueryRepository; private final PtyTermsAgreeTxnRepository ptyTermsAgreeTxnRepository; private final TsService tsService; + private final CtrTrnsLctnService ctrTrnsLctnService; private final ComnFileService comnFileService; private final JwtTokenUtil jwtTokenUtil; private final AreaUtils areaUtils; @@ -182,6 +184,8 @@ public class BasLaancService { Integer planAreaSno = rAreaEntity.getPlanAreaSno(); List laancAreaModelCoordList = laancAreaModel.getCoordList(); if (laancAreaModelCoordList != null && !laancAreaModelCoordList.isEmpty()) { + laancAreaModelCoordList.get(0).getLat(); + laancAreaModelCoordList.get(0).getLon(); for (BasLaancAreaCoordModel basLaancAreaCoordModel : laancAreaModelCoordList) { FltPlanAreaCoord coordEntity = BasLaancMapper.MAPPER.modelToPlanEntity(basLaancAreaCoordModel); coordEntity.setPlanAreaSno(planAreaSno); @@ -239,12 +243,28 @@ public class BasLaancService { laancPdfModel.setUserName(fltPlanBas.getMemberName()); ComFileBas comFileBas = comnFileService.makePdf(laancPdfModel); - StringBuilder sb = new StringBuilder(); - sb.append(FILE_DOWNLOAD_URL) - .append("?fileSno=") - .append(comFileBas.getFileSno()); + String sb = FILE_DOWNLOAD_URL + "?fileSno=" + comFileBas.getFileSno(); + + + // 주소 가져오기 + String address = ""; + try { + double firstLat = rq.getAreaList().get(0).getCoordList().get(0).getLat(); + double firstLon = rq.getAreaList().get(0).getCoordList().get(0).getLon(); + CtrTrnsLctnModel ctrTrnsLctnModel = ctrTrnsLctnService.convertLatlonToAddress(firstLat, firstLon); + address = ctrTrnsLctnModel.getArea1() + " " + + ctrTrnsLctnModel.getArea2() + " " + + ctrTrnsLctnModel.getLandNm() + " " + + ctrTrnsLctnModel.getLandNum(); + + } catch (Exception e) { + log.error("get first coords to address fail. : ", e); + address = ""; + } + BasLaancLastRs rs = BasLaancLastRs.builder() - .pdfUrl(sb.toString()) + .pdfUrl(sb) + .pdfUrl(address) .build(); return rs; diff --git a/pav-server/src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java b/pav-server/src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java index ac60e093..c4fdfbfe 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java +++ b/pav-server/src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java @@ -1,38 +1,27 @@ package com.palnet.biz.api.ctr.cntrl.controller; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.URL; -import java.net.URLEncoder; -import java.text.SimpleDateFormat; -import java.time.LocalTime; -import java.util.*; - +import com.palnet.biz.api.bas.flight.model.BasFlightPlanModel; +import com.palnet.biz.api.comn.response.BasicResponse; +import com.palnet.biz.api.comn.response.ErrorResponse; +import com.palnet.biz.api.comn.response.SuccessResponse; import com.palnet.biz.api.ctr.cntrl.model.*; -import com.palnet.biz.scheduler.ctr.model.CtrTrnsLctnModel; -import com.palnet.biz.scheduler.ctr.service.CtrTrnsLctnService; +import com.palnet.biz.api.ctr.cntrl.service.CtrCntrlService; +import com.palnet.comn.model.GPHistoryModel; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.log4j.Log4j2; import org.json.simple.JSONObject; -import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; -import org.locationtech.jts.geom.Coordinate; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import com.palnet.biz.api.bas.flight.model.BasFlightPlanModel; -import com.palnet.biz.api.comn.response.BasicResponse; -import com.palnet.biz.api.comn.response.ErrorResponse; -import com.palnet.biz.api.comn.response.SuccessResponse; -import com.palnet.biz.api.ctr.cntrl.service.CtrCntrlService; -import com.palnet.comn.model.GPHistoryModel; - -import lombok.extern.log4j.Log4j2; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; @Log4j2 @RestController diff --git a/pav-server/src/main/java/com/palnet/biz/api/ctr/cntrl/service/CtrCntrlService.java b/pav-server/src/main/java/com/palnet/biz/api/ctr/cntrl/service/CtrCntrlService.java index b0690ecb..809c0250 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/ctr/cntrl/service/CtrCntrlService.java +++ b/pav-server/src/main/java/com/palnet/biz/api/ctr/cntrl/service/CtrCntrlService.java @@ -1,34 +1,5 @@ package com.palnet.biz.api.ctr.cntrl.service; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.URL; -import java.net.URLEncoder; -import java.text.SimpleDateFormat; -import java.time.Duration; -import java.time.Instant; -import java.time.LocalDate; -import java.time.LocalTime; -import java.time.Period; -import java.time.ZoneId; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -import org.apache.commons.lang3.StringUtils; -import org.json.simple.JSONObject; -import org.json.simple.parser.JSONParser; -import org.json.simple.parser.ParseException; -import org.locationtech.jts.geom.Coordinate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil; import com.palnet.biz.api.bas.flight.model.BasFlightPlanArcrftModel; import com.palnet.biz.api.bas.flight.model.BasFlightPlanAreaCoordModel; @@ -36,56 +7,49 @@ import com.palnet.biz.api.bas.flight.model.BasFlightPlanAreaModel; import com.palnet.biz.api.bas.flight.model.BasFlightPlanModel; import com.palnet.biz.api.bas.flight.service.BasFlightMapper; import com.palnet.biz.api.comn.model.ControlGpsDataContext; -import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlArcrftComplModel; -import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlArcrftWarnModel; -import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlDtlModel; -import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlGroupArcrftModel; -import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlGroupModel; -import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlPlanContainsRq; -import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlPlanContainsRs; -import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlSocketContainsRq; -import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlWarnLogModel; -import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlWeatherModel; -import com.palnet.biz.jpa.entity.ComArcrftBas; -import com.palnet.biz.jpa.entity.ComIdntfBas; -import com.palnet.biz.jpa.entity.CtrCntrlBas; -import com.palnet.biz.jpa.entity.CtrCntrlHstry; -import com.palnet.biz.jpa.entity.CtrCntrlHstryArea; -import com.palnet.biz.jpa.entity.CtrCntrlWarnLog; -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.api.ctr.cntrl.model.*; +import com.palnet.biz.jpa.entity.*; import com.palnet.biz.jpa.repository.com.ComArcrftBasRepository; import com.palnet.biz.jpa.repository.com.ComIdntBasRepository; import com.palnet.biz.jpa.repository.ctr.CtrCntrlBasRepository; import com.palnet.biz.jpa.repository.ctr.CtrCntrlHstryRepository; import com.palnet.biz.jpa.repository.ctr.CtrCntrlQueryRepository; import com.palnet.biz.jpa.repository.ctr.CtrCntrlWarnLogRepository; -import com.palnet.biz.jpa.repository.flt.FltPlanArcrftRepository; -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.FltPlanCtrCntrlRelRepository; +import com.palnet.biz.jpa.repository.flt.*; import com.palnet.biz.scheduler.ctr.model.CtrTrnsLctnModel; import com.palnet.biz.scheduler.ctr.service.CtrTrnsLctnService; import com.palnet.comn.model.GPHistoryModel; import com.palnet.comn.utils.AreaUtils; import com.palnet.comn.utils.DateUtils; import com.palnet.comn.utils.EncryptUtils; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.json.simple.parser.ParseException; +import org.locationtech.jts.geom.Coordinate; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; -import lombok.extern.log4j.Log4j2; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.time.*; +import java.util.*; +@Slf4j +@RequiredArgsConstructor @Service -@Log4j2 public class CtrCntrlService { - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Autowired - private CtrTrnsLctnService ctrTrnsLctnService; - @Autowired - private FltPlanCtrCntrlRelRepository relRepository; + private final JwtTokenUtil jwtTokenUtil; + private final CtrTrnsLctnService ctrTrnsLctnService; + private final FltPlanCtrCntrlRelRepository relRepository; private final CtrCntrlQueryRepository query; private final CtrCntrlBasRepository cntrlBasRepository; @@ -100,31 +64,6 @@ public class CtrCntrlService { private final AreaUtils areaUtils; private final ControlGpsDataContext shareContext; - public CtrCntrlService(CtrCntrlQueryRepository query, - CtrCntrlBasRepository cntrlBasRepository, - CtrCntrlHstryRepository cntrlHstryRepository, - CtrCntrlWarnLogRepository warnLogRepository, - ComIdntBasRepository idntfRepository, - ComArcrftBasRepository arcrftRepository, - FltPlanBasRepository planBasRepository, - FltPlanArcrftRepository planArcrftRepository, - FltPlanAreaRepository planAreaRepository, - FltPlanAreaCoordRepository planCoordRepository, - AreaUtils areaUtils, - ControlGpsDataContext shareContext) { - this.query = query; - this.cntrlBasRepository = cntrlBasRepository; - this.cntrlHstryRepository = cntrlHstryRepository; - this.warnLogRepository = warnLogRepository; - this.idntfRepository = idntfRepository; - this.arcrftRepository = arcrftRepository; - this.planBasRepository = planBasRepository; - this.planArcrftRepository = planArcrftRepository; - this.planAreaRepository = planAreaRepository; - this.planCoordRepository = planCoordRepository; - this.areaUtils = areaUtils; - this.shareContext = shareContext; - } public List getListHistory(String objectId) { diff --git a/pav-server/src/main/java/com/palnet/biz/scheduler/ctr/model/CtrTrnsLctnModel.java b/pav-server/src/main/java/com/palnet/biz/scheduler/ctr/model/CtrTrnsLctnModel.java index 10ca5f31..bb5b8bab 100644 --- a/pav-server/src/main/java/com/palnet/biz/scheduler/ctr/model/CtrTrnsLctnModel.java +++ b/pav-server/src/main/java/com/palnet/biz/scheduler/ctr/model/CtrTrnsLctnModel.java @@ -1,7 +1,6 @@ package com.palnet.biz.scheduler.ctr.model; import lombok.Data; -import java.time.LocalDateTime; @Data public class CtrTrnsLctnModel { diff --git a/pav-server/src/test/java/com/palnet/biz/scheduler/ctr/service/CtrTrnsLctnServiceTest.java b/pav-server/src/test/java/com/palnet/biz/scheduler/ctr/service/CtrTrnsLctnServiceTest.java new file mode 100644 index 00000000..03512a61 --- /dev/null +++ b/pav-server/src/test/java/com/palnet/biz/scheduler/ctr/service/CtrTrnsLctnServiceTest.java @@ -0,0 +1,23 @@ +package com.palnet.biz.scheduler.ctr.service; + +import com.palnet.biz.scheduler.ctr.model.CtrTrnsLctnModel; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; + +@Slf4j +@ActiveProfiles({"local"}) +@SpringBootTest +class CtrTrnsLctnServiceTest { + + @Autowired + private CtrTrnsLctnService service; + + @Test + void convertLatlonToAddress() { + CtrTrnsLctnModel ctrTrnsLctnModel = service.convertLatlonToAddress(37.5666805, 126.9784147); + log.info(">>> {}", ctrTrnsLctnModel); + } +} \ No newline at end of file