package com.hotent.Feign; import com.hotent.Feign.exception.BpmRuntimeFeignFallbackException; import com.hotent.entity.AssignParamObject; import com.hotent.entity.CommonResult; import com.hotent.entity.DefaultBpmTask; import com.hotent.entity.DoNextParamObject; import com.hotent.entity.query.QueryFilter; import com.hotent.vo.*; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; import java.util.Map; import java.util.Optional; /** * @Author: Cola * @Date: 2021/08/20/11:16 * @Description: **/ @FeignClient(name="${eip.feignClient.bpmRuntime:eip-bpm-runtime}",contextId = "api-manager-eip-bpm-runtime",fallbackFactory = BpmRuntimeFeignFallbackException.class) public interface BpmRuntimeFeignClient { // 客户端启动流程 @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/start", method = RequestMethod.POST, produces = { "application/json; charset=utf-8" }) public StartResult start(@RequestBody StartFlowParamObjectVo startFlowParamObjectVo) throws Exception; // 获取用户的待办事宜(对外接口) @RequestMapping(value = "/${openApi.prefix}/runtime/task/v1/getTodoList", method = RequestMethod.POST, produces = {"application/json; charset=utf-8"}) public CommonResult getTodoList(@RequestBody QueryFilter queryFilter) throws Exception; // 查询新建流程列表 @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/newProcess", method = RequestMethod.POST, produces = { "application/json; charset=utf-8" }) public CommonResult newProcess(@RequestBody QueryFilter queryFilter) throws Exception; // 根据流程定义id或流程实例id或任务id或BPMN实例ID获取流程图 @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/getBpmImage", method = RequestMethod.POST, produces = { "application/json; charset=utf-8" }) public String getBpmImage(@RequestBody BpmImageParamObjectVo bpmImageParamObjectVo) throws Exception; // 处理任务 @RequestMapping(value="/${openApi.prefix}/runtime/task/v1/complete",method=RequestMethod.POST,produces = { "application/json; charset=utf-8" }) public CommonResult complete( @RequestBody DoNextParamObjectVo doNextParamObjectVo) throws Exception; // 流程审批历史(页面数据) @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/instanceFlowOpinions", method = RequestMethod.GET, produces = { "application/json; charset=utf-8" }) public CommonResult opinionHistory( @RequestParam(value = "instId") Optional instId, @RequestParam(value = "taskId") Optional taskId, @RequestParam(value = "isCommu") Optional isCommu, @RequestParam(value = "isRelFlow") Optional isRelFlow, @RequestParam(value = "isRequest") Optional isRequest) throws Exception; // 获取用户的已办事宜 @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/getDoneList", method = RequestMethod.POST, produces = { "application/json; charset=utf-8" }) public CommonResult getDoneList( @RequestBody QueryFilter queryFilter, @RequestParam(required = false,value = "status") String status, @RequestParam(value = "isCheckRevoke")Optional isCheckRevoke) throws Exception; // 人工终止流程 @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/doEndProcess", method = RequestMethod.POST, produces = { "application/json; charset=utf-8" }) public CommonResult doEndProcess(@RequestBody DoEndParamObjectVo doEndParamObject) throws Exception; // 获取有权限的流程并将其按照分类名称进行分组 @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/getHasAuthFlowList", method = RequestMethod.POST, produces = { "application/json; charset=utf-8" }) public CommonResult getHasAuthFlowList( @RequestBody QueryFilter queryFilter)throws Exception; // 获取我的常用流程 @RequestMapping(value = "/getMyOftenFlow",method = RequestMethod.GET) public CommonResult getMyOftenFlow() throws Exception; // 我的请求 @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/getMyRequestList", method = RequestMethod.POST, produces = { "application/json; charset=utf-8" }) public CommonResult getMyRequestList(@RequestBody QueryFilter queryFilter) throws Exception; // 查询我的请求列表 @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/myRequest", method = RequestMethod.POST, produces = { "application/json; charset=utf-8" }) public CommonResult myRequest(@RequestBody QueryFilter queryFilter) throws Exception; // 获取用户的已办事宜,参数status表示流程状态,不填表示查询所有 @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/getDoneInstList", method = RequestMethod.POST, produces = { "application/json; charset=utf-8" }) public CommonResult getDoneInstList(@RequestBody QueryFilter queryFilter, @RequestParam(required = false,value = "status") String status) throws Exception; // 获取任务的详情 @RequestMapping(value="/${openApi.prefix}/runtime/task/v1/taskDetailBo",method=RequestMethod.GET,produces = { "application/json; charset=utf-8" }) public CommonResult taskDetailBo( @RequestParam(value = "taskId") String taskId, @RequestParam(value = "reqParams") String reqParams, @RequestParam(required = false,value = "leaderId") Optional leaderId) throws Exception; // 根据任务ID获取审批按钮 @RequestMapping(value="/${openApi.prefix}/runtime/task/v1/getButtonsBytaskId",method=RequestMethod.GET,produces = { "application/json; charset=utf-8" }) public CommonResult getButtonsBytaskId(@RequestParam(value = "taskId") String taskId,@RequestParam(value ="leaderId" ) Optional leaderId) throws Exception; // 获取任务是否能锁定,返回当前任务的可操作状态:0:任务已经处理,1:可以锁定,2:不需要解锁 ,3:可以解锁,4,被其他人锁定,5:这种情况一般是管理员操作,所以不用出锁定按钮 @RequestMapping(value="/${openApi.prefix}/runtime/task/v1/canLock",method=RequestMethod.GET, produces = { "application/json; charset=utf-8" }) public CommonResult canLock( @RequestParam(value = "taskId") String taskId,@RequestParam(value = "leaderId") Optional leaderId) throws Exception; // 保存草稿 @RequestMapping(value="/${openApi.prefix}/runtime/task/v1/saveDraft",method=RequestMethod.POST,produces = { "application/json; charset=utf-8" }) public CommonResult saveDraft(@RequestBody DoNextParamObject doNextParamObject) throws Exception; // 删除草稿 @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/removeDraftById", method = RequestMethod.DELETE, produces = { "application/json; charset=utf-8" }) public CommonResult removeDraftById(@RequestParam(value = "ids") String ids) throws Exception; // 保存草稿 @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/saveDraft", method = RequestMethod.POST, produces = { "application/json; charset=utf-8" }) public StartResult saveDraft(@RequestBody StartFlowParamObjectVo startFlowParamObjectVo) throws Exception; // 获取流程实例的表单和数据 @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/getInstFormAndBO", method = RequestMethod.GET, produces = { "application/json; charset=utf-8" }) public CommonResult getInstFormAndBO( @RequestParam(value = "proInstId") Optional proInstId, @RequestParam(value = "nodeId") Optional nodeId, @RequestParam(value = "formId") Optional formId, @RequestParam(value = "getStartForm") Optional getStartForm, @RequestParam(value = "includData") Optional includData) throws Exception; // 根据实例id撤回流程(撤销) @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/revokeInstance", method = RequestMethod.POST, produces = { "application/json; charset=utf-8" }) public CommonResult revokeInstance(@RequestBody RevokeParamObjectVo revokeParamObjectVo) throws Exception; // 根据节点配置获取后续可跳转节点 @RequestMapping(value="/${openApi.prefix}/runtime/task/v1/getAfterJumpNodes",method=RequestMethod.POST, produces = { "application/json; charset=utf-8" }) public CommonResult getAfterJumpNodes(@RequestBody FlowManagerVo flowManagerVo ) throws Exception; // 根据流程实例ID终止流程 @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/doEndProcessById", method = RequestMethod.GET, produces = { "application/json; charset=utf-8" }) public CommonResult doEndProcessById( @RequestParam(value = "id") String id, @RequestParam(value = "reason") Optional reason) throws Exception; // 任务转办 @RequestMapping(value = "/${openApi.prefix}/runtime/task/v1/delegate", method = RequestMethod.POST, produces = {"application/json; charset=utf-8"}) public CommonResult delegate(@RequestBody AssignParamObject assignParamObject, @RequestParam(required = false,value = "leaderId")String leaderId) throws Exception; // 取回委托/转办流程 @RequestMapping(value = "/${openApi.prefix}/runtime/task/v1/retrieveBpmTask", method = RequestMethod.GET, produces = {"application/json; charset=utf-8"}) public CommonResult retrieveBpmTask(@RequestParam(value = "taskId") String taskId); // 获取用户的已办事宜,参数status表示流程状态,不填表示查询所有 @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/getDoneInstCount", produces = { "application/json; charset=utf-8" },method = RequestMethod.POST) public CommonResult getDoneInstCount( @RequestBody QueryFilter queryFilter,@RequestParam(required = false,value = "status") String status) throws Exception; // 获取待办数目 @RequestMapping(value = "/${openApi.prefix}/runtime/task/v1/getTodoCount", produces = {"application/json; charset=utf-8"},method = RequestMethod.POST) public CommonResult getTodoCount( @RequestBody QueryFilter queryFilter) throws Exception; // 获取待阅任务(知会任务)数量 @RequestMapping(value="/${openApi.prefix}/runtime/task/v1/getNoticeDoneReadCount", produces = { "application/json; charset=utf-8" },method = RequestMethod.POST) public CommonResult getNoticeDoneReadCount(@RequestBody QueryFilter queryFilter) throws Exception; // 获取已阅任务(知会任务) @RequestMapping(value="/${openApi.prefix}/runtime/task/v1/getNoticeDoneReadList",method=RequestMethod.POST, produces = { "application/json; charset=utf-8" }) public CommonResult getNoticeDoneReadList(@RequestBody QueryFilter queryFilter) throws Exception; // 获取待阅任务(知会任务)数量 @RequestMapping(value="/${openApi.prefix}/runtime/task/v1/getNoticeTodoReadCount", produces = { "application/json; charset=utf-8" },method = RequestMethod.POST) public CommonResult getNoticeTodoReadCount(@RequestBody QueryFilter queryFilter) throws Exception; // 获取待阅任务(知会任务) @RequestMapping(value="/${openApi.prefix}/runtime/task/v1/getNoticeTodoReadList",method=RequestMethod.POST, produces = { "application/json; charset=utf-8" }) public CommonResult getNoticeTodoReadList(@RequestBody QueryFilter queryFilter) throws Exception; // 批量处理任务 @RequestMapping(value = "/${openApi.prefix}/runtime/task/v1/batchHandle", method = RequestMethod.POST, produces = {"application/json; charset=utf-8"}) public CommonResult batchHandle(@RequestBody Map requestMap) throws Exception; /** * 根据流程实例ID获取当前实例的所有节点和审批人 * @param instId * @return * @throws Exception */ @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/getExcutorNameByInstId", method = RequestMethod.GET, produces = { "application/json; charset=utf-8" }) public CommonResult getExcutorNameByInstId(@RequestParam(value = "instId") String instId) throws Exception; /** * 通过流程实例id取消挂起流程实例 * @param instId 实例id * @return * @throws Exception */ @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/unForbiddenInstance", method = RequestMethod.GET, produces = { "application/json; charset=utf-8" }) public CommonResult unForbiddenInstance(@RequestParam(value = "instId") String instId) throws Exception; /** * 通过流程实例id挂起流程实例 * @param instId 实例id * @return * @throws Exception */ @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/forbiddenInstance", method = RequestMethod.GET, produces = { "application/json; charset=utf-8" }) public CommonResult forbiddenInstance(@RequestParam(value = "instId") String instId) throws Exception; /** * 根据实例id获取实例对象 * @param instId * @return 实例id * @throws Exception */ @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/getInstanceByInstId", method = RequestMethod.GET, produces = { "application/json; charset=utf-8" }) public CommonResult getInstanceByInstId(@RequestParam(value = "instId") String instId) throws Exception; /** * 通过businessKey获取运行实例 * @param businessKey 业务主键 * @param sysCode 业务系统编码 * @return * @throws Exception */ @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/getInstancetByBizKeySysCode", method = RequestMethod.GET, produces = { "application/json; charset=utf-8" }) public CommonResult getInstancetByBizKeySysCode(@RequestParam(value = "businessKey") String businessKey,@RequestParam(value = "sysCode") String sysCode) throws Exception; /** * 终止恢复 * @param id 流程实例id * @param reason 终止原因 * @return * @throws Exception */ @RequestMapping(value = "/${openApi.prefix}/runtime/instance/v1/renewProcess", method = RequestMethod.GET, produces = { "application/json; charset=utf-8" }) public CommonResult renewProcess(@RequestParam(value = "id") String id,@RequestParam(value = "reason") String reason) throws Exception; /** * 通过实例id获取任务列表 * @param instId 实例id * @return * @throws Exception */ @RequestMapping(value="/${openApi.prefix}/runtime/task/v1/getTasksByInstId",method=RequestMethod.GET,produces = { "application/json; charset=utf-8" }) public CommonResult getTasksByInstId(@RequestParam(value = "instId") String instId) throws Exception; /** * 修改任务执行人 * @param modifyExecutorsParamObjectVo 修改执行人对象 * @return * @throws Exception */ @RequestMapping(value = "/${openApi.prefix}/runtime/task/v1/setTaskExecutors", method = RequestMethod.POST, produces = { "application/json; charset=utf-8" }) public CommonResult setTaskExecutors(@RequestBody ModifyExecutorsParamObjectVo modifyExecutorsParamObjectVo)throws Exception; }