From c3ade327ee5487ac8a3e05ff69e557da2571b962 Mon Sep 17 00:00:00 2001 From: bjkim Date: Thu, 11 Sep 2025 13:40:26 +0900 Subject: [PATCH] =?UTF-8?q?[ADD]=20Workflow=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../re/etri/autoflow/entity/WorkflowEntity.java | 2 +- .../autoflow/repository/WorkflowRepository.java | 1 + .../etri/autoflow/service/WorkFlowService.java | 17 ++++++++++++++--- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/java/kr/re/etri/autoflow/entity/WorkflowEntity.java b/src/main/java/kr/re/etri/autoflow/entity/WorkflowEntity.java index 2a798cf..8585bdd 100644 --- a/src/main/java/kr/re/etri/autoflow/entity/WorkflowEntity.java +++ b/src/main/java/kr/re/etri/autoflow/entity/WorkflowEntity.java @@ -42,7 +42,7 @@ public class WorkflowEntity { private LocalDateTime modDt; @Schema(description = "워크플로우 버전", example = "1.0") - private String version; + private Integer version; @Schema(description = "스텝 개수", example = "5") private Integer stepCount; diff --git a/src/main/java/kr/re/etri/autoflow/repository/WorkflowRepository.java b/src/main/java/kr/re/etri/autoflow/repository/WorkflowRepository.java index efbb29e..49fc736 100644 --- a/src/main/java/kr/re/etri/autoflow/repository/WorkflowRepository.java +++ b/src/main/java/kr/re/etri/autoflow/repository/WorkflowRepository.java @@ -5,4 +5,5 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; public interface WorkflowRepository extends JpaRepository, JpaSpecificationExecutor { + Integer findVersionById(Long id); } diff --git a/src/main/java/kr/re/etri/autoflow/service/WorkFlowService.java b/src/main/java/kr/re/etri/autoflow/service/WorkFlowService.java index 0065c49..82dab80 100644 --- a/src/main/java/kr/re/etri/autoflow/service/WorkFlowService.java +++ b/src/main/java/kr/re/etri/autoflow/service/WorkFlowService.java @@ -1,5 +1,6 @@ package kr.re.etri.autoflow.service; +import jakarta.transaction.Transactional; import kr.re.etri.autoflow.entity.WorkflowEntity; import kr.re.etri.autoflow.payload.request.BaseSearchRequest; import kr.re.etri.autoflow.payload.request.WorkFlowRequest; @@ -32,10 +33,20 @@ public class WorkFlowService { return workflowRepository.findById(id); } - public WorkflowEntity save(WorkflowEntity entity) { - return workflowRepository.save(entity); + @Transactional + public WorkflowEntity save(WorkflowEntity workflow) { + if (workflow.getId() == null) { + // 신규 생성 + workflow.setVersion(1); + } else { + // 업데이트 시 기존 max 버전 + 1 + Integer maxVersion = workflowRepository.findVersionById(workflow.getId()); + workflow.setVersion(maxVersion != null ? maxVersion + 1 : 1); + } + return workflowRepository.save(workflow); } + @Transactional public boolean deleteById(Long id) { if (workflowRepository.existsById(id)) { workflowRepository.deleteById(id); @@ -44,6 +55,7 @@ public class WorkFlowService { return false; } + @Transactional public Page search(WorkFlowRequest request) { int pageIndex = request.getPage() > 0 ? request.getPage() - 1 : 0; @@ -67,5 +79,4 @@ public class WorkFlowService { return workflowRepository.findAll(spec, pageable); } - }