package com.oa.jbpm.handler;
import java.util.Set;
import javax.annotation.Resource;
import org.apache.log4j.spi.LoggerFactory;
import org.jbpm.graph.def.Action;
import org.jbpm.graph.def.ActionHandler;
import org.jbpm.graph.def.Event;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.node.TaskNode;
import org.jbpm.taskmgmt.def.Task;
import org.jbpm.taskmgmt.exe.TaskInstance;
import org.jbpm.taskmgmt.exe.TaskMgmtInstance;
import org.slf4j.Logger;
import com.oa.model.Role;
import com.oa.model.Users;
import com.oa.model.UsersRoles;
import com.oa.service.UserService;
public class DynamicDeployTask extends BeanAutowire implements ActionHandler {
private String roleName;
private UserService userService;
private static Logger logger=org.slf4j.LoggerFactory.getLogger(DynamicDeployTask.class);
public void execute(ExecutionContext arg0) throws Exception {
TaskMgmtInstance taskmagInstance = arg0.getTaskMgmtInstance();
if(roleName==null){
throw new RuntimeException("角色 roleName 不能为空");
}
Role role = userService.getThisRole(roleName);
TaskNode taskNode=(TaskNode) arg0.getNode();
Set tasSet=taskNode.getTasks();
Task task=(Task) tasSet.iterator().next();
// Task task = (Task) ((TaskNode) arg0.getNode()).getTasks().iterator()
// .next();
Set<UsersRoles> usersRoleList = role.getUsersRoles();
for (UsersRoles usersRoles : usersRoleList) {
Users users = usersRoles.getUserId();
System.out.println(users.getAccount());
logger.info("该账户为==============="+users.getAccount());
if(users.getAccount()!=null||users.getAccount().trim()!=""){
TaskInstance taskInstance = taskmagInstance.createTaskInstance(
task, arg0.getToken());
taskInstance.setActorId(users.getAccount());
}
}
}
@Resource
public void setUserService(UserService userService) {
this.userService = userService;
}
}