From df482ef24b561db7c00857e2c3648a7f75f04cef Mon Sep 17 00:00:00 2001 From: qixinzhi Date: Wed, 24 Jan 2024 15:25:17 +0800 Subject: [PATCH] * Fix metric calculate definition. --- .../scale/count_of_assigned_bug_in_user.php | 1 - .../scale/count_of_assigned_case_in_user.php | 2 +- .../scale/count_of_assigned_task_in_user.php | 12 +++++++----- .../scale/count_of_pending_story_in_user.php | 4 ++-- .../count_of_reviewing_story_in_user.php | 19 ++++++++++--------- 5 files changed, 20 insertions(+), 18 deletions(-) diff --git a/module/metric/calc/user/scale/count_of_assigned_bug_in_user.php b/module/metric/calc/user/scale/count_of_assigned_bug_in_user.php index 2ce92a601c..6bd4c4fc81 100755 --- a/module/metric/calc/user/scale/count_of_assigned_bug_in_user.php +++ b/module/metric/calc/user/scale/count_of_assigned_bug_in_user.php @@ -34,7 +34,6 @@ class count_of_assigned_bug_in_user extends baseCalc if(!isset($this->result[$assignedTo])) $this->result[$assignedTo] = 0; $this->result[$assignedTo] += 1; - } public function getResult($options = array()) diff --git a/module/metric/calc/user/scale/count_of_assigned_case_in_user.php b/module/metric/calc/user/scale/count_of_assigned_case_in_user.php index 9bb3ea2e85..d82731915c 100755 --- a/module/metric/calc/user/scale/count_of_assigned_case_in_user.php +++ b/module/metric/calc/user/scale/count_of_assigned_case_in_user.php @@ -9,7 +9,7 @@ * 度量名称:按人员统计的待处理用例数 * 单位:个 * 描述:按人员统计的待处理用例数表示每个人待处理的用例数量之和。反映了每个人需要处理的用例数量上的规模。该数值越大,说明需要投入越多的时间处理用例。 - * 定义:所有用例个数求和;指派给为某人;测试单的状态不为已完成;过滤已删除的用例;过滤已删除测试单的用例;过滤已删除产品的用例; + * 定义:按人员统计的待处理的用例个数;所有测试单中的用例个数求和(不去重);指派给某人;过滤已删除的用例;过滤已删除的测试单中的用例;过滤已关闭的测试单中的用例; * * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net) * @author zhouxin diff --git a/module/metric/calc/user/scale/count_of_assigned_task_in_user.php b/module/metric/calc/user/scale/count_of_assigned_task_in_user.php index 5352ad94f2..b6875004bd 100755 --- a/module/metric/calc/user/scale/count_of_assigned_task_in_user.php +++ b/module/metric/calc/user/scale/count_of_assigned_task_in_user.php @@ -9,7 +9,7 @@ * 度量名称:按人员统计的待处理任务数 * 单位:个 * 描述:按人员统计的待处理任务数表示每个人待处理的任务数量之和。反映了每个人在需要处理的任务数量上的规模。该数值越大,说明需要投入越多的时间处理任务。 - * 定义:任务个数求和;指派给为某人,并且过滤任务状态为已关闭和已取消的任务;如果任务为多人任务,并且过滤状态为已完成的任务;过滤已删除的任务;过滤已删除项目的任务;过滤已删除执行的任务;过滤挂起的执行和项目; + * 定义:所有任务个数求和;指派给为某人;过滤已关闭的任务;过滤已取消的任务;过滤已删除的任务;过滤已删除项目的任务;过滤已删除执行的任务;过滤多人任务中某人任务状态为已完成的任务;过滤任务关联的执行和项目都为挂起状态时的任务 * * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net) * @author qixinzhi @@ -22,7 +22,7 @@ class count_of_assigned_task_in_user extends baseCalc { public $dataset = 'getTasks'; - public $fieldList = array('t1.assignedTo', 't1.status', 't1.mode', 't4.account', 't3.status as projectStatus', 't2.status as executionStatus'); + public $fieldList = array('t1.assignedTo', 't1.status', 't1.mode', 't4.account', 't3.status as projectStatus', 't2.status as executionStatus', 't4.status as teamStatus'); public $result = array(); @@ -34,17 +34,19 @@ class count_of_assigned_task_in_user extends baseCalc $projectStatus = $row->projectStatus; $executionStatus = $row->executionStatus; + $teamStatus = $row->teamStatus; - if(empty($assignedTo) || $assignedTo == 'closed') return false; if($status == 'closed' || $status == 'cancel') return false; - if($projectStatus == 'suspended' || $projectStatus == 'closed' || $executionStatus == 'suspended' || $executionStatus == 'closed') return false; if($mode == 'multi') { - if($status == 'done') return false; + if($teamStatus == 'done') return false; $assignedTo = $row->account; } + /* 如果执行和项目都是挂起的,不计算。*/ + if($projectStatus == 'suspended' && $executionStatus == 'suspended') return false; + if(!isset($this->result[$assignedTo])) $this->result[$assignedTo] = 0; $this->result[$assignedTo] += 1; diff --git a/module/metric/calc/user/scale/count_of_pending_story_in_user.php b/module/metric/calc/user/scale/count_of_pending_story_in_user.php index ab6af3b810..be4031ddf4 100755 --- a/module/metric/calc/user/scale/count_of_pending_story_in_user.php +++ b/module/metric/calc/user/scale/count_of_pending_story_in_user.php @@ -9,7 +9,7 @@ * 度量名称:按人员统计的待处理研发需求数 * 单位:个 * 描述:按人员统计的待处理研发需求数表示每个人待处理的研发需求数量之和。反映了每个人员需要处理的研发需求数量的规模。该数值越大,说明需要投入越多的时间处理研发需求。 - * 定义:所有研发需求个数求和;指派给为某人;过滤已删除的研发需求;过滤已删除产品的研发需求; + * 定义:所有研发需求个数求和;过滤已删除的研发需求;过滤状态为已关闭的研发需求;过滤已删除产品下的研发需求;过滤已删除的无产品项目下的研发需求。 * * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net) * @author qixinzhi @@ -20,7 +20,7 @@ */ class count_of_pending_story_in_user extends baseCalc { - public $dataset = 'getDevStories'; + public $dataset = 'getAllDevStories'; public $fieldList = array('assignedTo'); diff --git a/module/metric/calc/user/scale/count_of_reviewing_story_in_user.php b/module/metric/calc/user/scale/count_of_reviewing_story_in_user.php index 2e2c77cbe5..c69914d139 100755 --- a/module/metric/calc/user/scale/count_of_reviewing_story_in_user.php +++ b/module/metric/calc/user/scale/count_of_reviewing_story_in_user.php @@ -9,7 +9,7 @@ * 度量名称:按人员统计的待评审研发需求数 * 单位:个 * 描述:按人员统计的待评审研发需求数表示每个人需要评审的研发需求数量之和。反映了每个人需要评审的研发需求的规模。该数值越大,说明需要投入越多的时间评审需求。 - * 定义:所有研发需求个数求和;状态为评审中;指派给为某人;过滤已删除的研发需求;过滤已删除产品的研发需求; + * 定义:所有研发需求个数求和;评审人为某人;评审结果为空;评审状态为评审中或变更中;过滤已删除的需求;过滤已删除产品的需求; * * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net) * @author qixinzhi @@ -24,14 +24,15 @@ class count_of_reviewing_story_in_user extends baseCalc public function getStatement() { - return $this->dao->select('t1.reviewer, t1.story, t1.version') - ->from(TABLE_STORYREVIEW)->alias('t1') - ->leftJoin(TABLE_STORY)->alias('t2')->on('t1.story=t2.id') - ->leftJoin(TABLE_PRODUCT)->alias('t3')->on('t2.product=t3.id') - ->where('t2.deleted')->eq('0') - ->andWhere('t2.type')->eq('story') - ->andWhere('t3.deleted')->eq('0') - ->andWhere('t2.status')->eq('reviewing') + return $this->dao->select('t3.reviewer, t3.story, t3.version') + ->from(TABLE_STORY)->alias('t1') + ->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product=t2.id') + ->leftJoin(TABLE_STORYREVIEW)->alias('t3')->on('t1.id=t3.story and t1.version=t3.version') + ->where('t1.deleted')->eq('0') + ->andWhere('t2.deleted')->eq('0') + ->andWhere('t1.type')->eq('story') + ->andWhere('t1.status')->in('reviewing,changing') + ->andWhere('t3.result')->eq('') ->andWhere("t2.vision NOT LIKE '%or%'") ->andWhere("t2.vision NOT LIKE '%lite%'") ->query();