package jnpf.workflow.admin.controller; import java.util.List; 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.DefinitionDeleteFo; import jnpf.workflow.common.model.fo.DefinitionDeployFo; import jnpf.workflow.common.model.vo.DefinitionVo; import jnpf.workflow.common.model.vo.DeploymentVo; import jnpf.workflow.common.service.IDefinitionService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @Slf4j @Tag(name = "流程定义控制层", description = "DefinitionController") @RestController @RequiredArgsConstructor @RequestMapping("/api/Flow/definition") public class DefinitionController { private final IDefinitionService definitionService; @Operation(summary = "deploy", description = "部署流程定义") @PostMapping("/deploy") public Result deploy(@RequestBody @Valid DefinitionDeployFo fo) { DeploymentVo vo = definitionService.deployDefinition(fo); if (null != vo) { return Result.success(vo); } return Result.failed(ResultCode.DEPLOY_FAILURE); } @Operation(summary = "list", description = "列表查询流程定义") @GetMapping("/list") public Result> list() { return Result.success(definitionService.listDefinition()); } @Operation(summary = "delete", description = "删除流程定义") @DeleteMapping public Result delete(@Valid DefinitionDeleteFo fo) { if (definitionService.deleteDefinition(fo)) { return Result.success(ResultCode.DELETE_SUCCESS); } return Result.failed(ResultCode.DELETE_FAILURE); } @Operation(summary = "get", description = "获取流程元素") @GetMapping("/{deploymentId}") public Result getStructure(@PathVariable("deploymentId") String deploymentId) { return Result.success(definitionService.getStructure(deploymentId)); } }