1、流程设计时,指定负责人/角色
2、任务监听器,要指定org.fh.controller.act.util.ManagerTaskHandler;则在办理任务时,Activiti会自动传入默认负责人;
以下为监听器的具体实现,主要是指定下一任务代办人:
/** * 说明:指定下一任务待办人 */ @SuppressWarnings("serial") public class ManagerTaskHandler implements TaskListener { @Override public void notify(DelegateTask delegateTask) { Session session = Jurisdiction.getSession(); session.setAttribute("TASKID", delegateTask.getId()); //任务ID session.setAttribute("YAssignee", delegateTask.getAssignee()); //默认待办人(用户ID/角色ID) } }
3、在办理任务后,可手动指定下一任务代办人,否则使用步骤2的默认代办人
String ASSIGNEE_ = pd.getString("ASSIGNEE_"); //下一待办对象 if(Tools.notEmpty(ASSIGNEE_)){ setAssignee(session.getAttribute("TASKID").toString(),ASSIGNEE_); //指定下一任务待办对象 }else{ Object os = session.getAttribute("YAssignee"); if(null != os && !"".equals(os.toString())){ ASSIGNEE_ = os.toString(); //没有指定就是默认流程的待办人 }else{ trySendSms(zmap,pd); //没有任务监听时,默认流程结束,发送站内信给任务发起人 } } zmap.put("ASSIGNEE_",ASSIGNEE_); //用于给待办人发送新任务消息
4、下一代办人,将收到消息,自行查询待办任务后处理;
5、至此,已经将Activiti自带的用户/用户组接管了。无需使用其自带的服务及表;
备注:即时通讯技术,后续会再做笔记。