engineejbbean.java
来自「公司自己开发的工作流引擎」· Java 代码 · 共 441 行
JAVA
441 行
package cn.com.iaspec.workflow.engine.ejb;
import java.util.*;
import javax.ejb.*;
import org.apache.log4j.*;
import cn.com.iaspec.workflow.data.*;
import cn.com.iaspec.workflow.engine.*;
import cn.com.iaspec.workflow.engine.business.*;
import cn.com.iaspec.workflow.vo.workflow.*;
import cn.com.iaspec.workflow.engine.dao.AgenDAO;
public class EngineEJBBean
implements SessionBean{
SessionContext sessionContext;
private static Logger logger=Logger.getLogger(EngineEJBBean.class);
public void ejbCreate()
throws CreateException{
}
public void ejbRemove(){
}
public void ejbActivate(){
}
public void ejbPassivate(){
}
public void setSessionContext(SessionContext sessionContext){
this.sessionContext=sessionContext;
this.sessionContext=sessionContext;
}
/**
* 根据流程ID取得流程名称(返回ProcessDefine对象列表)
* @param userinfo UserInfo
* @throws Exception
* @
* @return ArrayList
*/
public ArrayList getStartableProcessList(UserInfo userinfo){
ArrayList list=null;
try{
list=new EngineControl().getStartableProcessList(userinfo);
logger.info("调用---EngineControl--类getStartableProcessList方法成功----");
}
catch(Exception e){
e.printStackTrace();
logger.debug("调用---EngineControl--类getStartableProcessList方法失败----");
}
if(list!=null){
return list;
}
return null;
}
/**
* 通过取得由流程类别代码指定的可启动流程(返回ProcessDefine对象列表)
* @param userinfo UserInfo
* @param processTypeCode String
* @throws Exception
* @
* @return ArrayList
*/
public ArrayList getStartableProcessListByType(UserInfo userinfo,
String processTypeCode){
System.out.println("----------开始调用getStartableProcessListByType方法!");
ArrayList list=null;
try{
list=new EngineControl().getStartableProcessListByType(userinfo,
processTypeCode);
logger.info("调用---EngineControl--类getStartableProcessListByType方法成功----");
}
catch(Exception e){
e.printStackTrace();
logger.debug("调用---EngineControl--类getStartableProcessListByType方法失败----");
}
if(list!=null){
return list;
}
return null;
}
/**
* 创建启动流程实例(并返回状态为1的工作项ID)
* @param userinfo UserInfo
* @param processDefineId String
* @param title String
* @param desc String
* @throws CreateInstanceException
* @throws Exception
* @return long
*/
public ProcessDefine startPorcessDefine(UserInfo userinfo,
long processDefineId,String title,String desc)
{
ProcessDefine processDefine=null;
try{
processDefine=new EngineControl().startPorcessDefine(userinfo,
processDefineId,title,desc);
logger.info("调用---EngineControl--类startPorcessDefine方法----创建流程实例");
}
catch(Exception e){
e.printStackTrace();
logger.info("----创建流程实例失败-------");
//throw new CreateInstanceException("----创建流程实例异常-----");
}
return processDefine;
}
/**
* 根据工作流实例ID返回案件信息Task对象的集合
* @param userinfo UserInfo
* @param querytask QueryTask
* @param pageinfo PageInfo
* @return ArrayList
*/
public ArrayList getTaskListByUser(UserInfo userinfo){
ArrayList arraylist=new ArrayList();
try{
arraylist=new EngineControl().getTaskListByUser(userinfo);
logger.info("----返回案件信息Task对象的集合成功-------");
}
catch(Exception e){
e.printStackTrace();
logger.info("----返回案件信息Task对象的集合失败-------");
}
return arraylist;
}
/**
* 返回活动节点的对象NextActivityInfod对象(根据userinfo和工作项的ID:workItemID查询)
* @param userinfo UserInfo
* @param workItemID long
* @return NextActivityInfo
*/
public NextActivityInfo getNextActivityInfo(UserInfo userinfo,long workItemID){
NextActivityInfo nextActioninfo=new NextActivityInfo();
try{
nextActioninfo=new ActivityTransferControl().getNextActivityInfo(userinfo,
workItemID);
logger.info("---- 返回活动节点的对象NextActivityInfod对象成功-------");
}
catch(Exception e){
e.printStackTrace();
logger.info("----返回活动节点的对象NextActivityInfod对象失败-------");
}
return nextActioninfo;
}
/**
*设置任务迁移的函数变量
* @param userinfo UserInfo
* @param workitemID long
* @param attributeName String
* @param value String
* @return int
*/
public long modifyWorkItemRelevantData(UserInfo usernfo,long workitemID,
String attributeName,String value){
try{
//workitemID=new ActivityFlowControl().modifyWorkItemRelevantData(userinfo,workitemID,attributeName, value);
logger.info("---- 选择流程的流向成功-------");
return workitemID;
}
catch(Exception e){
e.printStackTrace();
logger.info("---- 选择流程的流向失败-------");
}
return 0;
}
/**
* 启动辅助子流程
* @param userinfo UserInfo
* @param proDefName String
* @return ProcessDefine
*/
public ProcessDefine startAssistantProcessDefinition(UserInfo userinfo,
java.lang.String proDefName){
ProcessDefine processDefine=null;
try{
processDefine=new AssistantWorkFlowControl().
startAssistantProcessDefinition(userinfo,proDefName);
}
catch(Exception e){
e.printStackTrace();
}
return processDefine;
}
/**
* 取得工作项的相关变信息
* @param workItemId int
* @param userInfo UserInfo
* @return ActivtyVariable[]
*/
public ActivityVariable[] getWorkItemAllVariableValue(long workItemId,
UserInfo userInfo)
throws Exception{
GetWorkItemVariable gwv=new GetWorkItemVariable();
return gwv.getWorkItemAllVariableValue(workItemId,userInfo);
}
/**
* 工作流提交处理
* @param workItemId 工作项id
* @param registerId String 申诉登记号
* @param projectId long 项目id
* @param actVar ActivityVariable 活动变量
* @param actParticipator Activity 活动参与者
* @param nextActInfo NextActivityInfo 活动信息
* @param userInfo UserInfo 当前用户信息
* @param String parentProInstId 父流程实例id(辅助子流程类型使用)
* @param String aidSubflowTag 是否辅助子流程类型,0 否,1是
*/
public void processWorkflow(long workItemId,String registerId,long projectId,
ActivityVariable[] actVar,List actParticipator,
NextActivityInfo nextActInfo,UserInfo userInfo,String parentProInstId,
String aidSubflowTag)
throws Exception{
ProcessWorkFlow proWorkflow=new ProcessWorkFlow(userInfo,parentProInstId,
aidSubflowTag,projectId);
proWorkflow.processWorkflow(workItemId,registerId,actVar,actParticipator,
nextActInfo);
}
/**
* 检出的工作项
* @param userInfo UserInfo
* @param workItemId long
* @throws Exception
*/
public void checkOutWorkItem(UserInfo userInfo,long workItemId)
throws Exception{
EngineControl engine=new EngineControl();
engine.checkOutWorkItem(userInfo,workItemId);
}
/**
* 流程记录查询
* @param userinfo UserInfo
* @param registerNO String
* @return ArrayList
* @throws Exception
*/
public ArrayList QueryWorkflowLogInfo(UserInfo userinfo,String registerNO)
throws Exception{
ArrayList list=null;
WorkflowLogInfoControl workflowloginfo=new WorkflowLogInfoControl();
try{
list=workflowloginfo.QueryWorkflowLogInfo(userinfo,registerNO);
}
catch(Exception e){
e.printStackTrace();
}
return list;
}
/**
* 批量分案处理
* @param list List 需要批量处理的案件信息list,由BatchCaseInfo组成
* @param nextActName 下一活动的名称
*/
public void processBatchCase(List list,String nextActName,UserInfo userInfo)
throws Exception{
ProcessBatchCase process=new ProcessBatchCase(userInfo);
process.processBatchCaseByNextActName(list,nextActName);
}
/**
*申请工作
* @param userinfo UserInfo
* @param workItemID long
* @return ApplyWorkItemInfo
* @throws Exception
*/
public ApplyWorkItemInfo applyWorkItem(UserInfo userInfo,long workItemID)
throws Exception{
ApplyWorkItemControl workItemControl=new ApplyWorkItemControl();
return workItemControl.applyWorkItem(userInfo,workItemID);
}
/**
* 取得待办任务个数
* @param proInstanceID long
* @return Task
* @throws GetTaskBaseInfoException
*/
public long getTaskListCount(UserInfo userInfo)
throws Exception{
return new EngineControl().getTaskListCount(userInfo);
}
public void newAndSaveWorkflow(WorkflowProcessInfo wfProInfo,
String businessId)
throws Exception{
ProcessWorkFlow proWorkflow=new ProcessWorkFlow(wfProInfo.getUserInfo(),
wfProInfo.getParentProInstId(),wfProInfo.getAidSubflowTag(),
Long.parseLong(wfProInfo.getProjectId()));
proWorkflow.newAndSaveWorkflow(wfProInfo.getUserInfo(),
Long.parseLong(wfProInfo.getWorkitemId()),businessId);
}
public List queryCaseTask(TaskQueryCondition condition,
cn.com.iaspec.workflow.data.PageInfo page)
throws Exception{
// TaskCaseQueryControl control=new TaskCaseQueryControl();
// return control.queryCaseTask(condition,page);
return null;
}
public StartedProcessInfo createAndStartProcess(long processDefineId,
String businessName,String businessType,UserInfo userInfo,
ArrayList prcesseVars)
throws Exception{
StartProcessControl control=new StartProcessControl();
return control.createAndStartProcess(processDefineId,businessName,
businessType,userInfo,prcesseVars);
}
public StartedProcessInfo createAndStartProcess(String processDefineName,
String businessName,String businessType,UserInfo userInfo,
ArrayList prcesseVars)
throws Exception{
StartProcessControl control=new StartProcessControl();
return control.createAndStartProcess(processDefineName,businessName,
businessType,userInfo,prcesseVars);
}
public void updateProcessTitle(String title,long processInstanceId)
throws Exception{
PublicProjectInfoControl control=new PublicProjectInfoControl();
control.updateProcessTitle(title,processInstanceId);
}
public void updatePublicProjectTitle(String title,long projectId)
throws Exception{
PublicProjectInfoControl control=new PublicProjectInfoControl();
control.updatePublicProjectTitle(title,projectId);
}
/**
* 检查工作项是否有转寄权限
*
* @param workItemId long 工作项ID
* @return boolean
* @throws Exception
*/
public boolean getWorkItemHasForwardPrivilege(long workItemId)
throws Exception{
ActivityControlService service=new ActivityControlService();
return service.getWorkItemHasForwardPrivilege(workItemId);
}
/**
* 转寄工作项
*
* @param workitemId long 工作项ID
* @param newExecutor String 接受工作项人员ID
* @param userInfo UserInfo
* @throws Exception
*/
public void reassignWorkitem(long workitemId,String newExecutor,UserInfo userInfo)
throws Exception{
EngineControl control = new EngineControl();
control.reassignWorkitem(workitemId,newExecutor,userInfo);
}
/**
* 查询所有有效流程定义
*
* @return List
* @throws Exception
*/
public List getAllProcess()throws Exception{
EngineControl control = new EngineControl();
return control.getAllProcesses();
}
/**
* 查询活动是否有签收变量
*
* @param actId long 活动ID
* @return int 若有定义,则返回该变量的值,若无定义则返回-1
* @throws Exception
*/
public int getSignInVar(long actId)throws Exception{
ActivityControlService control = new ActivityControlService();
return control.getSignInVar(actId);
}
/**
* 人工修改工作项的属性值
*/
public void updateWorkitemReleData(long workitemId,ActivityVariable[] vars,UserInfo userInfo)
throws Exception{
GetWorkItemVariable workitemVar = new GetWorkItemVariable();
workitemVar.updateWorkitemReleData(workitemId,vars,userInfo);
}
/**
* 配置iWorkflow使用的引擎连接信息
*
* @param hostName String 引擎IP
* @param portName String 引擎端口
* @param dbType String iWorkflow使用的数据库类型
* @throws Exception
*/
public void setEngineConnectInfo(String hostName,String portName,String dbType)
throws Exception{
EngineControl engineControl = new EngineControl();
engineControl.setEngineConnectInfo(hostName,portName,dbType);
}
/**
* 取得活动的代理信息
* @param activitys 活动uid数组
* @return HashMap
*/
public HashMap getActivityAgenInfo(String[] activityUids)
throws Exception{
AgenDAO dao=new AgenDAO();
return dao.getActivityAgenInfo(activityUids);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?