作者:Eddy 历史版本:1 最后编辑:龚清 更新时间:2024-09-20 15:13
适用版本:v3.3.6+;
目前仅提供:保存草稿、启动、审批(同意、反对、驳回、驳回上一步、驳回发起人、弃权、终止、挂起、恢复、批量同意、批量反对、批量终止、批量挂起、批量恢复);
dependency
<dependency>
<groupId>com.lc.ibps.provider.base</groupId>
<artifactId>ibps-provider-bpmn-client</artifactId>
</dependency>
配置说明
添加了相关依赖后直接调用即可。
API说明
保存草稿、启动接口
接口:com.lc.ibps.bpmn.api.IBpmInstService
实现:com.lc.ibps.bpmn.provider.BpmInstProvider
/**
* 保存草稿
* @param request {"parameters":[{"key":"defId","value":"793176595517931520"},{"key":"data","value":"{\"id\":\"\",\"mingZi\":\"test\"}"}]}
* defId 流程定义ID
* data 业务数据
*/
public APIResult<Void> saveDraft(APIRequest request) ;
/**
* 启动流程实例
* @param request {"parameters":[{"key":"defId","value":"793176595517931520"},{"key":"data","value":"{\"id\":\"\",\"mingZi\":\"test\"}"}]}
* defId 流程定义ID
* data 业务数据
*/
public APIResult<Void> start(APIRequest request) ;
任务审批(同意、反对、驳回、驳回上一步、驳回发起人、弃权、终止、挂起、恢复、批量同意、批量反对、批量终止、批量挂起、批量恢复)
接口:com.lc.ibps.bpmn.api.IBpmTaskService
实现:com.lc.ibps.bpmn.provider.BpmTaskProvider
/**
* 处理任务-同意
* @param agreeVo {"opinion":"审批","taskId":"793443915633000448","data":"{\"id\":\"793443627899551744\",\"mingZi\":\"test\"}"}
* opinion 审批意见
* taskId 任务ID
* data 业务数据
*/
public APIResult<Void> agree(BpmActionAgreeVo agreeVo);
/**
* 处理任务-同意(批量)
* @param agreeBatchVo {"taskIds":"793499993234210816,793436381983539200","opinion":"审批"}
* opinion 审批意见
* taskIds 任务ID,多个任务用英文的逗号分开
*/
public APIResult<Void> agreeBatch(BpmActionAgreeBatchVo agreeBatchVo);
/**
* 处理任务-保存
* @param saveVo {"taskId":"793500286445420544","data":"{\"id\":\"793411676668952576\",\"mingZi\":\"test2\"}"}
* taskId 任务ID
* data 业务数据
*/
public APIResult<Void> save(BpmActionSaveVo saveVo);
/**
* 处理任务-反对
* @param opposeVo {"opinion":"审批","taskId":"793443915633000448","data":"{\"id\":\"793443627899551744\",\"mingZi\":\"test\"}"}
* opinion 审批意见
* taskId 任务ID
* data 业务数据
*/
public APIResult<Void> oppose(BpmActionOpposeVo opposeVo);
/**
* 处理任务-反对
* @param opposeBatchVo {"taskIds":"793499993234210816,793436381983539200","opinion":"审批"}
* opinion 审批意见
* taskIds 任务ID,多个任务用英文的逗号分开
*/
public APIResult<Void> opposeBatch(BpmActionOpposeBatchVo opposeBatchVo);
/**
* 处理任务-弃权
* @param abandonVo {"opinion":"审批","taskId":"793443915633000448","data":"{\"id\":\"793443627899551744\",\"mingZi\":\"test\"}"}
* opinion 审批意见
* taskId 任务ID
* data 业务数据
*/
public APIResult<Void> abandon(BpmActionAbandonVo abandonVo);
/**
* 处理任务-驳回
* @param rejectVo {"backHandMode":"direct","destination":"","opinion":"驳回","taskId":"793498752261292032","data":"{\"id\":\"793443627899551744\",\"mingZi\":\"test\"}"}
* backHandMode 返回模式 direct:返回当前节点/normal:按流程图流转
* destination 目标节点,指定节点驳回使用
* opinion 审批意见
* taskId 任务ID
* data 业务数据
*/
public APIResult<Void> reject(BpmActionRejectVo rejectVo);
/**
* 处理任务-驳回发起人
* @param rejectStarterVo {"backHandMode":"direct""opinion":"驳回发起人","taskId":"793499790380892160","data":"{\"id\":\"793443627899551744\",\"mingZi\":\"test\"}"}
* backHandMode 返回模式 direct:返回当前节点/normal:按流程图流转
* opinion 审批意见
* taskId 任务ID
* data 业务数据
*/
public APIResult<Void> rejectToStarter(BpmActionRejectStarterVo rejectStarterVo);
/**
* 处理任务-驳回上一步
* @param rejectPreviousVo {"backHandMode":"direct","opinion":"驳回上一步","taskId":"793499693987397632","data":"{\"id\":\"793443627899551744\",\"mingZi\":\"test\"}"}
* backHandMode 返回模式 direct:返回当前节点/normal:按流程图流转
* opinion 审批意见
* taskId 任务ID
* data 业务数据
*/
public APIResult<Void> rejectToPrevious(BpmActionRejectPreviousVo rejectPreviousVo);
/**
* 终止流程
* @param taskIds 任务ID,多个任务用英文的逗号分开
* @param messageType 通知类型,那么就是用传入的通知类型,如果没有则获取节点的通知类型
* @param endReason 终止原因
*/
public APIResult<Void> doEndProcess(String taskIds, String messageType, String endReason);
/**
* 流程实例-挂起
* @param taskId 任务ID
*/
public APIResult<Void> suspendProcess(String taskId);
/**
* 流程实例-恢复
* @param taskId 任务ID
*/
public APIResult<Void> recoverProcess(String taskId);
/**
* 流程实例-批量挂起
* @param taskIds 任务ID,多个任务用英文的逗号分开
*/
public APIResult<Void> batchSuspendProcess(String taskIds);
/**
* 流程实例-批量恢复
* @param taskIds 任务ID,多个任务用英文的逗号分开
*/
public APIResult<Void> batchRecoverProcess(String taskIds);
使用示例
package com.lc.ibps.skeleton.provider;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.lc.ibps.bpmn.api.IBpmInstService;
import com.lc.ibps.bpmn.api.IBpmTaskService;
import com.lc.ibps.bpmn.vo.BpmActionAbandonVo;
import com.lc.ibps.bpmn.vo.BpmActionAgreeBatchVo;
import com.lc.ibps.bpmn.vo.BpmActionAgreeVo;
import com.lc.ibps.bpmn.vo.BpmActionOpposeBatchVo;
import com.lc.ibps.bpmn.vo.BpmActionOpposeVo;
import com.lc.ibps.bpmn.vo.BpmActionRejectStarterVo;
import com.lc.ibps.bpmn.vo.BpmActionRejectVo;
import com.lc.ibps.bpmn.vo.BpmActionSaveVo;
import com.lc.ibps.bpmn.vo.EndProcessVo;
import com.lc.ibps.cloud.entity.APIRequest;
import com.lc.ibps.cloud.entity.APIResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@Api(tags = "流程动作类", value = "流程动作类")
@RestController
@RequestMapping(value = "/action")
public class BpmnActionProvider {
@Resource
public IBpmInstService inst;
@Resource
public IBpmTaskService task;
//保存草稿
@ApiOperation(value = "saveDraft", notes = "saveDraft")
@RequestMapping(value = "/saveDraft",method = RequestMethod.GET)
public String saveDraft() {
APIRequest request = new APIRequest();
request.addParameters("defId", "793176595517931520");
request.addParameters("version", "0");
request.addParameters("data","{\"id\":\"\",\"mingZi\":\"test\"}\"}");
APIResult<Void> result = inst.start(request);
return result.toJsonString();
}
//启动
@ApiOperation(value = "start", notes = "start")
@RequestMapping(value = "/start",method = RequestMethod.GET)
public String start() {
APIRequest request = new APIRequest();
// request.addParameters("proInstId", "793433098430709760"); //如果是草稿启动,需要参数
request.addParameters("defId", "793176595517931520");
request.addParameters("version", "0");
request.addParameters("data","{\"id\":\"\",\"mingZi\":\"test\"}\"}");
APIResult<Void> result = inst.start(request);
return result.toJsonString();
}
//保存
@ApiOperation(value = "save", notes = "save")
@RequestMapping(value = "/save",method = RequestMethod.GET)
public String save() {
BpmActionSaveVo vo = new BpmActionSaveVo();
vo.setData("{\"id\":\"793411676668952576\",\"mingZi\":\"test2\"}");
vo.setTaskId("793436381983539200");
APIResult<Void> result = task.save(vo);
return result.toJsonString();
}
//同意
@ApiOperation(value = "agree", notes = "agree")
@RequestMapping(value = "/agree",method = RequestMethod.GET)
public String agree() {
BpmActionAgreeVo agreeVo = new BpmActionAgreeVo();
agreeVo.setOpinion("测试数据同意");
agreeVo.setData("{\"id\":\"793411676668952576\",\"mingZi\":\"test\"}");
agreeVo.setTaskId("793413686562652160");
APIResult<Void> result = task.agree(agreeVo);
return result.toJsonString();
}
//反对
@ApiOperation(value = "oppose", notes = "oppose")
@RequestMapping(value = "/oppose",method = RequestMethod.GET)
public String oppose() {
BpmActionOpposeVo vo = new BpmActionOpposeVo();
vo.setOpinion("测试数据反对");
vo.setData("{\"id\":\"793411676668952576\",\"mingZi\":\"test\"}");
vo.setTaskId("793413686562652160");
APIResult<Void> result = task.oppose(vo);
return result.toJsonString();
}
//驳回发起人
@ApiOperation(value = "rejectToStart", notes = "rejectToStart")
@RequestMapping(value = "/rejectToStart",method = RequestMethod.GET)
public String rejectToStart() {
BpmActionRejectStarterVo vo = new BpmActionRejectStarterVo();
vo.setBackHandMode("direct");// normal:流程图走、direct:回到本节点
vo.setOpinion("驳回发起人-回到本节点");
vo.setData("{\"id\":\"793411676668952576\",\"mingZi\":\"test\"}");
vo.setTaskId("793413686562652160");
APIResult<Void> result = task.rejectToStarter(vo);
return result.toJsonString();
}
//驳回上一步
@ApiOperation(value = "rejectToPrevious", notes = "rejectToPrevious")
@RequestMapping(value = "/rejectToPrevious",method = RequestMethod.GET)
public String rejectToPrevious() {
BpmActionRejectStarterVo vo = new BpmActionRejectStarterVo();
vo.setBackHandMode("normal");
vo.setOpinion("驳回上一步");
vo.setData("{\"id\":\"793411676668952576\",\"mingZi\":\"test\"}");
vo.setTaskId("793413686562652160");
APIResult<Void> result = task.rejectToStarter(vo);
return result.toJsonString();
}
//驳回
@ApiOperation(value = "reject", notes = "reject")
@RequestMapping(value = "/reject",method = RequestMethod.GET)
public String reject() {
// ===========================>
// 驳回-驳回上一步-回到本节点
// BpmActionRejectVo vo = new BpmActionRejectVo();
// vo.setBackHandMode("direct"); // normal:流程图走、direct:回到本节点
// vo.setOpinion("驳回-驳回上一步-回到本节点");
// vo.setData("{\"id\":\"793411676668952576\",\"mingZi\":\"test\"}");
// vo.setTaskId("793413686562652160");
// APIResult<Void> result = task.reject(vo);
// ===========================>
// ===========================>
// 驳回-驳回指定节点-流程图
BpmActionRejectVo vo = new BpmActionRejectVo();
vo.setBackHandMode("normal"); // normal:流程图走、direct:回到本节点
vo.setDestination("Activity_171feq7");
vo.setOpinion("驳回-驳回指定节点-流程图");
vo.setData("{\"id\":\"793411676668952576\",\"mingZi\":\"test\"}");
vo.setTaskId("793413686562652160");
APIResult<Void> result = task.reject(vo);
// ===========================>
return result.toJsonString();
}
//弃权
@ApiOperation(value = "abandon", notes = "abandon")
@RequestMapping(value = "/abandon",method = RequestMethod.GET)
public String abandon() {
BpmActionAbandonVo vo = new BpmActionAbandonVo();
vo.setOpinion("弃权");
vo.setData("{\"id\":\"793411676668952576\",\"mingZi\":\"test\"}");
vo.setTaskId("793413686562652160");
APIResult<Void> result = task.abandon(vo);
return result.toJsonString();
}
//终止流程/批量终止流程
@ApiOperation(value = "doEndProcess", notes = "doEndProcess")
@RequestMapping(value = "/doEndProcess",method = RequestMethod.GET)
public String doEndProcess() {
EndProcessVo vo = new EndProcessVo();
vo.setEndReason("终止流程");
vo.setTaskIds("793413686562652160");
APIResult<Void> result = task.doEndProcess(vo);
return result.toJsonString();
}
//挂起任务
@ApiOperation(value = "suspendProcess", notes = "suspendProcess")
@RequestMapping(value = "/suspendProcess",method = RequestMethod.GET)
public String suspendProcess() {
APIResult<Void> result = task.suspendProcess("793436381983539200");
return result.toJsonString();
}
//恢复任务
@ApiOperation(value = "recoverProcess", notes = "recoverProcess")
@RequestMapping(value = "/recoverProcess",method = RequestMethod.GET)
public String recoverProcess() {
APIResult<Void> result = task.recoverProcess("793436381983539200");
return result.toJsonString();
}
//批量挂起任务
@ApiOperation(value = "batchSuspendProcess", notes = "batchSuspendProcess")
@RequestMapping(value = "/batchSuspendProcess",method = RequestMethod.GET)
public String batchSuspendProcess() {
APIResult<Void> result = task.batchSuspendProcess("791270975688671234,791274746321829888");
return result.toJsonString();
}
//批量恢复任务
@ApiOperation(value = "batchRecoverProcess", notes = "batchRecoverProcess")
@RequestMapping(value = "/batchRecoverProcess",method = RequestMethod.GET)
public String batchRecoverProcess() {
APIResult<Void> result = task.batchRecoverProcess("791270975688671234,791274746321829888");
return result.toJsonString();
}
//批量同意
@ApiOperation(value = "batchAgree", notes = "batchAgree")
@RequestMapping(value = "/batchAgree",method = RequestMethod.GET)
public String batchAgree() {
BpmActionAgreeBatchVo vo = new BpmActionAgreeBatchVo();
vo.setOpinion("批量同意");
vo.setTaskIds("793443638855073792,793443606215000064");
APIResult<Void> result = task.agreeBatch(vo);
return result.toJsonString();
}
//批量反对
@ApiOperation(value = "batchOppose", notes = "batchOppose")
@RequestMapping(value = "/batchOppose",method = RequestMethod.GET)
public String batchOppose() {
BpmActionOpposeBatchVo vo = new BpmActionOpposeBatchVo();
vo.setOpinion("批量反对");
vo.setTaskIds("793443638855073792,793443606215000064");
APIResult<Void> result = task.opposeBatch(vo);
return result.toJsonString();
}
}