1.7.3.3. 实现方式

平台提供一个抽象类AbstractWorkflowEvent,具体实现由客开来完成。

public abstract class AbstractWorkflowEvent {
    
    /**
     * 唯一标示,一旦生成,不可变更
     * @return
     */
    public abstract String getId();
    
    /**
     * 事件显示名称
     * @return
     */
    public abstract String getLabel();
    
    /**
     * 返回指定的模版编号
     * @return
     */
    public String getTemplateCode(){return "";};
    
    //发起前事件
    public WorkflowEventResult onBeforeStart(WorkflowEventData data){return null;}
    //发起事件
    public void onStart(WorkflowEventData data){}
    
    //处理前事件
    public WorkflowEventResult onBeforeFinishWorkitem(WorkflowEventData data){return null;}
    //处理事件
    public void onFinishWorkitem(WorkflowEventData data){}
    
    //终止前事件
    public WorkflowEventResult onBeforeStop(WorkflowEventData data){return null;}
    //终止事件
    public void onStop(WorkflowEventData data){}
    
    //回退前事件
    public WorkflowEventResult onBeforeStepBack(WorkflowEventData data){return null;}
    //回退事件
    public void onStepBack(WorkflowEventData data){}
    
    //撤销前事件
    public WorkflowEventResult onBeforeCancel(WorkflowEventData data){return null;}
    //撤销事件
    public void onCancel(WorkflowEventData data){}
    
    //取回前事件
    public WorkflowEventResult onBeforeTakeBack(WorkflowEventData data){return null;}
    //取回事件
    public void onTakeBack(WorkflowEventData data){}
    
    //结束事件
    public void onProcessFinished(WorkflowEventData data){}
}

WorkflowEventData类如下:

public class WorkflowEventData {
    
    private long summaryId;//事件前获取不到
    
    private long affairId;//事件前获取不到
    
    /**
     * 节点绑定的表单ID
     */
    private String form= null;
    
    /**
     * 节点绑定的表单应用ID
     */
    private String formApp= null;
    
    /**
     * 节点绑定的表单操作视图ID
     */
    private String operationName= null;

    /**
     * 业务数据集合(包括跨表)
     */
    private Map<String, Object> businessData= new HashMap<String, Object>();
    
    //setting and getting
}

WorkflowEventResult类如下:

public class WorkflowEventResult {
    
    public WorkflowEventResult(){}
    
    /**
     * @param alertMessage
     */
    public WorkflowEventResult(String alertMessage) {
        this.alertMessage = alertMessage;
    }

    /**
     * 提示信息
     */
    private String alertMessage = "";

    /**
     * @return the alertMessage
     */
    public String getAlertMessage() {
        return alertMessage;
    }

    /**
     * @param alertMessage the alertMessage to set
     */
    public void setAlertMessage(String alertMessage) {
        this.alertMessage = alertMessage;
    }
    
}