package com.vci.server.workflow.server.event;
|
|
import org.jbpm.api.model.OpenExecution;
|
import org.jbpm.api.task.Assignable;
|
import org.jbpm.api.task.AssignmentHandler;
|
|
import com.vci.common.log.ServerWithLog4j;
|
import com.vci.common.resource.CommonProperties;
|
import com.vci.server.workflow.common.resouce.WorkflowProperties;
|
import com.vci.server.workflow.server.interfaces.IWorkflowUserService;
|
|
public class AssginTaskForExpression implements AssignmentHandler {
|
|
private static final long serialVersionUID = 1L;
|
|
String assignee;
|
|
/* 根据表达式解析用户列表
|
* @see org.jbpm.api.task.AssignmentHandler#assign(org.jbpm.api.task.Assignable, org.jbpm.api.model.OpenExecution)
|
*/
|
public void assign(Assignable assignable, OpenExecution execution) throws Exception {
|
String[] assignees = assignee.split(",");
|
String userName = (String)execution.getVariable("userName");
|
String[] currentSelectuserName = (String[])execution.getVariable("currentSelectuserName");
|
String userServiceImplClass = WorkflowProperties.getStringProperty("workflow.userService");
|
|
if(userServiceImplClass!=null&&!"".equals(userServiceImplClass)){
|
IWorkflowUserService puService = (IWorkflowUserService) ( Class.forName( userServiceImplClass ).newInstance());
|
if ( (currentSelectuserName != null ) && (currentSelectuserName.length > 0 ) )
|
{
|
String[] users = currentSelectuserName;//puService.getAllUsers2Task(currentSelectuserName, userName);
|
if(users!=null){
|
|
for(String user : users){
|
assignable.addCandidateUser(user);
|
ServerWithLog4j.logger.debug("users = "+ user);
|
}
|
}
|
}
|
else
|
{
|
String[] users = puService.getAllUsers2Task(assignees, userName);
|
if(users!=null){
|
|
for(String user : users){
|
assignable.addCandidateUser(user);
|
ServerWithLog4j.logger.debug("users = "+ user);
|
}
|
}
|
}
|
}
|
|
}
|
|
}
|