1 效果预览
2 产品信息
JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。
JIRA中配置灵活、功能全面、部署简单、扩展丰富,其超过150项特性得到了全球115个国家超过19,000家客户的认可。
3 需求概述
每个企业对于 Jira 数据的可视化需求都是很强烈的,需要查看每个项目的任务进度等,然后再通过数据传递的信息来决定接下来的策略,控制成本并实现公司年度目标。
4 制作过程
4.1 添加数据源
-
在进行安装 Jira 的时候可配置外部 MySQL 数据库。
-
在 DataEase 中添加数据源,然后选择校验查看下是否能连接成功。
校验不成功的话请优先查看账号密码是否正确,以及 DataEase 服务器是否能ping 通数据库服务器和 telnet 数据库的端口号。
4.2 添加数据集
本次仪表板制作使用了14个 SQL 数据集
4.2.1 用户数
为了统计在 Jira 中用户的总数。
#SQL 如下:
select count(*) as '用户数' from app_user
4.2.2 项目总数
为了统计在Jira 中项目的总数。
#SQL 如下:
select count(*) as '项目数' from project
4.2.3 本月消耗工时
为了统计在Jira 中消耗工时的总数。
#SQL 如下:
select sum(timeworked)/3600 as '实际总工时' from worklog
WHERE DATE_FORMAT( CREATED, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
4.2.4 本月任务数
为了统计在Jira 中任务的总数。
#SQL 如下:
select count(*) as '问题总数' from jiraissue
WHERE DATE_FORMAT( CREATED, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
4.2.5 本月任务进行数
为了统计在Jira 中任务进行中的总数。
#SQL 如下:
SELECT count(*) AS "进行中"
FROM `jiraissue` ji
LEFT JOIN issuestatus iss ON iss.ID = ji.issuestatus
WHERE iss.pname = 'In Progress' and DATE_FORMAT( ji.CREATED, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
GROUP BY ji.issuestatus
4.2.6 本月任务待办数
为了统计在Jira 中任务待办的总数。
#SQL 如下:
SELECT count(*) AS "待办数"
FROM `jiraissue` ji
LEFT JOIN issuestatus iss ON iss.ID = ji.issuestatus
WHERE iss.pname = 'To Do' and DATE_FORMAT( ji.CREATED, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
GROUP BY ji.issuestatus
4.2.7 本月任务完成数
为了统计在Jira 中任务完成的总数。
#SQL 如下:
SELECT count(*) AS "已完成"
FROM `jiraissue` ji
LEFT JOIN issuestatus iss ON iss.ID = ji.issuestatus
WHERE iss.pname = 'Done' and DATE_FORMAT( ji.CREATED, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
GROUP BY ji.issuestatus
4.2.8 本月存量任务优先级占比
为了统计在 Jira 中存量任务优先级占比。
#SQL 如下:
SELECT CASE ji.PRIORITY
WHEN '1' THEN '极高'
WHEN '2' THEN '高'
WHEN '3' THEN '中'
WHEN '4' THEN '低'
WHEN '5' THEN '极低'
ELSE '其他'
END AS "任务类别", count(*) AS "次数"
FROM `jiraissue` ji
LEFT JOIN issuestatus iss ON iss.ID = ji.issuestatus
WHERE iss.pname != 'Closed'
AND iss.pname != 'Done'
And DATE_FORMAT( ji.CREATED, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
GROUP BY ji.PRIORITY
4.2.9 项目类型占比
为了统计在 Jira 中项目类型占比。
#SQL 如下:
SELECT PROJECTTYPE, count(*) AS "数量"
FROM PROJECT
GROUP BY PROJECTTYPE
4.2.10 本月项目消耗工时排行榜
为了统计在Jira 中 项目消耗工时。
#SQL 如下:
SELECT pj.pname AS "项目名", sum(wl.timeworked) / 3600 AS "实际工时"
FROM worklog wl
LEFT JOIN jiraissue ji ON ji.ID = wl.ISSUEID
LEFT JOIN PROJECT pj ON ji.PROJECT = pj.id
where DATE_FORMAT( wl.CREATED, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
GROUP BY pj.pname
4.2.11 本月用户消耗工时排行榜
为了统计在 Jira 中近用户消耗工时。
#SQL 如下:
SELECT au.lower_user_name AS "用户名", sum(timeworked) / 3600 AS "实际工时"
FROM worklog wl
LEFT JOIN app_user au ON au.user_key = wl.AUTHOR
where DATE_FORMAT( wl.CREATED, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
GROUP BY wl.AUTHOR
4.2.12 项目的任务数排行榜
为了展示在Jira 项目任务数量的排行。
#SQL 如下:
select pname,pcounter from PROJECT
4.2.13 本月用户完成任务数排行榜
为了展示在 Jira 用户完成任务数的排行。
#SQL 如下:
SELECT au.lower_user_name AS "用户名", count(*) AS "完成次数"
FROM `jiraissue` ji
LEFT JOIN app_user au ON au.user_key = ji.ASSIGNEE
WHERE ji.issuestatus = (
SELECT ID
FROM issuestatus
WHERE pname = 'Done'
)
and DATE_FORMAT( ji.CREATED, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
GROUP BY ji.ASSIGNEE
4.2.14 近14天任务状态分布
为了统计在Jira 中近14天任务状态的分布。
#SQL 如下:
SELECT DISTINCT DATE_FORMAT(ji.CREATED, '%Y-%m-%d') AS "时间"
, (
SELECT count(*)
FROM issuestatus iss
LEFT JOIN jiraissue ji1 ON iss.ID = ji1.issuestatus
WHERE DATE_FORMAT(ji1.CREATED, '%Y-%m-%d') = DATE_FORMAT(ji.CREATED, '%Y-%m-%d')
AND iss.pname = 'Done'
) AS "已完成"
, (
SELECT count(*)
FROM issuestatus iss
LEFT JOIN jiraissue ji1 ON iss.ID = ji1.issuestatus
WHERE DATE_FORMAT(ji1.CREATED, '%Y-%m-%d') = DATE_FORMAT(ji.CREATED, '%Y-%m-%d')
AND iss.pname = 'To Do'
) AS "待办"
, (
SELECT count(*)
FROM issuestatus iss
LEFT JOIN jiraissue ji1 ON iss.ID = ji1.issuestatus
WHERE DATE_FORMAT(ji1.CREATED, '%Y-%m-%d') = DATE_FORMAT(ji.CREATED, '%Y-%m-%d')
AND iss.pname = 'In Progress'
) AS "进行中"
FROM jiraissue ji
WHERE datediff(NOW(), ji.CREATED) <= 14
ORDER BY ji.CREATED DESC
4.3 制作仪表板
仪表板的制作基于第二步中创建的数据集。大家可以导入模板后替换即可。
关于如何导入模板请参考:https://dataease.io/docs/user_manual/template_market/#3