⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 billassignment_enter_task.java

📁 这是一个jbpm的高级应用,是一个oa工作流的系统,里面用到了spring,hibernate技术等.实为学习jbpm的好资料!
💻 JAVA
字号:
package com.xiangfeng.jbpm.ActionHandler;

import java.util.Iterator;
import java.util.List;

import org.hibernate.Session;
import org.jbpm.graph.def.ActionHandler;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.taskmgmt.exe.TaskInstance;

import com.xiangfeng.model.Bill;
import com.xiangfeng.util.hibernateUtil.HibernateUtil;

public class BillAssignment_enter_task implements ActionHandler{
	
	public void execute(ExecutionContext ctx) throws Exception {
		System.out.println("BillAssignment_enter_task---- 进入------------ 代理客服 执行任务  判断订单类型  ");
		
		System.out.println("-------------当前节点为  -----"+ctx.getProcessInstance().getRootToken().getNode().getName());
		//System.out.println("触发了BillAssignment----");
		
		
		
		//String billNO= ctx.getTaskInstance().getProcessInstance().getKey();
		String billIid=(String)ctx.getContextInstance().getVariable("billIid");
		//String username=(String)ctx.getContextInstance().getVariable("username");
	
		//System.out.println("username is "+username);
		
	//	Bill_Trace bt = new Bill_Trace();
		//bt.setBActive(true);
	//	bt.setCBillNo(billNO);
		
		//bt.setTCreate(new Date());
	//	bt.setTBegin(new Date());
		//bt.setTActor(username);
		Bill bill =null;
		Session session = HibernateUtil.getSession();
		//ctx.getJbpmContext().setSession(session);
		try {
			//session.beginTransaction();
			bill=(Bill)session.load(Bill.class, Integer.parseInt(billIid));
		//session.getTransaction().commit();
			List tasks=	ctx.getJbpmContext().getTaskMgmtSession().findTaskInstances("billadmin");
		
			System.out.println(" ---> my Processinstance" + ctx.getProcessInstance().getKey()) ;
			
			System.out.println("tasks.size()  is "+tasks.size());
			//TaskInstance taskInstance = (TaskInstance)tasks.get(0);
			for (Iterator iter = tasks.iterator(); iter.hasNext();) {
				
				TaskInstance taskInstance = (TaskInstance) iter.next();
				ProcessInstance instance =  taskInstance.getProcessInstance();
				System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$instance.getKey is "+instance.getKey());
				if(bill.getCproperty1().equals("直接提交商家")){
					System.out.println("流程走向------------直接提交商家 ");
				    taskInstance.getToken().signal("直接提交商家");
					//taskInstance.end("直接提交商家");
					//instance.signal("直接提交商家");
				}else if(bill.getCproperty1().equals("转交客服处理")){
					System.out.println("流程走向------------转交客服处理) ");
					taskInstance.getToken().signal("转交客服处理");
					//taskInstance.end("转交客服处理");
					//instance.signal("转交客服处理");
				}
				
			}
			//此任务是document001正在等待他审批
		//	ProcessInstance instance =  taskInstance.getProcessInstance();
	
		
	/*	
		if(bill.getCProperty1().equals("直接提交商家")){
			System.out.println("触发ctx.leaveNode(直接提交商家) ");
		//Transition t =new Transition();
		
			ctx.leaveNode("直接提交商家");
			//ctx.getProcessInstance().signal("直接提交商家");
			//instance.signal("直接提交商家");
		}else if(bill.getCProperty1().equals("转交客服处理")){
			System.out.println("触发ctx.leaveNode(转交客服处理) ");
			ctx.leaveNode("转交客服处理");
			//ctx.getProcessInstance().signal("转交客服处理");
		}*/
	
		
		} catch (Exception e) {

			//session.getTransaction().rollback();
			e.printStackTrace();
		} finally {
			HibernateUtil.closeSession(session);
		}	
		
		
	}
}

⌨️ 快捷键说明

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