沈阳高端网站制作,网页设计心得体会学会了什么,免费建站系统有哪些,有一个做ppt的网站6.4.0 新增加了驳回的方式#xff0c;真是对中国式流程的一种福音呀#xff0c;感谢flowable创始人。
再也不为开发驳回流程发愁了#xff0c;网上那些视频和修改源码真的是demo级别的#xff0c;不能商业用。
只有心如流水的学习才是永远的发电机#xff0c;不要幻想别…6.4.0 新增加了驳回的方式真是对中国式流程的一种福音呀感谢flowable创始人。
再也不为开发驳回流程发愁了网上那些视频和修改源码真的是demo级别的不能商业用。
只有心如流水的学习才是永远的发电机不要幻想别人能给把系统都给你做好了。
任何节点都可以跳转
runtimeService.createChangeActivityStateBuilder().processInstanceId(processInstanceId).moveActivityIdsToSingleActivityId(当前的任务的节点id, 需要跳转的目标节点).changeState();
当然有很多方法大家可以去找一下ChangeActivityStateBuilder这里类。
直接上代码吧从来都是干货不隐藏哈哈。
public ReturnVoString backToStep(BackVo backVo) throws Exception {ReturnVoString returnVo new ReturnVo(FlowConstant.SUCCESS, OK);Task task taskService.createTaskQuery().taskId(backVo.getTaskId()).singleResult();String processInstanceId task.getProcessInstanceId();FlowElement distActivity processDefinitionUtils.findFlowElementById(task.getProcessDefinitionId(), backVo.getDistFlowElementId());//1. 保存任务信息task.setAssignee(backVo.getUserCode());taskService.saveTask(task);//2. 如果上一个节点是提交者的话要处理一下if (FlowConstant.FLOW_SUBMITTER.equals(distActivity.getName())) {//查找发起人 设置到变量中以便驳回到提起人的时候能留在提交人这个节点ExtendProcinst extendProcinst this.extendProcinstService.findExtendProcinstByProcessInstanceId(processInstanceId);String creator null;if (extendProcinst ! null) {creator extendProcinst.getCreator();if (StringUtils.isBlank(creator)) {creator extendProcinst.getCurrentUserCode();}} else {ExtendHisprocinst extendHisprocinst extendHisprocinstService.getExtendHisprocinstByProcessInstanceId(processInstanceId);creator extendHisprocinst.getCreator();if (StringUtils.isBlank(creator)) {creator extendHisprocinst.getCurrentUserCode();}}if (StringUtils.isNotBlank(creator)) {runtimeService.setVariable(processInstanceId, FlowConstant.FLOW_SUBMITTER_VAR, creator);}}ListTask tasks taskService.createTaskQuery().processInstanceId(processInstanceId).list();ListString currentActivityIds new ArrayList();tasks.forEach(t - currentActivityIds.add(t.getTaskDefinitionKey()));//3. 删除节点信息if (!(distActivity instanceof EndEvent)) {this.deleteHisActivities((Activity) distActivity, processInstanceId);}//4. 添加审批意见和修改流程状态this.addCommentAndUpdateProcessStatus(backVo, processInstanceId);//5.执行驳回操作runtimeService.createChangeActivityStateBuilder().processInstanceId(processInstanceId).moveActivityIdsToSingleActivityId(currentActivityIds, backVo.getDistFlowElementId()).changeState();return returnVo;}
2.经测试 多实例节点并行网关判断网关都没有问题甚至是子流程的一种节点跳转都有相应的方法 具体怎么使用可以去看官方的测试用例