基于简单流程模型,动态指定后续流转节点

1. 业务流程图

(1)流程图


(2)业务需求

 在经营管理部门经理节点,选择发起人上传会议纪要、部门分管领导、总经理是否加审。


2. 设计实现 

(1)流程图

 

在流程图中财务部门经理下一个环节有“发起人上传会议纪要”、“部门分管领导”两个节点。两条线上设计变量path==11、path==22.



(2)流程配置

在财务部门经理节点增加规则配置,供程序调用


(3)代码实现

1、在规则函数中返回页面或条件指定的path值

public String intentFinanceDeptManager() {
		String path = "default";
		……
	if(thisWorkitem.getExtralField().contains("addAuditUploadMeetDoc")||
			IntentAuditConditions.isUploadMeetDoc(intentDao, busiId, province)){
			path = "11"; 
		}else {
         ……
		} else{ 
			path = "default"; 
		}	
		return path;
	}
2、在流程中获取下一步可用节点方法中getNextValidElement调用规则函数,根据规则函数返回值,返回符合的可用节点
private String getNextValidElement(String thisActId, Long processInstId,
			Integer busiType, Long busiId) {
……
			String className = "com.interfaces.workflow.common.auditconditions.AuditConditionClass";
			String methodName = thisElementConf.getRuleName();
			Object conditionRs = "default";
			if (methodName != null && !"".equals(methodName)) {
				Class clas = Class.forName(className);
				Method method = clas.getMethod(methodName, new Class[] {});
				Constructor constructor = clas.getConstructor(Integer.class,
						Long.class);
				Object instance = constructor.newInstance(busiType, busiId);
				conditionRs = method.invoke(instance);
			}
	// 获取符合条件的下一步环节
			TransitionElement[] trans = thisElement.getAfterTrans();
			for (TransitionElement tran : trans) {
				if (conditionRs.toString().equalsIgnoreCase(
						tran.getRightValue())) {
               ……
                       }
                       }
              
              ……
return tran.getTo();
}

















































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值