From f48c444f6cace84c572e817a5d47cee4449a2400 Mon Sep 17 00:00:00 2001 From: teddy Date: Mon, 29 Dec 2025 14:10:22 +0900 Subject: [PATCH] =?UTF-8?q?shp=20=ED=8C=8C=EC=9D=BC=20=EC=83=9D=EC=84=B1?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inference/dto/InferenceResultShpDto.java | 3 +++ .../core/InferenceResultShpCoreService.java | 2 ++ .../InferenceResultRepositoryCustom.java | 2 ++ .../InferenceResultRepositoryImpl.java | 27 +++++++++++++++++++ 4 files changed, 34 insertions(+) diff --git a/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultShpDto.java b/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultShpDto.java index 96de4301..d0feb315 100644 --- a/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultShpDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultShpDto.java @@ -71,6 +71,9 @@ public class InferenceResultShpDto { @NoArgsConstructor public static class InferenceCntDto { + @Schema(description = "추론 결과(inference_results)를 기준으로 신규 목록 저장 터이터 건수", example = "120") + int sheetAnalDataCnt; + @Schema(description = "추론 결과(inference_results)를 기준으로 신규 저장 데이터 건수", example = "120") int inferenceCnt; diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/core/InferenceResultShpCoreService.java b/src/main/java/com/kamco/cd/kamcoback/postgres/core/InferenceResultShpCoreService.java index d4982dcb..53f41d14 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/core/InferenceResultShpCoreService.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/core/InferenceResultShpCoreService.java @@ -20,10 +20,12 @@ public class InferenceResultShpCoreService { */ @Transactional public InferenceResultShpDto.InferenceCntDto buildInferenceData() { + int sheetAnalDataCnt = repo.upsertGroupsFromMapSheetAnal(); int inferenceCnt = repo.upsertGroupsFromInferenceResults(); int inferenceGeomCnt = repo.upsertGeomsFromInferenceResults(); InferenceResultShpDto.InferenceCntDto cntDto = new InferenceResultShpDto.InferenceCntDto(); + cntDto.setSheetAnalDataCnt(sheetAnalDataCnt); cntDto.setInferenceCnt(inferenceCnt); cntDto.setInferenceGeomCnt(inferenceGeomCnt); 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 3808d7d9..41b72849 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 @@ -5,6 +5,8 @@ import java.util.List; public interface InferenceResultRepositoryCustom { + int upsertGroupsFromMapSheetAnal(); + int upsertGroupsFromInferenceResults(); int upsertGeomsFromInferenceResults(); 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 ae083e77..a1d7afb6 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 @@ -31,6 +31,33 @@ public class InferenceResultRepositoryImpl implements InferenceResultRepositoryC // Upsert (Native only) // =============================== + @Override + public int upsertGroupsFromMapSheetAnal() { + String sql = + """ + INSERT INTO tb_map_sheet_anal_inference ( + compare_yyyy, + target_yyyy, + anal_map_sheet, + stage, + anal_title + ) + SELECT + r.input1 AS compare_yyyy, + r.input2 AS target_yyyy, + r.map_id AS anal_map_sheet, + r.stage, + CONCAT(r.stage ,'_', r.input1 ,'_', r.input2 ,'_', r.map_id) as anal_title + FROM inference_results r + GROUP BY r.stage, r.input1, r.input2, r.map_id + ON CONFLICT (compare_yyyy, target_yyyy, anal_map_sheet, stage) + DO UPDATE SET + updated_dttm = now() + """; + + return em.createNativeQuery(sql).executeUpdate(); + } + /** * inference_results 테이블을 기준으로 분석 데이터 단위(stage, compare_yyyy, target_yyyy, map_sheet_num)를 * 생성/갱신한다.