Merge branch release/21.7.7 of zentao/zentaopms (#12438)

This commit is contained in:
刘刚
2025-11-20 14:50:45 +08:00
committed by Gitfox
4 changed files with 80 additions and 0 deletions
+1
View File
@@ -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')
+26
View File
@@ -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%'); // 测试正常数据的情况
+23
View File
@@ -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;
}
}