static List findBatchOfHighestPriorityTaskAssigneeList()

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;
    }