/** * BladeX Commercial License Agreement * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. *

* Use of this software is governed by the Commercial License Agreement * obtained after purchasing a license from BladeX. *

* 1. This software is for development use only under a valid license * from BladeX. *

* 2. Redistribution of this software's source code to any third party * without a commercial license is strictly prohibited. *

* 3. Licensees may copyright their own code but cannot use segments * from this software for such purposes. Copyright of this software * remains with BladeX. *

* Using this software signifies agreement to this License, and the software * must not be used for illegal purposes. *

* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is * not liable for any claims arising from secondary or illegal development. *

* Author: Chill Zhuang (bladejava@qq.com) */ package org.springblade.flow.core.feign; import org.springblade.core.launch.constant.AppConstant; import org.springblade.core.tool.api.R; import org.springblade.flow.core.pojo.entity.BladeFlow; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.Map; /** * 工作流远程调用接口. * * @author Chill */ @FeignClient( value = AppConstant.APPLICATION_FLOW_NAME, fallback = IFlowClientFallback.class ) public interface IFlowClient { String API_PREFIX = "/feign/client/flow"; String START_PROCESS_INSTANCE_BY_ID = API_PREFIX + "/start-process-instance-by-id"; String START_PROCESS_INSTANCE_BY_KEY = API_PREFIX + "/start-process-instance-by-key"; String COMPLETE_TASK = API_PREFIX + "/complete-task"; String TASK_VARIABLE = API_PREFIX + "/task-variable"; String TASK_VARIABLES = API_PREFIX + "/task-variables"; /** * 开启流程 * * @param processDefinitionId 流程id * @param businessKey 业务key * @param variables 参数 * @return BladeFlow */ @PostMapping(START_PROCESS_INSTANCE_BY_ID) R startProcessInstanceById(@RequestParam("processDefinitionId") String processDefinitionId, @RequestParam("businessKey") String businessKey, @RequestBody Map variables); /** * 开启流程 * * @param processDefinitionKey 流程标识 * @param businessKey 业务key * @param variables 参数 * @return BladeFlow */ @PostMapping(START_PROCESS_INSTANCE_BY_KEY) R startProcessInstanceByKey(@RequestParam("processDefinitionKey") String processDefinitionKey, @RequestParam("businessKey") String businessKey, @RequestBody Map variables); /** * 完成任务 * * @param taskId 任务id * @param processInstanceId 流程实例id * @param comment 评论 * @param variables 参数 * @return R */ @PostMapping(COMPLETE_TASK) R completeTask(@RequestParam("taskId") String taskId, @RequestParam("processInstanceId") String processInstanceId, @RequestParam("comment") String comment, @RequestBody Map variables); /** * 获取流程变量 * * @param taskId 任务id * @param variableName 变量名 * @return R */ @GetMapping(TASK_VARIABLE) R taskVariable(@RequestParam("taskId") String taskId, @RequestParam("variableName") String variableName); /** * 获取流程变量集合 * * @param taskId 任务id * @return R */ @GetMapping(TASK_VARIABLES) R> taskVariables(@RequestParam("taskId") String taskId); }