* Refactor getParentTaskPairs method of task module.
This commit is contained in:
+10
-9
@@ -1557,30 +1557,31 @@ class taskModel extends model
|
||||
}
|
||||
|
||||
/**
|
||||
* Get execution parent tasks pairs.
|
||||
* 获取父任务 id:name 的数组。
|
||||
* Get an array of parent task id:name.
|
||||
*
|
||||
* @param int $executionID
|
||||
* @param string $append
|
||||
* @param string $appendIdList
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getParentTaskPairs($executionID, $append = '')
|
||||
public function getParentTaskPairs(int $executionID, string $appendIdList = ''): array
|
||||
{
|
||||
$tasks = $this->dao->select('id, name')->from(TABLE_TASK)
|
||||
$taskPairs = $this->dao->select('id, name')->from(TABLE_TASK)
|
||||
->where('deleted')->eq(0)
|
||||
->andWhere('parent')->le(0)
|
||||
->andWhere('status')->notin('cancel,closed')
|
||||
->andWhere('consumed')->eq('0')
|
||||
->andWhere('execution')->eq($executionID)
|
||||
->beginIF($append)->orWhere('id')->in($append)->fi()
|
||||
->beginIF($appendIdList)->orWhere('id')->in($appendIdList)->fi()
|
||||
->fetchPairs();
|
||||
|
||||
$taskTeams = $this->dao->select('task, count(*) as count')->from(TABLE_TASKTEAM)->where('task')->in(array_keys($tasks))->groupBy('task')->fetchPairs('task', 'count');
|
||||
foreach($tasks as $id => $name)
|
||||
$taskTeams = $this->dao->select('task')->from(TABLE_TASKTEAM)->where('task')->in(array_keys($taskPairs))->fetchPairs('task', 'task');
|
||||
foreach($taskPairs as $id => $name)
|
||||
{
|
||||
if(!empty($taskTeams[$id])) unset($tasks[$id]);
|
||||
if(!empty($taskTeams[$id])) unset($taskPairs[$id]);
|
||||
}
|
||||
return array('' => '') + $tasks ;
|
||||
return $taskPairs;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -4,41 +4,30 @@ include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/task.class.php';
|
||||
su('admin');
|
||||
|
||||
zdTable('project')->config('project', true)->gen(5);
|
||||
zdTable('task')->config('task')->gen(11);
|
||||
zdTable('taskteam')->config('taskteam')->gen(6);
|
||||
|
||||
/**
|
||||
|
||||
title=taskModel->getParentTaskPairs();
|
||||
timeout=0
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
查找有父任务的执行下的父任务 普通任务和特定任务601 >> 更多任务1
|
||||
查找有父任务的执行下的父任务 普通任务和特定任务602 >> 更多任务2
|
||||
查找有父任务的执行下的父任务 普通任务和特定任务603 >> 更多任务3
|
||||
查找有父任务的执行下的父任务 普通任务和特定任务11 >> 开发任务21
|
||||
查找有父任务的执行下的父任务 普通任务和特定任务22 >> 开发任务32
|
||||
查找有父任务的执行下的父任务 普通任务601 >> 更多任务1
|
||||
查找有父任务的执行下的父任务 普通任务602 >> 更多任务2
|
||||
查找有父任务的执行下的父任务 普通任务603 >> 更多任务3
|
||||
查找没有父任务的执行下的父任务 普通任务12 >> 开发任务12
|
||||
查找没有父任务的执行下的父任务 普通任务604 >> 更多任务4
|
||||
查找不是执行的父任务 >> 0
|
||||
查找不存在的执行下的父任务 >> 0
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('101','102','1','100001');
|
||||
$append = '11,22';
|
||||
$executionIDList = array(3, 2, 1, 10);
|
||||
$append = '1,2';
|
||||
|
||||
$task = new taskTest();
|
||||
$taskModel = $tester->loadModel('task');
|
||||
|
||||
r($task->getParentTaskPairsTest($executionIDList[0], $append)) && p('601') && e('更多任务1'); // 查找有父任务的执行下的父任务 普通任务和特定任务601
|
||||
r($task->getParentTaskPairsTest($executionIDList[0], $append)) && p('602') && e('更多任务2'); // 查找有父任务的执行下的父任务 普通任务和特定任务602
|
||||
r($task->getParentTaskPairsTest($executionIDList[0], $append)) && p('603') && e('更多任务3'); // 查找有父任务的执行下的父任务 普通任务和特定任务603
|
||||
r($task->getParentTaskPairsTest($executionIDList[0], $append)) && p('11') && e('开发任务21');// 查找有父任务的执行下的父任务 普通任务和特定任务11
|
||||
r($task->getParentTaskPairsTest($executionIDList[0], $append)) && p('22') && e('开发任务32');// 查找有父任务的执行下的父任务 普通任务和特定任务22
|
||||
r($task->getParentTaskPairsTest($executionIDList[0])) && p('601') && e('更多任务1'); // 查找有父任务的执行下的父任务 普通任务601
|
||||
r($task->getParentTaskPairsTest($executionIDList[0])) && p('602') && e('更多任务2'); // 查找有父任务的执行下的父任务 普通任务602
|
||||
r($task->getParentTaskPairsTest($executionIDList[0])) && p('603') && e('更多任务3'); // 查找有父任务的执行下的父任务 普通任务603
|
||||
r($task->getParentTaskPairsTest($executionIDList[1])) && p('2') && e('开发任务12'); // 查找没有父任务的执行下的父任务 普通任务12
|
||||
r($task->getParentTaskPairsTest($executionIDList[1])) && p('604') && e('更多任务4'); // 查找没有父任务的执行下的父任务 普通任务604
|
||||
r($task->getParentTaskPairsTest($executionIDList[2])) && p('name') && e('0'); // 查找不是执行的父任务
|
||||
r($task->getParentTaskPairsTest($executionIDList[3])) && p('name') && e('0'); // 查找不存在的执行下的父任务
|
||||
r($taskModel->getParentTaskPairs($executionIDList[0], $append)) && p('1') && e('开发任务11'); // 查找有父任务的执行下的开发任务11
|
||||
r($taskModel->getParentTaskPairs($executionIDList[0], $append)) && p('2') && e('开发任务12'); // 查找有父任务的执行下的开发任务12
|
||||
r($taskModel->getParentTaskPairs($executionIDList[0], $append)) && p('6') && e('开发任务16'); // 查找有父任务的执行下的父任务开发任务16
|
||||
r($taskModel->getParentTaskPairs($executionIDList[0])) && p('6') && e('开发任务16'); // 查找有父任务的执行下的父任务开发任务16
|
||||
r($taskModel->getParentTaskPairs($executionIDList[0])) && p('10') && e('`^$`'); // 查找有父任务的执行下的父任务开发任务20
|
||||
r($taskModel->getParentTaskPairs($executionIDList[1])) && p() && e('0'); // 查找没有父任务的执行
|
||||
r($taskModel->getParentTaskPairs($executionIDList[1], $append)) && p('1') && e('开发任务11'); // 查找没有父任务的执行下的开发任务11
|
||||
r($taskModel->getParentTaskPairs($executionIDList[1], $append)) && p('2') && e('开发任务12'); // 查找没有父任务的执行下的开发任务12
|
||||
r($taskModel->getParentTaskPairs($executionIDList[2])) && p() && e('0'); // 查找不是执行的父任务
|
||||
r($taskModel->getParentTaskPairs($executionIDList[3])) && p() && e('0'); // 查找不存在的执行下的父任务
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
title: zt_task
|
||||
author: Mengyi Liu
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: execution
|
||||
range: 3
|
||||
- field: module
|
||||
range: 0{3},1{3},2{3},3{3}
|
||||
- field: story
|
||||
range: 1,0{9}
|
||||
- field: consumed
|
||||
range: 0,2{4},0{3},3,0{2}
|
||||
- field: parent
|
||||
range: "0{5},`-1`,6,0{2},`-1`,10"
|
||||
- field: status
|
||||
range: "wait,doing,done,cancel,closed,wait{3},doing,wait{2}"
|
||||
- field: mode
|
||||
range: "[]{7},linear,multi,[]{2}"
|
||||
- field: deleted
|
||||
range: 0
|
||||
@@ -0,0 +1,20 @@
|
||||
title: zt_taskteam
|
||||
author: Shujie Tian
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: task
|
||||
range: 8{3},10{3}
|
||||
- field: left
|
||||
range: 1-10
|
||||
- field: estimate
|
||||
range: 1-10
|
||||
- field: consumed
|
||||
range: 0
|
||||
- field: account
|
||||
fields:
|
||||
- field: account1
|
||||
range: admin,user{2}
|
||||
- field: account2
|
||||
range: "[],1-2"
|
||||
- field: status
|
||||
range: "wait{4},done{2}"
|
||||
@@ -865,21 +865,6 @@ class taskTest
|
||||
}
|
||||
}
|
||||
|
||||
public function getParentTaskPairsTest($executionID, $append = '')
|
||||
{
|
||||
$objectList = $this->objectModel->getParentTaskPairs($executionID, $append);
|
||||
$objectList = count($objectList) == 1 ? array('name' => 0): $objectList;
|
||||
|
||||
if(dao::isError())
|
||||
{
|
||||
return dao::getError();
|
||||
}
|
||||
else
|
||||
{
|
||||
return $objectList;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test process a task, judge it's status.
|
||||
*
|
||||
|
||||
@@ -8,6 +8,8 @@ fields:
|
||||
range: 0{3},1{3},2{3},3{3}
|
||||
- field: story
|
||||
range: 1,0{9}
|
||||
- field: consumed
|
||||
range: 0,2{4},0{3},3
|
||||
- field: parent
|
||||
range: "0{5},`-1`,6,0{2}"
|
||||
- field: status
|
||||
|
||||
Reference in New Issue
Block a user