diff --git a/pav-server/src/main/java/com/palnet/biz/api/external/service/DronOneStopService.java b/pav-server/src/main/java/com/palnet/biz/api/external/service/DronOneStopService.java index eed3c743..36100ae5 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/external/service/DronOneStopService.java +++ b/pav-server/src/main/java/com/palnet/biz/api/external/service/DronOneStopService.java @@ -154,7 +154,7 @@ public class DronOneStopService { return rs; } - private ApprovalCd getApprovalCd(Double bufferZone, Double fltElev, Coordinate centerPoint) { + protected ApprovalCd getApprovalCd(Double bufferZone, Double fltElev, Coordinate centerPoint) { // Circle만 체크 // 좌표 추출 - 중심 좌표 // Buffer 추출 - 테두리 좌표 diff --git a/pav-server/src/test/java/com/palnet/biz/api/external/service/DronOneStopServiceTest.java b/pav-server/src/test/java/com/palnet/biz/api/external/service/DronOneStopServiceTest.java new file mode 100644 index 00000000..93e06de7 --- /dev/null +++ b/pav-server/src/test/java/com/palnet/biz/api/external/service/DronOneStopServiceTest.java @@ -0,0 +1,81 @@ +package com.palnet.biz.api.external.service; + +import com.palnet.biz.api.external.model.ApprovalCd; +import com.palnet.biz.jpa.entity.DosFltPlanArea; +import com.palnet.biz.jpa.entity.DosFltPlanResult; +import com.palnet.biz.jpa.repository.dos.DosFltPlanAreaRepository; +import com.palnet.biz.jpa.repository.dos.DosFltPlanResultRepository; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; +import org.locationtech.jts.geom.Coordinate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; + +import java.time.Instant; +import java.util.List; +import java.util.stream.Collectors; + +@ActiveProfiles("prod") +@Slf4j +@SpringBootTest +class DronOneStopServiceTest { + + @Autowired + private DronOneStopService dronOneStopService; + + @Autowired + private DosFltPlanAreaRepository dosFltPlanAreaRepository; + @Autowired + private DosFltPlanResultRepository dosFltPlanResultRepository; + + @Test + void saveDosPlan() { + List areaList = dosFltPlanAreaRepository.findAll(); + List resultList = dosFltPlanResultRepository.findAll(); + for(DosFltPlanArea area : areaList) { + + // Circle만 체크 + Double bufferZone = area.getBufferZone(); + Double fltElev = area.getFltElev() != null ? area.getFltElev() : 0; + + // 좌표 추출 - 중심 좌표 + Coordinate centerPoint = new Coordinate(area.getLon(), area.getLat()); + + // 검증 + ApprovalCd approvalCd = dronOneStopService.getApprovalCd(bufferZone, fltElev, centerPoint); + + List rList = resultList.stream().filter(result -> result.getPlanSno().equals(area.getPlanSno()) && result.getPlanAreaSno().equals(area.getPlanAreaSno())).collect(Collectors.toList()); + log.info("rList size: {}", rList.size()); + if(!rList.isEmpty()){ + rList.forEach(r -> { + + if(r.getApprovalCd().equals(approvalCd.getCode())) { + log.info("approvalCd is same"); + } else { + log.info("approvalCd is different{} -> {}", r.getApprovalCd(), approvalCd.getCode()); + r.setApprovalCd(approvalCd.getCode()); + r.setUpdateDt(Instant.now()); + DosFltPlanResult save = dosFltPlanResultRepository.save(r); + log.info("update: {}", save); + } + }); + + } else { + log.info("result is empty"); + DosFltPlanResult dosFltPlanResultInsert = DosFltPlanResult.builder() + .planSno(area.getPlanSno()) + .planAreaSno(area.getPlanAreaSno()) + .approvalCd(approvalCd.getCode()) + .updateDt(Instant.now()) + .createDt(Instant.now()) + .build(); + DosFltPlanResult save = dosFltPlanResultRepository.save(dosFltPlanResultInsert); + log.info("insert: {}", save); + } + + + + } + } +} \ No newline at end of file diff --git a/pav-server/src/test/java/com/palnet/biz/scheduler/external/service/SunRiseSchedulerServiceTest.java b/pav-server/src/test/java/com/palnet/biz/scheduler/external/service/SunRiseSchedulerServiceTest.java new file mode 100644 index 00000000..971b0902 --- /dev/null +++ b/pav-server/src/test/java/com/palnet/biz/scheduler/external/service/SunRiseSchedulerServiceTest.java @@ -0,0 +1,19 @@ +package com.palnet.biz.scheduler.external.service; + +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; + +@ActiveProfiles("local") +@SpringBootTest +class SunRiseSchedulerServiceTest { + + @Autowired + private SunRiseSchedulerService sunRiseSchedulerService; + + @Test + void sunsetSchedule() { + sunRiseSchedulerService.sunsetSchedule(); + } +} \ No newline at end of file