码迷,mamicode.com
首页 > 其他好文 > 详细

activiti6.0 提交流程至某节点 ,可用于实现驳回操作(未测试)

时间:2018-02-25 20:39:33      阅读:1611      评论:0      收藏:0      [点我收藏+]

标签:流程   comm   private   ssd   tac   throws   post   ram   模型   

/**
* @param task 任务Id
* @param variables ...
* @param targetActivityId 节点ID
* @throws Exception ...
* @creator 毛志涛
* @date 2018/2/25
* @描述 提交流程至某节点
*/
private void commitProcess(Task task, Map<String, Object> variables, String targetActivityId) {
// TODO: 2018/2/25 未测试
//获取当前节点Id
String currentActivityId = task.getTaskDefinitionKey();
//获取模型实体
String processDefinitionId = task.getProcessDefinitionId();
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
//获取当前节点
FlowElement currentFlow = bpmnModel.getFlowElement(currentActivityId);
//获取目标节点
FlowElement targetFlow = bpmnModel.getFlowElement(targetActivityId);
//创建连线
String uuid = UUID.randomUUID().toString().replace("-", "");
SequenceFlow newSequenceFlow = new SequenceFlow();
newSequenceFlow.setId(uuid);
newSequenceFlow.setSourceFlowElement(currentFlow);
newSequenceFlow.setTargetFlowElement(targetFlow);
//设置条件
newSequenceFlow.setConditionExpression("${\"+uuid+\"==\"" + uuid + "\"}");
//添加连线至bpmn
bpmnModel.getMainProcess().addFlowElement(newSequenceFlow);
//添加变量(保证这根线独一无二)
variables.clear();//清空变量,防止干扰
variables.put(uuid, uuid);
//提交
taskService.addComment(task.getId(), task.getProcessInstanceId(), "撤回");
//完成任务
taskService.complete(task.getId(), variables);
//删除连线
bpmnModel.getMainProcess().removeFlowElement(uuid);
}

activiti6.0 提交流程至某节点 ,可用于实现驳回操作(未测试)

标签:流程   comm   private   ssd   tac   throws   post   ram   模型   

原文地址:https://www.cnblogs.com/maozhitao/p/8470364.html

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!