diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/WorkflowController.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/WorkflowController.java index b3906a4a4..afe627ebe 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/WorkflowController.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/WorkflowController.java @@ -72,6 +72,13 @@ public class WorkflowController { return workflowService.getWorkflowHistoryDetail(id,version); } + @GetMapping("/history/del/{id}") + @LoginRequired(role = RoleEnum.USER) + public Boolean deleteById(@PathVariable("id") Long id, @RequestParam("version") String version) { + return workflowService.deleteHistoryById(id,version); + } + + @PutMapping @LoginRequired(role = RoleEnum.USER) public Boolean updateWorkflow(@RequestBody @Validated WorkflowRequestVO workflowRequestVO) { diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/WorkflowService.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/WorkflowService.java index 6f72458ab..b6a59c308 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/WorkflowService.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/WorkflowService.java @@ -47,4 +47,6 @@ public interface WorkflowService { List getWorkflowHistory(Long id); WorkflowDetailResponseVO getWorkflowHistoryDetail(Long id, String version); + + Boolean deleteHistoryById(Long id, String version); } diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/WorkflowServiceImpl.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/WorkflowServiceImpl.java index f4cd514f2..a7a6aba32 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/WorkflowServiceImpl.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/WorkflowServiceImpl.java @@ -60,6 +60,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; +import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.LinkedBlockingDeque; import java.util.stream.Collectors; @@ -247,7 +248,7 @@ public class WorkflowServiceImpl implements WorkflowService { WorkflowHistory history = new WorkflowHistory(); Workflow workflow1 = workflowMapper.selectById(workflow.getId()); BeanUtils.copyProperties(workflow1, history); - + history.setCreateDt(LocalDateTime.now()); Assert.isTrue(1 == workflowHistoryMapper.insert(history), () -> new SnailJobServerException("Failed to save workflowHistory graph")); return Boolean.TRUE; @@ -397,7 +398,7 @@ public class WorkflowServiceImpl implements WorkflowService { @Override public List getWorkflowHistory(Long id) { - return workflowHistoryMapper.selectList(new LambdaQueryWrapper().eq(WorkflowHistory::getId, id)); + return workflowHistoryMapper.selectList(new LambdaQueryWrapper().eq(WorkflowHistory::getId, id).orderByDesc(WorkflowHistory::getCreateDt)); } @Override @@ -416,6 +417,14 @@ public class WorkflowServiceImpl implements WorkflowService { return doGetWorkflowDetail(workflow); } + @Override + public Boolean deleteHistoryById(Long id, String version) { + + return workflowHistoryMapper.delete(new LambdaQueryWrapper() + .eq(WorkflowHistory::getId, id) + .eq(WorkflowHistory::getVersion, version)) > 0; + } + private void batchSaveWorkflowTask(final List workflowRequestVOList, final String namespaceId) { Set groupNameSet = StreamUtils.toSet(workflowRequestVOList, WorkflowRequestVO::getGroupName);