From 7d463b2a75d41a55bc4031b0967bce49273cccce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dean=5B=EB=B0=B1=EB=B3=91=EB=82=A8=5D?= Date: Wed, 3 Dec 2025 09:33:21 +0900 Subject: [PATCH] feat: fix --- .../common/api/SceneDemoApiController.java | 46 +++++++++++++++++++ .../service/InferenceResultService.java | 5 ++ .../core/InferenceResultCoreService.java | 17 +++++++ .../repository/scene/MapInkx5kRepository.java | 7 +++ .../scene/MapInkx5kRepositoryCustom.java | 9 ++++ .../scene/MapInkx5kRepositoryImpl.java | 28 +++++++++++ 6 files changed, 112 insertions(+) create mode 100644 src/main/java/com/kamco/cd/kamcoback/common/api/SceneDemoApiController.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/postgres/repository/scene/MapInkx5kRepository.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/postgres/repository/scene/MapInkx5kRepositoryCustom.java create mode 100644 src/main/java/com/kamco/cd/kamcoback/postgres/repository/scene/MapInkx5kRepositoryImpl.java diff --git a/src/main/java/com/kamco/cd/kamcoback/common/api/SceneDemoApiController.java b/src/main/java/com/kamco/cd/kamcoback/common/api/SceneDemoApiController.java new file mode 100644 index 00000000..b70289a2 --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/common/api/SceneDemoApiController.java @@ -0,0 +1,46 @@ +package com.kamco.cd.kamcoback.common.api; + +import com.kamco.cd.kamcoback.config.api.ApiResponseDto; +import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.MapSheet; +import com.kamco.cd.kamcoback.inference.dto.LearningModelResultDto.BatchProcessResponse; +import com.kamco.cd.kamcoback.inference.service.InferenceResultService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import java.util.List; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RequiredArgsConstructor +@RestController +@RequestMapping("/demo/api/scene") +public class SceneDemoApiController { + + private final InferenceResultService inferenceResultService; + + @Operation(summary = "추론된 도엽 목록", description = "추론된 도엽 목록 5000:1") + @ApiResponses( + value = { + @ApiResponse( + responseCode = "200", + description = "검색 성공", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = BatchProcessResponse.class))), + @ApiResponse(responseCode = "400", description = "잘못된 요청", content = @Content), + @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) + }) + @GetMapping("/sheets/train-set/{id}") + public ApiResponseDto> listGetScenes5k( + @Parameter(description = "분석결과 id", example = "1") @PathVariable Long id) { + List mapSheets = inferenceResultService.listGetScenes5k(id); + return ApiResponseDto.ok(mapSheets); + } +} diff --git a/src/main/java/com/kamco/cd/kamcoback/inference/service/InferenceResultService.java b/src/main/java/com/kamco/cd/kamcoback/inference/service/InferenceResultService.java index 9a46072a..45a9ea82 100644 --- a/src/main/java/com/kamco/cd/kamcoback/inference/service/InferenceResultService.java +++ b/src/main/java/com/kamco/cd/kamcoback/inference/service/InferenceResultService.java @@ -3,6 +3,7 @@ package com.kamco.cd.kamcoback.inference.service; import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto; import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.Dashboard; import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.Detail; +import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.MapSheet; import com.kamco.cd.kamcoback.postgres.core.InferenceResultCoreService; import jakarta.validation.constraints.NotNull; import java.util.List; @@ -100,4 +101,8 @@ public class InferenceResultService { public List getSheets(Long id) { return inferenceResultCoreService.getSheets(id).stream().map(String::valueOf).toList(); } + + public List listGetScenes5k(Long id) { + return inferenceResultCoreService.listGetScenes5k(id); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/core/InferenceResultCoreService.java b/src/main/java/com/kamco/cd/kamcoback/postgres/core/InferenceResultCoreService.java index 4b62d931..c66d5138 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/core/InferenceResultCoreService.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/core/InferenceResultCoreService.java @@ -2,9 +2,12 @@ package com.kamco.cd.kamcoback.postgres.core; import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto; import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.Dashboard; +import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.MapSheet; +import com.kamco.cd.kamcoback.postgres.entity.MapInkx5kEntity; import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataEntity; import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataGeomEntity; import com.kamco.cd.kamcoback.postgres.repository.Inference.InferenceResultRepository; +import com.kamco.cd.kamcoback.postgres.repository.scene.MapInkx5kRepository; import jakarta.persistence.EntityNotFoundException; import jakarta.validation.constraints.NotNull; import java.util.List; @@ -18,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional; public class InferenceResultCoreService { private final InferenceResultRepository inferenceResultRepository; + private final MapInkx5kRepository mapInkx5kRepository; /** * 추론관리 > 분석결과 목록 조회 @@ -95,4 +99,17 @@ public class InferenceResultCoreService { public List getSheets(Long id) { return inferenceResultRepository.getSheets(id); } + + @Transactional(readOnly = true) + public List listGetScenes5k(Long analyId) { + List sceneCodes = + inferenceResultRepository.listAnalyGeom(analyId).stream() + .mapToLong(MapSheetAnalDataEntity::getMapSheetNum) + .mapToObj(String::valueOf) + .toList(); + + return mapInkx5kRepository.listGetScenes5k(sceneCodes).stream() + .map(MapInkx5kEntity::toEntity) + .toList(); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scene/MapInkx5kRepository.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scene/MapInkx5kRepository.java new file mode 100644 index 00000000..0e6e58ee --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scene/MapInkx5kRepository.java @@ -0,0 +1,7 @@ +package com.kamco.cd.kamcoback.postgres.repository.scene; + +import com.kamco.cd.kamcoback.postgres.entity.MapInkx5kEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MapInkx5kRepository + extends JpaRepository, MapInkx5kRepositoryCustom {} diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scene/MapInkx5kRepositoryCustom.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scene/MapInkx5kRepositoryCustom.java new file mode 100644 index 00000000..e509aaeb --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scene/MapInkx5kRepositoryCustom.java @@ -0,0 +1,9 @@ +package com.kamco.cd.kamcoback.postgres.repository.scene; + +import com.kamco.cd.kamcoback.postgres.entity.MapInkx5kEntity; +import java.util.List; + +public interface MapInkx5kRepositoryCustom { + + List listGetScenes5k(List codes); +} diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scene/MapInkx5kRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scene/MapInkx5kRepositoryImpl.java new file mode 100644 index 00000000..21fe09ea --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scene/MapInkx5kRepositoryImpl.java @@ -0,0 +1,28 @@ +package com.kamco.cd.kamcoback.postgres.repository.scene; + +import com.kamco.cd.kamcoback.postgres.entity.MapInkx5kEntity; +import com.kamco.cd.kamcoback.postgres.entity.QMapInkx5kEntity; +import com.querydsl.jpa.impl.JPAQueryFactory; +import java.util.List; +import org.springframework.data.jpa.repository.support.QuerydslRepositorySupport; + +public class MapInkx5kRepositoryImpl extends QuerydslRepositorySupport + implements MapInkx5kRepositoryCustom { + + private final JPAQueryFactory queryFactory; + + public MapInkx5kRepositoryImpl(JPAQueryFactory queryFactory) { + super(MapInkx5kEntity.class); + this.queryFactory = queryFactory; + } + + public List listGetScenes5k(List codes) { + QMapInkx5kEntity map5k = QMapInkx5kEntity.mapInkx5kEntity; + + return queryFactory + .selectFrom(map5k) + .where(map5k.mapidcdNo.in(codes)) + .orderBy(map5k.mapidcdNo.asc()) + .fetch(); + } +}