fix(报告明细): 报告明细查询补充测试点
This commit is contained in:
parent
a1f64278ef
commit
977e73a63a
|
@ -5,6 +5,7 @@ import lombok.Data;
|
|||
|
||||
/**
|
||||
* 报告详情用例分页返回对象 (功能, 接口, 场景)
|
||||
* @author song-cc-rock
|
||||
*/
|
||||
|
||||
@Data
|
||||
|
@ -32,4 +33,8 @@ public class ReportDetailCasePageDTO {
|
|||
private String reportId;
|
||||
@Schema(description = "项目ID")
|
||||
private String projectId;
|
||||
@Schema(description = "测试点ID")
|
||||
private String collectionId;
|
||||
@Schema(description = "测试点名称")
|
||||
private String collectionName;
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
<select id="list" resultType="io.metersphere.plan.dto.ReportDetailCasePageDTO">
|
||||
<!-- ID、用例名称、所属模块、用例等级、执行人、执行结果、缺陷数、接口报告ID -->
|
||||
select tprac.api_case_id as id, tprac.api_case_num as num, tprac.api_case_name as name, tprac.test_plan_name as planName,
|
||||
select tprac.api_case_id as id, tprac.api_case_num as num, tprac.api_case_name as name, tprac.test_plan_name as planName, tprac.test_plan_collection_id collectionId,
|
||||
tprac.api_case_module as moduleName, tprac.api_case_priority as priority, tprac.api_case_execute_report_id reportId, ifnull(tprac.api_case_bug_count, 0) as bugCount,
|
||||
ifnull(tprac.api_case_execute_result, 'PENDING') as executeResult, tprac.api_case_execute_user as executeUser, atc.project_id projectId
|
||||
from test_plan_report_api_case tprac left join api_test_case atc on tprac.api_case_id = atc.id
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
<select id="list" resultType="io.metersphere.plan.dto.ReportDetailCasePageDTO">
|
||||
<!-- ID、用例名称、所属模块、用例等级、执行人、执行结果、缺陷数、报告ID -->
|
||||
select distinct tpras.api_scenario_id as id, tpras.api_scenario_num as num, tpras.api_scenario_name as name, tpras.test_plan_name as planName,
|
||||
select distinct tpras.api_scenario_id as id, tpras.api_scenario_num as num, tpras.api_scenario_name as name, tpras.test_plan_name as planName, tpras.test_plan_collection_id collectionId,
|
||||
tpras.api_scenario_module as moduleName, tpras.api_scenario_priority as priority, tpras.api_scenario_execute_report_id reportId, ifnull(tpras.api_scenario_bug_count, 0) as bugCount,
|
||||
ifnull(tpras.api_scenario_execute_result, 'PENDING') as executeResult, tpras.api_scenario_execute_user as executeUser, aso.project_id projectId
|
||||
from test_plan_report_api_scenario tpras left join api_scenario aso on tpras.api_scenario_id = aso.id
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
|
||||
<select id="list" resultType="io.metersphere.plan.dto.ReportDetailCasePageDTO">
|
||||
<!-- ID、用例名称、所属模块、用例等级、执行人、执行结果、缺陷数、报告ID -->
|
||||
select tprfc.function_case_id as id, tprfc.function_case_num as num, tprfc.function_case_name as name,
|
||||
select tprfc.function_case_id as id, tprfc.function_case_num as num, tprfc.function_case_name as name, tprfc.test_plan_collection_id collectionId,
|
||||
tprfc.function_case_module as moduleName, tprfc.function_case_priority as priority, tprfc.test_plan_name as planName,
|
||||
ifnull(tprfc.function_case_execute_result, 'PENDING') as executeResult, tprfc.function_case_execute_user as executeUser,
|
||||
ifnull(tprfc.function_case_bug_count, 0) as bugCount, tprfc.function_case_execute_report_id reportId, fc.project_id projectId
|
||||
|
|
|
@ -126,6 +126,8 @@ public class TestPlanReportService {
|
|||
private ProjectMapper projectMapper;
|
||||
@Resource
|
||||
private ApiReportRelateTaskMapper apiReportRelateTaskMapper;
|
||||
@Resource
|
||||
private TestPlanCollectionMapper testPlanCollectionMapper;
|
||||
|
||||
private static final int MAX_REPORT_NAME_LENGTH = 300;
|
||||
|
||||
|
@ -841,7 +843,14 @@ public class TestPlanReportService {
|
|||
List<String> distinctUserIds = detailCases.stream().map(ReportDetailCasePageDTO::getExecuteUser).distinct().collect(Collectors.toList());
|
||||
distinctUserIds.removeIf(StringUtils::isEmpty);
|
||||
Map<String, String> userMap = getUserMap(distinctUserIds);
|
||||
detailCases.forEach(detailCase -> detailCase.setExecuteUser(userMap.getOrDefault(detailCase.getExecuteUser(), detailCase.getExecuteUser())));
|
||||
// 测试集
|
||||
List<String> collectionIds = detailCases.stream().map(ReportDetailCasePageDTO::getCollectionId).distinct().collect(Collectors.toList());
|
||||
collectionIds.removeIf(StringUtils::isEmpty);
|
||||
Map<String, String> collectionMap = getCollectionMap(collectionIds);
|
||||
detailCases.forEach(detailCase -> {
|
||||
detailCase.setExecuteUser(userMap.getOrDefault(detailCase.getExecuteUser(), detailCase.getExecuteUser()));
|
||||
detailCase.setCollectionName(collectionMap.get(detailCase.getCollectionId()));
|
||||
});
|
||||
return detailCases;
|
||||
}
|
||||
|
||||
|
@ -1242,6 +1251,21 @@ public class TestPlanReportService {
|
|||
return userOptions.stream().collect(Collectors.toMap(OptionDTO::getId, OptionDTO::getName));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取测试点集合
|
||||
* @param collectionIds 测试点ID集合
|
||||
* @return 测试点集合
|
||||
*/
|
||||
private Map<String, String> getCollectionMap(List<String> collectionIds) {
|
||||
if (CollectionUtils.isEmpty(collectionIds)) {
|
||||
return new HashMap<>(16);
|
||||
}
|
||||
TestPlanCollectionExample example = new TestPlanCollectionExample();
|
||||
example.createCriteria().andIdIn(collectionIds);
|
||||
List<TestPlanCollection> collections = testPlanCollectionMapper.selectByExample(example);
|
||||
return collections.stream().collect(Collectors.toMap(TestPlanCollection::getId, TestPlanCollection::getName));
|
||||
}
|
||||
|
||||
/**
|
||||
* 计划报告列表
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue