[ADD] ProjectBaseAndRefTypeRequest 추가 및 DataGroup 검색 로직에 refType 필터 기능 구현

main
bjkim 8 months ago
parent 2122aaf91b
commit 348118aac1

@ -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.enums.ParameterIn;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import kr.re.etri.autoflow.entity.DataGroupEntity; 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.ProjectBaseSearchRequest;
import kr.re.etri.autoflow.payload.request.ProjectRequest; import kr.re.etri.autoflow.payload.request.ProjectRequest;
import kr.re.etri.autoflow.service.DataGroupService; import kr.re.etri.autoflow.service.DataGroupService;
@ -45,7 +46,7 @@ public class DataGroupController {
@Operation(summary = "검색 및 페이지네이션 데이터 그룹 목록 조회") @Operation(summary = "검색 및 페이지네이션 데이터 그룹 목록 조회")
@GetMapping("/search") @GetMapping("/search")
public ResponseEntity<Page<DataGroupEntity>> searchProjects( public ResponseEntity<Page<DataGroupEntity>> searchProjects(
@ParameterObject @ModelAttribute ProjectBaseSearchRequest request) { @ParameterObject @ModelAttribute ProjectBaseAndRefTypeRequest request) {
Page<DataGroupEntity> page = dataGroupService.search(request); Page<DataGroupEntity> page = dataGroupService.search(request);
return ResponseEntity.ok(page); return ResponseEntity.ok(page);
} }

@ -30,10 +30,10 @@ public class DataGroupEntity {
@Comment("ID") @Comment("ID")
private Long id; private Long id;
// @Schema(description = "첨부파일 종류 (DATASET / SCRIPT)", example = "DATASET") @Schema(description = "첨부파일 종류 (DATASET / SCRIPT)", example = "DATASET")
// @Comment("첨부파일 종류") @Comment("첨부파일 종류")
// @Column(nullable = false, length = 50) @Column(nullable = false, length = 50)
// private String refType; // 구분자 (예: WORKFLOW_STEP,DATASET, TRAINING_SCRIPT) private String refType; // 구분자 (예: WORKFLOW_STEP,DATASET, TRAINING_SCRIPT)
@Schema(description = "데이터셋 이름", example = "배터리 상태 데이터 셋") @Schema(description = "데이터셋 이름", example = "배터리 상태 데이터 셋")
@Comment("데이터셋 이름") @Comment("데이터셋 이름")

@ -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)
}

@ -4,6 +4,7 @@ import io.minio.MinioClient;
import io.minio.RemoveObjectArgs; import io.minio.RemoveObjectArgs;
import kr.re.etri.autoflow.entity.DataGroupEntity; import kr.re.etri.autoflow.entity.DataGroupEntity;
import kr.re.etri.autoflow.entity.MinioAttachmentEntity; 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.ProjectBaseSearchRequest;
import kr.re.etri.autoflow.payload.request.ProjectRequest; import kr.re.etri.autoflow.payload.request.ProjectRequest;
import kr.re.etri.autoflow.repository.DataGroupRepository; import kr.re.etri.autoflow.repository.DataGroupRepository;
@ -55,7 +56,7 @@ public class DataGroupService {
@Value("${minio.bucket}") @Value("${minio.bucket}")
private String bucketName; private String bucketName;
public Page<DataGroupEntity> search(ProjectBaseSearchRequest request) { public Page<DataGroupEntity> search(ProjectBaseAndRefTypeRequest request) {
int pageIndex = request.getPage() > 0 ? request.getPage() - 1 : 0; int pageIndex = request.getPage() > 0 ? request.getPage() - 1 : 0;
Pageable pageable = PageRequest.of( 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); return dataGroupRepository.findAll(spec, pageable);
} }

Loading…
Cancel
Save