From 219c6f4e8ded8c5fe77db306100749739db53bf0 Mon Sep 17 00:00:00 2001 From: pfl <14579250+shadowman1@user.noreply.gitee.com> Date: Wed, 7 May 2025 14:41:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E8=AE=A1=E5=88=92=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TestPlanDefectController.java | 10 +++-- .../test/domain/qo/TestPlanDefectRelQO.java | 18 +++++++++ .../test/mapper/TestPlanDefectMapper.java | 7 ++++ .../test/service/ITestPlanDefectService.java | 5 ++- .../impl/TestPlanDefectServiceImpl.java | 30 ++++++++++++-- .../mapper/test/TestPlanDefectMapper.xml | 25 +++++++++++- test-ui/src/api/test/planDefect.js | 17 ++++++-- .../test/testplan/defects/testDefects.vue | 40 ++++++++++++------- test-ui/src/views/test/testplan/overview.vue | 1 - .../testplan/probablyView/probablyView.vue | 2 +- .../test/testplan/setting/testSetting.vue | 14 +++++++ 11 files changed, 137 insertions(+), 32 deletions(-) create mode 100644 test-test/src/main/java/com/test/test/domain/qo/TestPlanDefectRelQO.java diff --git a/test-test/src/main/java/com/test/test/controller/TestPlanDefectController.java b/test-test/src/main/java/com/test/test/controller/TestPlanDefectController.java index c8b2ada..38cd050 100644 --- a/test-test/src/main/java/com/test/test/controller/TestPlanDefectController.java +++ b/test-test/src/main/java/com/test/test/controller/TestPlanDefectController.java @@ -8,6 +8,7 @@ import com.test.common.enums.BusinessType; import com.test.common.utils.poi.ExcelUtil; import com.test.test.domain.TestPlanDefect; import com.test.test.domain.qo.TestPlanDefectQO; +import com.test.test.domain.qo.TestPlanDefectRelQO; import com.test.test.domain.vo.TestPlanDefectVo; import com.test.test.service.ITestPlanDefectService; import jakarta.servlet.http.HttpServletResponse; @@ -65,10 +66,11 @@ public class TestPlanDefectController extends BaseController * 新增测试计划测试缺陷关联 */ @Log(title = "测试计划测试缺陷关联", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody TestPlanDefect testPlanDefect) + @PostMapping(value = "/addRelDefect") + public AjaxResult add(@RequestBody TestPlanDefectRelQO qo) { - return toAjax(testPlanDefectService.insertTestPlanDefect(testPlanDefect)); + testPlanDefectService.insertTestPlanDefect(qo); + return success(qo); } /** @@ -85,7 +87,7 @@ public class TestPlanDefectController extends BaseController * 删除测试计划测试缺陷关联 */ @Log(title = "测试计划测试缺陷关联", businessType = BusinessType.DELETE) - @PostMapping("/{ids}") + @PostMapping("/delRelDefect/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(testPlanDefectService.deleteTestPlanDefectByIds(ids)); diff --git a/test-test/src/main/java/com/test/test/domain/qo/TestPlanDefectRelQO.java b/test-test/src/main/java/com/test/test/domain/qo/TestPlanDefectRelQO.java new file mode 100644 index 0000000..36470a4 --- /dev/null +++ b/test-test/src/main/java/com/test/test/domain/qo/TestPlanDefectRelQO.java @@ -0,0 +1,18 @@ +package com.test.test.domain.qo; + +import java.io.Serializable; +import java.util.List; +import lombok.Data; + +/** + * 测试计划缺陷关联 + */ +@Data +public class TestPlanDefectRelQO implements Serializable { + + private static final long serialVersionUID = 4779866915656657001L; + + private Long planId; + private Integer type; + private List defectIdList; +} diff --git a/test-test/src/main/java/com/test/test/mapper/TestPlanDefectMapper.java b/test-test/src/main/java/com/test/test/mapper/TestPlanDefectMapper.java index 106f764..79105ed 100644 --- a/test-test/src/main/java/com/test/test/mapper/TestPlanDefectMapper.java +++ b/test-test/src/main/java/com/test/test/mapper/TestPlanDefectMapper.java @@ -60,4 +60,11 @@ public interface TestPlanDefectMapper * @return 结果 */ public int deleteTestPlanDefectByIds(Long[] ids); + + /** + * 查询关联列表 + * @param testPlanDefect + * @return + */ + List selectRelList(TestPlanDefect testPlanDefect); } diff --git a/test-test/src/main/java/com/test/test/service/ITestPlanDefectService.java b/test-test/src/main/java/com/test/test/service/ITestPlanDefectService.java index beda719..60ef329 100644 --- a/test-test/src/main/java/com/test/test/service/ITestPlanDefectService.java +++ b/test-test/src/main/java/com/test/test/service/ITestPlanDefectService.java @@ -3,6 +3,7 @@ package com.test.test.service; import com.test.test.domain.TestPlanDefect; import com.test.test.domain.qo.TestPlanDefectQO; +import com.test.test.domain.qo.TestPlanDefectRelQO; import com.test.test.domain.vo.TestPlanDefectVo; import java.util.List; @@ -33,10 +34,10 @@ public interface ITestPlanDefectService /** * 新增测试计划测试缺陷关联 * - * @param testPlanDefect 测试计划测试缺陷关联 + * @param qo 测试计划测试缺陷关联 * @return 结果 */ - public int insertTestPlanDefect(TestPlanDefect testPlanDefect); + public void insertTestPlanDefect(TestPlanDefectRelQO qo); /** * 修改测试计划测试缺陷关联 diff --git a/test-test/src/main/java/com/test/test/service/impl/TestPlanDefectServiceImpl.java b/test-test/src/main/java/com/test/test/service/impl/TestPlanDefectServiceImpl.java index 504924e..50aa2dc 100644 --- a/test-test/src/main/java/com/test/test/service/impl/TestPlanDefectServiceImpl.java +++ b/test-test/src/main/java/com/test/test/service/impl/TestPlanDefectServiceImpl.java @@ -3,6 +3,7 @@ package com.test.test.service.impl; import com.test.common.utils.DateUtils; import com.test.test.domain.TestPlanDefect; import com.test.test.domain.qo.TestPlanDefectQO; +import com.test.test.domain.qo.TestPlanDefectRelQO; import com.test.test.domain.vo.TestPlanDefectVo; import com.test.test.mapper.TestPlanDefectMapper; import com.test.test.service.ITestPlanDefectService; @@ -10,6 +11,7 @@ import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import java.util.List; +import org.springframework.util.CollectionUtils; /** * 测试计划测试缺陷关联Service业务层处理 @@ -50,14 +52,34 @@ public class TestPlanDefectServiceImpl implements ITestPlanDefectService /** * 新增测试计划测试缺陷关联 * - * @param testPlanDefect 测试计划测试缺陷关联 + * @param testPlanDefectRelQO 测试计划测试缺陷关联 * @return 结果 */ @Override - public int insertTestPlanDefect(TestPlanDefect testPlanDefect) + public void insertTestPlanDefect(TestPlanDefectRelQO testPlanDefectRelQO) { - testPlanDefect.setCreateTime(DateUtils.getNowDate()); - return testPlanDefectMapper.insertTestPlanDefect(testPlanDefect); + List defectIdList = testPlanDefectRelQO.getDefectIdList(); + for (Long defectId : defectIdList) { + TestPlanDefect testPlanDefect = new TestPlanDefect(); + testPlanDefect.setPlanId(String.valueOf(testPlanDefectRelQO.getPlanId())); + testPlanDefect.setDefectId(String.valueOf(defectId)); + testPlanDefect.setType(String.valueOf(testPlanDefectRelQO.getType())); + List testPlanDefectList = selectRelList(testPlanDefect); + if (!CollectionUtils.isEmpty(testPlanDefectList)) { + continue; + } + testPlanDefect.setCreateTime(DateUtils.getNowDate()); + testPlanDefectMapper.insertTestPlanDefect(testPlanDefect); + } + } + + /** + * 查询已存在的关联列表 + * @param testPlanDefect + * @return + */ + private List selectRelList(TestPlanDefect testPlanDefect) { + return testPlanDefectMapper.selectRelList(testPlanDefect); } /** diff --git a/test-test/src/main/resources/mapper/test/TestPlanDefectMapper.xml b/test-test/src/main/resources/mapper/test/TestPlanDefectMapper.xml index 21593e5..0c7dee6 100644 --- a/test-test/src/main/resources/mapper/test/TestPlanDefectMapper.xml +++ b/test-test/src/main/resources/mapper/test/TestPlanDefectMapper.xml @@ -53,6 +53,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} + + insert into test_plan_defect @@ -96,7 +117,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from test_plan_defect where id in + UPDATE test_plan_defect + SET del_flag = '1' + WHERE id IN #{id} diff --git a/test-ui/src/api/test/planDefect.js b/test-ui/src/api/test/planDefect.js index d01de9d..54eaaac 100644 --- a/test-ui/src/api/test/planDefect.js +++ b/test-ui/src/api/test/planDefect.js @@ -1,15 +1,16 @@ import request from '@/utils/request' const api = { - delRelDefect: 'testPlan/defect/list', + delRelDefect: 'testPlan/defect/delRelDefect/', getDefectList: 'testPlan/defect/list', + addRelDefect: 'testPlan/defect/addRelDefect', } -export function delRelDefect(data) { +export function delRelDefect(id) { return request({ - url: api.delRelDefect, + url: api.delRelDefect + id, method: 'post', - data + data: {id} }) } @@ -20,3 +21,11 @@ export function getDefectList(data) { params: data }) } + +export function addRelDefect(data) { + return request({ + url: api.addRelDefect, + method: 'post', + data + }) +} diff --git a/test-ui/src/views/test/testplan/defects/testDefects.vue b/test-ui/src/views/test/testplan/defects/testDefects.vue index 11b7d23..8e44889 100644 --- a/test-ui/src/views/test/testplan/defects/testDefects.vue +++ b/test-ui/src/views/test/testplan/defects/testDefects.vue @@ -33,7 +33,7 @@ size="medium" :disabled="multiple" @click="handleDelete" - >批量删除 + >缺陷取消关联 @@ -55,12 +55,10 @@ - - @@ -80,7 +78,7 @@ - + @@ -140,11 +138,10 @@ +