/*** 流程跳转** @param taskId        taskId* @param targetTaskKey 目标节点id* @throws DCCException 跳转任务异常* @author huikf* @since 2021/3/13 12:46*/public void jump(String taskId, String targetTaskKey) {Task task = taskService.createTaskQuery().taskId(taskId).singleResult();if (task == null) {//确定流程是否存在和是否在流转throw new DCCException("该任务不存在,无法执行该操作");}//获得当前流程的活动IDExecutionQuery executionQuery = runtimeService.createExecutionQuery();Execution execution = executionQuery.executionId(task.getExecutionId()).singleResult();String activityId = execution.getActivityId();//获取当前节点和目标节点的节点信息FlowNode currentFlowNode = getFlowNode(task.getProcessDefinitionId(), activityId);FlowNode targetFlowNode = getFlowNode(task.getProcessDefinitionId(), targetTaskKey);if (targetFlowNode == null) {throw new DCCException("目标节点不存在,无法执行该操作");}if (currentFlowNode.getBehavior() instanceof MultiInstanceActivityBehavior) {throw new DCCException("当前节点为会签节点不支持该操作");}//获取当前节点的向下流转信息并备份List<SequenceFlow> oldFlowNodeOutgoingFlows = currentFlowNode.getOutgoingFlows();//清空当前节点流转走向,若清空的话流程图的获取可能会出现流转线消失的情况//创建新的流程走向并把当前节点执行目标节点SequenceFlow sequenceFlow = new SequenceFlow();sequenceFlow.setId("newTempSequenceId");sequenceFlow.setSourceFlowElement(currentFlowNode);sequenceFlow.setTargetFlowElement(targetFlowNode);List<SequenceFlow> newSequenceFlows = new ArrayList<>();newSequenceFlows.add(sequenceFlow);currentFlowNode.setOutgoingFlows(newSequenceFlows);taskService.complete(task.getId());taskService.deleteTask(task.getId(), false);//最后恢复原来的流转走向currentFlowNode.setOutgoingFlows(oldFlowNodeOutgoingFlows);}/*** 获取流节点** @param processDefinitionId 流程定义id* @param activityId          activityId* @return org.activiti.bpmn.model.FlowNode* @author huikf* @since 2021/3/13 12:47*/private FlowNode getFlowNode(String processDefinitionId, String activityId) {BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);return (FlowNode) bpmnModel.getMainProcess().getFlowElement(activityId);}

Activiti 7流程跳转相关推荐

  1. agilebpm脑图_干货基于SpringBoot2开发的Activiti引擎流程管理项目脚手架

    干货基于SpringBoot2开发的Activiti引擎流程管理项目脚手架 [干货]基于SpringBoot2开发的Activiti引擎流程管理项目脚手架 前言 在工作中,难免会遇到需要开发基于流程管 ...

  2. 基于Activiti的流程应用开发平台JSAAS-WF V5.3

    第1章 产品概述及体系架构 1.1.概述 红迅JSAAS-WF工作流平台V5是广州红迅软件有限公司面向合作伙伴以及有IT运维团队中大型企业提供新一代的流程管理产品,它基于流行的JAVA开源技术上构建, ...

  3. Activiti——管理流程定义(四)

    Activiti--管理流程定义 1.设计流程定义文档 1.1.流程图 1.2.bpmn文件 <?xml version="1.0" encoding="UTF-8 ...

  4. Activiti——工作流程-核心API(二)

    .1 ProcessEngine 说明: 1) 在Activiti中最核心的类,其他的类都是由他而来. 2) 产生方式: 在前面看到了两种创建ProcessEngine(流程引擎)的方式(http:/ ...

  5. java中bpmn流程图_Java学习之BPMN知识以及Activiti的流程部署

    BPMN的介绍 Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,包括支持对象管理组(OMG),面对新技术的机遇,诸如互操作性和 ...

  6. activiti删除流程

    activiti删除流程 activiti想要把流程的实例删除时,直接对数据库删除不太好操作,那便通过下面的activiti本身封装好的方法删吧! 1.根据部署对象ID删除流程定义 //采用级联删除 ...

  7. Activiti判断流程是否结束

    Activiti判断流程是否结束 第一种方式 第二种方式 第一种方式 public String checkProcessOver(String processInstanceId) {//先查历史表 ...

  8. 【activiti】流程变量

    activiti流程变量 1. 什么是流程变量 流程变量在activiti中是一个非常重要的角色,流程运转有时就需要流程变量,流程变量就是activiti在管理工作流时根据管理需要而设置的变量. 前面 ...

  9. Activiti 6-04.流程设计器

    流程设计器 流程设计器 1. Activiti-Modeler 2. bpmn-js 3. actiBPM 4. Activiti Designer 流程设计器 流程设计器可以帮助我们快速画出流程图, ...

最新文章

  1. qt4如何读oracle,Qt4编程的控制MPlayer
  2. 2021年春季学期-信号与系统-第四次作业参考答案-第一小题
  3. 数据挖掘导论读书笔记4--其他分类技术
  4. kaggle-Santander 客户交易预测总结
  5. [转]virtualbox下安装增强工具简单步骤
  6. python抽象工厂模式_Python设计模式之抽象工厂模式
  7. centOS7 安装mysql 设置远程访问
  8. System.out.println(i++); System.out.println(++i);的区别
  9. 出版新书《从毕业生到程序员 使用C#开发商业软件》
  10. 蓝桥杯2019年第十届C/C++省赛第六题-旋转
  11. 利用全能电子地图下载器+GeoWebCache发布Arcgis Server缓存瓦片过程全记录
  12. 开发板实战篇4 RGB565 LCD刷颜色数据
  13. 蜡笔小新 (python)
  14. If you are using WebLogic you will need to add ‘org.slf4j‘ to prefer-application-packages in
  15. 心知天气使用签名验证方式
  16. ctf入门题库_「ctf比赛」web安全CTF比赛习题(初级) - seo实验室
  17. 琼斯是计算体心立方弹性模量_《固体物理学》概念和习题 答案 ()
  18. python新版个人所得税_Python 小案例 计算个人所得税
  19. 第三届VueConf将于2019年6月8日在上海举行 转发评论送门票
  20. Adobe After Effect (AE) cc2020 安装教程【64位】

热门文章

  1. 学校无盘服务器带机量50台要求,锐起XP无盘单服务器带170台详细说明:老玩童
  2. java(JDK)环境安装步骤以及环境变量配置
  3. 海子诗《面朝大海,春暖花开》
  4. Science Robotics 封面论文 | 绝影狗:陌生环境自适应“摸爬滚打”「AI核心算法」...
  5. 天使湖北武汉汇美是骗子T
  6. uv棋盘格4096_建模大佬们都在用的快速高效展UV的方法,还不来GET一下么?
  7. 无线射频专题《IEEE 802.11协议讲解2@WiFi抓包分析之MAC_Header》
  8. 最优化算法单纯形法的matlab实现(单纯形法看这一篇就够了)
  9. easy_yinkelude 简单的文件包含
  10. UE4 设置视角模糊的4种方法