fix(测试跟踪): 修复功能用例关联缺陷后不能取消关联的缺陷

--bug=1010644 --user=王孝刚 【测试跟踪】-功能用例-关联缺陷后不能取消关联
https://www.tapd.cn/55049933/s/1113389
This commit is contained in:
wxg0103 2022-03-03 18:27:35 +08:00 committed by 刘瑞斌
parent 747c1d75b2
commit a05dff6b85
8 changed files with 44 additions and 12 deletions

View File

@ -24,9 +24,11 @@ public interface ExtIssuesMapper {
List<PlanReportIssueDTO> selectForPlanReport(String planId);
List<IssuesDao>getCountByStatus(@Param("request") IssuesRequest issuesRequest);
List<IssuesDao> getCountByStatus(@Param("request") IssuesRequest issuesRequest);
List<String> selectIdNotInUuIds(@Param("projectId") String projectId, @Param("platform") String platform, @Param("platformIds") List<String> platformIds);
List<String> selectIdNotInUuIds(@Param("projectId") String projectId, @Param("platform") String platform, @Param("platformIds") List<String> platformIds);
List<IssuesDao> getPlanIssues(@Param("request") IssuesRequest issueRequest);
int deleteIssues(@Param("issuesId") String issuesId, @Param("resourceId") String resourceId);
}

View File

@ -1,6 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="io.metersphere.base.mapper.ext.ExtIssuesMapper">
<delete id="deleteIssues">
delete
from test_case_issues
where issues_id = #{issuesId}
and (resource_id = #{resourceId} or ref_id = #{resourceId})
</delete>
<select id="getIssuesByCaseId" resultType="io.metersphere.base.domain.IssuesDao">
select issues.*
@ -138,7 +144,8 @@
and (test_case_issues.resource_id = #{request.caseResourceId} or test_case_issues.ref_id = #{request.caseResourceId})
</if>
<if test="request.refType == 'PLAN_FUNCTIONAL'">
and test_case_issues.resource_id = #{request.caseResourceId}
and test_case_issues.resource_id = #{request.caseResourceId} and test_case_issues.ref_type
='PLAN_FUNCTIONAL'
</if>
</if>

View File

@ -280,11 +280,13 @@ public class IssuesService {
String caseResourceId = request.getCaseResourceId();
String id = request.getId();
TestCaseIssuesExample example = new TestCaseIssuesExample();
example.createCriteria().andResourceIdEqualTo(caseResourceId).andIssuesIdEqualTo(id);
testCaseIssuesMapper.deleteByExample(example);
if (request.getIsPlanEdit()) {
testCaseIssueService.updateIssuesCount(caseResourceId);
if (request.getIsPlanEdit() == true) {
example.createCriteria().andResourceIdEqualTo(caseResourceId).andIssuesIdEqualTo(id);
testCaseIssuesMapper.deleteByExample(example);
} else {
extIssuesMapper.deleteIssues(id, caseResourceId);
}
testCaseIssueService.updateIssuesCount(caseResourceId);
}
public void delete(String id) {

View File

@ -66,6 +66,8 @@ public class TestPlanTestCaseService {
private TestCaseCommentService testCaseCommentService;
@Resource
private TestCaseService testCaseService;
@Resource
private TestCaseIssueService testCaseIssueService;
public List<TestPlanTestCaseWithBLOBs> listAll() {
TestPlanTestCaseExample example = new TestPlanTestCaseExample();
@ -79,6 +81,10 @@ public class TestPlanTestCaseService {
public List<TestPlanCaseDTO> list(QueryTestPlanCaseRequest request) {
request.setOrders(ServiceUtils.getDefaultSortOrder(request.getOrders()));
List<TestPlanCaseDTO> testPlanCaseDTOList = extTestPlanTestCaseMapper.list(request);
testPlanCaseDTOList.forEach(item -> {
testCaseIssueService.updateIssuesCount(item.getId());
});
List<TestPlanCaseDTO> list = extTestPlanTestCaseMapper.list(request);
QueryMemberRequest queryMemberRequest = new QueryMemberRequest();
queryMemberRequest.setProjectId(request.getProjectId());

View File

@ -226,11 +226,23 @@ export default {
}
},
deleteIssue(row) {
this.page.result = deleteIssueRelate({id: row.id, caseResourceId: this.getCaseResourceId(), isPlanEdit: this.planId ? true : false}, () => {
this.getIssues();
this.$success(this.$t('commons.delete_success'));
});
},
this.$alert(this.$t('test_track.issue.delete_warning'), '', {
confirmButtonText: this.$t('commons.confirm'),
cancelButtonText: this.$t('commons.cancel'),
callback: (action) => {
if (action === 'confirm') {
this.page.result = deleteIssueRelate({
id: row.id,
caseResourceId: this.getCaseResourceId(),
isPlanEdit: this.planId ? true : false
}, () => {
this.getIssues();
this.$success(this.$t('commons.delete_success'));
});
}
}
})
}
}
}
</script>

View File

@ -2329,6 +2329,7 @@ export default {
delete: "Delete",
title_description_required: "Title and description are required",
close_success: "Closed successfully",
delete_warning: "The cancellation will affect the statistics related to the test plan. Confirm whether to confirm or not",
preview: "Preview",
status_new: 'new',
status_resolved: 'resolved',

View File

@ -2334,6 +2334,7 @@ export default {
delete: "删除缺陷",
title_description_required: "标题和描述必填",
close_success: "关闭成功",
delete_warning: "解除会影响测试计划相关统计,是否确认",
preview: "预览",
status_new: '新建',
status_resolved: '已解决',

View File

@ -2333,6 +2333,7 @@ export default {
delete: "刪除缺陷",
title_description_required: "標題和描述必填",
close_success: "關閉成功",
delete_warning: "解除會影響測試計畫相關統計,是否確認",
preview: "預覽",
status_new: '新建',
status_resolved: '已解決',