From d4b4ffc5e99f1a6c2f70eebafa089e0eeffca726 Mon Sep 17 00:00:00 2001 From: "gayoun.park" Date: Tue, 20 Jan 2026 10:55:40 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B3=80=ED=99=94=ED=83=90=EC=A7=80=20COG=20UR?= =?UTF-8?q?L=20API=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChangeDetectionApiController.java | 7 +++++- .../dto/ChangeDetectionDto.java | 1 + .../ChangeDetectionRepositoryImpl.java | 24 ++++++++++++++++++- 3 files changed, 30 insertions(+), 2 deletions(-) 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 be9cdeb0..e674655f 100644 --- a/src/main/java/com/kamco/cd/kamcoback/changedetection/ChangeDetectionApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/changedetection/ChangeDetectionApiController.java @@ -74,11 +74,16 @@ public class ChangeDetectionApiController { @Parameter(description = "5k/50k 구분(SCALE_5K/SCALE_50K))", required = true) @RequestParam(defaultValue = "SCALE_50K") MapScaleType scale, + @Parameter( + description = "변화탐지 년도(차수) /year-list 의 uuid", + example = "8584e8d4-53b3-4582-bde2-28a81495a626") + @RequestParam + UUID uuid, @Parameter(description = "이전 년도", example = "2023") @RequestParam Integer beforeYear, @Parameter(description = "이후 년도", example = "2024") @RequestParam Integer afterYear, @Parameter(description = "도엽번호(5k)", example = "35905086") @RequestParam String mapSheetNum) { ChangeDetectionDto.CogUrlReq req = - new ChangeDetectionDto.CogUrlReq(beforeYear, afterYear, mapSheetNum, type, scale); + new ChangeDetectionDto.CogUrlReq(uuid, beforeYear, afterYear, mapSheetNum, type, scale); return ApiResponseDto.ok(changeDetectionService.getChangeDetectionCogUrl(req)); } diff --git a/src/main/java/com/kamco/cd/kamcoback/changedetection/dto/ChangeDetectionDto.java b/src/main/java/com/kamco/cd/kamcoback/changedetection/dto/ChangeDetectionDto.java index fb5953f9..a82113bf 100644 --- a/src/main/java/com/kamco/cd/kamcoback/changedetection/dto/ChangeDetectionDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/changedetection/dto/ChangeDetectionDto.java @@ -86,6 +86,7 @@ public class ChangeDetectionDto { @AllArgsConstructor public static class CogUrlReq { + private UUID uuid; private Integer beforeYear; private Integer afterYear; private String mapSheetNum; 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 4c8191a7..890a5c4d 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 @@ -12,6 +12,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto; +import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.DetectSearchType; import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapScaleType; import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapSheetList; import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataInferenceGeomEntity; @@ -111,6 +112,26 @@ public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport @Override public ChangeDetectionDto.CogUrlDto getChangeDetectionCogUrl(ChangeDetectionDto.CogUrlReq req) { + String mapSheetNum = req.getMapSheetNum(); + + if (req.getType().equals(DetectSearchType.MAPSHEET) + && req.getScale().equals(MapScaleType.SCALE_50K)) { + mapSheetNum = + queryFactory + .select(mapSheetAnalDataInferenceEntity.mapSheetNum.stringValue()) + .from(mapSheetAnalInferenceEntity) + .innerJoin(mapSheetAnalDataInferenceEntity) + .on(mapSheetAnalInferenceEntity.id.eq(mapSheetAnalDataInferenceEntity.analUid)) + .where( + mapSheetAnalInferenceEntity.uuid.eq(req.getUuid()), + mapSheetAnalDataInferenceEntity + .mapSheetNum + .stringValue() + .like("%" + req.getMapSheetNum() + "%")) + .orderBy(mapSheetAnalDataInferenceEntity.mapSheetNum.asc()) + .fetchFirst(); + } + ChangeDetectionDto.CogUrlData data = queryFactory .select( @@ -128,7 +149,7 @@ public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport .year .eq(req.getBeforeYear()) .or(imageryEntity.year.eq(req.getAfterYear())), - imageryEntity.scene5k.eq(req.getMapSheetNum())) + imageryEntity.scene5k.eq(mapSheetNum)) .groupBy(mapInkx5kEntity.geom) .fetchOne(); @@ -191,6 +212,7 @@ public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport .where( mapSheetAnalInferenceEntity.uuid.eq(uuid), mapScaleTypeAnalDataSearchExpression(scale, mapSheetNum)) + .orderBy(mapSheetAnalDataInferenceGeomEntity.mapSheetNum.asc()) .fetch(); ObjectMapper mapper = new ObjectMapper();