- 浏览: 586045 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
18813188509:
请教,怎么在标题或者表头的前面显示导出报表的时间、数据数量…… ...
JeeSite的Excel导入、导出、支持大数据量,使用annotation最小化配置 -
u010199866:
2018-06-07 15:42:44 [com.cj ...
实现MyBatis Mapper XML文件增量动态刷新,自动加载,热加载,热部署 -
ccav1024:
大神好,下了您的代码,项目启动访问后,系统设置--机构用户-- ...
JeeSite 4.0 规划(二) -
juxiaojun114:
jeesite 使用idea导入开发,启动tomcat后为啥看 ...
实现MyBatis Mapper XML文件增量动态刷新,自动加载,热加载,热部署 -
aaddsfdsfsdfs:
真心给个赞,可以的,忒提高开发效率了,配合自己写的通用后台框架 ...
实现MyBatis Mapper XML文件增量动态刷新,自动加载,热加载,热部署
这是很早写工作流时写的一个方法,今天正好整理下资料,顺便共享下吧。
/** * get all the task instances for a given actor. type 1:未接收;2:办理中;3:已办结;4:全部工作 */ public List<TaskInstance> findTaskInstances(String[] actorIds, String type) { //结果1 List result1 = null; try { String hql = ""; if ("1".equals(type)) {// 1:未接收 hql = "select distinct ti " + "from org.jbpm.taskmgmt.exe.TaskInstance as ti " + "where ti.actorId in (:actorIds)" + " and ti.isSuspended <> 1" + " and ti.isOpen = 1" + " and ti.start is null" + " and ti.end is null" + " order by ti.id desc"; } else if ("2".equals(type)) {// 2:办理中 hql = "select distinct ti " + "from org.jbpm.taskmgmt.exe.TaskInstance as ti " + "where ti.actorId in (:actorIds)" + " and ti.isSuspended <> 1" + " and ti.isOpen = 1" + " and ti.start is not null" + " and ti.end is null" + " order by ti.id desc"; } else if ("3".equals(type)) {// 3:已办结 hql = "select distinct ti " + "from org.jbpm.taskmgmt.exe.TaskInstance as ti " + "where ti.id in (" + " select max(t.id) from org.jbpm.taskmgmt.exe.TaskInstance as t" + " where t.actorId in (:actorIds) and t.isOpen <> 1" + " and t.start is not null and t.end is not null group by t.processInstance.id)" + " order by ti.id desc"; } else {// 4:全部工作 hql = "select distinct ti " + "from org.jbpm.taskmgmt.exe.TaskInstance as ti " + "where ti.id in (" + " select max(t.id) from org.jbpm.taskmgmt.exe.TaskInstance as t" + " where t.actorId in (:actorIds) group by t.processInstance.id)" + " order by ti.id desc"; } Query query = session.createQuery(hql); query.setParameterList("actorIds", actorIds); result1 = query.list(); } catch (Exception e) { log.error(e); jbpmSession.handleException(); throw new JbpmException("couldn't get task instances list for actor '" + actorIds + "'", e); } //结果2 List result2 = null; try { String hql = ""; if ("1".equals(type)) {// 1:未接收 hql = "select distinct ti " + "from org.jbpm.taskmgmt.exe.PooledActor pa join pa.taskInstances ti " + "where pa.actorId in (:actorIds)" + " and ti.actorId is null" + " and ti.isSuspended <> 1" + " and ti.isOpen = 1" + " and ti.start is null" + " and ti.end is null" + " order by ti.id desc"; } else if ("2".equals(type)) {// 2:办理中 hql = "select distinct ti " + "from org.jbpm.taskmgmt.exe.PooledActor pa join pa.taskInstances ti " + "where pa.actorId in (:actorIds)" + " and ti.actorId is null" + " and ti.isSuspended <> 1" + " and ti.isOpen = 1" + " and ti.start is not null" + " and ti.end is null" + " order by ti.id desc"; } else if ("3".equals(type)) {// 3:已办结 hql = "select distinct ti " + "from org.jbpm.taskmgmt.exe.TaskInstance as ti " + "where ti.id in ( select max(t.id)" + " from org.jbpm.taskmgmt.exe.PooledActor pa join pa.taskInstances t" + " where pa.actorId in (:actorIds) and t.actorId is null and t.isOpen <> 1" + " and t.start is not null and t.end is not null group by t.processInstance.id" + " )order by ti.id desc"; } else {// 4:全部工作 hql = "select distinct ti " + "from org.jbpm.taskmgmt.exe.TaskInstance as ti " + "where ti.id in ( select max(t.id)" + " from org.jbpm.taskmgmt.exe.PooledActor pa join pa.taskInstances t" + " where pa.actorId in (:actorIds) and t.actorId is null group by t.processInstance.id" + " )order by ti.id desc"; } Query query = session.createQuery(hql); query.setParameterList("actorIds", actorIds); result2 = query.list(); } catch (Exception e) { log.error(e); jbpmSession.handleException(); throw new JbpmException("couldn't get pooled task instances list for actor '" + actorIds + "'", e); } //合并结果 Set set = new HashSet(); set.addAll(result1); set.addAll(result2); return new ArrayList(set); }
评论
1 楼
xiao_2008
2010-11-04
你好,请问下你是用的jbpm3的那个版本的,我用的是Jbpm3.1.2 ,我看了下源代码实体TaskInstance 里面没有processInstance这个属性。所以group by t.processInstance.id 这句hql要报错。谢谢!
发表评论
-
JeeSite 4.0 简化MyBatis持久层开发
2017-08-06 19:22 1545引言 更好的阅读体验点这里:https:/ ... -
JeeSite 4.0 规划(二)
2017-06-03 16:03 10948==== 点击放大查看 ==== ==== 点击放大查 ... -
实现MyBatis Mapper XML文件增量动态刷新,自动加载,热加载,热部署
2016-06-13 10:40 35086最初启动服务后Mapper XML文件,必须重启服 ... -
Java如何正确地写出单例模式
2015-12-02 11:25 4109单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了 ... -
Spring事务管理(注解式声明事务管理)备忘
2015-06-06 09:11 6753步骤一、在spring配置文件中引入<tx:>命名 ... -
spring中,在Java任何位置获取request对象
2014-11-01 14:04 11900看RequestContextListener和Re ... -
POI实现超大数据的Excel的读写操作,支持Excel最大行数。
2014-11-01 13:34 28886前端时间写了注解方 ... -
Java 6 JVM参数选项大全(中文版)
2013-12-09 09:57 2714作者:Ken Wu Email: ken.wug@gma ... -
JeeSite 企业信息管理系统基础框架 V1.0.3 发布
2013-06-03 14:35 83983框架简介: JeeSite是一个 开源的企业信息管 ... -
JeeSite 目录结构介绍
2013-02-27 18:15 7321项目地址:http://thinkgem.github. ... -
JeeSite 企业信息管理系统基础框架(开源项目)
2013-02-19 21:55 19653框架简介 JeeSite是一 ... -
WebEffect网页特效集锦系统(开源)
2013-01-19 02:05 2967介绍 网页特效是用程序代码在网页中实现特殊效果或者特殊功 ... -
Java工厂模式
2011-08-19 11:27 1399看着这篇文章些的不错 ... -
List排序类
2010-11-30 11:33 1670import java.lang.reflect.Invoca ... -
事务策略: 了解事务陷阱
2010-08-02 12:11 1157<script type="text/ja ... -
批量生成 Hibernate Dao
2010-08-02 12:06 1203/** * 批量生成 Hibernate Dao * ... -
Hibernate 配置
2010-08-02 11:55 995由于Hibernate是为了能在 ... -
spring+hibernate+jbpm3整合
2010-08-02 11:55 1256<?xml version="1.0" ... -
Java冒泡排序算法
2010-08-02 11:52 1177/** * 冒泡排序算法 * @author W ... -
在Struts2中方便获得Spring中的Bean方法
2010-08-02 11:49 1616FormService formService = (F ...
相关推荐
jbpm jbpm4.3.jar DDDDDDDD
在"jBPM请假工作流"中,我们可以看到一个全面的任务列表,这个列表涵盖了请假流程中的各个阶段,使得整个请假过程变得规范、高效。 1. **我要请假**: 这是流程的起点,员工通过jBPM发起请假申请。用户在系统中填写...
通过这个扩展包,用户可以更方便地获取并操作流程实例中的各项列表,例如待办、已办、办结、已阅和未阅等任务状态。 1. **待办任务管理**: 待办任务是尚未分配给任何人或者分配给当前用户但尚未处理的任务。jbpm_...
- **jBPM4:** jBPM4 是一款轻量级的工作流管理系统,支持业务流程的建模、执行、监控和管理。它采用了一种基于Java的流程定义语言(jPDL),以及适合复杂和动态业务流程的图形化流程编辑器。 - **开发指南:** 该...
jbpm3是一款基于Java的企业级工作流管理系统,它主要用于实现业务流程自动化,提供了一套完整的工作流解决方案。这个“jbpm3中文文档.rar”压缩包包含了一份关于jbpm3的中文指南,对于学习和理解jbpm3的功能、设计...
jbpm4jbpm5是关于jbpm流程管理框架的专题,涵盖了jbpm4和jbpm5两个主要版本。jbpm是一个开源的工作流管理系统,用于帮助开发者实现业务流程自动化。以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. *...
本文将深入探讨JBPM的工作原理、表结构及其在实际操作中的应用。 1. **JBPM特色** - **灵活的建模**:JBPM支持BPMN 2.0标准,允许用户通过图形化界面设计复杂的工作流程。 - **持久化存储**:JBPM将流程实例和...
### JBPM4 常用表结构及其说明 JBPM4是JBPM(Java Business Process Model)的一个版本,主要用于提供业务流程管理的功能。它通过一组数据库表来支持工作流的执行与跟踪。本文将详细介绍JBPM4中的常用表结构及其...
### JBPM4 表结构详解 JBPM (JBoss Business Process Management) 是一款开源的工作流管理系统,被广泛应用于业务流程管理领域。JBPM4作为其一个版本,具有丰富的功能及特性,尤其在流程管理和任务分配方面表现突出...
JBPM4(Java Business Process Management 4)是一个轻量级的开源工作流管理系统,基于J2EE架构,旨在帮助开发者实现复杂的业务流程自动化。该项目于2004年10月18日发布2.0版本,并随后成为JBoss企业中间件平台的一...
6. **任务管理**:jbpm会生成待办任务,可以通过任务服务进行查询、领取和完成。可以自定义任务监听器和工作流事件处理。 7. **监控和审计**:jbpm提供了历史服务,记录流程实例的运行情况,便于分析和优化流程。...
jbpm4.3-src.zip是一个包含jbpm 4.3版本源代码的压缩包,对于开发者来说,这是一个宝贵的资源,可以深入理解jbpm的工作原理,从而更好地利用它进行业务流程管理(BPM)系统的开发和定制。jbpm是一个开源的工作流管理...
### JBPM工作流详解 #### 一、工作流基础与概念 **工作流**(Workflow)是指业务过程的部分或整体在计算机应用环境下的自动化。它主要用于实现文档、信息或任务在多个参与者之间的自动传递,以达成某个特定的业务...
【jbpm4基本jar包】是企业级工作流管理系统Jboss Business Process Management Suite(简称jbpm)的一个核心组件集合。jbpm4是一个开源的工作流程管理框架,它提供了强大的业务流程建模、执行和监控能力,使得开发...
1. **工作流(Workflow)**:JBPM3允许用户通过WSDL(Web服务描述语言)或BPEL(Business Process Execution Language)定义工作流,支持复杂的流程逻辑和决策点。 2. **任务(Task)**:任务是工作流中的基本单元,...
本文将详细介绍jBPM3.2.3版本中涉及到的关键数据库表及其字段,帮助读者更好地理解jBPM的工作原理及数据库存储机制。 #### 二、关键数据库表说明 ##### 2.1 JBPM_PROCESSDEFINITION:流程模版表 - **ID_**:流程...
4. **持久化**:jbpm3支持JPA(Java Persistence API)进行持久化,可以将流程实例和相关数据存储到数据库中,方便后续查询和恢复。 5. **API与服务**:jbpm3提供了丰富的Java API,以及基于HTTP的服务接口,允许...
jbpm是Java Business Process Management(Java业务流程管理)的缩写,它是一个开源的工作流管理系统,主要用于企业级应用中处理业务流程的自动化。jbpm3和jbpm4是该系统的两个重要版本,提供了丰富的功能来支持流程...
3. **任务分配**: 流程实例中的任务被分配给用户或角色,可以通过查询服务获取待办任务列表。 4. **任务处理**: 用户通过前端界面完成任务,服务类处理任务完成的事件,更新流程实例状态。 5. **流程监控**: 使用...
10. **工作列表**:参与者可以看到待处理任务的列表,如待办事项。 处理JBPM流程的基本步骤包括: 1. **加载(发布)流程定义**:使用Eclipse Designer等工具创建ProcessDefinition,并加载到应用中,定义可以存储...