From 8498b513be70469c96dd092ed63e1deb0a5cac89 Mon Sep 17 00:00:00 2001 From: teddy Date: Mon, 26 Jan 2026 14:11:12 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B3=80=ED=99=94=EA=B2=B0=EA=B3=BC=EC=A7=80?= =?UTF-8?q?=EB=8F=84=20=EB=85=84=EB=8F=84=EC=84=A0=ED=83=9D=20=EB=A6=AC?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=A1=B0=ED=9A=8C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChangeDetectionRepositoryImpl.java | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) 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 0cb431fe..2ce5173c 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 @@ -19,6 +19,8 @@ import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapSheetLis import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.Status; import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataInferenceGeomEntity; import com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalDataInferenceEntity; +import com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalInferenceEntity; +import com.kamco.cd.kamcoback.postgres.entity.QMapSheetLearnEntity; import com.querydsl.core.types.Projections; import com.querydsl.core.types.dsl.BooleanExpression; import com.querydsl.core.types.dsl.CaseBuilder; @@ -174,27 +176,33 @@ public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport @Override public List getChangeDetectionYearList() { + QMapSheetLearnEntity l = mapSheetLearnEntity; + QMapSheetAnalInferenceEntity a = mapSheetAnalInferenceEntity; QMapSheetAnalDataInferenceEntity d = new QMapSheetAnalDataInferenceEntity("d2"); + StringExpression mapSheetNumExpr = + Expressions.stringTemplate( + "cast({0} as string)", + JPAExpressions.select(d.mapSheetNum.max()).from(d).where(d.analUid.eq(a.id))); + return queryFactory .select( Projections.constructor( ChangeDetectionDto.AnalYearList.class, - mapSheetLearnEntity.uuid, - mapSheetLearnEntity.id, - mapSheetLearnEntity.title, - mapSheetLearnEntity.compareYyyy.as("beforeYear"), - mapSheetLearnEntity.targetYyyy.as("afterYear"), - Expressions.stringTemplate( - "cast({0} as string)", - JPAExpressions.select(d.mapSheetNum.max()) - .from(d) - .where(d.analUid.eq(mapSheetAnalInferenceEntity.id))))) - .from(mapSheetLearnEntity) - .leftJoin(mapSheetAnalInferenceEntity) - .on(mapSheetAnalInferenceEntity.learnId.eq(mapSheetLearnEntity.id)) - .where(mapSheetLearnEntity.status.eq(Status.END.getId())) - .orderBy(mapSheetLearnEntity.id.asc()) + l.uuid, + l.id, + l.title, + l.compareYyyy.as("beforeYear"), + l.targetYyyy.as("afterYear"), + mapSheetNumExpr)) + .from(l) + .leftJoin(a) + .on(a.learnId.eq(l.id)) + .where( + l.status + .eq(Status.END.getId()) + .and(JPAExpressions.selectOne().from(d).where(d.analUid.eq(a.id)).exists())) + .orderBy(l.id.asc()) .fetch(); }