Merge pull request 'feat/training_260202' (#19) from feat/training_260202 into develop
Reviewed-on: #19
This commit was merged in pull request #19.
This commit is contained in:
@@ -3,6 +3,7 @@ package com.kamco.cd.training.dataset;
|
||||
import com.kamco.cd.training.config.api.ApiResponseDto;
|
||||
import com.kamco.cd.training.dataset.dto.DatasetDto;
|
||||
import com.kamco.cd.training.dataset.dto.DatasetObjDto;
|
||||
import com.kamco.cd.training.dataset.dto.DatasetObjDto.DatasetClass;
|
||||
import com.kamco.cd.training.dataset.service.DatasetService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
@@ -12,6 +13,7 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponses;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.Valid;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.data.domain.Page;
|
||||
@@ -192,4 +194,26 @@ public class DatasetApiController {
|
||||
public ApiResponseDto<UUID> deleteDatasetObjByUuid(@PathVariable UUID uuid) {
|
||||
return ApiResponseDto.ok(datasetService.deleteDatasetObjByUuid(uuid));
|
||||
}
|
||||
|
||||
@Operation(summary = "학습데이터 결과 class 조회", description = "학습데이터 결과 class 조회 API")
|
||||
@ApiResponses(
|
||||
value = {
|
||||
@ApiResponse(
|
||||
responseCode = "200",
|
||||
description = "조회 성공",
|
||||
content =
|
||||
@Content(
|
||||
mediaType = "application/json",
|
||||
schema = @Schema(implementation = Page.class))),
|
||||
@ApiResponse(responseCode = "400", description = "잘못된 검색 조건", content = @Content),
|
||||
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
||||
})
|
||||
@GetMapping("/class/{uuid}")
|
||||
public ApiResponseDto<List<DatasetClass>> getDatasetObjByUuid(
|
||||
@Parameter(description = "dataset uuid", example = "e1416f32-769f-495c-a883-3ebfacef4bac")
|
||||
@PathVariable
|
||||
UUID uuid,
|
||||
@Parameter(description = "compare, target", example = "compare") @RequestParam String type) {
|
||||
return ApiResponseDto.ok(datasetService.getDatasetObjByUuid(uuid, type));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.kamco.cd.training.dataset.dto;
|
||||
|
||||
import com.kamco.cd.training.common.enums.DetectionClassification;
|
||||
import com.kamco.cd.training.common.utils.interfaces.JsonFormatDttm;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import java.time.ZonedDateTime;
|
||||
@@ -108,4 +109,16 @@ public class DatasetObjDto {
|
||||
return PageRequest.of(pageIndex, size, Sort.by(Sort.Direction.DESC, "createdDttm"));
|
||||
}
|
||||
}
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public static class DatasetClass {
|
||||
private String classCd;
|
||||
|
||||
public String getClassName() {
|
||||
return DetectionClassification.valueOf(classCd.toUpperCase()).getDesc();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,10 @@ package com.kamco.cd.training.dataset.service;
|
||||
|
||||
import com.kamco.cd.training.dataset.dto.DatasetDto;
|
||||
import com.kamco.cd.training.dataset.dto.DatasetObjDto;
|
||||
import com.kamco.cd.training.dataset.dto.DatasetObjDto.DatasetClass;
|
||||
import com.kamco.cd.training.dataset.dto.DatasetObjDto.SearchReq;
|
||||
import com.kamco.cd.training.postgres.core.DatasetCoreService;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -93,4 +95,14 @@ public class DatasetService {
|
||||
public UUID deleteDatasetObjByUuid(UUID uuid) {
|
||||
return datasetCoreService.deleteDatasetObjByUuid(uuid);
|
||||
}
|
||||
|
||||
/**
|
||||
* 데이터셋 object class 조회
|
||||
*
|
||||
* @param uuid dataset uuid
|
||||
* @param type compare, target
|
||||
*/
|
||||
public List<DatasetClass> getDatasetObjByUuid(UUID uuid, String type) {
|
||||
return datasetCoreService.findDatasetObjClassByUuid(uuid, type);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ public class ModelTrainMngApiController {
|
||||
return ApiResponseDto.ok(modelTrainMngService.getModelConfigByModelId(uuid));
|
||||
}
|
||||
|
||||
@Operation(summary = "학습데이터관리 상세 조회", description = "학습데이터관리 상세 정보를 조회합니다.")
|
||||
@Operation(summary = "모델별 데이터셋 목록 조회", description = "모델별 데이터셋 목록 조회 API")
|
||||
@ApiResponses(
|
||||
value = {
|
||||
@ApiResponse(
|
||||
|
||||
@@ -7,12 +7,14 @@ import com.kamco.cd.training.common.exception.NotFoundException;
|
||||
import com.kamco.cd.training.common.service.BaseCoreService;
|
||||
import com.kamco.cd.training.dataset.dto.DatasetDto;
|
||||
import com.kamco.cd.training.dataset.dto.DatasetObjDto.Basic;
|
||||
import com.kamco.cd.training.dataset.dto.DatasetObjDto.DatasetClass;
|
||||
import com.kamco.cd.training.dataset.dto.DatasetObjDto.SearchReq;
|
||||
import com.kamco.cd.training.postgres.entity.DatasetEntity;
|
||||
import com.kamco.cd.training.postgres.entity.DatasetObjEntity;
|
||||
import com.kamco.cd.training.postgres.repository.dataset.DatasetObjRepository;
|
||||
import com.kamco.cd.training.postgres.repository.dataset.DatasetRepository;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -195,4 +197,15 @@ public class DatasetCoreService
|
||||
datasetObjRepository.save(entity);
|
||||
return entity.getUuid();
|
||||
}
|
||||
|
||||
/**
|
||||
* 데이터셋 object class 조회
|
||||
*
|
||||
* @param uuid dataset uuid
|
||||
* @param type compare, target
|
||||
* @return
|
||||
*/
|
||||
public List<DatasetClass> findDatasetObjClassByUuid(UUID uuid, String type) {
|
||||
return datasetObjRepository.findDatasetObjClassByUuid(uuid, type);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.kamco.cd.training.postgres.repository.dataset;
|
||||
|
||||
import com.kamco.cd.training.dataset.dto.DatasetObjDto.DatasetClass;
|
||||
import com.kamco.cd.training.dataset.dto.DatasetObjDto.SearchReq;
|
||||
import com.kamco.cd.training.postgres.entity.DatasetObjEntity;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import org.springframework.data.domain.Page;
|
||||
@@ -11,4 +13,6 @@ public interface DatasetObjRepositoryCustom {
|
||||
Optional<DatasetObjEntity> findByUuid(UUID id);
|
||||
|
||||
Page<DatasetObjEntity> searchDatasetObjectList(SearchReq searchReq);
|
||||
|
||||
List<DatasetClass> findDatasetObjClassByUuid(UUID uuid, String type);
|
||||
}
|
||||
|
||||
@@ -3,11 +3,14 @@ package com.kamco.cd.training.postgres.repository.dataset;
|
||||
import static com.kamco.cd.training.postgres.entity.QDatasetEntity.datasetEntity;
|
||||
import static com.kamco.cd.training.postgres.entity.QDatasetObjEntity.datasetObjEntity;
|
||||
|
||||
import com.kamco.cd.training.dataset.dto.DatasetObjDto.DatasetClass;
|
||||
import com.kamco.cd.training.dataset.dto.DatasetObjDto.SearchReq;
|
||||
import com.kamco.cd.training.postgres.entity.DatasetEntity;
|
||||
import com.kamco.cd.training.postgres.entity.DatasetObjEntity;
|
||||
import com.kamco.cd.training.postgres.entity.QDatasetEntity;
|
||||
import com.querydsl.core.BooleanBuilder;
|
||||
import com.querydsl.core.types.Projections;
|
||||
import com.querydsl.core.types.dsl.StringPath;
|
||||
import com.querydsl.jpa.impl.JPAQueryFactory;
|
||||
import jakarta.persistence.EntityNotFoundException;
|
||||
import java.util.List;
|
||||
@@ -94,4 +97,25 @@ public class DatasetObjRepositoryImpl implements DatasetObjRepositoryCustom {
|
||||
|
||||
return new PageImpl<>(content, pageable, total);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DatasetClass> findDatasetObjClassByUuid(UUID uuid, String type) {
|
||||
|
||||
StringPath classCd =
|
||||
type.equals("compare") ? datasetObjEntity.compareClassCd : datasetObjEntity.targetClassCd;
|
||||
|
||||
BooleanBuilder builder = new BooleanBuilder();
|
||||
builder.and(datasetEntity.uuid.eq(uuid));
|
||||
builder.and(datasetEntity.deleted.isFalse());
|
||||
builder.and(datasetObjEntity.deleted.isFalse());
|
||||
|
||||
return queryFactory
|
||||
.select(Projections.constructor(DatasetClass.class, classCd))
|
||||
.from(datasetEntity)
|
||||
.join(datasetObjEntity)
|
||||
.on(datasetEntity.id.eq(datasetObjEntity.datasetUid))
|
||||
.where(builder)
|
||||
.groupBy(classCd)
|
||||
.fetch();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user