diff --git a/test/model/product/move.sh b/test/model/product/move.sh
deleted file mode 100644
index 83d843101e..0000000000
--- a/test/model/product/move.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-#This script is use to rename files
-for file in * ;
-do mv $file `echo $file | tr 'A-Z' 'a-z'`;
-done
diff --git a/test/model/product_bak/create.php b/test/model/product_bak/create.php
deleted file mode 100755
index 87abb462a7..0000000000
--- a/test/model/product_bak/create.php
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/env php
-create();
-cid=1
-pid=1
-
-测试正常的创建 >> case1
-测试不填产品代号的情况 >> 『code』不能为空。
-测试创建重复的产品 >> 『code』已经有『testcase1』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。
-测试不填产品名称的情况 >> 『name』不能为空。
-测试传入name和code >> case3,testcase3
-测试传入program、name、code >> 3,case4,testcase4
-测试传入program、name、code、type、status >> 4,branch,closed
-
-*/
-
-$config = new stdClass();
-$config->createFields->product = array('program' => '', 'name' => '', 'code' => '', 'PO' => '', 'QD' => '', 'RD' => '', 'type' => 'normal', 'status' => 'normal', 'desc' => '', 'acl' => 'private');
-/*
-function createObject($module = '', $param = array())
-{
- global $config;
- foreach($config->createFields->$module as $field => $defaultValue) $_POST[$field] = $defaultValue;
-
- foreach($param as $key => $value) $_POST[$key] = $value;
-
- global $tester;
- $objectModel = $tester->loadModel($module);
- $objectID = $objectModel->create();
- unset($_POST);
-
- if(dao::isError())
- {
- return dao::getError();
- }
- else
- {
- $object = $objectModel->getByID($objectID);
- return $object;
- }
-}*/
-$createObject = new Product('admin');
-
-$create1 = array('name' => 'case1', 'code' => 'testcase1');
-$create2 = array('name' => 'case2');
-$create3 = array('name' => 'case1', 'code' => 'testcase1');
-$create4 = array('code' => 'testcase1');
-$create5 = array('name' => 'case3', 'code' => 'testcase3');
-$create6 = array('program' => '3', 'name' => 'case4', 'code' => 'testcase4');
-$create7 = array('program' => '4', 'name' => 'case5', 'code' => 'testcase5', 'type' => 'branch', 'status' => 'closed');
-
-r($createObject->createObject('product', $create1)) && p('name') && e('case1'); // 测试正常的创建
-r($createObject->createObject('product', $create2)) && p('code:0') && e('『code』不能为空。'); // 测试不填产品代号的情况
-r($createObject->createObject('product', $create3)) && p('code:0') && e('『code』已经有『testcase1』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。'); // 测试创建重复的产品
-r($createObject->createObject('product', $create4)) && p('name:0') && e('『name』不能为空。'); // 测试不填产品名称的情况
-r($createObject->createObject('product', $create5)) && p('name,code') && e('case3,testcase3'); // 测试传入name和code
-r($createObject->createObject('product', $create6)) && p('program,name,code') && e('3,case4,testcase4'); // 测试传入program、name、code
-r($createObject->createObject('product', $create7)) && p('program,type,status') && e('4,branch,closed'); // 测试传入program、name、code、type、status
-system("./ztest init");
\ No newline at end of file
diff --git a/test/model/product_bak/getLatestProject.php b/test/model/product_bak/getLatestProject.php
deleted file mode 100755
index 3b6f42f1dc..0000000000
--- a/test/model/product_bak/getLatestProject.php
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env php
-getLatestProject();
-cid=1
-pid=1
-
-测试产品25关联的最后一个未关闭的项目,按begin字段排序 >> 315
-测试产品38关联的最后一个未关闭的项目,按begin字段排序 >> 阶段588
-传入不存在的产品 >> 没有数据
-
-*/
-
-$project = new Product('admin');
-
-#var_dump($z->testGetLatestProject(38));die;
-r($project->testGetLatestProject(25)) && p('id') && e('315'); // 测试产品25关联的最后一个未关闭的项目,按begin字段排序
-r($project->testGetLatestProject(38)) && p('name') && e('阶段588'); // 测试产品38关联的最后一个未关闭的项目,按begin字段排序
-r($project->testGetLatestProject(101)) && p() && e('没有数据'); // 传入不存在的产品
\ No newline at end of file
diff --git a/test/model/product_bak/getList.php b/test/model/product_bak/getList.php
deleted file mode 100755
index 9843c25e3a..0000000000
--- a/test/model/product_bak/getList.php
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/usr/bin/env php
-getList();
-cid=1
-pid=1
-
-返回项目集1下的产品数量 >> 9
-测试传入programID=0的情况 >> 100
-传入不存在的项目集 >> 0
-返回项目集1下的未关闭的产品数量 >> 5
-获取所有的未关闭的产品数量 >> 60
-返回项目集1下的关闭了的产品数量 >> 4
-返回所有的未关闭的产品数量 >> 40
-返回项目集1下的与当前用户有关系的产品数量 >> 0
-返回项目集1下产品线1的产品数量 >> 9
-返回项目集1下产品线2的产品数量 >> 0
-
-*/
-
-class Tester
-{
- public function __construct($user)
- {
- global $tester;
- su($user);
- $this->product = $tester->loadModel('product');
- }
- public function getAllProducts($programID)
- {
- return $this->product->getList($programID);
- }
- public function getAllProductsCount($programID)
- {
- return count($this->getAllProducts($programID));
- }
-
- public function getNoclosedProducts($programID)
- {
- return $this->product->getList($programID, 'noclosed');
- }
- public function getNoclosedProductsCount($programID)
- {
- return count($this->getNoclosedProducts($programID));
- }
-
- public function getClosedProducts($programID)
- {
- return $this->product->getList($programID, 'closed');
- }
- public function getClosedProductsCount($programID)
- {
- return count($this->getClosedProducts($programID));
- }
-
- public function getInvolvedProducts($programID)
- {
- return $this->product->getList($programID, 'involved');
- }
- public function getInvolvedProductsCount($programID)
- {
- return count($this->getInvolvedProducts($programID));
- }
-
- public function getProductsByLine($programID, $line = 0)
- {
- return $this->product->getList($programID, 'all', 0, $line);
- }
- public function countProductsByLine($programID, $line = 0)
- {
- return count($this->getProductsByLine($programID, $line));
- }
-
- public function getProductList($programID, $status = 'all', $line = 0)
- {
- return $this->product->getList($programID, $status, 0, $line);
- }
- public function getProductCount($programID, $status = 'all', $line = 0)
- {
- return count($this->getProductList($programID, $status, $line));
- }
-}
-
-$adminTester = new Tester('admin');
-
-r($adminTester->getAllProductsCount(1)) && p() && e('9'); // 返回项目集1下的产品数量
-r($adminTester->getAllProductsCount(0)) && p() && e('100'); // 测试传入programID=0的情况
-r($adminTester->getAllProductsCount(11)) && p() && e('0'); // 传入不存在的项目集
-
-r($adminTester->getNoclosedProductsCount(1)) && p() && e('5'); // 返回项目集1下的未关闭的产品数量
-r($adminTester->getNoclosedProductsCount(0)) && p() && e('60'); // 获取所有的未关闭的产品数量
-
-r($adminTester->getClosedProductsCount(1)) && p() && e('4'); // 返回项目集1下的关闭了的产品数量
-r($adminTester->getClosedProductsCount(0)) && p() && e('40'); // 返回所有的未关闭的产品数量
-
-r($adminTester->getInvolvedProductsCount(1)) && p() && e('0'); // 返回项目集1下的与当前用户有关系的产品数量
-
-r($adminTester->countProductsByLine(1, 1)) && p() && e('9'); // 返回项目集1下产品线1的产品数量
-r($adminTester->countProductsByLine(1, 2)) && p() && e('0'); // 返回项目集1下产品线2的产品数量
\ No newline at end of file
diff --git a/test/model/product_bak/getPairs.php b/test/model/product_bak/getPairs.php
deleted file mode 100755
index 88967403cf..0000000000
--- a/test/model/product_bak/getPairs.php
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env php
-getPairs();
-cid=1
-pid=1
-
-测试项目集10下的11号产品 >> 正常产品11
-测试项目集10下的55号产品 >> 多分支产品55
-测试项目集10下的99号产品 >> 多平台产品99
-测试不存在的项目集 >> 没有数据
-返回所有产品的数量 >> 100
-返回项目集10下的所有产品 >> 9
-测试项目集10下的未关闭产品5 >> 正常产品6
-返回项目集10下的未关闭产品的数量 >> 5
-测试顺序program_desc >> 1
-测试顺序program_asc >> 1
-测试顺序type_desc >> 1
-
-*/
-
-$tester = new productBox('admin');
-var_dump($tester->getProductPairsByOrder(10, '', 'program_desc'));die;
-r($tester->getProductPairs(10)) && p('11') && e('正常产品11'); // 测试项目集10下的11号产品
-r($tester->getProductPairs(10)) && p('55') && e('多分支产品55'); // 测试项目集10下的55号产品
-r($tester->getProductPairs(10)) && p('99') && e('多平台产品99'); // 测试项目集10下的99号产品
-r($tester->getProductPairs(11)) && p() && e('没有数据'); // 测试不存在的项目集
-
-r($tester->getProductPairsCount(0)) && p() && e('100'); // 返回所有产品的数量
-r($tester->getProductPairsCount(10)) && p() && e('9'); // 返回项目集10下的所有产品
-r($tester->getNoclosedPairs(5)) && p('6') && e('正常产品6'); // 测试项目集10下的未关闭产品5
-r($tester->getNoclosedPairsCount(10)) && p() && e('5'); // 返回项目集10下的未关闭产品的数量
-
-r($tester->getProductPairsByOrder(10, '', 'program_desc')) && p() && e('1'); // 测试顺序program_desc
-r($tester->getProductPairsByOrder(11, '', 'program_asc')) && p() && e('1'); // 测试顺序program_asc
-r($tester->getProductPairsByOrder(11, '', 'type_desc')) && p() && e('1'); // 测试顺序type_desc
\ No newline at end of file
diff --git a/test/model/product_bak/getPairscopy.php b/test/model/product_bak/getPairscopy.php
deleted file mode 100755
index a0bbf5f244..0000000000
--- a/test/model/product_bak/getPairscopy.php
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/usr/bin/env php
-getPairs();
-cid=1
-pid=1
-
-测试项目集10下的11号产品 >> 正常产品11
-测试项目集10下的55号产品 >> 多分支产品55
-测试项目集10下的99号产品 >> 多平台产品99
-测试不存在的项目集 >> 没有数据
-返回所有产品的数量 >> 100
-返回项目集10下的所有产品 >> 9
-测试项目集10下的未关闭产品5 >> 正常产品6
-返回项目集10下的未关闭产品的数量 >> 5
-测试顺序program_desc >> 1
-测试顺序program_asc >> 1
-测试顺序type_desc >> 1
-
-*/
-
-class Tester
-{
- public function __construct($user, $orderBy = 'id_desc')
- {
- global $tester;
- su($user);
- $this->product = $tester->loadModel('product');
- $this->config = new stdclass();
- $this->config->product->orderBy = $orderBy;
- }
-
- public function getProductPairs($programID)
- {
- $pairs = $this->product->getPairs('', $programID);
- if($pairs == array()) return '没有数据';
- return $pairs;
- }
- public function getProductPairsCount($programID)
- {
- $pairsCount = count($this->getProductPairs($programID));
- if($pairsCount == '没有数据') return '0';
- return $pairsCount;
- }
-
- public function getAllPairs($programID)
- {
- $pairs = $this->product->getPairs('all', $programID);
- if($pairs == array()) return '没有数据';
- return $pairs;
- }
- public function getAllPairsCount($programID)
- {
- $pairsCount = count($this->getAllPairs($programID));
- if($pairsCount == '没有数据') return '0';
- return $pairsCount;
- }
-
- public function getNoclosedPairs($programID)
- {
- $pairs = $this->product->getPairs('noclosed', $programID);
- if($pairs == array()) return '没有数据';
- return $pairs;
- }
- public function getNoclosedPairsCount($programID)
- {
- $pairsCount = count($this->getNoclosedPairs($programID));
- if($pairsCount == '没有数据') return '0';
- return $pairsCount;
- }
-
- public function getProductPairsByOrder($programID, $mode = '', $orderBy = 'id_desc')
- {
- $this->config->product->orderBy = $orderBy;
- $pairs = $this->product->getPairs($mode, $programID);
- return checkOrder($pairs, $orderBy);
- }
-}
-
-$tester = new Tester('admin');
-
-r($tester->getProductPairs(10)) && p('11' && e('正常产品11'); // 测试项目集10下的11号产品
-r($tester->getProductPairs(10)) && p('55') && e('多分支产品55'); // 测试项目集10下的55号产品
-r($tester->getProductPairs(10)) && p('99') && e('多平台产品99'); // 测试项目集10下的99号产品
-r($tester->getProductPairs(11)) && p() && e('没有数据'); // 测试不存在的项目集
-r($tester->getProductPairsCount(0)) && p() && e('100'); // 返回所有产品的数量
-r($tester->getProductPairsCount(10)) && p() && e('9'); // 返回项目集10下的所有产品
-r($tester->getNoclosedPairs(5)) && p('6') && e('正常产品6'); // 测试项目集10下的未关闭产品5
-r($tester->getNoclosedPairsCount(10)) && p() && e('5'); // 返回项目集10下的未关闭产品的数量
-r($tester->getProductPairsByOrder(10, '', 'program_desc')) && p() && e('1'); // 测试顺序program_desc
-r($tester->getProductPairsByOrder(11, '', 'program_asc')) && p() && e('1'); // 测试顺序program_asc
-r($tester->getProductPairsByOrder(11, '', 'type_desc')) && p() && e('1'); // 测试顺序type_desc
\ No newline at end of file
diff --git a/test/model/product_bak/getProjectListByProduct.php b/test/model/product_bak/getProjectListByProduct.php
deleted file mode 100755
index 70d7480131..0000000000
--- a/test/model/product_bak/getProjectListByProduct.php
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env php
-getProjectListByProduct();
-cid=1
-pid=1
-
-返回产品1关联的项目11名字 >> 项目11
-返回产品1关联的项目21名字 >> 项目1
-传入不存在的产品 >> 没有数据
-
-*/
-
-class Tester
-{
- public function __construct($user)
- {
- global $tester;
- su($user);
- $this->product = $tester->loadModel('product');
- }
-
- public function getAllProjectsByProduct($productID)
- {
- $projects = $this->product->getProjectListByProduct($productID, 'all');
- if($projects == array()) return '没有数据';
- return $projects;
- }
-
- public function getProjectsByStatus($productID, $status)
- {
- $projects = $this->product->getProjectListByProduct($productID, $browseType);
- if($projects == array()) return '没有数据';
- return $projects;
- }
-}
-
-$tester = new Tester('admin');
-r($tester->getAllProjectsByProduct(1)) && p('21:name') && e('项目11'); // 返回产品1关联的项目11名字
-r($tester->getAllProjectsByProduct(1)) && p('11:name') && e('项目1'); // 返回产品1关联的项目21名字
-r($tester->getAllProjectsByProduct(101)) && p() && e('没有数据'); // 传入不存在的产品
\ No newline at end of file
diff --git a/test/model/product_bak/getProjectPairsByProduct.php b/test/model/product_bak/getProjectPairsByProduct.php
deleted file mode 100755
index db4b5a7565..0000000000
--- a/test/model/product_bak/getProjectPairsByProduct.php
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/env php
-getProjectPairsByProduct();
-cid=1
-pid=1
-
-返回产品1关联的项目11名字 >> 项目1
-返回产品1关联的项目21名字 >> 项目11
-传入不存在的产品 >> 没有数据
-返回id为15的项目名 >> 项目5
-传入不存在的项目id >> 没有数据
-
-*/
-
-$tester = new productBox('admin');
-
-r($tester->getProjectPairsByProductID(1)) && p('11') && e('项目1'); // 返回产品1关联的项目11名字
-r($tester->getProjectPairsByProductID(1)) && p('21') && e('项目11'); // 返回产品1关联的项目21名字
-r($tester->getProjectPairsByProductID(101)) && p() && e('没有数据'); // 传入不存在的产品
-
-r($tester->getAppendProject(15)) && p('15') && e('项目5'); // 返回id为15的项目名
-r($tester->getAppendProject(701)) && p() && e('没有数据'); // 传入不存在的项目id
\ No newline at end of file
diff --git a/test/model/product_bak/isClickable.php b/test/model/product_bak/isClickable.php
deleted file mode 100755
index 2555e3b077..0000000000
--- a/test/model/product_bak/isClickable.php
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env php
-isClickable();
-cid=1
-pid=1
-
-status为normal,action为close >> true
-status为close,action为close >> false
-status为normal,action为start >> true
-status为close,action为start >> true
-
-*/
-
-$adminTester = new productBox('admin');
-
-r($adminTester->testIsClickable(2, 'close')) && p() && e('true'); // status为normal,action为close
-r($adminTester->testIsClickable(75, 'close')) && p() && e('false'); // status为close,action为close
-r($adminTester->testIsClickable(2, 'start')) && p() && e('true'); // status为normal,action为start
-r($adminTester->testIsClickable(75, 'start')) && p() && e('true'); // status为close,action为start
\ No newline at end of file
diff --git a/test/model/product_bak/update.php b/test/model/product_bak/update.php
deleted file mode 100755
index 5dc937d9fc..0000000000
--- a/test/model/product_bak/update.php
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/env php
-update();
-cid=1
-pid=1
-
-测试更新产品名称 >> name,正常产品2,john
-测试更新产品代号 >> code,code2,newcode1
-测试更新产品名称和代号 >> name,john,jack;code,newcode1,newcode2
-测试不更改产品名称 >> 没有数据更新
-测试不更改产品代号 >> 没有数据更新
-测试同一项目集下产品名称不能重复 >> 『产品名称』已经有『jack』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。
-测试同一项目集下产品代号不能重复 >> 『产品代号』已经有『newcode2』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。
-
-*/
-
-function updateObject($module, $objectID, $param = array())
-{
- global $tester;
- $objectModel = $tester->loadModel($module);
-
- $object = $objectModel->getById($objectID);
- foreach($object as $field => $value)
- {
- if(in_array($field, array_keys($param)))
- {
- $_POST[$field] = $param[$field];
- }
- else
- {
- $_POST[$field] = $value;
- }
- }
-
- $change = $objectModel->update($objectID);
- if($change == array()) $change = '没有数据更新';
- unset($_POST);
-
- if(dao::isError())
- {
- return dao::getError();
- }
- else
- {
- return $change;
- }
-}
-
-$case1 = array('name' => 'john');
-$case2 = array('code' => 'newcode1');
-$case3 = array('name' => 'jack', 'code' => 'newcode2');
-$case4 = array('name' => 'jack');
-$case5 = array('code' => 'newcode2');
-$case6 = array('name' => 'jack');
-$case7 = array('code' => 'newcode2');
-
-r(updateObject('product', 2, $case1)) && p('0:field,old,new') && e('name,正常产品2,john'); // 测试更新产品名称
-r(updateObject('product', 2, $case2)) && p('0:field,old,new') && e('code,code2,newcode1'); // 测试更新产品代号
-r(updateObject('product', 2, $case3)) && p('0:field,old,new;1:field,old,new') && e('name,john,jack;code,newcode1,newcode2'); // 测试更新产品名称和代号
-r(updateObject('product', 2, $case4)) && p() && e('没有数据更新'); // 测试不更改产品名称
-r(updateObject('product', 2, $case5)) && p() && e('没有数据更新'); // 测试不更改产品代号
-r(updateObject('product', 13, $case6)) && p('name:0') && e('『产品名称』已经有『jack』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。'); // 测试同一项目集下产品名称不能重复
-r(updateObject('product', 13, $case7)) && p('code:0') && e('『产品代号』已经有『newcode2』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。'); // 测试同一项目集下产品代号不能重复
-
-system("./ztest init");
\ No newline at end of file
diff --git a/test/model/program/a.txt b/test/model/program/a.txt
deleted file mode 100644
index 4b762b4d81..0000000000
--- a/test/model/program/a.txt
+++ /dev/null
@@ -1,2441 +0,0 @@
-
123Array
-(
- [my] => Array
- (
- [0] => stdClass Object
- (
- [name] => 项目集3
- [products] => Array
- (
- [0] => stdClass Object
- (
- [id] => 4
- [program] => 3
- [name] => 正常产品4
- [plans] => Array
- (
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 4
- [id] => 14
- [name] => 项目4
- [status] => doing
- [end] => 2022-04-04
- [execution] => stdClass Object
- (
- [id] => 644
- [project] => 14
- [name] => 迭代544
- [end] => 2022-04-04
- [hours] => stdClass Object
- (
- [totalConsumed] => 6
- [totalEstimate] => 4
- [totalLeft] => 4
- [totalReal] => 10
- [progress] => 60
- )
-
- )
-
- [hours] => Array
- (
- [progress] => 58
- )
-
- )
-
- [1] => stdClass Object
- (
- [product] => 4
- [id] => 24
- [name] => 项目14
- [status] => doing
- [end] => 2020-02-14
- [delay] => 1
- [execution] => stdClass Object
- (
- [id] => 654
- [project] => 24
- [name] => 迭代554
- [end] => 2020-02-14
- [hours] => stdClass Object
- (
- [totalConsumed] => 6
- [totalEstimate] => 3
- [totalLeft] => 3
- [totalReal] => 9
- [progress] => 67
- )
-
- [delay] => 1
- )
-
- [hours] => Array
- (
- [progress] => 55
- )
-
- )
-
- )
-
- )
-
- )
-
- [1] => stdClass Object
- (
- [id] => 15
- [program] => 3
- [name] => 正常产品15
- [plans] => Array
- (
- [0] => stdClass Object
- (
- [id] => 43
- [product] => 15
- [title] => 1.0
- )
-
- [1] => stdClass Object
- (
- [id] => 44
- [product] => 15
- [title] => 1.1
- )
-
- [2] => stdClass Object
- (
- [id] => 45
- [product] => 15
- [title] => 长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^!
- )
-
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [wait] => Array
- (
- [0] => stdClass Object
- (
- [product] => 15
- [id] => 35
- [name] => 项目25
- [status] => wait
- [end] => 2019-01-25
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 59
- )
-
- )
-
- )
-
- )
-
- )
-
- [2] => stdClass Object
- (
- [id] => 48
- [program] => 3
- [name] => 多分支产品48
- [plans] => Array
- (
- [0] => stdClass Object
- (
- [id] => 142
- [product] => 48
- [title] => 1.0
- )
-
- [1] => stdClass Object
- (
- [id] => 143
- [product] => 48
- [title] => 1.1
- )
-
- [2] => stdClass Object
- (
- [id] => 144
- [product] => 48
- [title] => 长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^!
- )
-
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [wait] => Array
- (
- [0] => stdClass Object
- (
- [product] => 48
- [id] => 68
- [name] => 项目58
- [status] => wait
- [end] => 2020-10-04
- [delay] => 1
- [execution] => stdClass Object
- (
- [id] => 698
- [project] => 68
- [name] => 阶段598
- [end] => 2020-10-04
- [hours] => stdClass Object
- (
- [totalConsumed] => 10
- [totalEstimate] => 3
- [totalLeft] => 3
- [totalReal] => 13
- [progress] => 77
- )
-
- [delay] => 1
- )
-
- [hours] => Array
- (
- [progress] => 67
- )
-
- )
-
- )
-
- )
-
- )
-
- [3] => stdClass Object
- (
- [id] => 59
- [program] => 3
- [name] => 多分支产品59
- [plans] => Array
- (
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 59
- [id] => 69
- [name] => 项目59
- [status] => doing
- [end] => 2021-11-05
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 100
- )
-
- )
-
- [1] => stdClass Object
- (
- [product] => 59
- [id] => 79
- [name] => 项目69
- [status] => doing
- [end] => 2019-09-15
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 68
- )
-
- )
-
- )
-
- )
-
- )
-
- [4] => stdClass Object
- (
- [id] => 81
- [program] => 3
- [name] => 多平台产品81
- [plans] => Array
- (
- [0] => stdClass Object
- (
- [id] => 241
- [product] => 81
- [title] => 1.0
- )
-
- [1] => stdClass Object
- (
- [id] => 242
- [product] => 81
- [title] => 1.1
- )
-
- [2] => stdClass Object
- (
- [id] => 243
- [product] => 81
- [title] => 长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^!
- )
-
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [wait] => Array
- (
- [0] => stdClass Object
- (
- [product] => 81
- [id] => 11
- [name] => 项目1
- [status] => wait
- [end] => 2019-01-01
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 40
- )
-
- )
-
- [1] => stdClass Object
- (
- [product] => 81
- [id] => 91
- [name] => 项目81
- [status] => wait
- [end] => 2019-09-27
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 41
- )
-
- )
-
- )
-
- )
-
- )
-
- [5] => stdClass Object
- (
- [id] => 92
- [program] => 3
- [name] => 多平台产品92
- [plans] => Array
- (
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [wait] => Array
- (
- [0] => stdClass Object
- (
- [product] => 92
- [id] => 12
- [name] => 项目2
- [status] => wait
- [end] => 2020-02-02
- [delay] => 1
- [execution] => stdClass Object
- (
- [id] => 642
- [project] => 12
- [name] => 迭代542
- [end] => 2020-02-02
- [hours] => stdClass Object
- (
- [totalConsumed] => 4
- [totalEstimate] => 2
- [totalLeft] => 2
- [totalReal] => 6
- [progress] => 67
- )
-
- [delay] => 1
- )
-
- [hours] => Array
- (
- [progress] => 51
- )
-
- )
-
- )
-
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 92
- [id] => 22
- [name] => 项目12
- [status] => doing
- [end] => 2022-12-12
- [execution] => stdClass Object
- (
- [id] => 652
- [project] => 22
- [name] => 迭代552
- [end] => 2022-12-12
- [hours] => stdClass Object
- (
- [totalConsumed] => 4
- [totalEstimate] => 1
- [totalLeft] => 0
- [totalReal] => 4
- [progress] => 100
- )
-
- )
-
- [hours] => Array
- (
- [progress] => 100
- )
-
- )
-
- )
-
- )
-
- )
-
- [6] => stdClass Object
- (
- [id] => 103
- [program] => 3
- [name] => case4
- [plans] => Array
- (
- [0] => stdClass Object
- (
- [id] => 307
- [product] => 103
- [title] => 1.0
- )
-
- [1] => stdClass Object
- (
- [id] => 308
- [product] => 103
- [title] => 1.1
- )
-
- [2] => stdClass Object
- (
- [id] => 309
- [product] => 103
- [title] => 长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^!
- )
-
- )
-
- [releases] => Array
- (
- )
-
- )
-
- )
-
- )
-
- [1] => stdClass Object
- (
- [name] => 项目集4
- [products] => Array
- (
- [0] => stdClass Object
- (
- [id] => 5
- [program] => 4
- [name] => 正常产品5
- [plans] => Array
- (
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 5
- [id] => 15
- [name] => 项目5
- [status] => doing
- [end] => 2019-05-05
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 100
- )
-
- )
-
- )
-
- )
-
- )
-
- [1] => stdClass Object
- (
- [id] => 16
- [program] => 4
- [name] => 正常产品16
- [plans] => Array
- (
- [0] => stdClass Object
- (
- [id] => 46
- [product] => 16
- [title] => 1.0
- )
-
- [1] => stdClass Object
- (
- [id] => 47
- [product] => 16
- [title] => 1.1
- )
-
- [2] => stdClass Object
- (
- [id] => 48
- [product] => 16
- [title] => 长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^!
- )
-
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [wait] => Array
- (
- [0] => stdClass Object
- (
- [product] => 16
- [id] => 36
- [name] => 项目26
- [status] => wait
- [end] => 2020-02-26
- [delay] => 1
- [execution] => stdClass Object
- (
- [id] => 666
- [project] => 36
- [name] => 迭代566
- [end] => 2020-02-26
- [hours] => stdClass Object
- (
- [totalConsumed] => 8
- [totalEstimate] => 4
- [totalLeft] => 4
- [totalReal] => 12
- [progress] => 67
- )
-
- [delay] => 1
- )
-
- [hours] => Array
- (
- [progress] => 65
- )
-
- )
-
- )
-
- )
-
- )
-
- [2] => stdClass Object
- (
- [id] => 49
- [program] => 4
- [name] => 多分支产品49
- [plans] => Array
- (
- [0] => stdClass Object
- (
- [id] => 145
- [product] => 49
- [title] => 1.0
- )
-
- [1] => stdClass Object
- (
- [id] => 146
- [product] => 49
- [title] => 1.1
- )
-
- [2] => stdClass Object
- (
- [id] => 147
- [product] => 49
- [title] => 长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^!
- )
-
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [wait] => Array
- (
- [0] => stdClass Object
- (
- [product] => 49
- [id] => 59
- [name] => 项目49
- [status] => wait
- [end] => 2019-01-22
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 68
- )
-
- )
-
- )
-
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 49
- [id] => 69
- [name] => 项目59
- [status] => doing
- [end] => 2021-11-05
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 100
- )
-
- )
-
- )
-
- )
-
- )
-
- [3] => stdClass Object
- (
- [id] => 60
- [program] => 4
- [name] => 多分支产品60
- [plans] => Array
- (
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 60
- [id] => 70
- [name] => 项目60
- [status] => doing
- [end] => 2022-12-06
- [execution] => stdClass Object
- (
- [id] => 700
- [project] => 70
- [name] => 阶段600
- [end] => 2022-12-06
- [hours] => stdClass Object
- (
- [totalConsumed] => 12
- [totalEstimate] => 5
- [totalLeft] => 0
- [totalReal] => 12
- [progress] => 100
- )
-
- )
-
- [hours] => Array
- (
- [progress] => 100
- )
-
- )
-
- [1] => stdClass Object
- (
- [product] => 60
- [id] => 80
- [name] => 项目70
- [status] => doing
- [end] => 2020-10-16
- [delay] => 1
- [execution] => stdClass Object
- (
- [id] => 620
- [project] => 80
- [name] => 看板520
- [end] => 2022-04-07
- [hours] => stdClass Object
- (
- [totalConsumed] => 12
- [totalEstimate] => 2
- [totalLeft] => 2
- [totalReal] => 14
- [progress] => 86
- )
-
- )
-
- [hours] => Array
- (
- [progress] => 73
- )
-
- )
-
- )
-
- )
-
- )
-
- [4] => stdClass Object
- (
- [id] => 82
- [program] => 4
- [name] => 多平台产品82
- [plans] => Array
- (
- [0] => stdClass Object
- (
- [id] => 244
- [product] => 82
- [title] => 1.0
- )
-
- [1] => stdClass Object
- (
- [id] => 245
- [product] => 82
- [title] => 1.1
- )
-
- [2] => stdClass Object
- (
- [id] => 246
- [product] => 82
- [title] => 长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^!
- )
-
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [wait] => Array
- (
- [0] => stdClass Object
- (
- [product] => 82
- [id] => 12
- [name] => 项目2
- [status] => wait
- [end] => 2020-02-02
- [delay] => 1
- [execution] => stdClass Object
- (
- [id] => 642
- [project] => 12
- [name] => 迭代542
- [end] => 2020-02-02
- [hours] => stdClass Object
- (
- [totalConsumed] => 4
- [totalEstimate] => 2
- [totalLeft] => 2
- [totalReal] => 6
- [progress] => 67
- )
-
- [delay] => 1
- )
-
- [hours] => Array
- (
- [progress] => 51
- )
-
- )
-
- [1] => stdClass Object
- (
- [product] => 82
- [id] => 92
- [name] => 项目82
- [status] => wait
- [end] => 2020-10-01
- [delay] => 1
- [execution] => stdClass Object
- (
- [id] => 632
- [project] => 92
- [name] => 看板532
- [end] => 2022-04-19
- [hours] => stdClass Object
- (
- [totalConsumed] => 4
- [totalEstimate] => 3
- [totalLeft] => 3
- [totalReal] => 7
- [progress] => 57
- )
-
- )
-
- [hours] => Array
- (
- [progress] => 43
- )
-
- )
-
- )
-
- )
-
- )
-
- [5] => stdClass Object
- (
- [id] => 93
- [program] => 4
- [name] => 多平台产品93
- [plans] => Array
- (
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 93
- [id] => 13
- [name] => 项目3
- [status] => doing
- [end] => 2021-03-03
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 51
- )
-
- )
-
- [1] => stdClass Object
- (
- [product] => 93
- [id] => 23
- [name] => 项目13
- [status] => doing
- [end] => 2019-01-13
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 56
- )
-
- )
-
- )
-
- )
-
- )
-
- )
-
- )
-
- )
-
- [others] => Array
- (
- [0] => stdClass Object
- (
- [name] => 项目集1
- [products] => Array
- (
- [0] => stdClass Object
- (
- [id] => 2
- [program] => 1
- [name] => jack
- [plans] => Array
- (
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [wait] => Array
- (
- [0] => stdClass Object
- (
- [product] => 2
- [id] => 12
- [name] => 项目2
- [status] => wait
- [end] => 2020-02-02
- [delay] => 1
- [execution] => stdClass Object
- (
- [id] => 642
- [project] => 12
- [name] => 迭代542
- [end] => 2020-02-02
- [hours] => stdClass Object
- (
- [totalConsumed] => 4
- [totalEstimate] => 2
- [totalLeft] => 2
- [totalReal] => 6
- [progress] => 67
- )
-
- [delay] => 1
- )
-
- [hours] => Array
- (
- [progress] => 51
- )
-
- )
-
- )
-
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 2
- [id] => 22
- [name] => 项目12
- [status] => doing
- [end] => 2022-12-12
- [execution] => stdClass Object
- (
- [id] => 652
- [project] => 22
- [name] => 迭代552
- [end] => 2022-12-12
- [hours] => stdClass Object
- (
- [totalConsumed] => 4
- [totalEstimate] => 1
- [totalLeft] => 0
- [totalReal] => 4
- [progress] => 100
- )
-
- )
-
- [hours] => Array
- (
- [progress] => 100
- )
-
- )
-
- )
-
- )
-
- )
-
- [1] => stdClass Object
- (
- [id] => 13
- [program] => 1
- [name] => jack
- [plans] => Array
- (
- [0] => stdClass Object
- (
- [id] => 37
- [product] => 13
- [title] => 1.0
- )
-
- [1] => stdClass Object
- (
- [id] => 38
- [product] => 13
- [title] => 1.1
- )
-
- [2] => stdClass Object
- (
- [id] => 39
- [product] => 13
- [title] => 长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^!
- )
-
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 13
- [id] => 23
- [name] => 项目13
- [status] => doing
- [end] => 2019-01-13
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 56
- )
-
- )
-
- )
-
- )
-
- )
-
- [2] => stdClass Object
- (
- [id] => 46
- [program] => 1
- [name] => 多分支产品46
- [plans] => Array
- (
- [0] => stdClass Object
- (
- [id] => 136
- [product] => 46
- [title] => 1.0
- )
-
- [1] => stdClass Object
- (
- [id] => 137
- [product] => 46
- [title] => 1.1
- )
-
- [2] => stdClass Object
- (
- [id] => 138
- [product] => 46
- [title] => 长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^!
- )
-
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 46
- [id] => 56
- [name] => 项目46
- [status] => doing
- [end] => 2020-10-19
- [delay] => 1
- [execution] => stdClass Object
- (
- [id] => 686
- [project] => 56
- [name] => 阶段586
- [end] => 2020-10-19
- [hours] => stdClass Object
- (
- [totalConsumed] => 8
- [totalEstimate] => 2
- [totalLeft] => 2
- [totalReal] => 10
- [progress] => 80
- )
-
- [delay] => 1
- )
-
- [hours] => Array
- (
- [progress] => 67
- )
-
- )
-
- )
-
- )
-
- )
-
- [3] => stdClass Object
- (
- [id] => 57
- [program] => 1
- [name] => 多分支产品57
- [plans] => Array
- (
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [wait] => Array
- (
- [0] => stdClass Object
- (
- [product] => 57
- [id] => 67
- [name] => 项目57
- [status] => wait
- [end] => 2019-09-03
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 70
- )
-
- )
-
- )
-
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 57
- [id] => 77
- [name] => 项目67
- [status] => doing
- [end] => 2021-07-13
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 64
- )
-
- )
-
- )
-
- )
-
- )
-
- [4] => stdClass Object
- (
- [id] => 90
- [program] => 1
- [name] => 多平台产品90
- [plans] => Array
- (
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [wait] => Array
- (
- [0] => stdClass Object
- (
- [product] => 90
- [id] => 20
- [name] => 项目10
- [status] => wait
- [end] => 2020-10-10
- [delay] => 1
- [execution] => stdClass Object
- (
- [id] => 650
- [project] => 20
- [name] => 迭代550
- [end] => 2020-10-10
- [hours] => stdClass Object
- (
- [totalConsumed] => 12
- [totalEstimate] => 10
- [totalLeft] => 10
- [totalReal] => 22
- [progress] => 55
- )
-
- [delay] => 1
- )
-
- [hours] => Array
- (
- [progress] => 68
- )
-
- )
-
- [1] => stdClass Object
- (
- [product] => 90
- [id] => 100
- [name] => 项目90
- [status] => wait
- [end] => 2020-06-09
- [delay] => 1
- [execution] => stdClass Object
- (
- [id] => 640
- [project] => 100
- [name] => 看板540
- [end] => 2022-12-27
- [hours] => stdClass Object
- (
- [totalConsumed] => 12
- [totalEstimate] => 0
- [totalLeft] => 0
- [totalReal] => 12
- [progress] => 100
- )
-
- )
-
- [hours] => Array
- (
- [progress] => 100
- )
-
- )
-
- )
-
- )
-
- )
-
- )
-
- )
-
- [1] => stdClass Object
- (
- [name] => 项目集2
- [products] => Array
- (
- [0] => stdClass Object
- (
- [id] => 3
- [program] => 2
- [name] => 正常产品3
- [plans] => Array
- (
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 3
- [id] => 13
- [name] => 项目3
- [status] => doing
- [end] => 2021-03-03
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 51
- )
-
- )
-
- [1] => stdClass Object
- (
- [product] => 3
- [id] => 23
- [name] => 项目13
- [status] => doing
- [end] => 2019-01-13
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 56
- )
-
- )
-
- )
-
- )
-
- )
-
- [1] => stdClass Object
- (
- [id] => 14
- [program] => 2
- [name] => 正常产品14
- [plans] => Array
- (
- [0] => stdClass Object
- (
- [id] => 40
- [product] => 14
- [title] => 1.0
- )
-
- [1] => stdClass Object
- (
- [id] => 41
- [product] => 14
- [title] => 1.1
- )
-
- [2] => stdClass Object
- (
- [id] => 42
- [product] => 14
- [title] => 长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^!
- )
-
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 14
- [id] => 24
- [name] => 项目14
- [status] => doing
- [end] => 2020-02-14
- [delay] => 1
- [execution] => stdClass Object
- (
- [id] => 654
- [project] => 24
- [name] => 迭代554
- [end] => 2020-02-14
- [hours] => stdClass Object
- (
- [totalConsumed] => 6
- [totalEstimate] => 3
- [totalLeft] => 3
- [totalReal] => 9
- [progress] => 67
- )
-
- [delay] => 1
- )
-
- [hours] => Array
- (
- [progress] => 55
- )
-
- )
-
- )
-
- )
-
- )
-
- [2] => stdClass Object
- (
- [id] => 47
- [program] => 2
- [name] => 多分支产品47
- [plans] => Array
- (
- [0] => stdClass Object
- (
- [id] => 139
- [product] => 47
- [title] => 1.0
- )
-
- [1] => stdClass Object
- (
- [id] => 140
- [product] => 47
- [title] => 1.1
- )
-
- [2] => stdClass Object
- (
- [id] => 141
- [product] => 47
- [title] => 长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^!
- )
-
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [wait] => Array
- (
- [0] => stdClass Object
- (
- [product] => 47
- [id] => 67
- [name] => 项目57
- [status] => wait
- [end] => 2019-09-03
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 70
- )
-
- )
-
- )
-
- )
-
- )
-
- [3] => stdClass Object
- (
- [id] => 58
- [program] => 2
- [name] => 多分支产品58
- [plans] => Array
- (
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [wait] => Array
- (
- [0] => stdClass Object
- (
- [product] => 58
- [id] => 68
- [name] => 项目58
- [status] => wait
- [end] => 2020-10-04
- [delay] => 1
- [execution] => stdClass Object
- (
- [id] => 698
- [project] => 68
- [name] => 阶段598
- [end] => 2020-10-04
- [hours] => stdClass Object
- (
- [totalConsumed] => 10
- [totalEstimate] => 3
- [totalLeft] => 3
- [totalReal] => 13
- [progress] => 77
- )
-
- [delay] => 1
- )
-
- [hours] => Array
- (
- [progress] => 67
- )
-
- )
-
- )
-
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 58
- [id] => 78
- [name] => 项目68
- [status] => doing
- [end] => 2022-08-14
- [execution] => stdClass Object
- (
- [id] => 618
- [project] => 78
- [name] => 看板518
- [end] => 2020-02-05
- [hours] => stdClass Object
- (
- [totalConsumed] => 10
- [totalEstimate] => 0
- [totalLeft] => 0
- [totalReal] => 10
- [progress] => 100
- )
-
- [delay] => 1
- )
-
- [hours] => Array
- (
- [progress] => 71
- )
-
- )
-
- )
-
- )
-
- )
-
- [4] => stdClass Object
- (
- [id] => 91
- [program] => 2
- [name] => 多平台产品91
- [plans] => Array
- (
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [wait] => Array
- (
- [0] => stdClass Object
- (
- [product] => 91
- [id] => 11
- [name] => 项目1
- [status] => wait
- [end] => 2019-01-01
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 40
- )
-
- )
-
- )
-
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 91
- [id] => 21
- [name] => 项目11
- [status] => doing
- [end] => 2021-11-11
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 100
- )
-
- )
-
- )
-
- )
-
- )
-
- )
-
- )
-
- [2] => stdClass Object
- (
- [name] => 项目集9
- [products] => Array
- (
- [0] => stdClass Object
- (
- [id] => 10
- [program] => 9
- [name] => 正常产品10
- [plans] => Array
- (
- [0] => stdClass Object
- (
- [id] => 28
- [product] => 10
- [title] => 1.0
- )
-
- [1] => stdClass Object
- (
- [id] => 29
- [product] => 10
- [title] => 1.1
- )
-
- [2] => stdClass Object
- (
- [id] => 30
- [product] => 10
- [title] => 长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^!
- )
-
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [wait] => Array
- (
- [0] => stdClass Object
- (
- [product] => 10
- [id] => 20
- [name] => 项目10
- [status] => wait
- [end] => 2020-10-10
- [delay] => 1
- [execution] => stdClass Object
- (
- [id] => 650
- [project] => 20
- [name] => 迭代550
- [end] => 2020-10-10
- [hours] => stdClass Object
- (
- [totalConsumed] => 12
- [totalEstimate] => 10
- [totalLeft] => 10
- [totalReal] => 22
- [progress] => 55
- )
-
- [delay] => 1
- )
-
- [hours] => Array
- (
- [progress] => 68
- )
-
- )
-
- )
-
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 10
- [id] => 30
- [name] => 项目20
- [status] => doing
- [end] => 2022-08-20
- [execution] => stdClass Object
- (
- [id] => 660
- [project] => 30
- [name] => 迭代560
- [end] => 2022-08-20
- [hours] => stdClass Object
- (
- [totalConsumed] => 12
- [totalEstimate] => 9
- [totalLeft] => 9
- [totalReal] => 21
- [progress] => 57
- )
-
- )
-
- [hours] => Array
- (
- [progress] => 66
- )
-
- )
-
- )
-
- )
-
- )
-
- [1] => stdClass Object
- (
- [id] => 43
- [program] => 9
- [name] => 多分支产品43
- [plans] => Array
- (
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 43
- [id] => 53
- [name] => 项目43
- [status] => doing
- [end] => 2021-07-16
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 47
- )
-
- )
-
- [1] => stdClass Object
- (
- [product] => 43
- [id] => 63
- [name] => 项目53
- [status] => doing
- [end] => 2019-05-26
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 100
- )
-
- )
-
- )
-
- )
-
- )
-
- [2] => stdClass Object
- (
- [id] => 54
- [program] => 9
- [name] => 多分支产品54
- [plans] => Array
- (
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 54
- [id] => 64
- [name] => 项目54
- [status] => doing
- [end] => 2020-06-27
- [delay] => 1
- [execution] => stdClass Object
- (
- [id] => 694
- [project] => 64
- [name] => 阶段594
- [end] => 2020-06-27
- [hours] => stdClass Object
- (
- [totalConsumed] => 6
- [totalEstimate] => 10
- [totalLeft] => 0
- [totalReal] => 6
- [progress] => 100
- )
-
- [delay] => 1
- )
-
- [hours] => Array
- (
- [progress] => 100
- )
-
- )
-
- )
-
- )
-
- )
-
- [3] => stdClass Object
- (
- [id] => 87
- [program] => 9
- [name] => 多平台产品87
- [plans] => Array
- (
- [0] => stdClass Object
- (
- [id] => 259
- [product] => 87
- [title] => 1.0
- )
-
- [1] => stdClass Object
- (
- [id] => 260
- [product] => 87
- [title] => 1.1
- )
-
- [2] => stdClass Object
- (
- [id] => 261
- [product] => 87
- [title] => 长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^!
- )
-
- )
-
- [releases] => Array
- (
- )
-
- )
-
- [4] => stdClass Object
- (
- [id] => 98
- [program] => 9
- [name] => 多平台产品98
- [plans] => Array
- (
- [0] => stdClass Object
- (
- [id] => 292
- [product] => 98
- [title] => 1.0
- )
-
- [1] => stdClass Object
- (
- [id] => 293
- [product] => 98
- [title] => 1.1
- )
-
- [2] => stdClass Object
- (
- [id] => 294
- [product] => 98
- [title] => 长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^!
- )
-
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [wait] => Array
- (
- [0] => stdClass Object
- (
- [product] => 98
- [id] => 28
- [name] => 项目18
- [status] => wait
- [end] => 2020-06-18
- [delay] => 1
- [execution] => stdClass Object
- (
- [id] => 658
- [project] => 28
- [name] => 迭代558
- [end] => 2020-06-18
- [hours] => stdClass Object
- (
- [totalConsumed] => 10
- [totalEstimate] => 7
- [totalLeft] => 0
- [totalReal] => 10
- [progress] => 100
- )
-
- [delay] => 1
- )
-
- [hours] => Array
- (
- [progress] => 100
- )
-
- )
-
- )
-
- )
-
- )
-
- )
-
- )
-
- [3] => stdClass Object
- (
- [name] => 项目集10
- [products] => Array
- (
- [0] => stdClass Object
- (
- [id] => 11
- [program] => 10
- [name] => 正常产品11
- [plans] => Array
- (
- [0] => stdClass Object
- (
- [id] => 31
- [product] => 11
- [title] => 1.0
- )
-
- [1] => stdClass Object
- (
- [id] => 32
- [product] => 11
- [title] => 1.1
- )
-
- [2] => stdClass Object
- (
- [id] => 33
- [product] => 11
- [title] => 长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^!
- )
-
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 11
- [id] => 21
- [name] => 项目11
- [status] => doing
- [end] => 2021-11-11
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 100
- )
-
- )
-
- [1] => stdClass Object
- (
- [product] => 11
- [id] => 31
- [name] => 项目21
- [status] => doing
- [end] => 2019-09-21
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 35
- )
-
- )
-
- )
-
- )
-
- )
-
- [1] => stdClass Object
- (
- [id] => 44
- [program] => 10
- [name] => 多分支产品44
- [plans] => Array
- (
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 44
- [id] => 54
- [name] => 项目44
- [status] => doing
- [end] => 2022-08-17
- [execution] => stdClass Object
- (
- [id] => 684
- [project] => 54
- [name] => 阶段584
- [end] => 2022-08-17
- [hours] => stdClass Object
- (
- [totalConsumed] => 6
- [totalEstimate] => 0
- [totalLeft] => 0
- [totalReal] => 6
- [progress] => 100
- )
-
- )
-
- [hours] => Array
- (
- [progress] => 55
- )
-
- )
-
- [1] => stdClass Object
- (
- [product] => 44
- [id] => 64
- [name] => 项目54
- [status] => doing
- [end] => 2020-06-27
- [delay] => 1
- [execution] => stdClass Object
- (
- [id] => 694
- [project] => 64
- [name] => 阶段594
- [end] => 2020-06-27
- [hours] => stdClass Object
- (
- [totalConsumed] => 6
- [totalEstimate] => 10
- [totalLeft] => 0
- [totalReal] => 6
- [progress] => 100
- )
-
- [delay] => 1
- )
-
- [hours] => Array
- (
- [progress] => 100
- )
-
- )
-
- )
-
- )
-
- )
-
- [2] => stdClass Object
- (
- [id] => 55
- [program] => 10
- [name] => 多分支产品55
- [plans] => Array
- (
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [wait] => Array
- (
- [0] => stdClass Object
- (
- [product] => 55
- [id] => 75
- [name] => 项目65
- [status] => wait
- [end] => 2019-05-11
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 100
- )
-
- )
-
- )
-
- )
-
- )
-
- [3] => stdClass Object
- (
- [id] => 88
- [program] => 10
- [name] => 多平台产品88
- [plans] => Array
- (
- [0] => stdClass Object
- (
- [id] => 262
- [product] => 88
- [title] => 1.0
- )
-
- [1] => stdClass Object
- (
- [id] => 263
- [product] => 88
- [title] => 1.1
- )
-
- [2] => stdClass Object
- (
- [id] => 264
- [product] => 88
- [title] => 长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^!
- )
-
- )
-
- [releases] => Array
- (
- )
-
- )
-
- [4] => stdClass Object
- (
- [id] => 99
- [program] => 10
- [name] => 多平台产品99
- [plans] => Array
- (
- [0] => stdClass Object
- (
- [id] => 295
- [product] => 99
- [title] => 1.0
- )
-
- [1] => stdClass Object
- (
- [id] => 296
- [product] => 99
- [title] => 1.1
- )
-
- [2] => stdClass Object
- (
- [id] => 297
- [product] => 99
- [title] => 长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^!
- )
-
- )
-
- [releases] => Array
- (
- )
-
- [projects] => Array
- (
- [wait] => Array
- (
- [0] => stdClass Object
- (
- [product] => 99
- [id] => 19
- [name] => 项目9
- [status] => wait
- [end] => 2019-09-09
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 64
- )
-
- )
-
- )
-
- [doing] => Array
- (
- [0] => stdClass Object
- (
- [product] => 99
- [id] => 29
- [name] => 项目19
- [status] => doing
- [end] => 2021-07-19
- [delay] => 1
- [execution] => Array
- (
- )
-
- [hours] => Array
- (
- [progress] => 68
- )
-
- )
-
- )
-
- )
-
- )
-
- )
-
- )
-
- )
-
-)
-
\ No newline at end of file
diff --git a/test/model/program/move.sh b/test/model/program/move.sh
deleted file mode 100644
index 83d843101e..0000000000
--- a/test/model/program/move.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-#This script is use to rename files
-for file in * ;
-do mv $file `echo $file | tr 'A-Z' 'a-z'`;
-done