Activity 自定义demo,享受自由跳转和调整

本文探讨了在复杂的部门架构中如何通过工作流的跳转机制来实现灵活的任务分配。介绍了一种方法,该方法允许根据不同的部门和个人需求定制工作流,从而减少因组织架构变化带来的调整成本。

这是一个普通的日常流程图

公司有一种场景有些部门架构没有主管这个级别,有些又没有事业部经理这个级别,那流程图不就会很复杂很混乱吗?

学会了工作流的跳转,就是及时适配这种逻辑场景,达到个人或者特定的部门不同的的流转场景,同时也可以多流程共用一个流程图,只是节点会更多一点,以后组织架构的变动往往只需要后台配置一下每个节点对应的人即可,并不需要代码的变动。

 

/**
	 * Title:jump
	 * 
	 * @Description:usertask3 跳转到 usertask5 return:void processDefId instanceId
	 *                        CurrentNode 当前节点 nextNode 目标节点 userName 目标节点处理人
	 * @author Temple
	 * @Date
	 */
	public void jump(String processDefId, String instanceId, String userName, String CurrentNode, String nextNode) {
		Map<String, Object> vars = new HashMap<String, Object>();
		vars.put(nextNode, userName);
		ProcessDefinitionEntity pde = (ProcessDefinitionEntity) repositoryService.getProcessDefinition(processDefId);
		// 目标节点
		ActivityImpl destinationActivity = (ActivityImpl) pde.findActivity(nextNode);
		// 当前节点
		ActivityImpl currentActivity = (ActivityImpl) pde.findActivity(CurrentNode);
		managementService.executeCommand(new JDJumpTaskCmd(instanceId, destinationActivity, vars, currentActivity));
	}

当前节点跳转至下一个目标节点

Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
Map<String, Object> variables = StartProcess.startProcess(ActProcessConstant.Dimission, entity.getId());
String businesskey = variables.get("objId").toString();
ProcessInstance instance = runtimeService.startProcessInstanceByKey(ActProcessConstant.Dimission, businesskey, variables);

//
jump(task.getProcessDefinitionId(), instance.getId(), map.get(map.get("rolecode")).toString(), processInstance.getActivityId(), map.get("rolecode").toString());// 跳转到目标节点

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值