* Modify getTotalPercent function and test case for programplan model.
This commit is contained in:
@@ -415,6 +415,7 @@ class programplanModel extends model
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取阶段百分比。
|
||||
* Get total percent.
|
||||
*
|
||||
* @param object $stage
|
||||
@@ -422,11 +423,11 @@ class programplanModel extends model
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function getTotalPercent(object $stage, bool $parent = false)
|
||||
public function getTotalPercent(object $stage, bool $parent = false) : int
|
||||
{
|
||||
/* When parent is equal to true, query the total workload of the subphase. */
|
||||
$executionID = $parent ? $stage->id : $stage->project;
|
||||
$plans = $this->getStage($executionID, $stage->product, 'parent');
|
||||
$plans = $this->programplanTao->getStageListBy((int)$executionID, (int)$stage->product, $browseType = 'parent');
|
||||
|
||||
$totalPercent = 0;
|
||||
$stageID = $stage->id;
|
||||
|
||||
@@ -287,4 +287,33 @@ class programplanTao extends programplanModel
|
||||
|
||||
return $datas;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取阶段信息。
|
||||
* Get stage listt.
|
||||
*
|
||||
* @param int $executionID
|
||||
* @param int $productID
|
||||
* @param string $browseType
|
||||
* @param string $orderBy
|
||||
* @access protected
|
||||
* @return array
|
||||
*/
|
||||
protected function getStageListBy(int $executionID, int $productID, string $browseType, $orderBy = 'id_asc')
|
||||
{
|
||||
if(empty($executionID)) return array();
|
||||
$projectModel = $this->dao->select('model')->from(TABLE_PROJECT)->where('id')->eq($executionID)->fetch('model');
|
||||
|
||||
return $this->dao->select('t1.*')->from(TABLE_EXECUTION)->alias('t1')
|
||||
->leftJoin(TABLE_PROJECTPRODUCT)->alias('t2')->on('t1.id = t2.project')
|
||||
->where('1 = 1')
|
||||
->beginIF($projectModel != 'waterfallplus')->andWhere('t1.type')->eq('stage')->fi()
|
||||
->beginIF($productID)->andWhere('t2.product')->eq($productID)->fi()
|
||||
->beginIF($browseType == 'all')->andWhere('t1.project')->eq($executionID)->fi()
|
||||
->beginIF($browseType == 'parent')->andWhere('t1.parent')->eq($executionID)->fi()
|
||||
->beginIF($this->app->user->admin)->andWhere('t1.id')->in($this->app->user->view->sprints)->fi()
|
||||
->andWhere('t1.deleted')->eq('0')
|
||||
->orderBy($orderBy)
|
||||
->fetchAll('id');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,22 +10,18 @@ title=测试 programplanModel->getTotalPercent();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试获取阶段131的总进度 >> 60
|
||||
测试获取阶段131是父阶段的总进度 >> 0
|
||||
测试获取阶段132的总进度 >> 60
|
||||
测试获取阶段133的总进度 >> 60
|
||||
测试获取阶段134的总进度 >> 60
|
||||
测试获取阶段135的总进度 >> 60
|
||||
|
||||
*/
|
||||
|
||||
$stageIDList = array(131, 132, 133, 134, 135);
|
||||
|
||||
zdTable('project')->config('project')->gen(5);
|
||||
zdTable('projectproduct')->config('projectproduct')->gen(5);
|
||||
|
||||
$stageIDList = array(2, 1, 5, 3);
|
||||
|
||||
$programplan = new programplanTest();
|
||||
|
||||
r($programplan->getTotalPercentTest($stageIDList[0])) && p() && e('60'); // 测试获取阶段131的总进度
|
||||
r($programplan->getTotalPercentTest($stageIDList[0], true)) && p() && e('0'); // 测试获取阶段131是父阶段的总进度
|
||||
r($programplan->getTotalPercentTest($stageIDList[1])) && p() && e('60'); // 测试获取阶段132的总进度
|
||||
r($programplan->getTotalPercentTest($stageIDList[2])) && p() && e('60'); // 测试获取阶段133的总进度
|
||||
r($programplan->getTotalPercentTest($stageIDList[3])) && p() && e('60'); // 测试获取阶段134的总进度
|
||||
r($programplan->getTotalPercentTest($stageIDList[4])) && p() && e('60'); // 测试获取阶段135的总进度
|
||||
r($programplan->getTotalPercentTest($stageIDList[0])) && p() && e('23'); // 测试获取阶段2的总进度
|
||||
r($programplan->getTotalPercentTest($stageIDList[0], true)) && p() && e('23'); // 测试获取阶段2是父阶段的总进度
|
||||
r($programplan->getTotalPercentTest($stageIDList[1])) && p() && e('47'); // 测试获取阶段1的总进度
|
||||
r($programplan->getTotalPercentTest($stageIDList[2], true)) && p() && e('0'); // 测试获取阶段5是父阶段的总进度
|
||||
r($programplan->getTotalPercentTest($stageIDList[3])) && p() && e('24'); // 测试获取阶段3的总进度
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
title: zt_project
|
||||
author: jukui
|
||||
version: '1.0'
|
||||
fields:
|
||||
- field: id
|
||||
range: 1-6
|
||||
- field: project
|
||||
range: '1,2,3,4,1,1'
|
||||
- field: name
|
||||
range: '瀑布项目1,阶段a,阶段a子1,阶段a子1子1,阶段b,阶段c'
|
||||
- field: parent
|
||||
range: '0,1,2,3,1,1'
|
||||
- field: type
|
||||
range: 'stage'
|
||||
- field: percent
|
||||
range: 1-6
|
||||
prefix: '2'
|
||||
- field: grade
|
||||
range: 1
|
||||
- field: days
|
||||
range: 1
|
||||
- field: status
|
||||
range: 'doing,doing,doing,closed,suspended'
|
||||
- field: desc
|
||||
range: 1-6
|
||||
prefix: '项目描述'
|
||||
- field: path
|
||||
range: "`,1,`,`,1,2,`,`,1,2,3,`,`,1,2,3,4,`,`,1,5,`,`,1,6,`"
|
||||
@@ -0,0 +1,12 @@
|
||||
title: zt_projectproduct
|
||||
author: jukui
|
||||
version: '1.0'
|
||||
fields:
|
||||
- field: project
|
||||
range: '1,2,3,4,5,6'
|
||||
- field: product
|
||||
range: '2'
|
||||
- field: branch
|
||||
range: 0
|
||||
- field: plan
|
||||
range: 0
|
||||
Reference in New Issue
Block a user