Merge remote-tracking branch 'origin/feat/infer_dev_260107' into feat/infer_dev_260107

This commit is contained in:
2026-01-09 17:51:43 +09:00
5 changed files with 52 additions and 32 deletions

View File

@@ -13,7 +13,8 @@ public class TrainingDataLabelCoreService {
private final TrainingDataLabelRepository trainingDataLabelRepository;
public Page<LabelingListDto> findLabelingAssignedList(searchReq searchReq, String userId) {
return trainingDataLabelRepository.findLabelingAssignedList(searchReq, userId);
public Page<LabelingListDto> findLabelingAssignedList(
searchReq searchReq, String userId, String status) {
return trainingDataLabelRepository.findLabelingAssignedList(searchReq, userId, status);
}
}

View File

@@ -6,5 +6,5 @@ import org.springframework.data.domain.Page;
public interface TrainingDataLabelRepositoryCustom {
Page<LabelingListDto> findLabelingAssignedList(searchReq searchReq, String userId);
Page<LabelingListDto> findLabelingAssignedList(searchReq searchReq, String userId, String status);
}

View File

@@ -9,12 +9,15 @@ import com.kamco.cd.kamcoback.postgres.entity.LabelingAssignmentEntity;
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.LabelingListDto;
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.searchReq;
import com.querydsl.core.types.Projections;
import com.querydsl.core.types.dsl.BooleanExpression;
import com.querydsl.core.types.dsl.CaseBuilder;
import com.querydsl.core.types.dsl.Expressions;
import com.querydsl.core.types.dsl.NumberPath;
import com.querydsl.core.types.dsl.StringExpression;
import com.querydsl.jpa.impl.JPAQueryFactory;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
@@ -32,7 +35,8 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport
}
@Override
public Page<LabelingListDto> findLabelingAssignedList(searchReq searchReq, String userId) {
public Page<LabelingListDto> findLabelingAssignedList(
searchReq searchReq, String userId, String status) {
Pageable pageable = PageRequest.of(searchReq.getPage(), searchReq.getSize());
List<LabelingListDto> list =
queryFactory
@@ -73,7 +77,7 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport
.or(
imageryEntity.year.eq(
mapSheetAnalDataInferenceGeomEntity.targetYyyy))))
.where(labelingAssignmentEntity.workerUid.eq(userId))
.where(labelingAssignmentEntity.workerUid.eq(userId), statusInLabelState(status))
.groupBy(
labelingAssignmentEntity.assignmentUid,
labelingAssignmentEntity.inferenceGeomUid,
@@ -91,6 +95,7 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport
.fetch();
Long count =
Optional.ofNullable(
queryFactory
.select(labelingAssignmentEntity.assignmentUid.count())
.from(labelingAssignmentEntity)
@@ -112,9 +117,11 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport
.or(
imageryEntity.year.eq(
mapSheetAnalDataInferenceGeomEntity.targetYyyy))))
.where(labelingAssignmentEntity.workerUid.eq(userId))
.where(
labelingAssignmentEntity.workerUid.eq(userId), statusInLabelState(status))
.groupBy(labelingAssignmentEntity.assignmentUid)
.fetchOne();
.fetchOne())
.orElse(0L);
return new PageImpl<>(list, pageable, count);
}
@@ -127,4 +134,13 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport
"{0} || {1}", imageryEntity.cogMiddlePath, imageryEntity.cogFilename))
.otherwise("");
}
private BooleanExpression statusInLabelState(String status) {
if (Objects.isNull(status)) {
return null;
}
String[] arrStatus = status.split(",");
return labelingAssignmentEntity.workState.in(arrStatus);
}
}

View File

@@ -43,8 +43,10 @@ public class TrainingDataLabelApiController {
public ApiResponseDto<Page<LabelingListDto>> findLabelingAssignedList(
@RequestParam(defaultValue = "0") int page,
@RequestParam(defaultValue = "20") int size,
@RequestParam(defaultValue = "20260105001") String userId) {
@RequestParam(defaultValue = "01022223333") String userId,
@RequestParam(defaultValue = "ASSIGNED,SKIP,DONE", required = false) String status) {
TrainingDataLabelDto.searchReq searchReq = new TrainingDataLabelDto.searchReq(page, size, "");
return ApiResponseDto.ok(trainingDataLabelService.findLabelingAssignedList(searchReq, userId));
return ApiResponseDto.ok(
trainingDataLabelService.findLabelingAssignedList(searchReq, userId, status));
}
}

View File

@@ -15,7 +15,8 @@ public class TrainingDataLabelService {
this.trainingDataLabelCoreService = trainingDataLabelCoreService;
}
public Page<LabelingListDto> findLabelingAssignedList(searchReq searchReq, String userId) {
return trainingDataLabelCoreService.findLabelingAssignedList(searchReq, userId);
public Page<LabelingListDto> findLabelingAssignedList(
searchReq searchReq, String userId, String status) {
return trainingDataLabelCoreService.findLabelingAssignedList(searchReq, userId, status);
}
}