package com.artfess.activiti.cmd; import org.activiti.engine.impl.cmd.NeedsActiveTaskCmd; import org.activiti.engine.impl.interceptor.CommandContext; import org.activiti.engine.impl.persistence.entity.TaskEntity; /** * 设置用户任务。 *
 * 如果任务执行人就是当前人,则直接返回,不做处理。
 * 
*
 * 构建组:x5-bpmx-activiti
 * 作者:ray
 * 邮箱:zhangyg@jee-soft.cn
 * 日期:2014-9-19-下午12:05:43
 * 版权:广州宏天软件有限公司版权所有
 * 
*/ public class SetAssigneeCmd extends NeedsActiveTaskCmd { /** * serialVersionUID: * * @since 1.0.0 */ private static final long serialVersionUID = 7601625963655262976L; protected String userId; public SetAssigneeCmd(String taskId, String userId) { super(taskId); this.userId = userId; } @Override protected Void execute(CommandContext commandContext, TaskEntity task) { if (userId != null) { if (task.getAssignee() != null && userId.equals(task.getAssignee())) { return null; } task.setAssignee(userId, true, true); } else { task.setAssignee(null); } // Add claim time commandContext.getHistoryManager().recordTaskClaim(taskId); return null; } }