diff --git a/src/main/java/kr/re/etri/autoflow/controllers/DataGroupController.java b/src/main/java/kr/re/etri/autoflow/controllers/DataGroupController.java index 49ab902..0abf12e 100644 --- a/src/main/java/kr/re/etri/autoflow/controllers/DataGroupController.java +++ b/src/main/java/kr/re/etri/autoflow/controllers/DataGroupController.java @@ -5,6 +5,7 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.tags.Tag; import kr.re.etri.autoflow.entity.DataGroupEntity; +import kr.re.etri.autoflow.payload.request.ProjectBaseAndRefTypeRequest; import kr.re.etri.autoflow.payload.request.ProjectBaseSearchRequest; import kr.re.etri.autoflow.payload.request.ProjectRequest; import kr.re.etri.autoflow.service.DataGroupService; @@ -45,7 +46,7 @@ public class DataGroupController { @Operation(summary = "검색 및 페이지네이션 데이터 그룹 목록 조회") @GetMapping("/search") public ResponseEntity> searchProjects( - @ParameterObject @ModelAttribute ProjectBaseSearchRequest request) { + @ParameterObject @ModelAttribute ProjectBaseAndRefTypeRequest request) { Page page = dataGroupService.search(request); return ResponseEntity.ok(page); } diff --git a/src/main/java/kr/re/etri/autoflow/entity/DataGroupEntity.java b/src/main/java/kr/re/etri/autoflow/entity/DataGroupEntity.java index 5c515c4..c43fb8a 100644 --- a/src/main/java/kr/re/etri/autoflow/entity/DataGroupEntity.java +++ b/src/main/java/kr/re/etri/autoflow/entity/DataGroupEntity.java @@ -30,10 +30,10 @@ public class DataGroupEntity { @Comment("ID") private Long id; -// @Schema(description = "첨부파일 종류 (DATASET / SCRIPT)", example = "DATASET") -// @Comment("첨부파일 종류") -// @Column(nullable = false, length = 50) -// private String refType; // 구분자 (예: WORKFLOW_STEP,DATASET, TRAINING_SCRIPT) + @Schema(description = "첨부파일 종류 (DATASET / SCRIPT)", example = "DATASET") + @Comment("첨부파일 종류") + @Column(nullable = false, length = 50) + private String refType; // 구분자 (예: WORKFLOW_STEP,DATASET, TRAINING_SCRIPT) @Schema(description = "데이터셋 이름", example = "배터리 상태 데이터 셋") @Comment("데이터셋 이름") diff --git a/src/main/java/kr/re/etri/autoflow/payload/request/ProjectBaseAndRefTypeRequest.java b/src/main/java/kr/re/etri/autoflow/payload/request/ProjectBaseAndRefTypeRequest.java new file mode 100644 index 0000000..e7b949d --- /dev/null +++ b/src/main/java/kr/re/etri/autoflow/payload/request/ProjectBaseAndRefTypeRequest.java @@ -0,0 +1,16 @@ +package kr.re.etri.autoflow.payload.request; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class ProjectBaseAndRefTypeRequest extends BaseSearchRequest { + @Schema(description = "프로젝트 ID", example = "1") + private Long projectId; + + @Schema(description = "첨부파일 종류", example = "TRAINING_SCRIPT") + private String refType; // 구분자 (예: WORKFLOW_STEP,DATASET, TRAINING_SCRIPT) +} + diff --git a/src/main/java/kr/re/etri/autoflow/service/DataGroupService.java b/src/main/java/kr/re/etri/autoflow/service/DataGroupService.java index c99af65..d440698 100644 --- a/src/main/java/kr/re/etri/autoflow/service/DataGroupService.java +++ b/src/main/java/kr/re/etri/autoflow/service/DataGroupService.java @@ -4,6 +4,7 @@ import io.minio.MinioClient; import io.minio.RemoveObjectArgs; import kr.re.etri.autoflow.entity.DataGroupEntity; import kr.re.etri.autoflow.entity.MinioAttachmentEntity; +import kr.re.etri.autoflow.payload.request.ProjectBaseAndRefTypeRequest; import kr.re.etri.autoflow.payload.request.ProjectBaseSearchRequest; import kr.re.etri.autoflow.payload.request.ProjectRequest; import kr.re.etri.autoflow.repository.DataGroupRepository; @@ -55,7 +56,7 @@ public class DataGroupService { @Value("${minio.bucket}") private String bucketName; - public Page search(ProjectBaseSearchRequest request) { + public Page search(ProjectBaseAndRefTypeRequest request) { int pageIndex = request.getPage() > 0 ? request.getPage() - 1 : 0; Pageable pageable = PageRequest.of( @@ -80,6 +81,12 @@ public class DataGroupService { ); } + if (request.getRefType() != null) { + spec = spec.and((root, query, cb) -> + cb.equal(root.get("refType"), request.getRefType()) + ); + } + return dataGroupRepository.findAll(spec, pageable); }