회차 Uid로 Uuid 조회 api 추가

This commit is contained in:
2026-02-24 12:37:01 +09:00
parent c93d40f3f3
commit 514b07356e
5 changed files with 43 additions and 18 deletions

View File

@@ -147,6 +147,15 @@ public class ChangeDetectionApiController {
changeDetectionService.getChangeDetectionPointList(type, scale, uuid, mapSheetNum)); changeDetectionService.getChangeDetectionPointList(type, scale, uuid, mapSheetNum));
} }
@Operation(summary = "선택 변화탐지 결과 uuid 조회", description = "선택 변화탐지 결과 uuid 조회")
@GetMapping("/selected/uuid")
public ApiResponseDto<UUID> getChnDtctIdUuid(
@Parameter(description = "회차 32자 uid", example = "98ABAA1FC4394F11885C302C19AE5E81")
@RequestParam
String chnDtctId) {
return ApiResponseDto.ok(changeDetectionService.getLearnUuid(chnDtctId));
}
@Operation(summary = "선택 변화탐지 결과 Polygon", description = "선택 변화탐지 결과 Polygon") @Operation(summary = "선택 변화탐지 결과 Polygon", description = "선택 변화탐지 결과 Polygon")
@GetMapping("/selected/polygon") @GetMapping("/selected/polygon")
public ApiResponseDto<ChangeDetectionDto.PolygonFeatureList> getCdPolygonList( public ApiResponseDto<ChangeDetectionDto.PolygonFeatureList> getCdPolygonList(

View File

@@ -117,4 +117,14 @@ public class ChangeDetectionService {
String chnDtctId, String cdObjectId, List<String> cdObjectIds, String pnu) { String chnDtctId, String cdObjectId, List<String> cdObjectIds, String pnu) {
return changeDetectionCoreService.getPointListByCd(chnDtctId, cdObjectId, cdObjectIds); return changeDetectionCoreService.getPointListByCd(chnDtctId, cdObjectId, cdObjectIds);
} }
/**
* Learn uuid 조회
*
* @param chnDtctId
* @return uuid
*/
public UUID getLearnUuid(String chnDtctId) {
return changeDetectionCoreService.getLearnUuid(chnDtctId);
}
} }

View File

@@ -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.MapScaleType;
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapSheetList; import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapSheetList;
import com.kamco.cd.kamcoback.common.enums.DetectionClassification; 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.entity.MapSheetAnalDataInferenceGeomEntity;
import com.kamco.cd.kamcoback.postgres.repository.changedetection.ChangeDetectionRepository; import com.kamco.cd.kamcoback.postgres.repository.changedetection.ChangeDetectionRepository;
import java.util.List; import java.util.List;
@@ -15,6 +16,7 @@ import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.locationtech.jts.geom.Geometry; import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.Point; import org.locationtech.jts.geom.Point;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service @Service
@@ -124,26 +126,14 @@ public class ChangeDetectionCoreService {
} }
/** /**
* 선택 polygon 조회 by pnu * learn uuid 조회
* *
* @param chnDtctId 회차 uid 32자 * @param chnDtctId
* @param pnu Pnu
* @return * @return
*/ */
public ChangeDetectionDto.PolygonFeatureList getSelectedChangeDetectionPolygonListByPnu( public UUID getLearnUuid(String chnDtctId) {
String chnDtctId, String pnu) { return changeDetectionRepository
return changeDetectionRepository.getSelectedChangeDetectionPolygonListByPnu(chnDtctId, pnu); .getLearnUuid(chnDtctId)
} .orElseThrow(() -> new CustomApiException("NOT_FOUND_DATA", HttpStatus.NOT_FOUND));
/**
* 선택 point 조회 by pnu
*
* @param chnDtctId 회차 uid 32자
* @param pnu Pnu
* @return
*/
public ChangeDetectionDto.PointFeatureList getSelectedChangeDetectionPointListByPnu(
String chnDtctId, String pnu) {
return changeDetectionRepository.getSelectedChangeDetectionPointListByPnu(chnDtctId, pnu);
} }
} }

View File

@@ -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.MapScaleType;
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapSheetList; import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapSheetList;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.UUID; import java.util.UUID;
public interface ChangeDetectionRepositoryCustom { public interface ChangeDetectionRepositoryCustom {
@@ -40,4 +41,6 @@ public interface ChangeDetectionRepositoryCustom {
ChangeDetectionDto.PointFeatureList getSelectedChangeDetectionPointListByPnu( ChangeDetectionDto.PointFeatureList getSelectedChangeDetectionPointListByPnu(
String chnDtctId, String pnu); String chnDtctId, String pnu);
Optional<UUID> getLearnUuid(String chnDtctId);
} }

View File

@@ -34,6 +34,7 @@ import com.querydsl.jpa.JPAExpressions;
import com.querydsl.jpa.impl.JPAQueryFactory; import com.querydsl.jpa.impl.JPAQueryFactory;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Optional;
import java.util.UUID; import java.util.UUID;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.springframework.data.jpa.repository.support.QuerydslRepositorySupport; import org.springframework.data.jpa.repository.support.QuerydslRepositorySupport;
@@ -630,4 +631,16 @@ public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport
return new ChangeDetectionDto.PointFeatureList("FeatureCollection", result); return new ChangeDetectionDto.PointFeatureList("FeatureCollection", result);
} }
@Override
public Optional<UUID> 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());
}
} }