Merge branch dev/task-146862 of zentao/zentaopms (#10647)
This commit is contained in:
@@ -1538,7 +1538,9 @@ class metricModel extends model
|
||||
->where('deleted')->eq(0)
|
||||
->andWhere('shadow')->eq(0)
|
||||
->andWhere('createdDate')->le($date)
|
||||
->andWhere("if(closedDate IS NOT NULL and YEAR(closedDate)!='0000', closedDate>='$date', true)")
|
||||
->andWhere("closedDate IS NULL OR YEAR(closedDate)='0000'", true)
|
||||
->orWhere('closedDate')->ge($date)
|
||||
->markRight(1)
|
||||
->andWhere("vision LIKE '%{$vision}%'", true)
|
||||
->orWhere("vision IS NULL")->markRight(1)
|
||||
->fetchPairs();
|
||||
@@ -1548,7 +1550,9 @@ class metricModel extends model
|
||||
->where('deleted')->eq(0)
|
||||
->andWhere('type')->eq('project')
|
||||
->andWhere('openedDate')->le($date)
|
||||
->andWhere("if(closedDate IS NOT NULL and YEAR(closedDate)!='0000', closedDate>='$date', true)")
|
||||
->andWhere("closedDate IS NULL OR YEAR(closedDate)='0000'", true)
|
||||
->orWhere('closedDate')->ge($date)
|
||||
->markRight(1)
|
||||
->andWhere("vision LIKE '%{$vision}%'", true)
|
||||
->orWhere("vision IS NULL")->markRight(1)
|
||||
->fetchPairs();
|
||||
@@ -1558,7 +1562,9 @@ class metricModel extends model
|
||||
->where('deleted')->eq(0)
|
||||
->andWhere('type')->in('sprint,stage,kanban')
|
||||
->andWhere('openedDate')->le($date)
|
||||
->andWhere("if(closedDate IS NOT NULL and YEAR(closedDate)!='0000', closedDate>='$date', true)")
|
||||
->andWhere("closedDate IS NULL OR YEAR(closedDate)='0000'", true)
|
||||
->orWhere('closedDate')->ge($date)
|
||||
->markRight(1)
|
||||
->andWhere("vision LIKE '%{$vision}%'", true)
|
||||
->orWhere("vision IS NULL")->markRight(1)
|
||||
->fetchPairs();
|
||||
|
||||
@@ -134,6 +134,19 @@ class metricTest
|
||||
return $this->objectModel->getPairsByScope($scope);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getPairsByScopeAndDate method.
|
||||
*
|
||||
* @param string $scope
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return array|false
|
||||
*/
|
||||
public function getPairsByScopeAndDate($scope, $date)
|
||||
{
|
||||
return $this->objectModel->getPairsByScopeAndDate($scope, $date);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getControlOptions method.
|
||||
*
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=getPairsByScopeAndDate
|
||||
timeout=0
|
||||
cid=1
|
||||
|
||||
- 测试user对象数 @15
|
||||
- 测试product对象数 @5
|
||||
- 测试project对象数 @20
|
||||
- 测试部分user对象
|
||||
- 属性admin @admin
|
||||
- 属性user2 @用户2
|
||||
- 属性user4 @用户4
|
||||
- 属性user8 @用户8
|
||||
- 测试部分product对象
|
||||
- 属性1 @正常产品1
|
||||
- 属性3 @正常产品3
|
||||
- 属性5 @正常产品5
|
||||
- 测试部分project对象
|
||||
- 属性11 @项目11
|
||||
- 属性13 @项目13
|
||||
- 属性15 @项目15
|
||||
|
||||
*/
|
||||
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/calc.unittest.class.php';
|
||||
su('admin');
|
||||
|
||||
$metric = new metricTest();
|
||||
|
||||
zenData('user')->loadYaml('user', true)->gen(30);
|
||||
zenData('product')->loadYaml('product', true)->gen(10);
|
||||
zenData('project')->loadYaml('project', true)->gen(40);
|
||||
|
||||
$date = '2025-01-01';
|
||||
r(count($metric->getPairsByScopeAndDate('user', $date))) && p('') && e('15'); // 测试user对象数
|
||||
r(count($metric->getPairsByScopeAndDate('product', $date))) && p('') && e('5'); // 测试product对象数
|
||||
r(count($metric->getPairsByScopeAndDate('project', $date))) && p('') && e('20'); // 测试project对象数
|
||||
|
||||
r($metric->getPairsByScopeAndDate('user', $date)) && p('admin,user2,user4,user8') && e('admin,用户2,用户4,用户8'); // 测试部分user对象
|
||||
r($metric->getPairsByScopeAndDate('product', $date)) && p('1,3,5') && e('正常产品1,正常产品3,正常产品5'); // 测试部分product对象
|
||||
r($metric->getPairsByScopeAndDate('project', $date)) && p('11,13,15') && e('项目11,项目13,项目15'); // 测试部分project对象
|
||||
@@ -9,5 +9,13 @@ fields:
|
||||
range: 0{1},1{1}
|
||||
- field: vision
|
||||
range: rnd
|
||||
- field: createdDate
|
||||
range: "20110101 000000-20210101 000000:10D"
|
||||
type: timestamp
|
||||
format: YYYY-MM-DD
|
||||
- field: closedDate
|
||||
range: "20250101 000000-20260101 000000:10D"
|
||||
type: timestamp
|
||||
format: YYYY-MM-DD
|
||||
...
|
||||
|
||||
|
||||
@@ -11,8 +11,12 @@ fields:
|
||||
range: closed{2},doing{2},suspended{2},wait{2}
|
||||
- field: deleted
|
||||
range: 0{1},1{1}
|
||||
- field: closedDate
|
||||
- field: openedDate
|
||||
range: "20110101 000000-20210101 000000:10D"
|
||||
type: timestamp
|
||||
format: YYYY-MM-DD
|
||||
- field: closedDate
|
||||
range: "20250101 000000-20260101 000000:10D"
|
||||
type: timestamp
|
||||
format: YYYY-MM-DD
|
||||
...
|
||||
|
||||
@@ -308,8 +308,8 @@ class pivotTao extends pivotModel
|
||||
{
|
||||
return $this->dao->select(<<<EOT
|
||||
t1.id,
|
||||
IF(t1.mode = '', t1.assignedTo, t4.account) AS user,
|
||||
IF(t1.mode = '', ROUND(t1.left, 2), ROUND(t4.left, 2)) AS 'left',
|
||||
CASE WHEN t1.mode = '' THEN t1.assignedTo ELSE t4.account END AS user,
|
||||
CASE WHEN t1.mode = '' THEN ROUND(t1.`left`, 2) ELSE ROUND(t4.`left`, 2) END AS `left`,
|
||||
t2.multiple,
|
||||
t2.id AS executionID,
|
||||
t2.name AS executionName,
|
||||
|
||||
Executable
+45
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 pivotTao->getAssignTask();
|
||||
timeout=0
|
||||
cid=1
|
||||
|
||||
- 查询单人任务
|
||||
- 第0条的user属性 @admin
|
||||
- 第0条的left属性 @1
|
||||
- 查询多人任务
|
||||
- 第1条的user属性 @user1
|
||||
- 第1条的left属性 @1
|
||||
- 查询单人未开始的任务
|
||||
- 第2条的user属性 @user16
|
||||
- 第2条的left属性 @2
|
||||
- 查询多人进行中的任务
|
||||
- 第3条的user属性 @user7
|
||||
- 第3条的left属性 @3
|
||||
- 查询指派给不存在的用户的任务 @0
|
||||
|
||||
*/
|
||||
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/pivot.unittest.class.php';
|
||||
|
||||
zenData('task')->loadYaml('task')->gen(10);
|
||||
zenData('project')->loadYaml('project_getassigntask')->gen(200);
|
||||
zenData('taskteam')->gen(10);
|
||||
|
||||
global $tester;
|
||||
|
||||
$pivot = new pivotTest();
|
||||
|
||||
$deptUsers = array();
|
||||
|
||||
r($pivot->getAssignTask($deptUsers)) && p('0:user,left') && e('admin,1'); //查询单人任务
|
||||
r($pivot->getAssignTask($deptUsers)) && p('1:user,left') && e('user1,1'); //查询多人任务
|
||||
r($pivot->getAssignTask($deptUsers)) && p('2:user,left') && e('user16,2'); //查询单人未开始的任务
|
||||
r($pivot->getAssignTask($deptUsers)) && p('3:user,left') && e('user7,3'); //查询多人进行中的任务
|
||||
|
||||
$deptUsers = array('user1000');
|
||||
r($pivot->getAssignTask($deptUsers)) && p('') && e('0'); //查询指派给不存在的用户的任务
|
||||
@@ -0,0 +1,10 @@
|
||||
title: table zt_project
|
||||
author: Wang XuePeng
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: id
|
||||
range: 1-200
|
||||
- field: type
|
||||
range: 'program{10},project{90},execution{100}'
|
||||
- field: vision
|
||||
range: 'rnd'
|
||||
@@ -16,3 +16,5 @@ fields:
|
||||
format: ""
|
||||
- field: left
|
||||
range: 1-5
|
||||
- field: mode
|
||||
range: "[],linear,multi"
|
||||
|
||||
Reference in New Issue
Block a user