1 效果预览
2 需求概述
本次任务分析大屏主要是通过对 Redmine 任务的可视化展示,及时了解开发进度及任务进展情况和开发团队各人员贡献,以便更好的进行开发管理工作。
3 制作过程
3.1 添加数据源
1. 在 Redmine 安装目录中查看数据库连接信息
2. 在 DataEase 中添加数据源
3.2 添加数据集
本次仪表板制作使用了两个 SQL 数据集
3.2.1 所有任务
主表为 issues 表(任务表),关联其他如项目、任务状态 等表用于翻译一些 ID 字段。
SQL 如下:
SELECT
issues.id 'ID',
issues.SUBJECT '标题',
issues.description '描述',
issues.created_on '创建时间',
issues.updated_on '更新时间',
issues.start_date '开始时间',
issues.closed_on '关闭时间',
trackers.NAME '跟踪类型',
projects.NAME '项目',
issue_statuses.NAME '状态',
u1.firstname '处理人',
u2.firstname '创建人',
versions.`name` '目标版本',
versions.effective_date '版本日期',
priority.`name` '优先级'
FROM
issues
LEFT JOIN trackers ON issues.tracker_id = trackers.id
LEFT JOIN projects ON issues.project_id = projects.id
LEFT JOIN issue_statuses ON issues.status_id = issue_statuses.id
LEFT JOIN users u1 ON issues.assigned_to_id = u1.id
LEFT JOIN users u2 ON issues.author_id = u2.id
LEFT JOIN versions ON issues.fixed_version_id = versions.id
LEFT JOIN ( SELECT id, NAME FROM enumerations WHERE type = 'IssuePriority' ) priority ON issues.priority_id = priority.id
3.2.2 任务完成趋势
主表是 issues 表(任务表),关联 trackers 表用于翻译跟踪名称。
此 SQL 用于查询近 14 天内的任务完成情况,如果想修改查询的时间范围,将 SQL 中的 “INTERVAL 14 DAY” 中的 14 修改为想要的天数即可。
SELECT
t1.d '完成日期',
t1.NAME '任务类型',
IF
(
t2.c IS NULL,
0,
t2.c
) '数量',
t2.NAME '版本号'
FROM
(
SELECT DISTINCT
DATE_FORMAT( issues.updated_on, '%Y-%m-%d' ) d,
trackers.id,
trackers.NAME
FROM
issues,
trackers
WHERE
issues.updated_on > DATE_SUB( now(), INTERVAL 14 DAY )
) t1
LEFT JOIN (
SELECT
DATE_FORMAT( issues.updated_on, '%Y-%m-%d' ) d,
tracker_id tid,
count( 1 ) c,
versions.NAME
FROM
issues
LEFT JOIN versions ON versions.id = issues.fixed_version_id
WHERE
issues.status_id IN ( SELECT id FROM issue_statuses WHERE is_closed IS TRUE )
GROUP BY
DATE_FORMAT( issues.updated_on, '%Y-%m-%d' ),
tracker_id,
versions.NAME
) t2 ON t1.d = t2.d
AND t1.id = t2.tid
3.3 制作仪表板
点此下载 Redmine 任务分析大屏模板
仪表板的制作基于第二步中创建的两个数据集。大家可以导入模板后替换即可。
关于如何导入模板请参考:https://dataease.io/docs/user_manual/template_market/#3