`

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

 

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

 

 

 

分享到:
评论

相关推荐

    activiti5 myeclipse插件和ssh框架整合

    例如,显示待办任务列表,用户可以通过点击完成任务。 8. **测试与优化**:完成初步整合后,进行单元测试和集成测试,确保流程的正常运行。根据需求进行性能优化,如调整缓存策略、数据库索引等。 提供的压缩包...

    springmvc activiti整合

    6. **任务处理与用户交互**:当流程中产生待办任务时,可以通过 TaskService 查询待办任务,并在前端展示给用户。用户可以通过点击“提交”或“拒绝”等操作,完成任务并传递到下一个环节。 7. **监听器与事件处理*...

    JAVA办公自动化系统(源代码+论文+外文翻译).rar

    4. 通知与提醒:通过邮件、短信等方式及时通知用户处理待办事项,可以集成JavaMail API或第三方服务,如SendGrid。 5. 组件化设计:使用MVC(Model-View-Controller)设计模式,将业务逻辑、数据模型和用户界面分离...

    java合同管理系统

    10. **提醒和通知**:系统应具备定时提醒和即时通知功能,如合同到期预警、审批待办事项通知等,确保合同流程的顺利进行。 通过以上组件和功能的整合,Java合同管理系统为企业的合同管理工作提供了强大而全面的支持...

    基于Java的OA设计文档

    通知提醒系统可以实时推送待办事项和消息;报表统计用于生成各类业务报表,为企业决策提供数据支持。 在设计阶段,文档会强调模块化和可扩展性,使得OA系统能够适应企业的不断发展变化。此外,文档还会讨论如何利用...

    SSH实现的OA系统

    5. 通知提醒:通过邮件或消息通知用户待办事项,这涉及Spring的邮件服务或者消息队列。 OA系统不仅是一个技术实现,还需要考虑用户体验、数据安全、性能优化等多个方面。SSH框架的使用,使得开发者能够快速搭建起一...

    JSP开发项目-办公自动化管理系统

    这涉及到了任务调度和提醒机制,可能需要用到队列(Queue)数据结构来管理待办事项。 4. **日程安排**:允许用户创建、修改和删除日程,同时可以设置提醒功能。这需要处理时间戳和事件冲突检测,以确保日程的准确性...

    C#开发的大型OA系统

    11. **任务和日程管理**:提供待办事项、日程安排等功能,帮助用户规划和跟踪工作进度。 12. **邮件集成**:集成SMTP服务器,实现系统通知和邮件通信功能。 13. **异步处理**:对于耗时的操作,如批量数据处理,...

    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 ...

Global site tag (gtag.js) - Google Analytics