`

Activiti待办事项查询VIEW

 
阅读更多

根据用户ID,查询该用户的待办事项,包括前一环节直接指定的情况,包括定义流程时定义的处理人的情况,包括根据角色或者组确定该用户可以处理的情况。

 

经过分析Activiti的数据库表,我们发现并不复杂,和待办事项有关系的表,包括ACT_RU_TASK、ACT_RU_IDENTITYLINK,ACT_RU_TASK中存储了任务相关信息,ACT_RU_IDENTITYLINK中存储了候选组和候选人信息。

 

在Activiti中,对于一个节点,可分为受托人,候选人和候选组三种情况,后两种可以设置多个,用逗号分隔,对应到数据库中,会被拆分为ACT_RU_IDENTITYLINK的多条记录。

 

基于以上,使用以下sql可查询获得所有待办事项:

 

SELECT A.ID_ AS TASK_ID,

       A.PROC_INST_ID_ PROC_INST_ID,

       A.TASK_DEF_KEY_ AS ACT_ID,

       A.NAME_ AS ACT_NAME,

       A.ASSIGNEE_ AS ASSIGNEE,

       A.DELEGATION_ AS DELEGATION_ID,

       A.DESCRIPTION_ AS DESCRIPTION,

A.CREATE_TIME_ AS CREATE_TIME,

A.DUE_DATE_ AS DUE_DATE,

       -- date_format(A.CREATE_TIME_, 'YYYY-MM-DD HH24:MI:SS') AS CREATE_TIME,

       -- date_format(A.DUE_DATE_,'YYYY-MM-DD HH24:MI:SS') AS DUE_DATE,

       I.USER_ID AS CANDIDATE 

  FROM ACT_RU_TASK A

  LEFT JOIN (SELECT DISTINCT * FROM 

(SELECT I.TASK_ID_, I.USER_ID_ as USER_ID

                    FROM ACT_RU_IDENTITYLINK I, ACT_RU_TASK T

                      WHERE TASK_ID_ IS NOT NULL

                        AND USER_ID_ IS NOT NULL

                        AND I.TASK_ID_ = T.ID_

                        AND T.ASSIGNEE_ IS NULL

                        AND TYPE_ = 'candidate'

                     UNION

                     SELECT TASK_ID_, R.USER_ID_ as USER_ID

                       FROM ACT_RU_IDENTITYLINK I,act_id_membership R,ACT_RU_TASK T

                      WHERE I.TASK_ID_ IS NOT NULL

                        AND I.GROUP_ID_ IS NOT NULL

                        AND I.TASK_ID_ = T.ID_

                        AND T.ASSIGNEE_ IS NULL

                        AND I.TYPE_ = 'candidate'

                        AND I.GROUP_ID_ = R.GROUP_ID_)U) I  -- 候选组和业务上的角色用户表关联

    ON A.ID_ = I.TASK_ID_

 

根据以上sql,直接定义为视图也好,或者将查询数据放入某张表中已好,之后查询某用户的待办事项时,就可查询,比如定义为视图view_todotask;

    SELECT FROM  view_todotask WHERE ASSIGNEE = :userId OR CANDIDATE = :userId

 

该查询可获得任务的相关信息,比如流程实例,任务实例等。

 

 

 

分享到:
评论

相关推荐

    基于jbpm与activiti的工作流平台技术架构介绍

    ◦工作日历管理 用于配置系统的工作流的待办事项的处理工作时间的计算处理 ◦动态脚本管理 用于为流程任务节点或事件中可被调用的逻辑计算代码 ◦短信收发管理 基于USB短信猫的短信模块或短信网关,以实现收发手机...

    JAVA上百实例源码以及开源项目源代码

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

    JAVA上百实例源码以及开源项目

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

    java开源包1

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包11

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包2

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包3

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包6

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包5

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包10

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包4

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包8

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包7

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包9

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    java开源包101

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    Java资源包01

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

Global site tag (gtag.js) - Google Analytics