Joget DX 8 Stable Released
The stable release for Joget DX 8 is now available, with a focus on UX and Governance.
...
Code Block | ||
---|---|---|
| ||
import java.util.Collection; import org.joget.apps.app.service.AppUtil; import org.joget.directory.model.User; import org.joget.directory.model.service.ExtDirectoryManager; import org.joget.workflow.shark.model.dao.WorkflowAssignmentDao; ExtDirectoryManager directoryManager = (ExtDirectoryManager) AppUtil.getApplicationContext().getBean("directoryManager"); WorkflowAssignmentDao workflowAssignmentDao = (WorkflowAssignmentDao) AppUtil.getApplicationContext().getBean("workflowAssignmentDao"); //set groupId String groupId = "G-001"; //Get users of the group using directory manager, sorted by firstName Collection userList = directoryManager.getUsers(null, null, null, null, groupId, null, null, "firstName", false, null, null); //initialize String assignTo = ""; int lowestAssignmentCount = -1; Collection assignees = new ArrayList(); //loop through the users for(Object u : userList){ User user = (User) u; //get open assignment count of the current user //refer to https://github.com/jogetworkflow/jw-community/blob/5.0-SNAPSHOT/wflow-wfengine/src/main/java/org/joget/workflow/shark/model/dao/WorkflowAssignmentDao.java#L198 to refine search conditions int userAssignmentSize = workflowAssignmentDao.getAssignmentSize(null, null, null, null, u.getUsername(), "open"); //System.out.println(u.getUsername() + " has " + userAssignmentSize); if(lowestAssignmentCount == -1){ //assign to the first person first lowestAssignmentCount = userAssignmentSize; assignTo = u.getUsername(); }else if(userAssignmentSize < lowestAssignmentCount){ assignTo = u.getUsername(); lowestAssignmentCount = userAssignmentSize; } } //System.out.println("Will assign to " + assignTo); assignees.add(assignTo); return assignees; |