前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Activiti开发案例之工作流任务数据统计

Activiti开发案例之工作流任务数据统计

作者头像
小柒2012
发布2019-12-05 18:25:01
1.3K0
发布2019-12-05 18:25:01
举报
文章被收录于专栏:IT笔记

前言

工作流可以提高企业运营效率、改善企业资源利用、提高企业运作的灵活性和适应性、提高工作效率、集中精力处理核心业务、跟踪业务处理过程、量化考核业务处理的效率、减少浪费、增加利润、充分发挥现有计算机网络资源的作用。实施工作流将达到缩短企业运营周期、改善企业内(外)部流程、优化并合理利用资源、减少人为差错和延误,提高劳动生产率等目的。

以上,量化考核业务处理的效率是重点,用红笔圈起来,要考!要考!要考!重要的事情说三遍!

数据统计

流程

发起流程数量:

代码语言:javascript
复制
-- API查询
histiryService.createHistoricProcessInstanceQuery().count();
-- 纯SQL查询
select count(*) from ACT_HI_PROCINST;
-- 根据发起人查询
histiryService.createHistoricProcessInstanceQuery().startedBy(userId).count();
-- 纯SQL查询
select count(*) from ACT_HI_PROCINST where START_USER_ID_=?;

根据发起人分组查询数量:

代码语言:javascript
复制
select START_USER_ID_,count(*) from ACT_HI_PROCINST group by START_USER_ID_;

已完成的流程数量:

代码语言:javascript
复制
-- API查询总数
histiryService.createHistoricProcessInstanceQuery().finished().count();
-- API查询
histiryService.createHistoricProcessInstanceQuery().startedBy(userId).finished().count();
-- 纯SQL查询
select count(*) from ACT_HI_PROCINST where END_TIME_ is not null
select count(*) from ACT_HI_PROCINST where START_USER_ID_ =? and  END_TIME_ is not null

任务

查询当前待办任务:

代码语言:javascript
复制
select count(*) from ACT_RU_TASK;

查询个人待办任务

代码语言:javascript
复制
-- 果使用API需要自行映射用户角色关系

taskService.createTaskQuery().taskCandidateOrAssigned(userId).count();

-- 使用纯SQL查询,第一个个问号传入用户ID、第三个传入角色代码
SELECT COUNT(*)
FROM ACT_RU_TASK RES
    LEFT JOIN ACT_RU_IDENTITYLINK I ON I.TASK_ID_ = RES.ID_
    LEFT JOIN ACT_HI_VARINST va ON RES.PROC_INST_ID_ = va.PROC_INST_ID_
WHERE SUSPENSION_STATE_ = '1'
    AND RES.ASSIGNEE_ = ?
    OR (RES.ASSIGNEE_ IS NULL
        AND (I.USER_ID_ = ?
            OR I.GROUP_ID_ IN (?)))

查询已办理任务数量:

代码语言:javascript
复制
select count(*) from ACT_HI_TASKINST where END_TIME_ is not NULL

查询个人已办理任务数量:

代码语言:javascript
复制
select count(*) from ACT_HI_TASKINST where ASSIGNEE_=? and END_TIME_ is not NULL

查询超期任务(超过一天的 1440 分钟):

代码语言:javascript
复制
SELECT COUNT(*)
FROM ACT_HI_TASKINST
WHERE END_TIME_ IS NULL
    AND datediff(mi, START_TIME_, getdate()) >= 1440

按人/月统计已办理任务(SQLSERVER数据库):

代码语言:javascript
复制
SELECT datepart(month, t.END_TIME_) AS month, COUNT(*) AS sum
FROM ACT_HI_TASKINST t
WHERE datepart(year, t.END_TIME_) = ?
    AND ASSIGNEE_ = ?
    AND t.DURATION_ IS NOT NULL
GROUP BY datepart(month, t.END_TIME_)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 数据统计
    • 流程
      • 任务
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档