데이터셋 상세조회 class 조회 추가
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.config.api.ApiResponseDto;
|
||||||
import com.kamco.cd.training.dataset.dto.DatasetDto;
|
import com.kamco.cd.training.dataset.dto.DatasetDto;
|
||||||
import com.kamco.cd.training.dataset.dto.DatasetObjDto;
|
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 com.kamco.cd.training.dataset.service.DatasetService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
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.responses.ApiResponses;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
@@ -192,4 +194,26 @@ public class DatasetApiController {
|
|||||||
public ApiResponseDto<UUID> deleteDatasetObjByUuid(@PathVariable UUID uuid) {
|
public ApiResponseDto<UUID> deleteDatasetObjByUuid(@PathVariable UUID uuid) {
|
||||||
return ApiResponseDto.ok(datasetService.deleteDatasetObjByUuid(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;
|
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 com.kamco.cd.training.common.utils.interfaces.JsonFormatDttm;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
||||||
@@ -108,4 +109,16 @@ public class DatasetObjDto {
|
|||||||
return PageRequest.of(pageIndex, size, Sort.by(Sort.Direction.DESC, "createdDttm"));
|
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.DatasetDto;
|
||||||
import com.kamco.cd.training.dataset.dto.DatasetObjDto;
|
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.dataset.dto.DatasetObjDto.SearchReq;
|
||||||
import com.kamco.cd.training.postgres.core.DatasetCoreService;
|
import com.kamco.cd.training.postgres.core.DatasetCoreService;
|
||||||
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -93,4 +95,14 @@ public class DatasetService {
|
|||||||
public UUID deleteDatasetObjByUuid(UUID uuid) {
|
public UUID deleteDatasetObjByUuid(UUID uuid) {
|
||||||
return datasetCoreService.deleteDatasetObjByUuid(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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.common.service.BaseCoreService;
|
||||||
import com.kamco.cd.training.dataset.dto.DatasetDto;
|
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.Basic;
|
||||||
|
import com.kamco.cd.training.dataset.dto.DatasetObjDto.DatasetClass;
|
||||||
import com.kamco.cd.training.dataset.dto.DatasetObjDto.SearchReq;
|
import com.kamco.cd.training.dataset.dto.DatasetObjDto.SearchReq;
|
||||||
import com.kamco.cd.training.postgres.entity.DatasetEntity;
|
import com.kamco.cd.training.postgres.entity.DatasetEntity;
|
||||||
import com.kamco.cd.training.postgres.entity.DatasetObjEntity;
|
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.DatasetObjRepository;
|
||||||
import com.kamco.cd.training.postgres.repository.dataset.DatasetRepository;
|
import com.kamco.cd.training.postgres.repository.dataset.DatasetRepository;
|
||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
||||||
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -195,4 +197,15 @@ public class DatasetCoreService
|
|||||||
datasetObjRepository.save(entity);
|
datasetObjRepository.save(entity);
|
||||||
return entity.getUuid();
|
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;
|
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.dataset.dto.DatasetObjDto.SearchReq;
|
||||||
import com.kamco.cd.training.postgres.entity.DatasetObjEntity;
|
import com.kamco.cd.training.postgres.entity.DatasetObjEntity;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
@@ -11,4 +13,6 @@ public interface DatasetObjRepositoryCustom {
|
|||||||
Optional<DatasetObjEntity> findByUuid(UUID id);
|
Optional<DatasetObjEntity> findByUuid(UUID id);
|
||||||
|
|
||||||
Page<DatasetObjEntity> searchDatasetObjectList(SearchReq searchReq);
|
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.QDatasetEntity.datasetEntity;
|
||||||
import static com.kamco.cd.training.postgres.entity.QDatasetObjEntity.datasetObjEntity;
|
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.dataset.dto.DatasetObjDto.SearchReq;
|
||||||
import com.kamco.cd.training.postgres.entity.DatasetEntity;
|
import com.kamco.cd.training.postgres.entity.DatasetEntity;
|
||||||
import com.kamco.cd.training.postgres.entity.DatasetObjEntity;
|
import com.kamco.cd.training.postgres.entity.DatasetObjEntity;
|
||||||
import com.kamco.cd.training.postgres.entity.QDatasetEntity;
|
import com.kamco.cd.training.postgres.entity.QDatasetEntity;
|
||||||
import com.querydsl.core.BooleanBuilder;
|
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 com.querydsl.jpa.impl.JPAQueryFactory;
|
||||||
import jakarta.persistence.EntityNotFoundException;
|
import jakarta.persistence.EntityNotFoundException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -94,4 +97,25 @@ public class DatasetObjRepositoryImpl implements DatasetObjRepositoryCustom {
|
|||||||
|
|
||||||
return new PageImpl<>(content, pageable, total);
|
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