taskassignment.java

来自「这是一个jbpm的高级应用,是一个oa工作流的系统,里面用到了spring,hi」· Java 代码 · 共 70 行

JAVA
70
字号
package com.xiangfeng.test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.taskmgmt.def.AssignmentHandler;
import org.jbpm.taskmgmt.exe.Assignable;

public class TaskAssignment implements AssignmentHandler {

	public void assign(Assignable assignable, ExecutionContext ctx) throws Exception {
		System.out.println("触发 TaskAssignment----------");
		List usernames= new ArrayList();
		usernames.add("qe");
		usernames.add("fj");
		usernames.add("cs");
		usernames.add("wye");
		
			
		ArrayList temp = new ArrayList();
		int min=1000000000;
		//遍历取出所有人的任务数
		for (Iterator iter = usernames.iterator(); iter.hasNext();) {
			String element = (String) iter.next();
			
		int size=	ctx.getJbpmContext().getTaskMgmtSession().findTaskInstances(element).size();
		System.out.println("-------------- username is "+element +"----size  is "+size);
		if(min >size){
			min=size;
		}
		}
		
	
		
		for (Iterator iter = usernames.iterator(); iter.hasNext();) {
			String element = (String) iter.next();
		//把任务分配给任务数最少的人	
		int size=	ctx.getJbpmContext().getTaskMgmtSession().findTaskInstances(element).size();
		
		if(size==min){
			
			System.out.println("任务分配给   user name is "+element);
			assignable.setActorId(element);
			
			break;
		
		
		}
		
			
		}
		
		
		
		
		
		
		
		
		
		
		
		
	}

	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?