根据用户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
该查询可获得任务的相关信息,比如流程实例,任务实例等。
相关推荐
例如,显示待办任务列表,用户可以通过点击完成任务。 8. **测试与优化**:完成初步整合后,进行单元测试和集成测试,确保流程的正常运行。根据需求进行性能优化,如调整缓存策略、数据库索引等。 提供的压缩包...
6. **任务处理与用户交互**:当流程中产生待办任务时,可以通过 TaskService 查询待办任务,并在前端展示给用户。用户可以通过点击“提交”或“拒绝”等操作,完成任务并传递到下一个环节。 7. **监听器与事件处理*...
4. 通知与提醒:通过邮件、短信等方式及时通知用户处理待办事项,可以集成JavaMail API或第三方服务,如SendGrid。 5. 组件化设计:使用MVC(Model-View-Controller)设计模式,将业务逻辑、数据模型和用户界面分离...
10. **提醒和通知**:系统应具备定时提醒和即时通知功能,如合同到期预警、审批待办事项通知等,确保合同流程的顺利进行。 通过以上组件和功能的整合,Java合同管理系统为企业的合同管理工作提供了强大而全面的支持...
通知提醒系统可以实时推送待办事项和消息;报表统计用于生成各类业务报表,为企业决策提供数据支持。 在设计阶段,文档会强调模块化和可扩展性,使得OA系统能够适应企业的不断发展变化。此外,文档还会讨论如何利用...
5. 通知提醒:通过邮件或消息通知用户待办事项,这涉及Spring的邮件服务或者消息队列。 OA系统不仅是一个技术实现,还需要考虑用户体验、数据安全、性能优化等多个方面。SSH框架的使用,使得开发者能够快速搭建起一...
这涉及到了任务调度和提醒机制,可能需要用到队列(Queue)数据结构来管理待办事项。 4. **日程安排**:允许用户创建、修改和删除日程,同时可以设置提醒功能。这需要处理时间戳和事件冲突检测,以确保日程的准确性...
11. **任务和日程管理**:提供待办事项、日程安排等功能,帮助用户规划和跟踪工作进度。 12. **邮件集成**:集成SMTP服务器,实现系统通知和邮件通信功能。 13. **异步处理**:对于耗时的操作,如批量数据处理,...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...