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<InstanceVo> 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<HistoricInstanceVo> getInstance(@PathVariable("instanceId") String instanceId) {
|
return Result.success(instanceService.getHistoricProcessInstance(instanceId));
|
}
|
|
@Operation(summary = "delete", description = "删除流程实例")
|
@DeleteMapping
|
public Result<Boolean> delete(InstanceDeleteFo fo) {
|
if (instanceService.deleteInstance(fo)) {
|
return Result.success(ResultCode.DELETE_SUCCESS);
|
}
|
return Result.failed(ResultCode.DELETE_FAILURE);
|
}
|
}
|