Merge branch 'autotest_ly' into 'master'

Add kanban data

See merge request easycorp/zentaopms!2168
This commit is contained in:
孙广明
2022-03-09 09:09:11 +00:00
20 changed files with 552 additions and 15 deletions

View File

@@ -721,4 +721,26 @@ class executionTest
}
}
public function unlinkStoryTest($executionID, $count)
{
global $tester;
$tester->dbh->query("delete from zt_projectstory where project = $executionID");
$this->objectModel->unlinkStory($executionID);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
$object = $tester->dbh->query("select * from zt_projectstory where project = $executionID")->fetchAll();
return count($object);
}
else
{
$object = $tester->dbh->query("select * from zt_projectstory where project = $executionID")->fetchAll();
return $object;
}
}
}

54
test/data/kanban.yaml Normal file
View File

@@ -0,0 +1,54 @@
title: table zt_kanban
desc: "看板表"
author: automated export
version: "1.0"
fields:
- field: space
range: 1-50{2}
- field: name
fields:
- field: name1
range: 通用看板
- field: name2
range: 1-10000
- field: owner
range: admin
- field: team
range: ""
- field: desc
range: "看板详情"
- field: acl
range: extend,open
- field: whitelist
range: ""
- field: archived
range: "1"
- field: performable
range: "0"
- field: status
range: "active"
- field: order
range: 5-10000:5
- field: displayCards
range: "0"
- field: fluidBoard
range: "0"
- field: object
range: ""
- field: createdBy
range: "admin"
- field: createdDate
range: "(-1M)-(+M):1D"
type: timestamp
format: "YYYY-MM-DD"
prefix: "\t"
- field: lastEditedBy
range: ""
- field: lastEditedDate
range: ""
- field: closedBy
range: ""
- field: closedDate
range: ""
- field: deleted
range: "0"

72
test/data/kanbancard.yaml Normal file
View File

@@ -0,0 +1,72 @@
title: table zt_kanbancard
desc: ""
author: automated export
version: "1.0"
fields:
- field: kanban
range: 1-100{8}
- field: region
range: 1-100{8}
- field: group
range: 1-100{8}
- field: fromID
range: "0"
- field: fromType
range: ""
- field: name
range: 1-1000000
prefix: "卡片"
- field: status
range: "doing"
- field: pri
range: "3"
- field: assignedTo
range: "admin"
- field: desc
range: ""
- field: begin
range: "(-2M)-(+M):1D"
type: timestamp
format: "YY/MM/DD"
postfix: "\t"
- field: end
range: "(+1w)-(+2M):1D"
type: timestamp
format: "YY/MM/DD"
postfix: "\t"
- field: estimate
range: "0"
- field: color
range: "#fff"
- field: acl
range: "open"
- field: whitelist
range: ""
- field: order
range: 1-2
- field: archived
range: "0"
- field: createdBy
range: "admin"
- field: createdDate
range: "(-2M)-(+M):1D"
type: timestamp
format: "YY/MM/DD"
postfix: "\t"
- field: lastEditedBy
range: ""
- field: lastEditedDate
range: ""
- field: archivedBy
range: ""
- field: archivedDate
range: ""
- field: assignedBy
range: ""
- field: assignedDate
range: "(-2M)-(+M):1D"
type: timestamp
format: "YY/MM/DD"
postfix: "\t"
- field: deleted
range: "0"

22
test/data/kanbancell.yaml Normal file
View File

@@ -0,0 +1,22 @@
title: table zt_kanbancell
desc: ""
author: automated export
version: "1.0"
fields:
- field: kanban
range: 1-100{4}
- field: lane
range: 1-100{4}
- field: column
range: 1-400
- field: type
range: "common"
- field: cards
fields:
- field: card1
prefix: ","
postfix: ","
range: 1-800:2
- field: card2
postfix: ","
range: 2-800:2

View File

@@ -0,0 +1,17 @@
title: table zt_kanbancell
desc: ""
author: automated export
version: "1.0"
fields:
- field: id
range: 401-10000
- field: kanban
range: 161-190{27},251-180{27},341-370{27},431-460{27},521-550{27},611-640{27}
- field: lane
range: 1-100{4}
- field: column
range: 401-5260
- field: type
range: story{11},bug{9},task{7}
- field: cards
range: ""

View File

@@ -0,0 +1,30 @@
title: table zt_kanbancolumn
desc: ""
author: automated export
version: "1.0"
fields:
- field: lane
range: "0"
- field: parent
range: "0"
- field: type
range: 1-400
prefix: "column"
- field: region
range: 1-100{4}
- field: group
range: 1-100{4}
- field: name
range: 未开始,进行中,已完成,已关闭
- field: color
range: "#333"
- field: limit
range: ""
- field: order
range: 1-4
- field: cards
range: ""
- field: archived
range: "0"
- field: deleted
range: "0"

View File

@@ -0,0 +1,31 @@
title: table zt_kanbancolumn
desc: ""
author: automated export
version: "1.0"
fields:
- field: id
range: 401-100000
- field: lane
range: "0"
- field: parent
range: "0"
- field: type
range: [backlog,ready,develop,developing,developed,test,testing,tested,verified,released,closed,unconfirmed,confirmed,resolving,fixing,fixed,test,testing,tested,closed,wait,develop,developing,developed,pause,canceled,closed]
- field: region
range: 101-280{27}
- field: group
range: "0"
- field: name
range: Backlog,准备好,开发,进行中,完成,测试,进行中,完成,已验收,已发布,已关闭,待确认,已确认,解决中,进行中,完成,测试,测试中,测试完毕,已关闭,未开始,开发,研发中,研发完毕,已暂停,已取消,已关闭
- field: color
range: "#333"
- field: limit
range: ""
- field: order
range: "0"
- field: cards
range: ""
- field: archived
range: "0"
- field: deleted
range: "0"

View File

@@ -0,0 +1,11 @@
title: table zt_kanbangroup
desc: ""
author: automated export
version: "1.0"
fields:
- field: kanban
range: 1-100
- field: region
range: 1-100
- field: order
range: 5-100000:5

View File

@@ -0,0 +1,13 @@
title: table zt_kanbangroup
desc: ""
author: automated export
version: "1.0"
fields:
- field: id
range: 101-10000
- field: kanban
range: 161-190,251-180,341-370,431-460,521-550,611-640
- field: region
range: 101-10000{3}
- field: order
range: 1-3

27
test/data/kanbanlane.yaml Normal file
View File

@@ -0,0 +1,27 @@
title: table zt_kanbanlane
desc: "看板泳道"
author: automated export
version: "1.0"
fields:
- field: execution
range: "0"
- field: type
range: "common"
- field: region
range: 1-100
- field: group
range: 1-100
- field: groupby
range: ""
- field: extra
range: ""
- field: name
range: "默认泳道"
- field: color
range: "#7ec5ff"
- field: order
range: 5-10000:5
- field: lastEditedTime
range: ""
- field: deleted
range: "0"

View File

@@ -0,0 +1,27 @@
title: table zt_kanbanlane
desc: "看板泳道"
author: automated export
version: "1.0"
fields:
- field: execution
range: 161-190{3},251-180{3},341-370{3},431-460{3},521-550{3},611-640{3}
- field: type
range: story,bug,task
- field: region
range: 101-280{3}
- field: group
range: 101-640
- field: groupby
range: ""
- field: extra
range: ""
- field: name
range: 研发需求,Bug,任务
- field: color
range: [#7ec5ff,#333,#2b529c]
- field: order
range: 5-15:5
- field: lastEditedTime
range: ""
- field: deleted
range: "0"

View File

@@ -0,0 +1,25 @@
title: table zt_kanbanregion
desc: ""
author: automated export
version: "1.0"
fields:
- field: space
range: 1-50{2}
- field: kanban
range: 1-100
- field: name
range: "默认区域"
- field: order
range: 5-10000:5
- field: createdDate
range: "(-1M)-(+M):1D"
type: timestamp
format: "YYYY-MM-DD"
- field: createdBy
range: "admin"
- field: lastEditedBy
range: ""
- field: lastEditedDate
range: ""
- field: deleted
range: "0"

View File

@@ -0,0 +1,27 @@
title: table zt_kanbanregion
desc: ""
author: automated export
version: "1.0"
fields:
- field: id
range: 101-10000
- field: space
range: 0
- field: kanban
range: 161-190,251-180,341-370,431-460,521-550,611-640
- field: name
range: "默认区域"
- field: order
range: 1
- field: createdDate
range: "(-1M)-(+M):1D"
type: timestamp
format: "YYYY-MM-DD"
- field: createdBy
range: "admin"
- field: lastEditedBy
range: ""
- field: lastEditedDate
range: ""
- field: deleted
range: "0"

View File

@@ -0,0 +1,67 @@
title: table zt_kanbanspace
desc: "看板空间"
author: automated export
version: "1.0"
fields:
- field: id
note: "ID"
fields:
range: 1-10000
prefix: ""
postfix: ""
format: ""
- field: type
note: "类型"
range: cooperation,private,public
prefix: ""
postfix: ""
format: ""
- field: team
note: "团队"
range: admin
prefix: ","
postfix: ""
format: ""
- field: owner
note: "所属者"
fields:
- field: account1
range: admin{10},user{10},test{10},pm{10},po{10}
- field: account2
range: [],3-100,1-100,1-100,1-100
prefix: ""
postfix: ""
- field: acl
note: "权限"
range: open,private
prefix: ""
postfix: ""
- field: createdBy
note: "创建者"
range: admin
prefix: ""
postfix: ""
loop: 0
format: ""
- field: createdDate
note: "创建日期"
range: "(-1M)-(+M):1D"
prefix: "\t"
type: timestamp
format: "YYYY-MM-DD"
- field: lastEditedDate
note: "最后编辑日期"
range: ""
prefix: ""
postfix: ""
tampoop: 0
- field: closedDate
note: "关闭时间"
range: ""
prefix: ""
postfix: ""
- field: deleted
note: ""
range: 0
prefix: ""
postfix: ""

12
test/data/planstory.yaml Normal file
View File

@@ -0,0 +1,12 @@
title: table zt_planstory
desc: "需求计划关联表"
author: sgm
version: "1.0"
fields:
- field: plan
range: 1-360:3{4}
- field: story
range: 1-400
- field: order
note: "排序"
range: 5-100000:5

View File

@@ -1,24 +1,24 @@
title: table zt_productplan
desc: "产品计划"
author: sgm
author: sgm
version: "1.0"
fields:
- field: id
note: "ID"
range: 1-10000
- field: product
- field: product
note: "所属产品"
range: 1-120{3}
- field: branch
range: 1-10{3}
- field: branch
note: "所属分支"
range: 0
- field: parent
- field: parent
note: "父计划"
range: 0
- field: title
- field: title
note: "名称"
range: [1.0,1.1,长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^&#!]
- field: desc
- field: desc
note: "描述"
range: <div>
<p>asdxxxfa阿萨德开机as家世界发卡机发设计费啥登记卡设计费卡加斯加附件阿峰</p>
@@ -27,19 +27,19 @@ fields:
<p>IUIG是DAU发加速度快哦哦阿萨德几年内发奥斯丁请问加十多年你</p>
<p>IU风格就叫阿萨德奥斯丁哦IG是DAU奥斯丁请问加十多年你</p>
</div>
- field: begin
- field: begin
note: "开始日期"
range: "(-10M)-(-7M):7D"
type: timestamp
format: "YYYY-MM-DD"
- field: end
- field: end
note: "结束日期"
range: "(-6M)-(+6M):7D"
type: timestamp
format: "YYYY-MM-DD"
- field: order
- field: order
note: "排序"
value: "$id * 5"
- field: deleted
- field: deleted
note: "是否删除"
range: 0{359},1
range: 0{359},1

View File

@@ -3,7 +3,7 @@ author: Zhu Jinyong
version: "1.0"
fields:
- field: project
range: 0
range: 1-10
- field: model
range: scrum{30},waterfall{30},kanban{30}
- field: name

View File

@@ -9,4 +9,4 @@ fields:
- field: branch
range: 0
- field: plan
range: 0
range: 1-360:3

View File

@@ -12,6 +12,7 @@ $builder->sprint = array('rows' => 600, 'extends' => array('project', 'ex
$builder->story = array('rows' => 400, 'extends' => array('story'));
$builder->storymodule = array('rows' => 800, 'extends' => array('module','storymodule'));
$builder->storyplan = array('rows' => 400, 'extends' => array('planstory'));
$builder->task = array('rows' => 600, 'extends' => array('task','task'));
$builder->taskmore = array('rows' => 300, 'extends' => array('task','moretask'));
$builder->taskspec = array('rows' => 600, 'extends' => array('taskspec'));
@@ -23,10 +24,26 @@ $builder->bug = array('rows' => 300, 'extends' => array('bug'));
$builder->product = array('rows' => 100, 'extends' => array('product'));
$builder->productline = array('rows' => 20, 'extends' => array('module', 'productline'));
$builder->productplan = array('rows' => 360, 'extends' => array('productplan'));
$builder->productplan = array('rows' => 30, 'extends' => array('productplan'));
$builder->branch = array('rows' => 240, 'extends' => array('branch'));
$builder->projectproduct = array('rows' => 200, 'extends' => array('projectproduct'));
$builder->kanbanspace = array('rows' => 50, 'extends' => array('kanbanspace'));
$builder->kanban = array('rows' => 100, 'extends' => array('kanban'));
$builder->kanbanregion = array('rows' => 100, 'extends' => array('kanbanregion','kanbanregion'));
$builder->kanbangroup = array('rows' => 100, 'extends' => array('kanbangroup','kanbangroup'));
$builder->kanbanlane = array('rows' => 100, 'extends' => array('kanbanlane','kanbanlane'));
$builder->kanbancolumn = array('rows' => 400, 'extends' => array('kanbancolumn','kanbancolumn'));
$builder->kanbancard = array('rows' => 800, 'extends' => array('kanbancard','kanbancard'));
$builder->kanbancell = array('rows' => 400, 'extends' => array('kanbancell','kanbancell'));
$builder->kanbanregionproject = array('rows' => 180, 'extends' => array('kanbanregion','kanbanregionproject'));
$builder->kanbangroupproject = array('rows' => 540, 'extends' => array('kanbangroup','kanbangroupproject'));
$builder->kanbanlaneproject = array('rows' => 540, 'extends' => array('kanbanlane','kanbanlaneproject'));
$builder->kanbancolumnproject = array('rows' => 4860, 'extends' => array('kanbancolumn','kanbancolumnproject'));
$builder->kanbancellproject = array('rows' => 4860, 'extends' => array('kanbancell','kanbancellproject'));
$builder->team = array('rows' => 400, 'extends' => array('team'));
$builder->stakeholder = array('rows' => 1, 'extends' => array('stakeholder'));
$builder->stageson = array('rows' => 30, 'extends' => array('project', 'executionson'));

View File

@@ -44,6 +44,7 @@ class Processor
$this->initRelease();
$this->initStakeholder();
$this->initUserquery();
$this->initUpdateKanban();
$this->dao->commit();
}
@@ -229,4 +230,66 @@ class Processor
$this->dao->query("INSERT INTO `zt_userquery` (`id`, `account`, `module`, `title`, `form`, `sql`, `shortcut`) VALUES (1, 'admin', 'task', '任务查询测试条件', 'a:60:{s:9:\"fieldname\";s:0:\"\";s:11:\"fieldstatus\";s:0:\"\";s:9:\"fielddesc\";s:0:\"\";s:15:\"fieldassignedTo\";s:0:\"\";s:8:\"fieldpri\";s:1:\"0\";s:14:\"fieldexecution\";s:0:\"\";s:11:\"fieldmodule\";s:4:\"ZERO\";s:13:\"fieldestimate\";s:0:\"\";s:9:\"fieldleft\";s:0:\"\";s:13:\"fieldconsumed\";s:0:\"\";s:9:\"fieldtype\";s:0:\"\";s:12:\"fieldfromBug\";s:0:\"\";s:17:\"fieldclosedReason\";s:0:\"\";s:13:\"fieldopenedBy\";s:0:\"\";s:15:\"fieldfinishedBy\";s:0:\"\";s:13:\"fieldclosedBy\";s:0:\"\";s:13:\"fieldcancelBy\";s:1:\"0\";s:17:\"fieldlastEditedBy\";s:0:\"\";s:11:\"fieldmailto\";s:0:\"\";s:17:\"fieldfinishedList\";s:0:\"\";s:15:\"fieldopenedDate\";s:0:\"\";s:13:\"fielddeadline\";s:0:\"\";s:15:\"fieldestStarted\";s:0:\"\";s:16:\"fieldrealStarted\";s:0:\"\";s:17:\"fieldassignedDate\";s:0:\"\";s:17:\"fieldfinishedDate\";s:0:\"\";s:15:\"fieldclosedDate\";s:0:\"\";s:17:\"fieldcanceledDate\";s:0:\"\";s:19:\"fieldlastEditedDate\";s:0:\"\";s:7:\"fieldid\";s:0:\"\";s:15:\"fieldcanceledBy\";s:0:\"\";s:6:\"andOr1\";s:3:\"AND\";s:6:\"field1\";s:4:\"name\";s:9:\"operator1\";s:7:\"include\";s:6:\"value1\";s:2:\"aa\";s:6:\"andOr2\";s:3:\"and\";s:6:\"field2\";s:2:\"id\";s:9:\"operator2\";s:1:\"=\";s:6:\"value2\";s:0:\"\";s:6:\"andOr3\";s:3:\"and\";s:6:\"field3\";s:6:\"status\";s:9:\"operator3\";s:1:\"=\";s:6:\"value3\";s:0:\"\";s:10:\"groupAndOr\";s:3:\"and\";s:6:\"andOr4\";s:3:\"AND\";s:6:\"field4\";s:4:\"desc\";s:9:\"operator4\";s:7:\"include\";s:6:\"value4\";s:0:\"\";s:6:\"andOr5\";s:3:\"and\";s:6:\"field5\";s:10:\"assignedTo\";s:9:\"operator5\";s:1:\"=\";s:6:\"value5\";s:0:\"\";s:6:\"andOr6\";s:3:\"and\";s:6:\"field6\";s:3:\"pri\";s:9:\"operator6\";s:1:\"=\";s:6:\"value6\";s:1:\"0\";s:6:\"module\";s:4:\"task\";s:9:\"actionURL\";s:77:\"/index.php?m=execution&f=task&executionID=101&status=bySearch&param=myQueryID\";s:10:\"groupItems\";s:1:\"3\";s:8:\"formType\";s:4:\"lite\";}', '(( 1 AND `name` LIKE \'%11%\' ) AND ( 1 )) AND deleted = \'0\'', '0');");
$this->dao->query("INSERT INTO `zt_userquery` (`id`, `account`, `module`, `title`, `form`, `sql`, `shortcut`) VALUES (2, 'admin', 'executionStory', '需求查找条件', 'a:56:{s:10:\"fieldtitle\";s:0:\"\";s:13:\"fieldkeywords\";s:0:\"\";s:11:\"fieldstatus\";s:0:\"\";s:10:\"fieldstage\";s:0:\"\";s:8:\"fieldpri\";s:1:\"0\";s:12:\"fieldproduct\";s:1:\"0\";s:11:\"fieldbranch\";s:0:\"\";s:11:\"fieldmodule\";s:4:\"ZERO\";s:9:\"fieldplan\";s:0:\"\";s:13:\"fieldestimate\";s:0:\"\";s:11:\"fieldsource\";s:0:\"\";s:15:\"fieldsourceNote\";s:0:\"\";s:12:\"fieldfromBug\";s:0:\"\";s:13:\"fieldopenedBy\";s:0:\"\";s:15:\"fieldreviewedBy\";s:0:\"\";s:15:\"fieldassignedTo\";s:0:\"\";s:13:\"fieldclosedBy\";s:0:\"\";s:17:\"fieldlastEditedBy\";s:0:\"\";s:11:\"fieldmailto\";s:0:\"\";s:17:\"fieldclosedReason\";s:0:\"\";s:12:\"fieldversion\";s:0:\"\";s:15:\"fieldopenedDate\";s:0:\"\";s:17:\"fieldreviewedDate\";s:0:\"\";s:17:\"fieldassignedDate\";s:0:\"\";s:15:\"fieldclosedDate\";s:0:\"\";s:19:\"fieldlastEditedDate\";s:0:\"\";s:7:\"fieldid\";s:0:\"\";s:6:\"andOr1\";s:3:\"AND\";s:6:\"field1\";s:5:\"title\";s:9:\"operator1\";s:7:\"include\";s:6:\"value1\";s:3:\"362\";s:6:\"andOr2\";s:3:\"and\";s:6:\"field2\";s:2:\"id\";s:9:\"operator2\";s:1:\"=\";s:6:\"value2\";s:0:\"\";s:6:\"andOr3\";s:3:\"and\";s:6:\"field3\";s:8:\"keywords\";s:9:\"operator3\";s:7:\"include\";s:6:\"value3\";s:0:\"\";s:10:\"groupAndOr\";s:3:\"and\";s:6:\"andOr4\";s:3:\"AND\";s:6:\"field4\";s:5:\"stage\";s:9:\"operator4\";s:1:\"=\";s:6:\"value4\";s:0:\"\";s:6:\"andOr5\";s:3:\"and\";s:6:\"field5\";s:6:\"status\";s:9:\"operator5\";s:1:\"=\";s:6:\"value5\";s:0:\"\";s:6:\"andOr6\";s:3:\"and\";s:6:\"field6\";s:3:\"pri\";s:9:\"operator6\";s:1:\"=\";s:6:\"value6\";s:1:\"0\";s:6:\"module\";s:14:\"executionStory\";s:9:\"actionURL\";s:95:\"/index.php?m=execution&f=story&executionID=101&orderBy=pri_desc&type=bySearch&queryID=myQueryID\";s:10:\"groupItems\";s:1:\"3\";s:8:\"formType\";s:4:\"lite\";}', '(( 1 AND `title` LIKE \'%362%\' ) AND ( 1 ))', '0');");
}
/**
* Init initUpdateKanban.
*
* @access public
* @return void
*/
private function initUpdateKanban()
{
$this->dao->query("update zt_kanbancolumn set `limit` = '-1' where id >= 1 and id <= 400");
$kanban = $this->dao->select('id,type,region,name,color,`limit`,`order`')->from(TABLE_KANBANCOLUMN)->where('id')->gt('400')->fetchAll();
$group = 101;
foreach($kanban as $key => $value)
{
$id = $value->id;
$value->limit = '-1';
if(!isset($value->parent)) $value->parent = 0;
if(in_array($value->type, ['develop', 'test', 'resolving']))
{
$value->parent = '-1';
$kanban[$key+1]->parent = $value->id;
$kanban[$key+2]->parent = $value->id;
}
$value->group = $group;
if($value->type == 'closed')
{
$group++;
}
unset($value->id);
$this->dao->update(TABLE_KANBANCOLUMN)->data($value)->where('id')->eq($id)->exec();
}
$kanbancell = $this->dao->select('id,type')->from(TABLE_KANBANCELL)->where('id')->gt('400')->fetchAll();
$kanbanlane = 101;
foreach($kanbancell as $key => $value)
{
$id = $value->id;
$value->lane = $kanbanlane;
if($value->type == 'story' && isset($kanbancell[$key+1]) && $kanbancell[$key+1]->type == 'bug')
{
$kanbanlane++;
}
if($value->type == 'bug' && isset($kanbancell[$key+1]) && $kanbancell[$key+1]->type == 'task')
{
$kanbanlane++;
}
if($value->type == 'task' && isset($kanbancell[$key+1]) && $kanbancell[$key+1]->type == 'story')
{
$kanbanlane++;
}
unset($value->id);
$this->dao->update(TABLE_KANBANCELL)->data($value)->where('id')->eq($id)->exec();
}
$this->dao->query("update zt_kanbancell set `cards` = '' where id > 400");
}
}