Merge branch release/21.7.7 of zentao/zentaopms (#12438)
This commit is contained in:
@@ -796,6 +796,7 @@ class product extends control
|
||||
/* 获取导出字段和数据。 */
|
||||
$fields = $this->productZen->getExportFields();
|
||||
$productStats = $this->productZen->getExportData($programID, $status, $orderBy, $param);
|
||||
$productStats = $this->productZen->formatExportData($productStats);
|
||||
|
||||
/* 如果只导出选中产品,删除非选中产品。 */
|
||||
if($this->post->exportType == 'selected')
|
||||
|
||||
@@ -1454,4 +1454,30 @@ class productZenTest extends baseTest
|
||||
if(dao::isError()) return dao::getError();
|
||||
return array('productID' => $productID, 'branch' => $branch, 'projectID' => $projectID, 'executionSuccess' => $executionSuccess);
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化导出数据。
|
||||
* Format export data.
|
||||
*
|
||||
* @param array $products
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function formatExportDataTest(array $dataList = array()): array
|
||||
{
|
||||
$this->instance->app->rawModule = 'product';
|
||||
|
||||
$products = array();
|
||||
foreach($dataList as $data)
|
||||
{
|
||||
$product = new stdclass();
|
||||
foreach($data as $key => $value) $product->$key = $value;
|
||||
$products[] = $product;
|
||||
}
|
||||
|
||||
$result = $this->invokeArgs('formatExportData', [$products]);
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
/**
|
||||
|
||||
title=测试 productZen::formatExportData();
|
||||
timeout=0
|
||||
cid=1
|
||||
|
||||
- 测试空数据的情况 @0
|
||||
- 测试正常数据的情况
|
||||
- 第0条的testCaseCoverage属性 @10%
|
||||
- 第0条的epicCompleteRate属性 @20%
|
||||
- 第0条的requirementCompleteRate属性 @30%
|
||||
- 第0条的storyCompleteRate属性 @50%
|
||||
- 第0条的bugFixedRate属性 @0%
|
||||
|
||||
*/
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/zen.class.php';
|
||||
|
||||
zenData('product')->gen(10);
|
||||
zenData('user')->gen(10);
|
||||
su('admin');
|
||||
|
||||
$products = array();
|
||||
$products[] = array('testCaseCoverage' => 10, 'epicCompleteRate' => 20, 'requirementCompleteRate' => 30, 'storyCompleteRate' => 50);
|
||||
|
||||
$productTest = new productZenTest();
|
||||
r($productTest->formatExportDataTest(array())) && p() && e('0'); // 测试空数据的情况
|
||||
r($productTest->formatExportDataTest($products)) && p('0:testCaseCoverage,epicCompleteRate,requirementCompleteRate,storyCompleteRate,bugFixedRate') && e('10%,20%,30%,50%,0%'); // 测试正常数据的情况
|
||||
@@ -1592,4 +1592,27 @@ class productZen extends product
|
||||
|
||||
return $storyTypeList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化导出数据。
|
||||
* Format export data.
|
||||
*
|
||||
* @param array $products
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function formatExportData(array $products): array
|
||||
{
|
||||
if(empty($products) || $this->config->vision == 'or') return $products;
|
||||
|
||||
foreach($products as $product)
|
||||
{
|
||||
$product->testCaseCoverage = isset($product->testCaseCoverage) ? $product->testCaseCoverage . '%' : '0%';
|
||||
$product->epicCompleteRate = isset($product->epicCompleteRate) ? $product->epicCompleteRate . '%' : '0%';
|
||||
$product->requirementCompleteRate = isset($product->requirementCompleteRate) ? $product->requirementCompleteRate . '%' : '0%';
|
||||
$product->storyCompleteRate = isset($product->storyCompleteRate) ? $product->storyCompleteRate . '%' : '0%';
|
||||
$product->bugFixedRate = isset($product->bugFixedRate) ? $product->bugFixedRate . '%' : '0%';
|
||||
}
|
||||
return $products;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user