in core/src/main/java/com/alibaba/smart/framework/engine/behavior/impl/UserTaskBehaviorHelper.java [57:88]
static List<TaskAssigneeCandidateInstance> findBatchOfHighestPriorityTaskAssigneeList(List<TaskAssigneeCandidateInstance> taskAssigneeCandidateInstanceList) {
if(CollectionUtil.isEmpty(taskAssigneeCandidateInstanceList)) {
return new ArrayList<TaskAssigneeCandidateInstance>(0);
}
int taskAssigneeCandidateInstanceSize = taskAssigneeCandidateInstanceList.size();
//排序,升序
if(CollectionUtil.isNotEmpty(taskAssigneeCandidateInstanceList)) {
Collections.sort(taskAssigneeCandidateInstanceList, new Comparator<TaskAssigneeCandidateInstance>() {
@Override
public int compare(TaskAssigneeCandidateInstance one, TaskAssigneeCandidateInstance two) {
return two.getPriority() - one.getPriority() ;
}
});
}
//优先级低的和所有相同的
List<TaskAssigneeCandidateInstance> newTaskAssigneeCandidateInstanceList = new ArrayList<TaskAssigneeCandidateInstance>(taskAssigneeCandidateInstanceSize);
int minPriority = 0;
for(int i = 0; i < taskAssigneeCandidateInstanceSize; i++) {
TaskAssigneeCandidateInstance instance = taskAssigneeCandidateInstanceList.get(i);
if(i == 0) {
minPriority = instance.getPriority();
newTaskAssigneeCandidateInstanceList.add(instance);
}else {
if(instance.getPriority() == minPriority) {
newTaskAssigneeCandidateInstanceList.add(instance);
}else {
break;
}
}
}
return newTaskAssigneeCandidateInstanceList;
}