From c6f468a8d6564fea877428e701e5f4a8f7ae46cd Mon Sep 17 00:00:00 2001 From: zhouxin Date: Fri, 17 May 2024 15:06:08 +0800 Subject: [PATCH] * Add count_of_finished_requirement_in_project metric. --- db/update20.0.sql | 3 +- db/zentao.sql | 3 +- ...unt_of_finished_requirement_in_project.php | 48 +++++++++++++++++++ 3 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 module/metric/calc/project/scale/count_of_finished_requirement_in_project.php diff --git a/db/update20.0.sql b/db/update20.0.sql index e9ee2bd1e0..7664afff91 100644 --- a/db/update20.0.sql +++ b/db/update20.0.sql @@ -39,7 +39,8 @@ INSERT INTO `zt_metric` (`purpose`, `scope`, `object`, `stage`, `type`, `name`, ('scale', 'user', 'issue', 'released', 'php', '按人员统计的待处理问题数', 'count_of_assigned_issue_in_user', '待处理问题数', 'count', '按人员统计的待处理问题数表示每个人待处理的问题数量之和。反映了每个人员需要处理的问题数量的规模。该数值越大,项目存在问题越多,需要投入越多的时间处理问题。', '所有问题个数求和\r\n指派给为某人\r\n过滤已删除的问题\r\n过滤已删除项目的问题', 'realtime', 'system', '2024-05-07 08:00:00', '1', '0', 'nodate'), ('scale', 'user', 'requirement', 'released', 'php', '按人员统计的待处理用户需求数', 'count_of_assigned_requirement_in_user', '待处理用需数', 'count', '按人员统计的待处理用户需求数表示每个人待处理的用户需求数量之和。反映了每个人员需要处理的用户需求数量的规模。该数值越大,说明需要投入越多的时间处理用户需求。', '所有用户需求个数求和\r\n指派给为某人\r\n过滤已删除的用户需求\r\n过滤已删除产品的用户需求', 'realtime', 'system', '2024-05-07 08:00:00', '1', '0', 'nodate'), ('scale', 'user', 'demand', 'released', 'php', '按人员统计的被指派的需求池需求数', 'count_of_assigned_demand_in_user', '待处理需求池需求数', 'count', '按人员统计的被指派的需求池需求数表示每个人待处理的需求池需求数量之和。反映了每个人员需要处理的需求池需求数量的规模。该数值越大,说明需要投入越多的时间处理需求池需求', '所有需求池需求个数求和\r\n指派给为某人\r\n过滤已删除的需求池需求\r\n过滤状态为已关闭的需求池需求', 'realtime', 'system', '2024-05-07 08:00:00', '1', '0', 'nodate'), -('scale', 'project', 'requirement', 'released', 'php', '按项目统计的未关闭用户需求数', 'count_of_unclosed_requirement_in_project', '未关闭用户需求数', 'count', '按项目统计的未关闭用户需求数是指项目中尚未满足或处理的用户需求的数量,反映了项目团队在满足用户期望和需求方面的进行中任务和计划。未关闭用户需求数量的增加表示项目团队尚未完成的用户需求工作较多,需要进一步跟进和处理,以确保项目能够满足用户的期望', '复用:\r\n按项目统计的用户需求总数\r\n按项目统计的已关闭用户需求数\r\n公式:\r\n按项目统计的未关闭用户需求数=按项目统计的用户需求总数-按项目统计的已关闭用户需求数', 'realtime', 'system', '2024-05-07 08:00:00', '1', '0', 'nodate'); +('scale', 'project', 'requirement', 'released', 'php', '按项目统计的未关闭用户需求数', 'count_of_unclosed_requirement_in_project', '未关闭用户需求数', 'count', '按项目统计的未关闭用户需求数是指项目中尚未满足或处理的用户需求的数量,反映了项目团队在满足用户期望和需求方面的进行中任务和计划。未关闭用户需求数量的增加表示项目团队尚未完成的用户需求工作较多,需要进一步跟进和处理,以确保项目能够满足用户的期望', '复用:\r\n按项目统计的用户需求总数\r\n按项目统计的已关闭用户需求数\r\n公式:\r\n按项目统计的未关闭用户需求数=按项目统计的用户需求总数-按项目统计的已关闭用户需求数', 'realtime', 'system', '2024-05-07 08:00:00', '1', '0', 'nodate'), +('scale', 'project', 'requirement', 'released', 'php', '按项目统计的已完成研发需求数', 'count_of_finished_requirement_in_project', '已完成用户需求数', 'count', '按项目统计的已完成用户需求数是指状态为已关闭且关闭原因为已完成的用户需求的数量。反映了项目团队在满足用户期望和需求方面的已经实现的任务和计划。已完成用户需求数量的增加表示项目团队已经成功完成了一定数量的用户需求工作,并取得了一定的成果', '项目中用户需求的个数求和\r\n状态为已关闭\r\n关闭原因为已完成\r\n过滤已删除的用户需求\r\n过滤已删除的项目', 'realtime', 'system', '2024-05-07 08:00:00', '1', '0', 'nodate'); ALTER TABLE `zt_chart` ADD `code` varchar(255) not NULL default '' AFTER `name`; ALTER TABLE `zt_pivot` ADD `code` varchar(255) not NULL default '' AFTER `group`; diff --git a/db/zentao.sql b/db/zentao.sql index e8fe909952..20ffd8dadb 100755 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -16477,7 +16477,8 @@ INSERT INTO `zt_metric`(`purpose`, `scope`, `object`, `stage`, `type`, `name`, ` ('scale', 'user', 'issue', 'released', 'php', '按人员统计的待处理问题数', 'count_of_assigned_issue_in_user', '待处理问题数', 'count', '按人员统计的待处理问题数表示每个人待处理的问题数量之和。反映了每个人员需要处理的问题数量的规模。该数值越大,项目存在问题越多,需要投入越多的时间处理问题。', '所有问题个数求和\r\n指派给为某人\r\n过滤已删除的问题\r\n过滤已删除项目的问题', 'realtime', 'system', '2024-05-07 08:00:00', '1', '0', 'nodate'), ('scale', 'user', 'requirement', 'released', 'php', '按人员统计的待处理用户需求数', 'count_of_assigned_requirement_in_user', '待处理用需数', 'count', '按人员统计的待处理用户需求数表示每个人待处理的用户需求数量之和。反映了每个人员需要处理的用户需求数量的规模。该数值越大,说明需要投入越多的时间处理用户需求。', '所有用户需求个数求和\r\n指派给为某人\r\n过滤已删除的用户需求\r\n过滤已删除产品的用户需求', 'realtime', 'system', '2024-05-07 08:00:00', '1', '0', 'nodate'), ('scale', 'user', 'demand', 'released', 'php', '按人员统计的被指派的需求池需求数', 'count_of_assigned_demand_in_user', '待处理需求池需求数', 'count', '按人员统计的被指派的需求池需求数表示每个人待处理的需求池需求数量之和。反映了每个人员需要处理的需求池需求数量的规模。该数值越大,说明需要投入越多的时间处理需求池需求', '所有需求池需求个数求和\r\n指派给为某人\r\n过滤已删除的需求池需求\r\n过滤状态为已关闭的需求池需求', 'realtime', 'system', '2024-05-07 08:00:00', '1', '0', 'nodate'), -('scale', 'project', 'requirement', 'released', 'php', '按项目统计的未关闭用户需求数', 'count_of_unclosed_requirement_in_project', '未关闭用户需求数', 'count', '按项目统计的未关闭用户需求数是指项目中尚未满足或处理的用户需求的数量,反映了项目团队在满足用户期望和需求方面的进行中任务和计划。未关闭用户需求数量的增加表示项目团队尚未完成的用户需求工作较多,需要进一步跟进和处理,以确保项目能够满足用户的期望', '复用:\r\n按项目统计的用户需求总数\r\n按项目统计的已关闭用户需求数\r\n公式:\r\n按项目统计的未关闭用户需求数=按项目统计的用户需求总数-按项目统计的已关闭用户需求数', 'realtime', 'system', '2024-05-07 08:00:00', '1', '0', 'nodate'); +('scale', 'project', 'requirement', 'released', 'php', '按项目统计的未关闭用户需求数', 'count_of_unclosed_requirement_in_project', '未关闭用户需求数', 'count', '按项目统计的未关闭用户需求数是指项目中尚未满足或处理的用户需求的数量,反映了项目团队在满足用户期望和需求方面的进行中任务和计划。未关闭用户需求数量的增加表示项目团队尚未完成的用户需求工作较多,需要进一步跟进和处理,以确保项目能够满足用户的期望', '复用:\r\n按项目统计的用户需求总数\r\n按项目统计的已关闭用户需求数\r\n公式:\r\n按项目统计的未关闭用户需求数=按项目统计的用户需求总数-按项目统计的已关闭用户需求数', 'realtime', 'system', '2024-05-07 08:00:00', '1', '0', 'nodate'), +('scale', 'project', 'requirement', 'released', 'php', '按项目统计的已完成研发需求数', 'count_of_finished_requirement_in_project', '已完成用户需求数', 'count', '按项目统计的已完成用户需求数是指状态为已关闭且关闭原因为已完成的用户需求的数量。反映了项目团队在满足用户期望和需求方面的已经实现的任务和计划。已完成用户需求数量的增加表示项目团队已经成功完成了一定数量的用户需求工作,并取得了一定的成果', '项目中用户需求的个数求和\r\n状态为已关闭\r\n关闭原因为已完成\r\n过滤已删除的用户需求\r\n过滤已删除的项目', 'realtime', 'system', '2024-05-07 08:00:00', '1', '0', 'nodate'); INSERT INTO `zt_cron`(`m`, `h`, `dom`, `mon`, `dow`, `command`, `remark`, `type`, `buildin`, `status`, `lastTime`) VALUES ('1', '1', '*', '*', '*', 'moduleName=metric&methodName=updateMetricLib', '计算度量数据', 'zentao', 1, 'normal', NUll); INSERT INTO `zt_cron`(`m`, `h`, `dom`, `mon`, `dow`, `command`, `remark`, `type`, `buildin`, `status`, `lastTime`) VALUES ('0', '*/1', '*', '*', '*', 'moduleName=metric&methodName=updateDashboardMetricLib', '计算仪表盘数据', 'zentao', 1, 'normal', NUll); diff --git a/module/metric/calc/project/scale/count_of_finished_requirement_in_project.php b/module/metric/calc/project/scale/count_of_finished_requirement_in_project.php new file mode 100644 index 0000000000..16b5b4700f --- /dev/null +++ b/module/metric/calc/project/scale/count_of_finished_requirement_in_project.php @@ -0,0 +1,48 @@ + + * @package + * @uses func + * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html) + * @Link https://www.zentao.net + */ +class count_of_finished_requirement_in_project extends baseCalc +{ + public $dataset = 'getDevRequirementsWithProject'; + + public $fieldList = array('t3.project', 't1.status', 't1.closedReason'); + + public $result = array(); + + public function calculate($row) + { + $project = $row->project; + $status = $row->status; + $closedReason = $row->closedReason; + + if($status == 'closed' && $closedReason == 'done') + { + if(!isset($this->result[$project])) $this->result[$project] = 0; + $this->result[$project] += 1; + } + } + + public function getResult($options = array()) + { + $records = $this->getRecords(array('project', 'value')); + return $this->filterByOptions($records, $options); + } +} +