From d596005853eb01c07d29cb0aecd044caee863029 Mon Sep 17 00:00:00 2001 From: OTTO <731554297@qq.com> Date: Tue, 10 Dec 2024 11:41:31 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E9=9C=80=E6=B1=82=E9=87=8D=E6=9E=84):=20?= =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=A7=E5=93=81=E4=B8=AD=E7=9A=84=E9=9C=80?= =?UTF-8?q?=E6=B1=82=E8=A7=84=E6=A0=BC=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 测试用例新增拷贝接口 Signed-off-by: OTTO <731554297@qq.com> --- .../PmsProjectTestcaseController.java | 20 +++++++++++----- .../service/IPmsProjectTestcaseService.java | 4 +++- .../impl/PmsProjectTestcaseServiceImpl.java | 24 ++++++++++++++++++- 3 files changed, 40 insertions(+), 8 deletions(-) diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/controller/PmsProjectTestcaseController.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/controller/PmsProjectTestcaseController.java index 7b9bea402..fe9676304 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/controller/PmsProjectTestcaseController.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/controller/PmsProjectTestcaseController.java @@ -11,10 +11,7 @@ import com.microservices.common.security.annotation.Logical; import com.microservices.common.security.annotation.RequiresPermissions; import com.microservices.pms.product.service.IPmsProductModuleService; import com.microservices.pms.project.domain.PmsProjectTestcase; -import com.microservices.pms.project.domain.vo.PmsProjectTestcaseDataVo; -import com.microservices.pms.project.domain.vo.PmsProjectTestcaseInputVo; -import com.microservices.pms.project.domain.vo.PmsProjectTestcaseSearchVo; -import com.microservices.pms.project.domain.vo.PmsProjectTestcaseUpdateVo; +import com.microservices.pms.project.domain.vo.*; import com.microservices.pms.project.service.IPmsProjectTestcaseService; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; @@ -68,8 +65,8 @@ public class PmsProjectTestcaseController extends BaseController { @RequiresPermissions(value = {"pms:pmsProject:show", "pms:pmsProject:showMe"}, logical = Logical.OR) @GetMapping(value = "/{id}") @ApiOperation(value = "获取测试用例详细信息") - public GenericsAjaxResult getInfo(@PathVariable("id") Long id) { - return genericsSuccess(pmsProjectTestcaseService.selectPmsProjectTestcaseDataVoById(id)); + public GenericsAjaxResult getInfo(@PathVariable("id") Long id) { + return genericsSuccess(pmsProjectTestcaseService.selectPmsProjectTestcaseDetailVoById(id)); } /** @@ -83,6 +80,17 @@ public class PmsProjectTestcaseController extends BaseController { return success(pmsProjectTestcaseService.insertPmsProjectTestcase(pmsProjectTestcaseInputVo.toPmsProjectTestcase())); } + /** + * 复制测试用例 + */ + @RequiresPermissions("pms:pmsProjectTestcase:add") + @Log(title = "测试用例管理", businessType = BusinessType.INSERT) + @PostMapping("{testcaseId}/copy") + @ApiOperation(value = "复制测试用例") + public AjaxResult copy(@PathVariable("testcaseId") Long testcaseId) { + return success(pmsProjectTestcaseService.copyPmsProjectTestcase(testcaseId)); + } + /** * 修改测试用例管理 */ diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/IPmsProjectTestcaseService.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/IPmsProjectTestcaseService.java index 06b701240..052fca224 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/IPmsProjectTestcaseService.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/IPmsProjectTestcaseService.java @@ -78,7 +78,7 @@ public interface IPmsProjectTestcaseService { * @param id 测试用例ID * @return 测试用例详情 */ - PmsProjectTestcaseDataVo selectPmsProjectTestcaseDataVoById(Long id); + PmsProjectTestcaseDetailVo selectPmsProjectTestcaseDetailVoById(Long id); /** * 根据模块ID删除测试用例与模块的关联关系 @@ -116,4 +116,6 @@ public interface IPmsProjectTestcaseService { List selectPmsProjectTestcaseList(PmsProjectTestcase pmsProjectTestcaseSearch); List selectReqSpecsAssociatedTestcaseList(Long reqSpecsId); + + PmsProjectTestcase copyPmsProjectTestcase(Long testcaseId); } diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/impl/PmsProjectTestcaseServiceImpl.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/impl/PmsProjectTestcaseServiceImpl.java index 8e48da3da..f1ebeb69f 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/impl/PmsProjectTestcaseServiceImpl.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/impl/PmsProjectTestcaseServiceImpl.java @@ -22,6 +22,7 @@ import com.microservices.pms.project.domain.*; import com.microservices.pms.project.domain.vo.PmsProjectTestcaseBatchUpdateVo; import com.microservices.pms.project.domain.vo.PmsProjectTestcaseDataVo; import com.microservices.pms.project.domain.vo.PmsProjectTestcaseDetailVo; +import com.microservices.pms.project.domain.vo.PmsProjectTestcaseStepDataVo; import com.microservices.pms.project.mapper.PmsProjectTestcaseMapper; import com.microservices.pms.project.mapper.PmsProjectTestsheetCasesMapper; import com.microservices.pms.project.service.IPmsProjectService; @@ -37,6 +38,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.stream.Collectors; import static com.microservices.common.core.utils.PageUtils.startPage; @@ -220,6 +222,26 @@ public class PmsProjectTestcaseServiceImpl implements IPmsProjectTestcaseService return reqSpecsTestcaseDataVoList; } + @Override + public PmsProjectTestcase copyPmsProjectTestcase(Long testcaseId) { + PmsProjectTestcase pmsProjectTestcase = selectPmsProjectTestcaseById(testcaseId); + pmsProjectTestcase.setId(null); + pmsProjectTestcase.setTags(pmsProjectTestcase.getTagIds()); + PmsProjectTestcaseStep pmsProjectTestcaseStepSearch = new PmsProjectTestcaseStep(); + pmsProjectTestcaseStepSearch.setPmsTestcaseId(testcaseId); + List selectPmsProjectTestcaseStepList = pmsProjectTestcaseStepService.selectPmsProjectTestcaseStepList(pmsProjectTestcaseStepSearch); + List pmsProjectTestcaseStepList = selectPmsProjectTestcaseStepList.stream() + .map(x -> { + PmsProjectTestcaseStep pmsProjectTestcaseStep = new PmsProjectTestcaseStep(); + BeanUtils.copyProperties(x, pmsProjectTestcaseStep); + pmsProjectTestcaseStep.setId(null); + return pmsProjectTestcaseStep; + }).collect(Collectors.toList()); + pmsProjectTestcase.setTestcaseStepList(pmsProjectTestcaseStepList); + insertPmsProjectTestcase(pmsProjectTestcase); + return pmsProjectTestcase; + } + /** * 新增测试用例管理 * @@ -364,7 +386,7 @@ public class PmsProjectTestcaseServiceImpl implements IPmsProjectTestcaseService } @Override - public PmsProjectTestcaseDataVo selectPmsProjectTestcaseDataVoById(Long id) { + public PmsProjectTestcaseDetailVo selectPmsProjectTestcaseDetailVoById(Long id) { return toPmsProjectTestcaseDetailVo(selectPmsProjectTestcaseById(id)); }