[ADD] WorkFlow 부모Project추가중

main
bjkim 10 months ago
parent a5aa215b70
commit bfc1b2b891

@ -0,0 +1,17 @@
package kr.re.etri.autoflow;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
@SpringBootApplication
@EnableJpaAuditing
@Slf4j
public class AutoFlowApplication {
public static void main(String[] args) {
SpringApplication.run(AutoFlowApplication.class, args);
}
}

@ -1,13 +0,0 @@
package kr.re.etri.autoflow;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringSecurityRefreshTokenApplication {
public static void main(String[] args) {
SpringApplication.run(SpringSecurityRefreshTokenApplication.class, args);
}
}

@ -3,10 +3,9 @@ package kr.re.etri.autoflow.controllers;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import kr.re.etri.autoflow.entity.ProjectEntity;
import kr.re.etri.autoflow.entity.WorkflowEntity;
import kr.re.etri.autoflow.payload.request.BaseSearchRequest;
import kr.re.etri.autoflow.service.WorkflowService;
import kr.re.etri.autoflow.payload.request.WorkFlowRequest;
import kr.re.etri.autoflow.service.WorkFlowService;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.http.ResponseEntity;
@ -18,9 +17,9 @@ import java.util.List;
@RestController
@RequestMapping("/api/workflows")
@RequiredArgsConstructor
public class WorkflowController {
public class WorkFlowController {
private final WorkflowService workflowService;
private final WorkFlowService workflowService;
@Operation(summary = "모든 워크플로우 조회")
@GetMapping
@ -41,7 +40,7 @@ public class WorkflowController {
@Operation(summary = "워크플로우 검색 및 페이지네이션 프로젝트 목록 조회")
@GetMapping("/search")
public ResponseEntity<Page<WorkflowEntity>> searchProjects(
@ModelAttribute BaseSearchRequest request) {
@ModelAttribute WorkFlowRequest request) {
Page<WorkflowEntity> page = workflowService.search(request);
return ResponseEntity.ok(page);
}

@ -38,4 +38,21 @@ public class WorkflowEntity {
@Schema(description = "수정 일시", example = "2025-08-05T04:11:24.745")
private LocalDateTime modDt;
@Schema(description = "워크플로우 버전", example = "1.0")
private String version;
@Schema(description = "스텝 개수", example = "5")
private Integer stepCount;
// configProgress/토탈n개로 표현
@Schema(description = "현재 구성 진행 개수", example = "1")
private Integer configProgress;
@Schema(description = "Kubeflow 상태", example = "Running")
private String kubeflowStatus;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "project_id", referencedColumnName = "id", nullable = false)
private ProjectEntity project;
}

@ -0,0 +1,11 @@
package kr.re.etri.autoflow.payload.request;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class WorkFlowRequest extends BaseSearchRequest {
private String projectId;
}

@ -1,10 +1,9 @@
package kr.re.etri.autoflow.service;
import kr.re.etri.autoflow.entity.ProjectEntity;
import kr.re.etri.autoflow.entity.WorkflowEntity;
import kr.re.etri.autoflow.payload.request.BaseSearchRequest;
import kr.re.etri.autoflow.payload.request.WorkFlowRequest;
import kr.re.etri.autoflow.repository.WorkflowRepository;
import kr.re.etri.autoflow.specification.ProjectSpecification;
import kr.re.etri.autoflow.specification.WorkflowSpecification;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
@ -14,14 +13,12 @@ import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.format.DateTimeParseException;
import java.util.List;
import java.util.Optional;
@Service
@RequiredArgsConstructor
public class WorkflowService {
public class WorkFlowService {
private final WorkflowRepository workflowRepository;
private final WorkflowSpecification workflowSpecification;
@ -47,7 +44,7 @@ public class WorkflowService {
return false;
}
public Page<WorkflowEntity> search(BaseSearchRequest request) {
public Page<WorkflowEntity> search(WorkFlowRequest request) {
int pageIndex = request.getPage() > 0 ? request.getPage() - 1 : 0;
Pageable pageable = PageRequest.of(
@ -61,6 +58,14 @@ public class WorkflowService {
request.getKeyword()
);
// projectId가 있으면 조건 추가 (권장)
if (request.getProjectId() != null) {
spec = spec.and((root, query, cb) ->
cb.equal(root.get("project").get("id"), request.getProjectId())
);
}
return workflowRepository.findAll(spec, pageable);
}
}
Loading…
Cancel
Save