From 15d082af0e20e0af816553b5e504b4f618186bd5 Mon Sep 17 00:00:00 2001 From: teddy Date: Fri, 6 Mar 2026 11:09:34 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B6=94=EB=A1=A0=EA=B2=B0=EA=B3=BC=20?= =?UTF-8?q?=EC=A0=80=EC=9E=A5=20result=20=EC=A1=B0=ED=9A=8C=20=EC=A1=B0?= =?UTF-8?q?=EA=B1=B4=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inference/dto/InferenceResultDto.java | 2 ++ .../service/InferenceResultService.java | 1 + .../core/InferenceResultCoreService.java | 4 +++ .../InferenceResultRepositoryCustom.java | 30 +++++++++++++++++++ .../InferenceResultRepositoryImpl.java | 12 +++++--- 5 files changed, 45 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultDto.java b/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultDto.java index 86545422..6a0f5b55 100644 --- a/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultDto.java @@ -18,6 +18,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import lombok.ToString; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; @@ -240,6 +241,7 @@ public class InferenceResultDto { @Setter @NoArgsConstructor @AllArgsConstructor + @ToString public static class RegReq { @Schema(description = "제목", example = "2023-2024 변화탐지 테스트") 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 4091b7d2..88f61b4e 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 @@ -128,6 +128,7 @@ public class InferenceResultService { */ @Transactional public UUID run(InferenceResultDto.RegReq req) { + log.info("inference start request = {}", req); if (req.getDetectOption().equals(DetectOption.EXCL.getId())) { // 추론 제외 일때 EXCL return runExcl(req); 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 2e66cb5e..159739cc 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 @@ -502,9 +502,13 @@ public class InferenceResultCoreService { */ @Transactional public void upsertGeomData(Long id) { + // 추론 결과 목록 저장 Long analId = inferenceResultRepository.upsertGroupsFromMapSheetAnal(id); + // 추론 결과 상세 저장 inferenceResultRepository.upsertGroupsFromInferenceResults(analId); + // geom 목록 추론 결과 저장 inferenceResultRepository.upsertGeomsFromInferenceResults(analId); + // 집계 추론 결과 저장 inferenceResultRepository.upsertSttcFromInferenceResults(analId); } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/InferenceResultRepositoryCustom.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/InferenceResultRepositoryCustom.java index 273f0625..37f83d61 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/InferenceResultRepositoryCustom.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/InferenceResultRepositoryCustom.java @@ -6,14 +6,44 @@ import java.util.UUID; public interface InferenceResultRepositoryCustom { + /** + * tb_map_sheet_anal_inference 추론 결과 목록 저장 + * + * @param id learn 테이블 id + * @return + */ Long upsertGroupsFromMapSheetAnal(Long id); + /** + * tb_map_sheet_anal_data_inference 추론 결과 상세 저장 + * + * @param analId + * @return + */ int upsertGroupsFromInferenceResults(Long analId); + /** + * tb_map_sheet_anal_data_inference_geom geom 목록 추론 결과 저장 + * + * @param analId + * @return + */ int upsertGeomsFromInferenceResults(Long analId); + /** + * tb_map_sheet_anal_sttc 집계 추론 결과 저장 + * + * @param analId + * @return + */ int upsertSttcFromInferenceResults(Long analId); + /** + * 추론실행 목록 uuid 조회 + * + * @param uuid 추론 uuid + * @return 추론 실행 정보 + */ Long getInferenceLearnIdByUuid(UUID uuid); /** diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/InferenceResultRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/InferenceResultRepositoryImpl.java index 4e54fac5..92d697df 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/InferenceResultRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/InferenceResultRepositoryImpl.java @@ -24,6 +24,7 @@ public class InferenceResultRepositoryImpl implements InferenceResultRepositoryC @Override public Long upsertGroupsFromMapSheetAnal(Long id) { + // id = learn 테이블 id String sql = """ INSERT INTO tb_map_sheet_anal_inference ( @@ -53,12 +54,12 @@ public class InferenceResultRepositoryImpl implements InferenceResultRepositoryC :pendingStateId FROM tb_map_sheet_learn r WHERE r.id = :id - ON CONFLICT (stage, compare_yyyy, target_yyyy) + ON CONFLICT (learn_id, compare_yyyy, target_yyyy) DO UPDATE SET detecting_cnt = EXCLUDED.detecting_cnt, anal_title = EXCLUDED.anal_title, - updated_dttm = now(), - learn_id = EXCLUDED.learn_id + stage = EXCLUDED.stage, + updated_dttm = now() RETURNING anal_uid """; @@ -117,7 +118,7 @@ public class InferenceResultRepositoryImpl implements InferenceResultRepositoryC msl.target_yyyy, r.map_id, msl.stage - ON CONFLICT (stage, compare_yyyy, target_yyyy, map_sheet_num) + ON CONFLICT (anal_uid, compare_yyyy, target_yyyy, map_sheet_num) DO UPDATE SET anal_uid = EXCLUDED.anal_uid, ref_map_sheet_num = EXCLUDED.ref_map_sheet_num, @@ -212,6 +213,9 @@ public class InferenceResultRepositoryImpl implements InferenceResultRepositoryC AND r.map_id ~ '^[0-9]+$' AND r.map_id::bigint = msadi.map_sheet_num WHERE msl.anal_uid = :analUid + AND r.probability is not null + AND r.before_c is not null + AND r.before_p is not null AND r.after_c is not null AND r.after_p is not null ORDER BY r.uid, r.created_date DESC NULLS LAST