seriescaseworkflowthread.java

来自「公司自己开发的工作流引擎」· Java 代码 · 共 79 行

JAVA
79
字号
package cn.com.iaspec.workflow.helper;
import java.util.*;
import org.apache.log4j.*;
import cn.com.iaspec.workflow.engine.ejb.*;
import cn.com.iaspec.workflow.vo.workflow.*;

/**
 *
 * <p>Title:系列案提交处理线程 </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Company: IASPEC Technologies</p>
 * @author xiesonglin
 * @version 1.0
 */
public class SeriesCaseWorkflowThread
    extends Thread{
  private static Logger logger=Logger.getLogger(SeriesCaseWorkflowThread.class);
  private String[] registerIds;
  private List actParticipator;
  private ActivityVariable[] actVar;
  private NextActivityInfo nextActInfo;
  private UserInfo userInfo;

  public SeriesCaseWorkflowThread(NextActivityInfo nextActInfo,
      List actParticipator,ActivityVariable[] actVar,UserInfo userInfo,
      String[] registerIds){
    this.nextActInfo=nextActInfo;
    this.actParticipator=actParticipator;
    this.actVar=actVar;
    this.userInfo=userInfo;
    this.registerIds=registerIds;
  }

  public void run(){
    try{
      logger.info("begin start SeriesCaseWorkflowThread run...");
      processWorkflow();
    }
    catch(Exception ex){
      ex.printStackTrace();
    }
  }

  /**
   *  提交处理工作流
   * @throws Exception
   */
  public void processWorkflow()
      throws Exception{
    long startTime=System.currentTimeMillis();
    logger.info("begin processWorkflow...");
    if(registerIds==null||registerIds.length<1){
      return;
    }
    String processTitle="申诉登记";
    long processDefineId=nextActInfo.getProcDefID();
    WorkflowHelper helper=new WorkflowHelper();
    WorkflowEJBHandle handle=new WorkflowEJBHandle();
    EngineEJB ejb=handle.getEngineEJB();
    //从第二条记录开始循环
    for(int i=1;i<registerIds.length;i++){
      //启动工作流
      ProcessDefine proResult=helper.startPorcessDefine(userInfo,
          processDefineId,processTitle,"");
      //检出工作项
      helper.checkOutWorkItem(userInfo,proResult.getWorkItemID());
      //取得流向信息
      NextActivityInfo nextActInfo=helper.getNextActivityInfo(userInfo,
          proResult.getWorkItemID());
      //提交处理工作流
      ejb.processWorkflow(proResult.getWorkItemID(),registerIds[i],0,actVar,
          actParticipator,nextActInfo,userInfo,"0","0");
    }
    logger.info("Execution processWorkflow time: "+(System.currentTimeMillis()-
        startTime)+" ms.");
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?