程序员的资源宝库

网站首页 > gitee 正文

5. flowable - 调用flowable的api查询流程定义

sanyeah 2024-04-12 17:40:46 gitee 3 ℃ 0 评论

因为是后端的项目,我这边使用swaggerUI作为接口测试

引入swagger和hutool的依赖

<dependency>
    <groupId>com.spring4all</groupId>
    <artifactId>swagger-spring-boot-starter</artifactId>
    <version>${swagger.version}</version>
</dependency>

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>${hutool.version}</version>
</dependency>

编写代码,我这边使用的是DDD领域模型,代码目录结构如下

 

 

接口层传入参数,调用应用层方法,返回后组装成dto

@Slf4j
@ApiOperation("流程定义接口层")
@RestController
@RequestMapping("processDefinition")
public class ProcessDefinitionController {
    @Resource
    private ProcessDefinitionApplicationService processDefinitionApplicationService;

    @ApiOperation(value = "查询流程定义", httpMethod = "POST")
    @PostMapping("list")
    public ResultDTO<ProcessDefinitionDTO> list(@RequestParam(value = "processDefinitionKey", required = false) String processDefinitionKey,
                                                @RequestParam(value = "processDefinitionName", required = false) String processDefinitionName){
        ResultDTO<ProcessDefinitionDTO> resultDTO = new ResultDTO<>(ReturnCode.SUCCESS, "查询成功");
        List<ProcessDefinition> list = processDefinitionApplicationService.list(processDefinitionKey, processDefinitionName);
        if(CollUtil.isEmpty(list)){
            return new ResultDTO<>(ReturnCode.FAIL,"查询无数据");
        }
        resultDTO.setDataList(ProcessDefinitionAssembler.convertToProcessDefinitionDTO(list));
        return resultDTO;
    }
}

应用层调用flowable的api进行模糊查询

@Service
public class ProcessDefinitionApplicationService {
    @Resource
    private RepositoryService repositoryService;

    public List<ProcessDefinition> list(String processDefinitionKey, String processDefinitionName) {
        ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
        if(StrUtil.isNotBlank(processDefinitionKey)){
            processDefinitionQuery.processDefinitionKeyLike(processDefinitionKey);
        }
        if(StrUtil.isNotBlank(processDefinitionName)){
            processDefinitionQuery.processDefinitionNameLike(processDefinitionName);
        }
        return processDefinitionQuery.list();
    }
}

启动项目,浏览器输入 http://localhost:8888/swagger-ui.html 即可打开swagger页面,可以看到刚写的ProcessDefinitionController

 

 

点开ProcessDefinitionController,可以看到下面的方法,输入参数,点击execute即可进行方法调用

 

 可以看到返回的数据是我们刚刚新建的流程定义 

 

 至此,说明接口调用成功。

 

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表