feat(项目管理产品需求重构): 完善产品中的需求规格功能开发

测试用例新增拷贝接口

Signed-off-by: OTTO <731554297@qq.com>
This commit is contained in:
OTTO 2024-12-10 11:41:31 +08:00
parent 22c5efd140
commit d596005853
3 changed files with 40 additions and 8 deletions

View File

@ -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<PmsProjectTestcaseDataVo> getInfo(@PathVariable("id") Long id) {
return genericsSuccess(pmsProjectTestcaseService.selectPmsProjectTestcaseDataVoById(id));
public GenericsAjaxResult<PmsProjectTestcaseDetailVo> 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));
}
/**
* 修改测试用例管理
*/

View File

@ -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<PmsProjectTestcase> selectPmsProjectTestcaseList(PmsProjectTestcase pmsProjectTestcaseSearch);
List<ProductReqSpecsAssociatedTestcaseDataVo> selectReqSpecsAssociatedTestcaseList(Long reqSpecsId);
PmsProjectTestcase copyPmsProjectTestcase(Long testcaseId);
}

View File

@ -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<PmsProjectTestcaseStepDataVo> selectPmsProjectTestcaseStepList = pmsProjectTestcaseStepService.selectPmsProjectTestcaseStepList(pmsProjectTestcaseStepSearch);
List<PmsProjectTestcaseStep> 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));
}