[ADD] Workflow 수정

main
bjkim 9 months ago
parent 4c91e89470
commit c3ade327ee

@ -42,7 +42,7 @@ public class WorkflowEntity {
private LocalDateTime modDt; private LocalDateTime modDt;
@Schema(description = "워크플로우 버전", example = "1.0") @Schema(description = "워크플로우 버전", example = "1.0")
private String version; private Integer version;
@Schema(description = "스텝 개수", example = "5") @Schema(description = "스텝 개수", example = "5")
private Integer stepCount; private Integer stepCount;

@ -5,4 +5,5 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
public interface WorkflowRepository extends JpaRepository<WorkflowEntity, Long>, JpaSpecificationExecutor<WorkflowEntity> { public interface WorkflowRepository extends JpaRepository<WorkflowEntity, Long>, JpaSpecificationExecutor<WorkflowEntity> {
Integer findVersionById(Long id);
} }

@ -1,5 +1,6 @@
package kr.re.etri.autoflow.service; package kr.re.etri.autoflow.service;
import jakarta.transaction.Transactional;
import kr.re.etri.autoflow.entity.WorkflowEntity; import kr.re.etri.autoflow.entity.WorkflowEntity;
import kr.re.etri.autoflow.payload.request.BaseSearchRequest; import kr.re.etri.autoflow.payload.request.BaseSearchRequest;
import kr.re.etri.autoflow.payload.request.WorkFlowRequest; import kr.re.etri.autoflow.payload.request.WorkFlowRequest;
@ -32,10 +33,20 @@ public class WorkFlowService {
return workflowRepository.findById(id); return workflowRepository.findById(id);
} }
public WorkflowEntity save(WorkflowEntity entity) { @Transactional
return workflowRepository.save(entity); 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) { public boolean deleteById(Long id) {
if (workflowRepository.existsById(id)) { if (workflowRepository.existsById(id)) {
workflowRepository.deleteById(id); workflowRepository.deleteById(id);
@ -44,6 +55,7 @@ public class WorkFlowService {
return false; return false;
} }
@Transactional
public Page<WorkflowEntity> search(WorkFlowRequest request) { public Page<WorkflowEntity> search(WorkFlowRequest request) {
int pageIndex = request.getPage() > 0 ? request.getPage() - 1 : 0; int pageIndex = request.getPage() > 0 ? request.getPage() - 1 : 0;
@ -67,5 +79,4 @@ public class WorkFlowService {
return workflowRepository.findAll(spec, pageable); return workflowRepository.findAll(spec, pageable);
} }
} }

Loading…
Cancel
Save