package com.mossle.bpm.listener; import java.text.SimpleDateFormat; import java.util.Date; import javax.annotation.Resource; import com.mossle.api.user.UserConnector; import com.mossle.bpm.persistence.domain.BpmSequence; import com.mossle.bpm.persistence.manager.BpmSequenceManager; import org.activiti.engine.delegate.event.ActivitiEvent; import org.activiti.engine.delegate.event.ActivitiEventListener; import org.activiti.engine.delegate.event.ActivitiSequenceFlowTakenEvent; import org.activiti.engine.delegate.event.BaseEntityEventListener; import org.activiti.engine.delegate.event.impl.ActivitiEntityEventImpl; import org.activiti.engine.impl.cmd.GetDeploymentProcessDefinitionCmd; import org.activiti.engine.impl.context.Context; import org.activiti.engine.impl.identity.Authentication; import org.activiti.engine.impl.interceptor.CommandContext; import org.activiti.engine.impl.persistence.entity.ExecutionEntity; import org.activiti.engine.impl.persistence.entity.HistoricProcessInstanceEntity; import org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity; public class SequenceFlowEventListener implements ActivitiEventListener { private BpmSequenceManager bpmSequenceManager; public void onEvent(ActivitiEvent event) { if (!(event instanceof ActivitiSequenceFlowTakenEvent)) { return; } ActivitiSequenceFlowTakenEvent activitiSequenceFlowTakenEvent = (ActivitiSequenceFlowTakenEvent) event; String code = activitiSequenceFlowTakenEvent.getId(); String sourceCode = activitiSequenceFlowTakenEvent .getSourceActivityId(); String targetCode = activitiSequenceFlowTakenEvent .getTargetActivityId(); String processInstanceId = activitiSequenceFlowTakenEvent .getProcessInstanceId(); BpmSequence bpmSequence = new BpmSequence(); bpmSequence.setCode(code); bpmSequence.setSourceCode(sourceCode); bpmSequence.setTargetCode(targetCode); bpmSequence.setProcessInstanceId(processInstanceId); bpmSequence.setCreateTime(new Date()); bpmSequenceManager.save(bpmSequence); } public boolean isFailOnException() { return false; } @Resource public void setBpmSequenceManager(BpmSequenceManager bpmSequenceManager) { this.bpmSequenceManager = bpmSequenceManager; } }