Merge branch ztflow-caoyanyi-feature/task-report#caoyanyi of zentao/zentaopms (#9346)

This commit is contained in:
刘刚
2025-06-10 15:13:13 +08:00
committed by Gitfox
5 changed files with 210 additions and 0 deletions
@@ -0,0 +1,42 @@
<?php
/**
* 按系统统计的发生变更研发需求数。
* Count of changed story.
*
* 范围:system
* 对象:story
* 目的:scale
* 度量名称:按系统统计的发生变更研发需求数
* 单位:个
* 描述:按系统统计的发生变更的产品研发需求数量反映了组织在特定时间段内已经关闭的产品研发需求数量,用于评估组织的研发决策效果、优化资源管理和提供绩效评估和成果。
* 定义:所有的研发需求个数求和;状态为发生变更;过滤已删除的研发需求;
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
* @author Yanyi Cao <caoyanyi@chandao.com>
* @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_changed_story extends baseCalc
{
public $dataset = '';
public $fieldList = array();
public $result = 0;
public function calculate($row)
{
if(empty($row->changedDate) || $row->status == 'changing' || $row->status == 'reviewing') return false;
if(!empty($row->executionStartDate) && !empty($row->executionEndDate) && $row->changedDate < $row->executionStartDate || $row->changedDate > $row->executionEndDate) return false;
$this->result ++;
}
public function getResult($options = array())
{
$records = array(array('value' => $this->result));
return $this->filterByOptions($records, $options);
}
}
@@ -0,0 +1,39 @@
<?php
/**
* 按系统统计的测试完毕研发需求数。
* Count of tested story.
*
* 范围:system
* 对象:story
* 目的:scale
* 度量名称:按系统统计的测试完毕研发需求数
* 单位:个
* 描述:按系统统计的测试完毕研发需求数反映了组织在特定时间段内已经完成的产品研发需求数量,用于评估评组织的估研发成果、产品创新和竞争力,并提供绩效评估。
* 定义:所有的研发需求个数求和;过滤已删除的研发需求;
*
* @copyright Copyright 2009-2025 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
* @author Yanyi Cao <caoyanyi@chandao.com>
* @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_tested_story extends baseCalc
{
public $dataset = '';
public $fieldList = array();
public $result = 0;
public function calculate($row)
{
if($row->stage == 'tested') $this->result ++;
}
public function getResult($options = array())
{
$records = array(array('value' => $this->result));
return $this->filterByOptions($records, $options);
}
}
@@ -0,0 +1,45 @@
<?php
/**
* 按系统统计的发生变更研发需求规模数。
* Scale of closed story.
*
* 范围:system
* 对象:story
* 目的:scale
* 度量名称:按系统统计的发生变更研发需求规模数
* 单位:个
* 描述:按系统统计的发生变更研发需求规模数反映了组织在发生变更的研发需求上的规模总数,用于评估组织对于研发进展评估、质量控制、绩效评估和持续改进具有重要意义。
* 定义:所有的研发需求规模数求和;过滤父研发需求;过滤已删除的研发需求;
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
* @author Yanyi Cao <caoyanyi@chandao.com>
* @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 scale_of_changed_story extends baseCalc
{
public $dataset = '';
public $fieldList = array();
public $result = 0;
public function calculate($row)
{
if($row->isParent == '1') return false;
if(empty($row->estimate)) return false;
if(empty($row->changedDate) || $row->status == 'changing' || $row->status == 'reviewing') return false;
if(!empty($row->executionStartDate) && !empty($row->executionEndDate) && $row->changedDate < $row->executionStartDate || $row->changedDate > $row->executionEndDate) return false;
$this->result += $row->estimate;
}
public function getResult($options = array())
{
$records = $this->getRecords(array('value'));
return $this->filterByOptions($records, $options);
}
}
@@ -0,0 +1,42 @@
<?php
/**
* 按系统统计的已关闭研发需求规模数。
* Scale of closed story.
*
* 范围:system
* 对象:story
* 目的:scale
* 度量名称:按系统统计的已关闭研发需求规模数
* 单位:个
* 描述:按系统统计的已关闭研发需求规模数反映了组织在已关闭的研发需求上的规模总数,用于评估组织对于研发进展评估、质量控制、绩效评估和持续改进具有重要意义。
* 定义:所有的研发需求规模数求和;过滤父研发需求;过滤已删除的研发需求;
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
* @author Yanyi Cao <caoyanyi@chandao.com>
* @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 scale_of_closed_story extends baseCalc
{
public $dataset = '';
public $fieldList = array();
public $result = 0;
public function calculate($row)
{
if($row->isParent == '1') return false;
if(empty($row->estimate)) return null;
if($row->status == 'closed') $this->result += $row->estimate;
}
public function getResult($options = array())
{
$records = $this->getRecords(array('value'));
return $this->filterByOptions($records, $options);
}
}
@@ -0,0 +1,42 @@
<?php
/**
* 按系统统计的测试完毕研发需求规模数。
* Scale of finished story.
*
* 范围:system
* 对象:story
* 目的:scale
* 度量名称:按系统统计的测试完毕研发需求规模数
* 单位:个
* 描述:按系统统计的测试完毕研发需求规模数反映了组织在测试完毕的研发需求上的规模总数,用于评估组织对于研发进展评估、质量控制、绩效评估和持续改进具有重要意义。
* 定义:所有的研发需求规模数求和;过滤父研发需求;过滤已删除的研发需求;
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
* @author Yanyi Cao <caoyanyi@chandao.com>
* @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 scale_of_tested_story extends baseCalc
{
public $dataset = '';
public $fieldList = array();
public $result = 0;
public function calculate($row)
{
if($row->isParent == '1') return false;
if(empty($row->estimate)) return null;
if($row->stage == 'tested') $this->result += $row->estimate;
}
public function getResult($options = array())
{
$records = $this->getRecords(array('value'));
return $this->filterByOptions($records, $options);
}
}