package com.zwl.action;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.zip.ZipInputStream;
import javax.servlet.ServletOutputStream;
import org.apache.struts2.ServletActionContext;
import org.jbpm.api.ExecutionService;
import org.jbpm.api.ProcessDefinition;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.RepositoryService;
import org.jbpm.api.TaskService;
import org.jbpm.api.model.ActivityCoordinates;
import org.jbpm.api.task.Task;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.zwl.vo.ProcessVo;
public class JbpmAction extends ActionSupport
{
private ProcessEngine processEngine;
private RepositoryService repositoryService;
private ExecutionService executionService;
private TaskService taskService ;
private String id;
private List<ProcessDefinition> processDefinitionList;
private List<ProcessInstance> processInstanceList;
private List<Task> taskList;
private ActivityCoordinates ac;
private ProcessVo processVo;
private Map<String, Object> map;
private String result;
public void setId(String id)
{
this.id = id;
}
public String getId()
{
return id;
}
public ActivityCoordinates getAc()
{
return ac;
}
public List<ProcessInstance> getProcessInstanceList()
{
return processInstanceList;
}
public List<Task> getTaskList()
{
return taskList;
}
private void init()
{
repositoryService=processEngine.getRepositoryService();
executionService=processEngine.getExecutionService();
taskService=processEngine.getTaskService();
}
public List<ProcessDefinition> getProcessDefinitionList()
{
return processDefinitionList;
}
private String userName;
public String getUserName()
{
return userName;
}
public void setUserName(String userName)
{
this.userName = userName;
}
@SuppressWarnings("unchecked")
public String login()
{
Map map=ActionContext.getContext().getSession();
map.put("user", userName);
return SUCCESS;
}
/**
* 加载首页
* @return
*/
public String loadIndexPage()
{
init();
processDefinitionList=repositoryService.createProcessDefinitionQuery().list();
processInstanceList=executionService.createProcessInstanceQuery().list();
//这里模拟不同的角色登陆系统,会接到不同的待办任务
String manager="zwllxs1,zwllxs2,zwllxs3,zwllxs4";
String boss="zhangweilin,zhangweilin2,zhangweilin3,zhangweilin4";
String roleName="";//要按此名去查找它所在的节点
String name=getLoginedUserName();
//经理登陆
if(manager.contains(name))
{
roleName="manager";
}
//老板登陆
else if(boss.contains(name))
{
roleName="boss";
}
//普通用户
else
{
roleName=name;
}
System.out.println("roleName: "+roleName);
taskList=taskService.findPersonalTasks(roleName);
System.out.println("taskList: "+taskList);
return SUCCESS;
}
/**
* 部署
* @return
*/
public String deploy()
{
System.out.println("部署");
init();
// String did=repositoryService.createDeployment().addResourceFromClasspath("leave2.jpdl.xml").deploy();
ZipInputStream zis = new ZipInputStream(this.getClass().getResourceAsStream("/leave2.zip"));
//发起流程,仅仅就是预定义任务,即在系统中创建一个流程,这是全局的,与具体的登陆 用户无关。然后,在启动流程时,才与登陆用户关联起来
String did=repositoryService.createDeployment().addResourcesFromZipInputStream(zis).deploy();
//使用zip方式
// ZipInputStream zis = new ZipInputStream(this.getClass().getResourceAsStream("/leave2.zip"));
// //发起流程,仅仅就是预定义任务,即在系统中创建一个流程,这是全局的,与具体的登陆 用户无关。然后,在启动流程时,才与登陆用户关联起来
// String did=repositoryService.createDeployment().addResourcesFromZipInputStream(zis).deploy();
System.out.println("did: "+did);
return SUCCESS;
}
/**
* 启动
* @return
*/
@SuppressWarnings("unchecked")
public String start()
{
init();
Map map = new HashMap();
//在启动任务时,等于就是一个用户要请假了,那么,此时,要把流程信息关联到此用户上,在开始的下一个节点(也就是第一个任务节点),是指派给。所以用户名要与其对应的变量关联起来
map.put("owner", getLoginedUserName());
System.out.println("id_: "+id);
ProcessInstance processInstance=executionService.startProcessInstanceById(id, map);
System.out.println("启动时processInstance: "+processInstance.getId());
return SUCCESS;
}
/**
*
* @return
*/
public String manager()
{
init();
Task task = taskService.getTask(id);
String taskId=task.getId();
Set<String> strSet=new HashSet<String>();
strSet.add("owner");
strSet.add("day");
strSet.add("reason");
strSet.add("name");
// taskService.getVariable(taskId, "owner");
map=taskService.getVariables(taskId, strSet);
System.out.println("map: "+map);
return SUCCESS;
}
/**
* 老板来了
* @return
*/
public String boss()
{
init();
Task task = taskService.getTask(id);
String taskId=task.getId();
Set<String> strSet=new HashSet<String>();
strSet.add("owner");
strSet.add("day");
strSet.add("reason");
strSet.add("name");
strSet.add("sex");
strSet.add("age");
// taskService.getVariable(taskId, "owner");
map=taskService.getVariables(taskId, strSet);
return SUCCESS;
}
/**
* 老板处理
* @return
*/
public String submitBoss()
{
init();
taskService.completeTask(id);
return SUCCESS;
}
/**
* 经理提交
* @return
*/
public String submitManager()
{
init();
taskService.completeTask(id, result);
return SUCCESS;
}
/**
* 移除
* @return
*/
public String remove()
{
init();
repositoryService.deleteDeploymentCascade(id);
return SUCCESS;
}
/**
* 显示
* @return
*/
public String view()
{
init();
//通过id查到流程实例
ProcessInstance processInstance = executionService.findProcessInstanceById(id);
Set<String> activityNames = processInstance.findActiveActivityNames();
//Coordinates为相依衣物
ac = repositoryService.getActivityCoordinates(processInstance.getProcessDefinitionId(),activityNames.iterator().next());
return SUCCESS;
}
/**
* 显示图片
* @throws IOException
*/
public void pic() throws IOException
{
init();
ProcessInstance processInstance = executionService.findProcessInstanceById(id);
String processDefinitionId = processInstance.getProcessDefinitionId();
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefinitionId).uniqueResult();
没有合适的资源?快使用搜索试试~ 我知道了~
jbpm4.4+ssh2+sql server2000带jar包
共261个文件
svn-base:74个
jar:62个
entries:23个
4星 · 超过85%的资源 需积分: 9 60 下载量 101 浏览量
2011-08-04
14:25:30
上传
评论 1
收藏 19.86MB RAR 举报
温馨提示
jbpm4.4+ssh2+sql server2000带jar包完整请假流程,可以直接运行
资源推荐
资源详情
资源评论
收起资源包目录
jbpm4.4+ssh2+sql server2000带jar包 (261个子文件)
all-wcprops 2KB
all-wcprops 2KB
all-wcprops 852B
all-wcprops 713B
all-wcprops 713B
all-wcprops 709B
all-wcprops 645B
all-wcprops 619B
all-wcprops 388B
all-wcprops 250B
all-wcprops 250B
all-wcprops 232B
all-wcprops 232B
all-wcprops 224B
all-wcprops 222B
all-wcprops 222B
all-wcprops 220B
all-wcprops 210B
all-wcprops 93B
all-wcprops 93B
all-wcprops 89B
all-wcprops 89B
all-wcprops 84B
JbpmAction.class 10KB
ProcessVo.class 1KB
SysInterceptor.class 1KB
.classpath 6KB
org.eclipse.wst.jsdt.ui.superType.container 49B
JBPM4.4与SSH2之整合.doc 43KB
entries 2KB
entries 2KB
entries 1KB
entries 865B
entries 853B
entries 849B
entries 845B
entries 830B
entries 697B
entries 376B
entries 371B
entries 371B
entries 370B
entries 364B
entries 364B
entries 357B
entries 357B
entries 355B
entries 269B
entries 244B
entries 244B
entries 210B
entries 210B
spring.jar 2.81MB
hibernate3.jar 2.64MB
struts2-core-2.0.14.jar 2.22MB
aspectjweaver.jar 1.47MB
jbpm.jar 1.06MB
freemarker-2.3.8.jar 784KB
jxl.jar 692KB
hsqldb.jar 629KB
commons-collections-3.1.jar 546KB
dwr.jar 478KB
javassist-3.4.GA.jar 460KB
xwork-2.0.7.jar 449KB
mysql-connector-java-3.1.13-bin.jar 446KB
mail.jar 437KB
antlr-2.7.6.jar 433KB
standard.jar 384KB
log4j-1.2.15.jar 383KB
hibernate-cglib-repack-2.1_3.jar 377KB
cglib-nodep-2.1_3.jar 317KB
dom4j-1.6.1.jar 307KB
hibernate-annotations.jar 273KB
commons-lang.jar 237KB
junit-4.8.2.jar 232KB
jaxen-1.1-beta-7.jar 222KB
plexus-container-default-1.0-alpha-10.jar 214KB
ehcache-1.2.3.jar 203KB
commons-beanutils-1.7.0.jar 184KB
plexus-utils-1.2.jar 169KB
ognl-2.6.11.jar 164KB
urlrewrite-2.6.0.jar 145KB
json-lib-2.2.2-jdk15.jar 141KB
commons-digester-1.8.jar 140KB
sitemesh-2.2.1.jar 130KB
commons-dbcp.jar 119KB
commons-validator-1.3.0.jar 117KB
hibernate-entitymanager.jar 116KB
aspectjrt.jar 112KB
xml-apis-1.0.b2.jar 107KB
commons-chain-1.1.jar 88KB
ezmorph-1.0.4.jar 84KB
commons-io.jar 82KB
hamcrest-library-1.2.jar 77KB
hibernate-commons-annotations.jar 65KB
hamcrest-core-1.2.jar 64KB
oro-2.0.8.jar 64KB
commons-pool.jar 61KB
commons-fileupload-1.2.1.jar 56KB
commons-fileupload.jar 52KB
共 261 条
- 1
- 2
- 3
dcm830324
- 粉丝: 2
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页