package com.mossle.humantask.listener;
import javax.annotation.Resource;
import com.mossle.api.delegate.DelegateConnector;
import com.mossle.humantask.persistence.domain.TaskInfo;
public class DelegateHumanTaskListener implements HumanTaskListener {
private DelegateConnector delegateConnector;
@Override
public void onCreate(TaskInfo taskInfo) {
// 自动委托
String humanTaskId = Long.toString(taskInfo.getId());
String assignee = taskInfo.getAssignee();
String processDefinitionId = taskInfo.getProcessDefinitionId();
String tenantId = taskInfo.getTenantId();
String attorney = delegateConnector.findAttorney(assignee,
processDefinitionId, taskInfo.getCode(), tenantId);
if (attorney != null) {
taskInfo.setOwner(assignee);
taskInfo.setAssignee(attorney);
// new DelegateTaskCmd(delegateTask.getId(), attorney).execute(Context
// .getCommandContext());
delegateConnector.recordDelegate(assignee, attorney, humanTaskId,
tenantId);
}
}
@Override
public void onComplete(TaskInfo taskInfo) throws Exception {
}
@Resource
public void setDelegateConnector(DelegateConnector delegateConnector) {
this.delegateConnector = delegateConnector;
}
}