Merge pull request '라벨링 툴 라벨러 목록 상태 필터 추가' (#175) from feat/infer_dev_260107 into develop
Reviewed-on: https://kamco.gitea.gs.dabeeo.com/dabeeo/kamco-dabeeo-backoffice/pulls/175
This commit is contained in:
@@ -13,7 +13,8 @@ public class TrainingDataLabelCoreService {
|
|||||||
|
|
||||||
private final TrainingDataLabelRepository trainingDataLabelRepository;
|
private final TrainingDataLabelRepository trainingDataLabelRepository;
|
||||||
|
|
||||||
public Page<LabelingListDto> findLabelingAssignedList(searchReq searchReq, String userId) {
|
public Page<LabelingListDto> findLabelingAssignedList(
|
||||||
return trainingDataLabelRepository.findLabelingAssignedList(searchReq, userId);
|
searchReq searchReq, String userId, String status) {
|
||||||
|
return trainingDataLabelRepository.findLabelingAssignedList(searchReq, userId, status);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,5 +6,5 @@ import org.springframework.data.domain.Page;
|
|||||||
|
|
||||||
public interface TrainingDataLabelRepositoryCustom {
|
public interface TrainingDataLabelRepositoryCustom {
|
||||||
|
|
||||||
Page<LabelingListDto> findLabelingAssignedList(searchReq searchReq, String userId);
|
Page<LabelingListDto> findLabelingAssignedList(searchReq searchReq, String userId, String status);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.LabelingListDto;
|
||||||
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.searchReq;
|
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.searchReq;
|
||||||
import com.querydsl.core.types.Projections;
|
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.CaseBuilder;
|
||||||
import com.querydsl.core.types.dsl.Expressions;
|
import com.querydsl.core.types.dsl.Expressions;
|
||||||
import com.querydsl.core.types.dsl.NumberPath;
|
import com.querydsl.core.types.dsl.NumberPath;
|
||||||
import com.querydsl.core.types.dsl.StringExpression;
|
import com.querydsl.core.types.dsl.StringExpression;
|
||||||
import com.querydsl.jpa.impl.JPAQueryFactory;
|
import com.querydsl.jpa.impl.JPAQueryFactory;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.Optional;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.PageImpl;
|
import org.springframework.data.domain.PageImpl;
|
||||||
import org.springframework.data.domain.PageRequest;
|
import org.springframework.data.domain.PageRequest;
|
||||||
@@ -32,7 +35,8 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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());
|
Pageable pageable = PageRequest.of(searchReq.getPage(), searchReq.getSize());
|
||||||
List<LabelingListDto> list =
|
List<LabelingListDto> list =
|
||||||
queryFactory
|
queryFactory
|
||||||
@@ -73,7 +77,7 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport
|
|||||||
.or(
|
.or(
|
||||||
imageryEntity.year.eq(
|
imageryEntity.year.eq(
|
||||||
mapSheetAnalDataInferenceGeomEntity.targetYyyy))))
|
mapSheetAnalDataInferenceGeomEntity.targetYyyy))))
|
||||||
.where(labelingAssignmentEntity.workerUid.eq(userId))
|
.where(labelingAssignmentEntity.workerUid.eq(userId), statusInLabelState(status))
|
||||||
.groupBy(
|
.groupBy(
|
||||||
labelingAssignmentEntity.assignmentUid,
|
labelingAssignmentEntity.assignmentUid,
|
||||||
labelingAssignmentEntity.inferenceGeomUid,
|
labelingAssignmentEntity.inferenceGeomUid,
|
||||||
@@ -91,30 +95,33 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport
|
|||||||
.fetch();
|
.fetch();
|
||||||
|
|
||||||
Long count =
|
Long count =
|
||||||
queryFactory
|
Optional.ofNullable(
|
||||||
.select(labelingAssignmentEntity.assignmentUid.count())
|
queryFactory
|
||||||
.from(labelingAssignmentEntity)
|
.select(labelingAssignmentEntity.assignmentUid.count())
|
||||||
.innerJoin(mapSheetAnalDataInferenceGeomEntity)
|
.from(labelingAssignmentEntity)
|
||||||
.on(
|
.innerJoin(mapSheetAnalDataInferenceGeomEntity)
|
||||||
labelingAssignmentEntity.inferenceGeomUid.eq(
|
.on(
|
||||||
mapSheetAnalDataInferenceGeomEntity.geoUid))
|
labelingAssignmentEntity.inferenceGeomUid.eq(
|
||||||
.innerJoin(mapInkx5kEntity)
|
mapSheetAnalDataInferenceGeomEntity.geoUid))
|
||||||
.on(labelingAssignmentEntity.assignGroupId.eq(mapInkx5kEntity.mapidcdNo))
|
.innerJoin(mapInkx5kEntity)
|
||||||
.leftJoin(imageryEntity)
|
.on(labelingAssignmentEntity.assignGroupId.eq(mapInkx5kEntity.mapidcdNo))
|
||||||
.on(
|
.leftJoin(imageryEntity)
|
||||||
imageryEntity
|
.on(
|
||||||
.scene5k
|
|
||||||
.eq(labelingAssignmentEntity.assignGroupId)
|
|
||||||
.and(
|
|
||||||
imageryEntity
|
imageryEntity
|
||||||
.year
|
.scene5k
|
||||||
.eq(mapSheetAnalDataInferenceGeomEntity.compareYyyy)
|
.eq(labelingAssignmentEntity.assignGroupId)
|
||||||
.or(
|
.and(
|
||||||
imageryEntity.year.eq(
|
imageryEntity
|
||||||
mapSheetAnalDataInferenceGeomEntity.targetYyyy))))
|
.year
|
||||||
.where(labelingAssignmentEntity.workerUid.eq(userId))
|
.eq(mapSheetAnalDataInferenceGeomEntity.compareYyyy)
|
||||||
.groupBy(labelingAssignmentEntity.assignmentUid)
|
.or(
|
||||||
.fetchOne();
|
imageryEntity.year.eq(
|
||||||
|
mapSheetAnalDataInferenceGeomEntity.targetYyyy))))
|
||||||
|
.where(
|
||||||
|
labelingAssignmentEntity.workerUid.eq(userId), statusInLabelState(status))
|
||||||
|
.groupBy(labelingAssignmentEntity.assignmentUid)
|
||||||
|
.fetchOne())
|
||||||
|
.orElse(0L);
|
||||||
|
|
||||||
return new PageImpl<>(list, pageable, count);
|
return new PageImpl<>(list, pageable, count);
|
||||||
}
|
}
|
||||||
@@ -127,4 +134,13 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport
|
|||||||
"{0} || {1}", imageryEntity.cogMiddlePath, imageryEntity.cogFilename))
|
"{0} || {1}", imageryEntity.cogMiddlePath, imageryEntity.cogFilename))
|
||||||
.otherwise("");
|
.otherwise("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private BooleanExpression statusInLabelState(String status) {
|
||||||
|
if (Objects.isNull(status)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
String[] arrStatus = status.split(",");
|
||||||
|
return labelingAssignmentEntity.workState.in(arrStatus);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,8 +43,10 @@ public class TrainingDataLabelApiController {
|
|||||||
public ApiResponseDto<Page<LabelingListDto>> findLabelingAssignedList(
|
public ApiResponseDto<Page<LabelingListDto>> findLabelingAssignedList(
|
||||||
@RequestParam(defaultValue = "0") int page,
|
@RequestParam(defaultValue = "0") int page,
|
||||||
@RequestParam(defaultValue = "20") int size,
|
@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, "");
|
TrainingDataLabelDto.searchReq searchReq = new TrainingDataLabelDto.searchReq(page, size, "");
|
||||||
return ApiResponseDto.ok(trainingDataLabelService.findLabelingAssignedList(searchReq, userId));
|
return ApiResponseDto.ok(
|
||||||
|
trainingDataLabelService.findLabelingAssignedList(searchReq, userId, status));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,8 @@ public class TrainingDataLabelService {
|
|||||||
this.trainingDataLabelCoreService = trainingDataLabelCoreService;
|
this.trainingDataLabelCoreService = trainingDataLabelCoreService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Page<LabelingListDto> findLabelingAssignedList(searchReq searchReq, String userId) {
|
public Page<LabelingListDto> findLabelingAssignedList(
|
||||||
return trainingDataLabelCoreService.findLabelingAssignedList(searchReq, userId);
|
searchReq searchReq, String userId, String status) {
|
||||||
|
return trainingDataLabelCoreService.findLabelingAssignedList(searchReq, userId, status);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user