模板学堂丨禅道业务数据分析大屏

发布于 2022年09月20日

DataEase开源数据可视化分析平台模板市场(https://dataease.io/templates/)于2022年6月正式发布。模板市场旨在为DataEase用户提供专业、美观、拿来即用的仪表板模板,方便用户根据自身的业务需求和使用场景选择对应的仪表板模板,并在优质模板的基础上轻松制作自己的仪表板。

9月上新模板

DataEase模板市场定期进行模板上新,9月共上新16个模板,涉及医药、电力、媒体运营、警务、零售、销售管理等主题,应用软件大屏模板新增Jira业务数据仪表板,欢迎大家在DataEase模板市场下载使用。

9月精选模板

本月为大家推荐的精选模板是禅道业务数据分析大屏。禅道是第一款国产的开源项目管理软件,它的核心管理思想基于敏捷方法Scrum,内置了产品管理和项目管理功能,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能。用户使用禅道软件可以将软件研发过程中的需求、任务、Bug、用例、计划、发布等要素有序地跟踪管理起来,完整地覆盖了项目管理的核心流程。

1. 大屏信息

■ 禅道基于v12.5.3版本,DataEase开源数据可视化分析平台基于v1.14版本。

■ 此次共统计15项指标,各指标项具情况体如下:

2. 大屏展示

模板应用

接下来,为大家详细讲解如何应用禅道业务数据分析大屏。

1. 使用模板创建仪表板

1.1 内置模板市场

如果您所使用DataEase为v1.13.0及以上的版本,并且DataEase可直接访问到模板市场地址(https://dataease.io/templates/),可通过内嵌的“模块市场”在线应用模板。

为仪表板命名并选择放置的目录。

添加成功后即会自动进入到该新建仪表板的编辑界面。

1.2 在线模板市场

您也可以访问DataEase模板市场主页,找到禅道业务数据分析大屏。模板市场地址为:
https://dataease.io/templates/。如需快速检索,可进行关键字搜索或分类切换,可以快速找到想要的大屏模板。

点击“禅道业务数据分析大屏”仪表板模板进入详情界面。点击“下载”按钮后可将模板下载至本地。

进入自己的DataEase系统的“仪表板”模块中,通过下图所示以“导入模板”的方式新建仪表板,点击“上传模板”按钮,选择使用“模板市场”下载的禅道业务数据分析大屏的模板文件。

导入成功后即可看到下图所示的大屏。

2. 准备数据

当前数据为模板示例数据,需要进一步将数据来源替换为自己环境的禅道数据库,从而展示真实的实时数据。

2.1 新建数据源

首先新建数据源,配置禅道数据库的真实信息,搭建DataEase与禅道服务器之间的数据连接。

2.2 添加相关的数据集

分别创建我们本次演示中需要用到的各类数据集。如果需要展示一些非模板所展示的内容,也可以根据自己需要创建对应的数据集。

此次我们涉及到的有只有SQL数据集,在创建时需要选择对应的类型。

本次用到以下SQL语句,分别以SQL数据集类型创建好即可。

■ 用户数

select count(*) as 用户 from zt_user

■ 操作总数

select count(*) from zt_action

■ 消耗工时

select sum(consumed) from zt_task

■ 产品数

select count(*) from zt_product

■ 项目数

select count(*) from zt_project

■ 任务数

select count(*) from zt_task

■ 需求数

select count(*) from zt_story

■ Bug数

select count(*) from zt_bug

■ 用例数

select count(*) from zt_case

■ 近30天的Bug状态分布

SELECT CASE STATUS
    WHEN 'active' THEN '已激活'
    WHEN 'resolved' THEN '已解决'
    WHEN 'closed' THEN '已关闭'
    ELSE '其他'
  END AS "类别", count(*) AS "数量"
FROM zt_bug
WHERE datediff(NOW(), openedDate) <= 30
GROUP BY STATUS

■ 近14天的Bug状态

SELECT DISTINCT DATE_FORMAT(openedDate, '%Y-%m-%d') AS "时间"
  , (
    SELECT count(*)
    FROM zt_bug z1
    WHERE status = 'active'
      AND DATE_FORMAT(z1.openedDate, '%Y-%m-%d') = DATE_FORMAT(z2.openedDate, '%Y-%m-%d')
  ) AS "已激活"
  , (
    SELECT count(*)
    FROM zt_bug z1
    WHERE status = 'resolved'
      AND DATE_FORMAT(z1.openedDate, '%Y-%m-%d') = DATE_FORMAT(z2.openedDate, '%Y-%m-%d')
  ) AS "已解决"
  , (
    SELECT count(*)
    FROM zt_bug z1
    WHERE status = 'closed'
      AND DATE_FORMAT(z1.openedDate, '%Y-%m-%d') = DATE_FORMAT(z2.openedDate, '%Y-%m-%d')
  ) AS "已关闭"
FROM zt_bug z2
WHERE datediff(NOW(), z2.openedDate) <= 14
ORDER BY z2.openedDate DESC

■ 产品数据

SELECT DISTINCT zp.NAME AS "产品名称"
  , (
    SELECT count(*)
    FROM zt_productplan zpp
    WHERE zp.id = zpp.product
  ) AS "计划数"
  , (
    SELECT count(*)
    FROM zt_story zs
    WHERE zp.id = zs.product
  ) AS "创建需求数"
  , (
    SELECT count(*)
    FROM zt_story zs
    WHERE zp.id = zs.product
      AND zs.`status` = 'closed'
  ) AS "完成需求数"
FROM zt_product zp

■ 项目数据

SELECT DISTINCT zp.NAME AS "项目名称"
  , (
    SELECT count(*)
    FROM zt_story zs
      LEFT JOIN zt_projectstory zpjs ON zpjs.story = zs.id
    WHERE zs.STATUS = 'closed'
      AND zpjs.project = zp.id
  ) AS "完成需求数"
  , (
    SELECT count(*)
    FROM zt_task zt
    WHERE zt.project = zp.id
      AND zt.`status` = 'done'
  ) AS "完成任务数"
  , (
    SELECT count(*)
    FROM zt_bug zb
    WHERE zb.project = zp.id
      AND zb.`status` = 'resolved'
  ) AS "解决Bug数"
FROM zt_project zp

■ 近30天的需求状态分布

SELECT CASE stage
    WHEN 'wait' THEN '等待中'
    WHEN 'planned' THEN '已计划'
    WHEN 'projected' THEN '已立项'
    WHEN 'developing' THEN '开发中'
    WHEN 'testing' THEN '测试中'
    WHEN 'verified' THEN '已验收'
    WHEN 'closed' THEN '已关闭'
    ELSE '其他'
  END AS "类别", count(*) AS "数量"
FROM zt_story
WHERE datediff(NOW(), openedDate) <= 30
GROUP BY stage

■ 近14天的需求状态

SELECT DISTINCT DATE_FORMAT(openedDate, '%Y-%m-%d') AS "时间"
  , (
    SELECT count(*)
    FROM zt_story z1
    WHERE stage = 'planned'
      AND DATE_FORMAT(z1.openedDate, '%Y-%m-%d') = DATE_FORMAT(z2.openedDate, '%Y-%m-%d')
  ) AS "已计划"
  , (
    SELECT count(*)
    FROM zt_story z1
    WHERE stage = 'wait'
      AND DATE_FORMAT(z1.openedDate, '%Y-%m-%d') = DATE_FORMAT(z2.openedDate, '%Y-%m-%d')
  ) AS "等待中"
  , (
    SELECT count(*)
    FROM zt_story z1
    WHERE stage = 'developing'
      AND DATE_FORMAT(z1.openedDate, '%Y-%m-%d') = DATE_FORMAT(z2.openedDate, '%Y-%m-%d')
  ) AS "研发中"
  , (
    SELECT count(*)
    FROM zt_story z1
    WHERE stage = 'testing'
      AND DATE_FORMAT(z1.openedDate, '%Y-%m-%d') = DATE_FORMAT(z2.openedDate, '%Y-%m-%d')
  ) AS "测试中"
  , (
    SELECT count(*)
    FROM zt_story z1
    WHERE stage = 'verified'
      AND DATE_FORMAT(z1.openedDate, '%Y-%m-%d') = DATE_FORMAT(z2.openedDate, '%Y-%m-%d')
  ) AS "已验收"
FROM zt_story z2
WHERE datediff(NOW(), z2.openedDate) <= 14
ORDER BY z2.openedDate DESC

3. 替换数据

重新进入已导入的仪表板中,进入编辑界面,分别对各个视图的数据集进行替换,即会展示各个视图所用到的数据集及其维度与指标字段。正常情况下,数据集字段一致,替换为自己的数据集后视图会自动匹配字段进来,无需再进行维度与指标字段的配置。

■ 注意事项:维度/指标字段提示错误

由于在模板设计阶段字段的命名可能与原数据集不同,维度或者指标会出现红色感叹号的情况。大家可以将红框指标删除,把左边的“时间”、“已激活”、“已解决”、“已关闭”字段重新直接拖入所示位置即可。

4. 最终效果

完成上述步骤后,属于自己的禅道业务数据分析大屏就完成了。如果您有个性化的需求,样式和展示内容还可以根据需要进行相应调整。