applyworkitemcontrol.java

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

JAVA
67
字号
package cn.com.iaspec.workflow.engine.business;

import cn.com.iaspec.workflow.engine.*;
import cn.com.iaspec.workflow.vo.workflow.*;
import com.sunyard.sunflow.client.*;
import com.sunyard.sunflow.engine.context.*;

/**
 * <p>Title:申请工作项类 </p>
 *
 * <p>Description: 深圳市劳动仲裁信息管理系统</p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: 永泰软件工程有限公司</p>
 *
 * @author syj
 * @version 1.0
 */
public class ApplyWorkItemControl{
  /**
   * 申请工作函数
   * @param userinfo UserInfo
   * @param workItemID long
   * @return int
   * @throws ApplyWorkItemException
   */
  public ApplyWorkItemInfo applyWorkItem(UserInfo userInfo,long workItemID)
      throws ApplyWorkItemException{
    SunflowClient sunflow=WorkflowSession.getSunflowClient(userInfo);;
    ApplyWorkItemInfo info=new ApplyWorkItemInfo();
    try{
      WorkItemContext workItem=sunflow.findWorkItem(workItemID);
      info.setActor(workItem.getExecutorID());
      info.setApplyResult(0);
      info.setState(workItem.getState());
      info.setUrl(workItem.getDescription());
      info.setWorkitemId(workItemID);
      info.setWorkitemName(workItem.getWorkItemName());
      if(workItem.getState()==2){
        sunflow.applyWorkItem(workItemID);
        info.setActor(userInfo.getUserId());
        info.setState(4);
        //工作流申请成功
        info.setApplyResult(0);
      }
      else{
        //工作流已经被申请,而且是本人
        if(info.getActor().equals(userInfo.getUserId())){
          info.setApplyResult(1);
        }
        else{ //工作流已经被申请,但不是本人
          info.setApplyResult(2);
        }
      }
    }
    catch(Exception e){
      e.printStackTrace();
      throw new ApplyWorkItemException("申请工作项出现异常。");
    }
    finally{
      WorkflowSession.deleteSunflowClient(userInfo);
    }
    return info;
  }
}

⌨️ 快捷键说明

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