package com.business;
import java.sql.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.Vector;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.JbpmException;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.msg.Message;
import org.jbpm.msg.db.TextMessage;
import org.jbpm.taskmgmt.exe.TaskInstance;
import org.jbpm.taskmgmt.exe.TaskMgmtInstance;
import org.springmodules.workflow.jbpm31.JbpmCallback;
import org.springmodules.workflow.jbpm31.JbpmTemplate;
import com.dao.DaoService;
import com.po.TbApprove;
import com.po.TbBaoxiao;
import com.po.TbBaoxiaoItem;
import com.po.TbUser;
import com.struts.form.ApproveForm;
import com.struts.form.BaixiaoitemForm;
import com.struts.form.BaoxiaoForm;
import com.struts.form.MessageForm;
import com.struts.form.TaskForm;
import com.workflow.util.Constants;
public class BaoxiaoBus {
private DaoService daoService;
private JbpmConfiguration jbpmConfiguration;
public JbpmConfiguration getJbpmConfiguration() {
return jbpmConfiguration;
}
public void setJbpmConfiguration(JbpmConfiguration jbpmConfiguration) {
this.jbpmConfiguration = jbpmConfiguration;
}
public DaoService getDaoService() {
return daoService;
}
public void setDaoService(DaoService daoService) {
this.daoService = daoService;
}
public boolean save(Object obj)
{
BaoxiaoForm form=(BaoxiaoForm) obj;
TbBaoxiao po=new TbBaoxiao();
po.setBaoxiaoTitle(form.getBaoxiaotitle());
po.setBaoxiaoFlag(new Byte("0"));
po.setBaoxiaoMemo(form.getBaoxiaomemo());
po.setBaoxiaoDate(new Date(System.currentTimeMillis()));
String [] item=form.getItems();
String [] money=form.getMoney();
Set baoxiaoitme=new HashSet();
for (int i = 0; i < item.length; i++) {
TbBaoxiaoItem tbi=new TbBaoxiaoItem();
tbi.setItemMoney(money[i]);
tbi.setItemName(item[i]);
tbi.setTbBaoxiao(po);
baoxiaoitme.add(tbi);
}
po.setTbBaoxiaoItems(baoxiaoitme);
TbUser tbuser=daoService.getUserDao().findById(Integer.parseInt(form.getUserid()));
po.setTbUser(tbuser);
boolean flag=daoService.getBaoxiaoDao().save(po);
JbpmContext jbpmContext=jbpmConfiguration.getCurrentJbpmContext();
if(jbpmContext==null)
{
jbpmContext=jbpmConfiguration.createJbpmContext();
}
ProcessDefinition pd=jbpmContext.getGraphSession().findLatestProcessDefinition("baoxiao");
//如pd为空,则可能是未发布流程到数据库中.
ProcessInstance pi=pd.createProcessInstance();
System.out.println("tzh:after createProcessInstance()!");
pi.getContextInstance().setVariable(Constants.ISSUE_USER, form.getUserid());
TaskInstance ti=pi.getTaskMgmtInstance().createStartTaskInstance();
//tzh:创建任务实例后会马上执行流程中的<tast>中的代码.如<task>中的<assignment>.
//也就是说创建任务实例后会把<start-state name="start">中的<task name="填写报销单">任务给执行了.
System.out.println("tzh:after createTaskInstance!");
ti.setActorId(form.getUserid());
ti.setVariable("baoxiaoId", po.getBaoxiaoId().toString());
System.out.println("tzh:before TaskInstance.end(),开始一个流程,并设置一个任务实例!");
ti.end();
//tzh:在ti.end()这一方法中会去执行ManagerAssignment.java中的方法,设置下一次由哪此处理人员处理.
//也就是说调用ti.end()后会把 <task-node name="部门主管审核">中的<task name="主管审核">任务给执行了.
jbpmContext.close();
return flag;
}
public Vector findTaskListByUserId(String userid)
{
JbpmContext jbpmContext=jbpmConfiguration.getCurrentJbpmContext();
if(jbpmContext==null)
{
jbpmContext=jbpmConfiguration.createJbpmContext();
}
List temp=jbpmContext.getTaskMgmtSession().findTaskInstances(userid);
//tzh:本方法只从JBPM_TASKINSTANCE表中查找"actorid_"为"userid"的任务实例.
List gxlist=jbpmContext.getTaskMgmtSession().findPooledTaskInstances(userid);
//tzh:本方法只从JBPM_TASKINSTANCE表中查找"isopen_"等于用户类型的值,且"actorid_"为"null"的任务实例.
temp.addAll(gxlist);
Vector userlist=new Vector();
for (Iterator iter = temp.iterator(); iter.hasNext();) {
TaskInstance el = (TaskInstance) iter.next();
TaskForm form=new TaskForm();
form.setActorId(el.getActorId());
form.setDescription(el.getDescription());
form.setTaskid(String.valueOf(el.getId()));
form.setTaskname(el.getName());
form.setDate(el.getCreate().toLocaleString());
form.setTokenid(String.valueOf(el.getToken().getId()));
userlist.add(form);
}
jbpmContext.close();
return userlist;
}
public Vector findUseTaskListByUserId(String userid)
{
JbpmContext jbpmContext=jbpmConfiguration.getCurrentJbpmContext();
if(jbpmContext==null)
{
jbpmContext=jbpmConfiguration.createJbpmContext();
}
List temp=daoService.getMyJbpmDao().findAllTaskInstanceByUserId(userid);
Vector userlist=new Vector();
for (Iterator iter = temp.iterator(); iter.hasNext();) {
TaskInstance el = (TaskInstance) iter.next();
TaskInstance tt=jbpmContext.getTaskMgmtSession().getTaskInstance(el.getId());
if(!tt.getToken().getProcessInstance().hasEnded()&&el.getName().equals("填写报销单"))
{
TaskForm form=new TaskForm();
form.setActorId(el.getActorId());
form.setDescription(el.getDescription());
form.setTaskid(String.valueOf(el.getId()));
String baoxiaoid=(String) tt.getVariable("baoxiaoId");
TbBaoxiao tb=daoService.getBaoxiaoDao().findById(Integer.parseInt(baoxiaoid));
form.setTaskname(tb.getBaoxiaoTitle());
form.setDate(el.getCreate().toLocaleString());
form.setTokenid(String.valueOf(tt.getToken().getId()));
userlist.add(form);
}
}
jbpmContext.close();
return userlist;
}
public Vector findUserMessageByUsername(String username)
{
JbpmContext jbpmContext=jbpmConfiguration.getCurrentJbpmContext();
if(jbpmContext==null)
{
jbpmContext=jbpmConfiguration.createJbpmContext();
}
Vector mess=new Vector();
List list=jbpmContext.getMessagingSession().findMessages(username);
for (Iterator iter = list.iterator(); iter.hasNext();) {
TextMessage el = (TextMessage) iter.next();
MessageForm form=new MessageForm();
form.setId(String.valueOf(el.getId()));
form.setContext(el.getText());
mess.add(form);
}
return mess;
}
public boolean pullTask(String taskid,String userid)
{
JbpmContext jbpmContext=jbpmConfiguration.getCurrentJbpmContext();
if(jbpmContext==null)
{
jbpmContext=jbpmConfiguration.createJbpmContext();
}
try {
TaskInstance ti=jbpmContext.getTaskInstance(Long.parseLong(taskid));
ti.setActorId(userid);
jbpmContext.close();
return true;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
public Object findBaoxiaoById(String tid)
{
JbpmContext jbpmContext=jbpmConfiguration.getCurrentJbpmContext();
if(jbpmContext==null)
{
jbpmContext=jbpmConfiguration.createJbpmContext();
}
TaskInstance ti=jbpmContext.getTaskInstance(Long.parseLong(tid));
String baoiaoid=(String) ti.getVariable("baoxiaoId");
TbBaoxiao bx=daoService.getBaoxiaoDao().findById(Integer.parseInt(baoiaoid));
BaoxiaoForm form=new BaoxiaoForm();
form.setBaoxiaodate(bx.getBaoxiaoDate().toString());
form.setBaoxiaoflag(bx.getBaoxiaoFlag().toString());
form.setBaoxiaoId(bx.getBaoxiaoId().toString());
form.setBaoxiaomemo(bx.getBaoxiaoMemo());
form.setBaoxiaotitle(bx.getBaoxiaoTitle());
form.setUserid(bx.getTbUser().getUserId().toString());
form.setUsername(bx.getTbUser().getUserName());
String [] items =new String[bx.getTbBaoxiaoItems().size()];
String
没有合适的资源?快使用搜索试试~ 我知道了~
ssh与jbpm3.1.4完整报销例子
共157个文件
class:47个
java:45个
xml:28个
需积分: 9 55 下载量 194 浏览量
2009-08-28
16:21:58
上传
评论
收藏 677KB RAR 举报
温馨提示
ssh与jbpm3.1.4完整报销例子.应为LIB包太大,所以分批上传。
资源推荐
资源详情
资源评论
收起资源包目录
ssh与jbpm3.1.4完整报销例子 (157个子文件)
BaoxiaoBus.class 11KB
ProcessImageTag.class 9KB
TbUserDAO.class 6KB
TbApproveDAO.class 5KB
UploadServlet.class 5KB
TbBaoxiaoDAO.class 5KB
TbBaoxiaoItemDAO.class 5KB
DeployServlet.class 4KB
ProcessResult.class 3KB
BaoxiaoForm.class 3KB
JbpmContextFilter.class 3KB
TbBaoxiao.class 3KB
MangerAction.class 3KB
ProcessDecision.class 3KB
ProcessImageServlet.class 3KB
TasklistAction.class 2KB
HibernateSessionFactory.class 2KB
Demo.class 2KB
ManagerAssignment.class 2KB
PulltaskAction.class 2KB
TbApprove.class 2KB
TbUser.class 2KB
LoginAction.class 2KB
TaskForm.class 2KB
ApproveForm.class 2KB
Datatest.class 2KB
CaiwuAssignment.class 2KB
BossAssignment.class 2KB
MyJbpmDao.class 2KB
DaoService.class 2KB
BaixiaoitemForm.class 2KB
LoginForm.class 2KB
BaoxiaoAction.class 2KB
TbBaoxiaoItem.class 1KB
UserBus.class 1KB
CaiwuProcessAction.class 1KB
UserAssignment.class 1KB
DeployProcessTest.class 1KB
MessageForm.class 1KB
MyJbpmDao$1.class 1KB
ChinaFilter.class 1KB
Test.class 1KB
BusinessService.class 856B
BaoxiaoBus$1.class 781B
Constants.class 565B
ApproveBus.class 555B
Case.class 341B
.classpath 8KB
文档.doc 434KB
包说明.doc 67KB
BaoxiaoBus.java 10KB
ProcessImageTag.java 10KB
TbUserDAO.java 5KB
TbBaoxiaoDAO.java 5KB
TbApproveDAO.java 5KB
TbBaoxiaoItemDAO.java 4KB
JbpmContextFilter.java 3KB
UploadServlet.java 3KB
HibernateSessionFactory.java 3KB
BaoxiaoForm.java 3KB
ApproveForm.java 3KB
TbBaoxiao.java 3KB
DeployServlet.java 2KB
MangerAction.java 2KB
TbApprove.java 2KB
TbUser.java 2KB
TaskForm.java 2KB
TasklistAction.java 2KB
LoginAction.java 2KB
ProcessResult.java 2KB
LoginForm.java 2KB
BaixiaoitemForm.java 2KB
PulltaskAction.java 2KB
ProcessDecision.java 2KB
ProcessImageServlet.java 2KB
MessageForm.java 2KB
Demo.java 1KB
BaoxiaoAction.java 1KB
TbBaoxiaoItem.java 1KB
Datatest.java 1KB
DeployProcessTest.java 1KB
MyJbpmDao.java 1KB
ManagerAssignment.java 1KB
DaoService.java 1011B
Test.java 973B
CaiwuAssignment.java 948B
BossAssignment.java 904B
ChinaFilter.java 887B
UserBus.java 833B
UserAssignment.java 572B
CaiwuProcessAction.java 480B
Case.java 449B
BusinessService.java 415B
ApproveBus.java 405B
Constants.java 346B
processimage.jpg 33KB
processimage.jpg 33KB
processimage.jpg 14KB
processimage.jpg 14KB
processimage.jpg 13KB
共 157 条
- 1
- 2
资源评论
gold198551
- 粉丝: 0
- 资源: 21
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功