baoxiaobus.java

来自「Struts2一个应用示例。主要是加深对Struts2d的一个理解。希望对初学者」· Java 代码 · 共 300 行

JAVA
300
字号
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.dao.TbUserDAO;
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);
		Integer id=Integer.parseInt(form.getUserid());
		TbUserDAO userDAO=daoService.getUserDao();
		TbUser tbuser=userDAO.findById(id);	
		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");
		ProcessInstance pi=pd.createProcessInstance();
		pi.getContextInstance().setVariable(Constants.ISSUE_USER, form.getUserid());
		TaskInstance ti=pi.getTaskMgmtInstance().createStartTaskInstance();
		ti.setActorId(form.getUserid());
		ti.setVariable("baoxiaoId", po.getBaoxiaoId().toString());
		ti.end();
		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);
		List gxlist=jbpmContext.getTaskMgmtSession().findPooledTaskInstances(userid);
		
		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 []money=new String[bx.getTbBaoxiaoItems().size()];
		int i=0;
		int j=0;
		Vector baoxiaovc=new Vector();
		for (Iterator iter = bx.getTbBaoxiaoItems().iterator(); iter.hasNext();) {
			TbBaoxiaoItem el = (TbBaoxiaoItem) iter.next();
			BaixiaoitemForm biform=new BaixiaoitemForm();
			biform.setItemiame(el.getItemName());
			biform.setItemmoney(el.getItemMoney());
			baoxiaovc.add(biform);
			items[i++]=el.getItemName();
			money[j++]=el.getItemMoney();
		}
		form.setItems(items);
		form.setMoney(money);
		form.setBaoxiaoitem(baoxiaovc);
		jbpmContext.close();
		return form;
	}
	
	public boolean audit(Object obj,String tid)
	{
		
			ApproveForm form=(ApproveForm) obj;
			TbApprove approve=new TbApprove();
			approve.setApproveDate(new Date(System.currentTimeMillis()));
			approve.setApproveMemo(form.getMemo());
			
			String result="";
			if(form.getResult().equals("1"))
			{
				result="主管同意";
			}
			else if(form.getResult().equals("2"))
			{
				result="主管不同意";
			}
			else
			{
				result="要求修改";
			}
			System.out.println("============================"+result);
			approve.setApproveResult(result);
			TbBaoxiao baoxiao=daoService.getBaoxiaoDao().findById(Integer.parseInt(form.getBaoxiaoId()));
			approve.setTbBaoxiao(baoxiao);
			TbUser user=daoService.getUserDao().findById(Integer.parseInt(form.getUserid()));
			approve.setTbUser(user);
			daoService.getApproveDao().save(approve);
			JbpmContext jbpmContext=jbpmConfiguration.getCurrentJbpmContext();
			if(jbpmContext==null)
			{
				jbpmContext=jbpmConfiguration.createJbpmContext();
			}
			try {
			TaskInstance ti=jbpmContext.getTaskMgmtSession().getTaskInstance(Long.parseLong(tid));
			if(result=="主管同意"||result=="主管不同意")
			{
				ti.end("主管同意");
			}
			else
			{
				ti.end("要求修改");
			}
			
			return true;
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		finally{
			jbpmContext.close();
		}
		return false;
	}
	
	public List findTaskInstance()
	{
		 Object obj=new JbpmTemplate().execute(new JbpmCallback(){
			public Object doInJbpm(JbpmContext jbpmContext) throws JbpmException {
				
				return null;
			}
		});
		return null;
	}
}

⌨️ 快捷键说明

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