From 9f0535f6a596389e34f7abd4ac46d3759172a8f4 Mon Sep 17 00:00:00 2001 From: "gayoun.park" Date: Fri, 16 Jan 2026 17:23:25 +0900 Subject: [PATCH] =?UTF-8?q?=EB=9D=BC=EB=B2=A8=EB=A7=81=20=ED=88=B4=20?= =?UTF-8?q?=EC=83=81=ED=83=9C=20=EC=A1=B0=EA=B1=B4=20=EC=88=98=EC=A0=95,?= =?UTF-8?q?=20=EA=B2=80=EC=88=98=20=EC=A0=80=EC=9E=A5=20=EB=A1=9C=EC=A7=81?= =?UTF-8?q?=20=EC=88=98=EC=A0=95=20-=20=EB=9D=BC=EB=B2=A8=EB=A7=81=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C=20(DONE,=20SKIP)=20-=20=EA=B2=80=EC=88=98=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C=20=EA=B1=B4=EC=88=98=20(EXCEPT,=20COMPLETE)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/TrainingDataReviewCoreService.java | 4 +- .../TrainingDataLabelRepositoryImpl.java | 17 ++++--- .../TrainingDataReviewRepositoryCustom.java | 2 +- .../TrainingDataReviewRepositoryImpl.java | 46 ++++++++----------- .../service/TrainingDataReviewService.java | 6 +-- 5 files changed, 33 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/core/TrainingDataReviewCoreService.java b/src/main/java/com/kamco/cd/kamcoback/postgres/core/TrainingDataReviewCoreService.java index d6fe650b..0dceee4e 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/core/TrainingDataReviewCoreService.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/core/TrainingDataReviewCoreService.java @@ -33,8 +33,8 @@ public class TrainingDataReviewCoreService { return trainingDataReviewRepository.findReviewOperatorGeoUid(operatorUid); } - public void updateReviewStateOperator(String operatorUid, String status, String memo) { - trainingDataReviewRepository.updateReviewStateOperator(operatorUid, status, memo); + public void updateReviewStateOperator(String operatorUid, String status) { + trainingDataReviewRepository.updateReviewStateOperator(operatorUid, status); } public void updateReviewExceptState(Long inferenceGeomUid, String status) { diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataLabelRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataLabelRepositoryImpl.java index 93d7d7bd..e3eb797e 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataLabelRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataLabelRepositoryImpl.java @@ -73,14 +73,13 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport BooleanExpression doneToday = labelingAssignmentEntity .workState - .eq(LabelState.DONE.getId()) + .in(LabelState.DONE.getId(), LabelState.SKIP.getId()) .and(labelingAssignmentEntity.workStatDttm.goe(start)) .and(labelingAssignmentEntity.workStatDttm.lt(end)); - BooleanExpression assignedOrSkip = - labelingAssignmentEntity.workState.in(LabelState.SKIP.getId(), LabelState.ASSIGNED.getId()); + BooleanExpression assigned = labelingAssignmentEntity.workState.in(LabelState.ASSIGNED.getId()); - BooleanExpression dayStateCondition = doneToday.or(assignedOrSkip); + BooleanExpression dayStateCondition = doneToday.or(assigned); Pageable pageable = PageRequest.of(searchReq.getPage(), searchReq.getSize()); List list = @@ -334,7 +333,8 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport .from(labelingAssignmentEntity) .where( labelingAssignmentEntity.workerUid.eq(userId), - labelingAssignmentEntity.workState.eq("DONE"), + labelingAssignmentEntity.workState.in( + LabelState.DONE.getId(), LabelState.SKIP.getId()), labelingAssignmentEntity.workStatDttm.isNotNull(), labelingAssignmentEntity.workStatDttm.goe(startOfToday), labelingAssignmentEntity.workStatDttm.lt(endOfToday)) @@ -589,14 +589,13 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport BooleanExpression doneToday = labelingAssignmentEntity .workState - .eq(LabelState.DONE.getId()) + .in(LabelState.DONE.getId(), LabelState.SKIP.getId()) .and(labelingAssignmentEntity.workStatDttm.goe(todayStart)) .and(labelingAssignmentEntity.workStatDttm.lt(todayEnd)); - BooleanExpression assignedOrSkip = - labelingAssignmentEntity.workState.in(LabelState.SKIP.getId(), LabelState.ASSIGNED.getId()); + BooleanExpression assigned = labelingAssignmentEntity.workState.in(LabelState.ASSIGNED.getId()); - BooleanExpression stateCondition = doneToday.or(assignedOrSkip); + BooleanExpression stateCondition = doneToday.or(assigned); Tuple firstAssigned = queryFactory diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataReviewRepositoryCustom.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataReviewRepositoryCustom.java index 741035f5..2476f931 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataReviewRepositoryCustom.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataReviewRepositoryCustom.java @@ -20,7 +20,7 @@ public interface TrainingDataReviewRepositoryCustom { Long findReviewOperatorGeoUid(String operatorUid); - void updateReviewStateOperator(String operatorUid, String status, String memo); + void updateReviewStateOperator(String operatorUid, String status); void updateReviewExceptState(Long inferenceGeomUid, String status); diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataReviewRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataReviewRepositoryImpl.java index 6ce57794..89a60b5d 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataReviewRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataReviewRepositoryImpl.java @@ -72,15 +72,14 @@ public class TrainingDataReviewRepositoryImpl extends QuerydslRepositorySupport BooleanExpression doneToday = labelingAssignmentEntity .inspectState - .eq(InspectState.COMPLETE.getId()) + .in(InspectState.COMPLETE.getId(), InspectState.EXCEPT.getId()) .and(labelingAssignmentEntity.inspectStatDttm.goe(start)) .and(labelingAssignmentEntity.inspectStatDttm.lt(end)); - BooleanExpression unconfirmOrExcept = - labelingAssignmentEntity.inspectState.in( - InspectState.EXCEPT.getId(), InspectState.UNCONFIRM.getId()); + BooleanExpression unconfirm = + labelingAssignmentEntity.inspectState.in(InspectState.UNCONFIRM.getId()); - BooleanExpression dayStateCondition = doneToday.or(unconfirmOrExcept); + BooleanExpression dayStateCondition = doneToday.or(unconfirm); Pageable pageable = PageRequest.of(searchReq.getPage(), searchReq.getSize()); List list = @@ -104,8 +103,7 @@ public class TrainingDataReviewRepositoryImpl extends QuerydslRepositorySupport .on(labelingAssignmentEntity.assignGroupId.eq(mapInkx5kEntity.mapidcdNo)) .where( labelingAssignmentEntity.inspectorUid.eq(userId), - dayStateCondition, - labelingAssignmentEntity.workState.eq("DONE")) // 라벨링 완료된 것만 검수 대상 + dayStateCondition) // 라벨링 완료된 것만 검수 대상 .offset(pageable.getOffset()) .limit(pageable.getPageSize()) .orderBy( @@ -124,10 +122,7 @@ public class TrainingDataReviewRepositoryImpl extends QuerydslRepositorySupport mapSheetAnalDataInferenceGeomEntity.geoUid)) .innerJoin(mapInkx5kEntity) .on(labelingAssignmentEntity.assignGroupId.eq(mapInkx5kEntity.mapidcdNo)) - .where( - labelingAssignmentEntity.inspectorUid.eq(userId), - dayStateCondition, - labelingAssignmentEntity.workState.eq("DONE")) + .where(labelingAssignmentEntity.inspectorUid.eq(userId), dayStateCondition) .fetchOne()) .orElse(0L); @@ -190,7 +185,7 @@ public class TrainingDataReviewRepositoryImpl extends QuerydslRepositorySupport } @Override - public void updateReviewStateOperator(String operatorUid, String status, String memo) { + public void updateReviewStateOperator(String operatorUid, String status) { queryFactory .update(labelingAssignmentEntity) .set(labelingAssignmentEntity.inspectState, status) @@ -201,8 +196,13 @@ public class TrainingDataReviewRepositoryImpl extends QuerydslRepositorySupport @Override public void updateReviewExceptState(Long inferenceGeomUid, String status) { - // 검수 제외 시 assignment 테이블만 업데이트 - // (inference_geom 테이블에는 inspect_state 컬럼이 없음) + // 검수 제외 시 assignment 테이블 상태만 업데이트, geom 테이블도 상태만 업데이트 + queryFactory + .update(mapSheetAnalDataInferenceGeomEntity) + .set(mapSheetAnalDataInferenceGeomEntity.testState, status) + .set(mapSheetAnalDataInferenceGeomEntity.testStateDttm, ZonedDateTime.now()) + .where(mapSheetAnalDataInferenceGeomEntity.geoUid.eq(inferenceGeomUid)) + .execute(); } @Override @@ -282,9 +282,7 @@ public class TrainingDataReviewRepositoryImpl extends QuerydslRepositorySupport queryFactory .select(labelingAssignmentEntity.count()) .from(labelingAssignmentEntity) - .where( - labelingAssignmentEntity.inspectorUid.eq(userId), - labelingAssignmentEntity.workState.eq("DONE")) + .where(labelingAssignmentEntity.inspectorUid.eq(userId)) .fetchOne(); totalCnt = (result != null) ? result : 0L; @@ -306,7 +304,6 @@ public class TrainingDataReviewRepositoryImpl extends QuerydslRepositorySupport .from(labelingAssignmentEntity) .where( labelingAssignmentEntity.inspectorUid.eq(userId), - labelingAssignmentEntity.workState.eq("DONE"), labelingAssignmentEntity.inspectState.eq("UNCONFIRM")) .fetchOne(); @@ -335,7 +332,7 @@ public class TrainingDataReviewRepositoryImpl extends QuerydslRepositorySupport .from(labelingAssignmentEntity) .where( labelingAssignmentEntity.inspectorUid.eq(userId), - labelingAssignmentEntity.inspectState.eq("COMPLETE"), + labelingAssignmentEntity.inspectState.in("COMPLETE", "EXCEPT"), labelingAssignmentEntity.inspectStatDttm.isNotNull(), labelingAssignmentEntity.inspectStatDttm.goe(startOfToday), labelingAssignmentEntity.inspectStatDttm.lt(endOfToday)) @@ -589,15 +586,14 @@ public class TrainingDataReviewRepositoryImpl extends QuerydslRepositorySupport BooleanExpression doneToday = labelingAssignmentEntity .inspectState - .eq(InspectState.COMPLETE.getId()) + .in(InspectState.COMPLETE.getId(), InspectState.EXCEPT.getId()) .and(labelingAssignmentEntity.inspectStatDttm.goe(todayStart)) .and(labelingAssignmentEntity.inspectStatDttm.lt(todayEnd)); - BooleanExpression unconfirmOrExcept = - labelingAssignmentEntity.inspectState.in( - InspectState.EXCEPT.getId(), InspectState.UNCONFIRM.getId()); + BooleanExpression unconfirm = + labelingAssignmentEntity.inspectState.in(InspectState.UNCONFIRM.getId()); - BooleanExpression stateCondition = doneToday.or(unconfirmOrExcept); + BooleanExpression stateCondition = doneToday.or(unconfirm); Tuple firstAssigned = queryFactory @@ -608,7 +604,6 @@ public class TrainingDataReviewRepositoryImpl extends QuerydslRepositorySupport .from(labelingAssignmentEntity) .where( labelingAssignmentEntity.inspectorUid.eq(userId), - labelingAssignmentEntity.workState.eq("DONE"), stateCondition, operatorUid == null ? labelingAssignmentEntity.inspectState.eq(InspectState.UNCONFIRM.getId()) @@ -643,7 +638,6 @@ public class TrainingDataReviewRepositoryImpl extends QuerydslRepositorySupport .from(labelingAssignmentEntity) .where( labelingAssignmentEntity.inspectorUid.eq(userId), - labelingAssignmentEntity.workState.eq("DONE"), beforeCondition.and(stateCondition)) .fetchOne(); diff --git a/src/main/java/com/kamco/cd/kamcoback/trainingdata/service/TrainingDataReviewService.java b/src/main/java/com/kamco/cd/kamcoback/trainingdata/service/TrainingDataReviewService.java index b81f2895..e7916847 100644 --- a/src/main/java/com/kamco/cd/kamcoback/trainingdata/service/TrainingDataReviewService.java +++ b/src/main/java/com/kamco/cd/kamcoback/trainingdata/service/TrainingDataReviewService.java @@ -44,13 +44,11 @@ public class TrainingDataReviewService { if (request.getGeometry() == null || request.getGeometry().isEmpty()) { // EXCEPT 상태만 업데이트 status = "EXCEPT"; - trainingDataReviewCoreService.updateReviewStateOperator( - operatorUid, status, request.getProperties().getInspectMemo()); + trainingDataReviewCoreService.updateReviewStateOperator(operatorUid, status); trainingDataReviewCoreService.updateReviewExceptState(inferenceGeomUid, status); } else { status = "COMPLETE"; - trainingDataReviewCoreService.updateReviewStateOperator( - operatorUid, status, request.getProperties().getInspectMemo()); + trainingDataReviewCoreService.updateReviewStateOperator(operatorUid, status); trainingDataReviewCoreService.updateReviewPolygonClass( inferenceGeomUid, request.getGeometry(), request.getProperties(), status); }