diff --git a/src/main/java/com/kamco/cd/kamcoback/changedetection/ChangeDetectionApiController.java b/src/main/java/com/kamco/cd/kamcoback/changedetection/ChangeDetectionApiController.java index 1377e9d5..5c44fbdb 100644 --- a/src/main/java/com/kamco/cd/kamcoback/changedetection/ChangeDetectionApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/changedetection/ChangeDetectionApiController.java @@ -147,6 +147,15 @@ public class ChangeDetectionApiController { changeDetectionService.getChangeDetectionPointList(type, scale, uuid, mapSheetNum)); } + @Operation(summary = "선택 변화탐지 결과 uuid 조회", description = "선택 변화탐지 결과 uuid 조회") + @GetMapping("/selected/uuid") + public ApiResponseDto getChnDtctIdUuid( + @Parameter(description = "회차 32자 uid", example = "98ABAA1FC4394F11885C302C19AE5E81") + @RequestParam + String chnDtctId) { + return ApiResponseDto.ok(changeDetectionService.getLearnUuid(chnDtctId)); + } + @Operation(summary = "선택 변화탐지 결과 Polygon", description = "선택 변화탐지 결과 Polygon") @GetMapping("/selected/polygon") public ApiResponseDto getCdPolygonList( diff --git a/src/main/java/com/kamco/cd/kamcoback/changedetection/service/ChangeDetectionService.java b/src/main/java/com/kamco/cd/kamcoback/changedetection/service/ChangeDetectionService.java index bdd603ed..5418deaf 100644 --- a/src/main/java/com/kamco/cd/kamcoback/changedetection/service/ChangeDetectionService.java +++ b/src/main/java/com/kamco/cd/kamcoback/changedetection/service/ChangeDetectionService.java @@ -117,4 +117,14 @@ public class ChangeDetectionService { String chnDtctId, String cdObjectId, List cdObjectIds, String pnu) { return changeDetectionCoreService.getPointListByCd(chnDtctId, cdObjectId, cdObjectIds); } + + /** + * Learn uuid 조회 + * + * @param chnDtctId + * @return uuid + */ + public UUID getLearnUuid(String chnDtctId) { + return changeDetectionCoreService.getLearnUuid(chnDtctId); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/core/ChangeDetectionCoreService.java b/src/main/java/com/kamco/cd/kamcoback/postgres/core/ChangeDetectionCoreService.java index a2a6c426..b8a1dffc 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/core/ChangeDetectionCoreService.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/core/ChangeDetectionCoreService.java @@ -7,6 +7,7 @@ import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto; import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapScaleType; import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapSheetList; import com.kamco.cd.kamcoback.common.enums.DetectionClassification; +import com.kamco.cd.kamcoback.common.exception.CustomApiException; import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataInferenceGeomEntity; import com.kamco.cd.kamcoback.postgres.repository.changedetection.ChangeDetectionRepository; import java.util.List; @@ -15,6 +16,7 @@ import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import org.locationtech.jts.geom.Geometry; import org.locationtech.jts.geom.Point; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; @Service @@ -124,26 +126,14 @@ public class ChangeDetectionCoreService { } /** - * 선택 polygon 조회 by pnu + * learn uuid 조회 * - * @param chnDtctId 회차 uid 32자 - * @param pnu Pnu + * @param chnDtctId * @return */ - public ChangeDetectionDto.PolygonFeatureList getSelectedChangeDetectionPolygonListByPnu( - String chnDtctId, String pnu) { - return changeDetectionRepository.getSelectedChangeDetectionPolygonListByPnu(chnDtctId, pnu); - } - - /** - * 선택 point 조회 by pnu - * - * @param chnDtctId 회차 uid 32자 - * @param pnu Pnu - * @return - */ - public ChangeDetectionDto.PointFeatureList getSelectedChangeDetectionPointListByPnu( - String chnDtctId, String pnu) { - return changeDetectionRepository.getSelectedChangeDetectionPointListByPnu(chnDtctId, pnu); + public UUID getLearnUuid(String chnDtctId) { + return changeDetectionRepository + .getLearnUuid(chnDtctId) + .orElseThrow(() -> new CustomApiException("NOT_FOUND_DATA", HttpStatus.NOT_FOUND)); } } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/changedetection/ChangeDetectionRepositoryCustom.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/changedetection/ChangeDetectionRepositoryCustom.java index 7276f170..012d7ead 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/changedetection/ChangeDetectionRepositoryCustom.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/changedetection/ChangeDetectionRepositoryCustom.java @@ -4,6 +4,7 @@ import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto; import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapScaleType; import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapSheetList; import java.util.List; +import java.util.Optional; import java.util.UUID; public interface ChangeDetectionRepositoryCustom { @@ -40,4 +41,6 @@ public interface ChangeDetectionRepositoryCustom { ChangeDetectionDto.PointFeatureList getSelectedChangeDetectionPointListByPnu( String chnDtctId, String pnu); + + Optional getLearnUuid(String chnDtctId); } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/changedetection/ChangeDetectionRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/changedetection/ChangeDetectionRepositoryImpl.java index b565d832..387ff789 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/changedetection/ChangeDetectionRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/changedetection/ChangeDetectionRepositoryImpl.java @@ -34,6 +34,7 @@ import com.querydsl.jpa.JPAExpressions; import com.querydsl.jpa.impl.JPAQueryFactory; import java.util.List; import java.util.Objects; +import java.util.Optional; import java.util.UUID; import java.util.stream.Collectors; import org.springframework.data.jpa.repository.support.QuerydslRepositorySupport; @@ -630,4 +631,16 @@ public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport return new ChangeDetectionDto.PointFeatureList("FeatureCollection", result); } + + @Override + public Optional getLearnUuid(String chnDtctId) { + return Optional.ofNullable( + queryFactory + .select(mapSheetAnalInferenceEntity.uuid) + .from(mapSheetLearnEntity) + .innerJoin(mapSheetAnalInferenceEntity) + .on(mapSheetAnalInferenceEntity.learnId.eq(mapSheetLearnEntity.id)) + .where(mapSheetLearnEntity.uid.eq(chnDtctId)) + .fetchOne()); + } }