📄 taskassignment.java
字号:
package com.xiangfeng.jbpm.ActionHandler;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.jbpm.graph.def.Transition;
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("clientA");
usernames.add("clientB");
usernames.add("clientC");
usernames.add("clientD");
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);
ctx.getContextInstance().setVariable("clientName", element);
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -