package jnpf.workflow.admin.controller; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import jnpf.workflow.admin.result.Result; import jnpf.workflow.common.exception.ResultCode; import jnpf.workflow.common.model.fo.InstanceDeleteFo; import jnpf.workflow.common.model.fo.InstanceStartFo; import jnpf.workflow.common.model.vo.HistoricInstanceVo; import jnpf.workflow.common.model.vo.InstanceVo; import jnpf.workflow.common.service.IInstanceService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @Slf4j @Tag(name = "流程实例控制层", description = "InstanceController") @RestController @RequiredArgsConstructor @RequestMapping("/api/Flow/instance") public class InstanceController { private final IInstanceService instanceService; @Operation(summary = "start", description = "启动流程实例") @PostMapping("/start") public Result start(@RequestBody @Valid InstanceStartFo fo) { InstanceVo vo = instanceService.startById(fo); if (null != vo) { return Result.success(vo); } return Result.failed(ResultCode.START_FAILURE); } @Operation(summary = "get", description = "获取流程实例") @GetMapping("/{instanceId}") public Result getInstance(@PathVariable("instanceId") String instanceId) { return Result.success(instanceService.getHistoricProcessInstance(instanceId)); } @Operation(summary = "delete", description = "删除流程实例") @DeleteMapping public Result delete(InstanceDeleteFo fo) { if (instanceService.deleteInstance(fo)) { return Result.success(ResultCode.DELETE_SUCCESS); } return Result.failed(ResultCode.DELETE_FAILURE); } }