From 348118aac14501b9d59c962d214a299fb5d5e892 Mon Sep 17 00:00:00 2001 From: bjkim Date: Mon, 13 Oct 2025 16:39:24 +0900 Subject: [PATCH] =?UTF-8?q?[ADD]=20ProjectBaseAndRefTypeRequest=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=EB=B0=8F=20DataGroup=20=EA=B2=80=EC=83=89?= =?UTF-8?q?=20=EB=A1=9C=EC=A7=81=EC=97=90=20refType=20=ED=95=84=ED=84=B0?= =?UTF-8?q?=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/DataGroupController.java | 3 ++- .../re/etri/autoflow/entity/DataGroupEntity.java | 8 ++++---- .../request/ProjectBaseAndRefTypeRequest.java | 16 ++++++++++++++++ .../etri/autoflow/service/DataGroupService.java | 9 ++++++++- 4 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 src/main/java/kr/re/etri/autoflow/payload/request/ProjectBaseAndRefTypeRequest.java 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); }