| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package com.qqflow.engine.domain.flow.controller;
- import com.qqflow.engine.common.PageResult;
- import com.qqflow.engine.common.Result;
- import com.qqflow.engine.common.util.SecurityUtils;
- import com.qqflow.engine.domain.flow.assembler.ProcessDefinitionAssembler;
- import com.qqflow.engine.domain.flow.dto.ProcessDefinitionDTO;
- import com.qqflow.engine.domain.flow.po.ProcessDefinition;
- import com.qqflow.engine.domain.flow.service.ProcessDefinitionService;
- import io.swagger.v3.oas.annotations.Operation;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import jakarta.validation.Valid;
- import lombok.RequiredArgsConstructor;
- import org.springframework.security.access.prepost.PreAuthorize;
- 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.PutMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- import java.util.List;
- @RestController
- @RequestMapping("/flow/definition")
- @RequiredArgsConstructor
- @Tag(name = "流程定义管理")
- @PreAuthorize("hasAnyRole('super_admin','flow_manager')")
- public class ProcessDefinitionController {
- private final ProcessDefinitionService processDefinitionService;
- private final ProcessDefinitionAssembler processDefinitionAssembler;
- @PostMapping
- @Operation(summary = "保存流程定义")
- public Result<Long> save(@RequestBody @Valid ProcessDefinitionDTO dto) {
- ProcessDefinition po = this.processDefinitionAssembler.buildFromSaveDto(dto, SecurityUtils.getUserId());
- return Result.ok(this.processDefinitionService.saveDefinition(po));
- }
- @PutMapping
- @Operation(summary = "更新流程定义")
- public Result<Long> update(@RequestBody @Valid ProcessDefinitionDTO dto) {
- ProcessDefinition po = this.processDefinitionAssembler.buildFromUpdateDto(dto);
- Long newId = this.processDefinitionService.updateDefinition(po);
- return Result.ok(newId);
- }
- @DeleteMapping("/{id}")
- @Operation(summary = "删除流程定义")
- public Result<Void> delete(@PathVariable Long id) {
- this.processDefinitionService.deleteDefinition(id);
- return Result.ok();
- }
- @GetMapping("/{id}")
- @Operation(summary = "流程定义详情")
- @PreAuthorize("isAuthenticated()")
- public Result<ProcessDefinitionDTO> getById(@PathVariable Long id) {
- return Result.ok(this.processDefinitionService.getById(id));
- }
- @GetMapping("/page")
- @Operation(summary = "流程定义分页列表")
- public Result<PageResult<ProcessDefinitionDTO>> page(
- @RequestParam(defaultValue = "1") Integer pageNum,
- @RequestParam(defaultValue = "10") Integer pageSize,
- @RequestParam(required = false) String processCode,
- @RequestParam(required = false) String processName,
- @RequestParam(required = false) Integer status) {
- return Result.ok(this.processDefinitionService.page(pageNum, pageSize, processCode, processName, status));
- }
- @PostMapping("/{id}/publish")
- @Operation(summary = "发布流程定义")
- public Result<Void> publish(@PathVariable Long id) {
- this.processDefinitionService.publish(id);
- return Result.ok();
- }
- @PostMapping("/{id}/stop")
- @Operation(summary = "停用流程定义")
- public Result<Void> stop(@PathVariable Long id) {
- this.processDefinitionService.stop(id);
- return Result.ok();
- }
- @PostMapping("/{id}/enable")
- @Operation(summary = "启用流程定义")
- public Result<Void> enable(@PathVariable Long id) {
- this.processDefinitionService.enable(id);
- return Result.ok();
- }
- @GetMapping("/list-enabled")
- @Operation(summary = "启用中的流程定义列表")
- @PreAuthorize("isAuthenticated()")
- public Result<List<ProcessDefinitionDTO>> listEnabled() {
- return Result.ok(this.processDefinitionService.listEnabled());
- }
- }
|