diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/controller/PmsProjectIssuesController.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/controller/PmsProjectIssuesController.java index 263a56367..d0da36317 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/controller/PmsProjectIssuesController.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/controller/PmsProjectIssuesController.java @@ -393,14 +393,14 @@ public class PmsProjectIssuesController extends BaseController { return pmsProjectTestsheetIssuesService.getProjectIssueLinkTestcaseList(issueId, pmProjectId); } - @RequiresPermissions(value = {"pms:pmsProject:show", "pms:pmsProject:showMe"}, logical = Logical.OR) + @RequiresPermissions(value = {"pms:pmsProjectIssues:edit"}, logical = Logical.OR) @PostMapping("/import") @ApiOperation(value = "导入工作项") public AjaxResult importIssuesFromFile(@PathVariable String enterpriseIdentifier, @RequestPart("file") MultipartFile file, @ApiParam("项目Id") @RequestParam(name = "pmProjectId") Long pmProjectId) { return success(pmsProjectIssuesService.importIssuesFromFile(enterpriseIdentifier, file, pmProjectId)); } - @RequiresPermissions(value = {"pms:pmsProject:show", "pms:pmsProject:showMe"}, logical = Logical.OR) + @RequiresPermissions(value = {"pms:pmsProjectIssues:edit"}, logical = Logical.OR) @GetMapping("/export") @ApiOperation(value = "导出工作项") public void exportIssues(HttpServletResponse response, @ApiParam("项目Id") @RequestParam(name = "pmProjectId") Long pmProjectId) { diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/controller/PmsProjectSprintController.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/controller/PmsProjectSprintController.java index da6c2fffd..4d773792f 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/controller/PmsProjectSprintController.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/controller/PmsProjectSprintController.java @@ -111,6 +111,14 @@ public class PmsProjectSprintController extends BaseController { return toAjax(pmsProjectSprintService.insertPmsProjectSprint(pmsProjectSprintInputVo.toPmsProjectSprint())); } + @RequiresPermissions("pms:pmsProjectSprint:add") + @Log(title = "项目迭代", businessType = BusinessType.INSERT) + @PostMapping(value = "/findOrCreate") + @ApiOperation(value = "查询或新增项目迭代(迭代名、负责人、项目id相同的会返回该迭代)") + public AjaxResult findOrCreate(@RequestBody @Validated PmsProjectSprintInputVo pmsProjectSprintInputVo) { + return success(pmsProjectSprintService.findOrCreatePmsProjectSprint(pmsProjectSprintInputVo.toPmsProjectSprint())); + } + /** * 修改项目迭代 */ diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/mapper/PmsProjectSprintMapper.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/mapper/PmsProjectSprintMapper.java index 973a7fa51..7e5370db2 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/mapper/PmsProjectSprintMapper.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/mapper/PmsProjectSprintMapper.java @@ -71,4 +71,6 @@ public interface PmsProjectSprintMapper List selectPmsProjectSprintBYIds(@Param("testSheetLinkSprintIds") Long[] testSheetLinkSprintIds); int deletePmsProjectSprintByProjectId(@Param("projectId") Long projectId); + + PmsProjectSprint selectLatestSprintByProjectIdAndNameAndAssigneeId(@Param("pmsProjectId") Long pmsProjectId, @Param("sprintName") String sprintName, @Param("sprintAssigneeId") Long sprintAssigneeId); } diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/IPmsProjectSprintService.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/IPmsProjectSprintService.java index cac76ad49..d83960f77 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/IPmsProjectSprintService.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/IPmsProjectSprintService.java @@ -67,4 +67,6 @@ public interface IPmsProjectSprintService List selectPmsProjectSimpleSprintByIds(Long[] testSheetLinkSprintIds); JSONArray getPmsProjectSprintBurnDownChart(Long pmSprintId); + + PmsProjectSprintSimpleVo findOrCreatePmsProjectSprint(PmsProjectSprint pmsProjectSprint); } diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/impl/PmsProjectSprintServiceImpl.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/impl/PmsProjectSprintServiceImpl.java index a9013d945..1792a2fdb 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/impl/PmsProjectSprintServiceImpl.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/impl/PmsProjectSprintServiceImpl.java @@ -151,6 +151,22 @@ public class PmsProjectSprintServiceImpl implements IPmsProjectSprintService return pmsProjectSprintMapper.insertPmsProjectSprint(pmsProjectSprint); } + @Override + public PmsProjectSprintSimpleVo findOrCreatePmsProjectSprint(PmsProjectSprint pmsProjectSprint) { + pmsProjectService.selectAndCheckPmsProjectById(pmsProjectSprint.getPmsProjectId()); + PmsProjectSprint existingSprint = pmsProjectSprintMapper.selectLatestSprintByProjectIdAndNameAndAssigneeId(pmsProjectSprint.getPmsProjectId(), pmsProjectSprint.getSprintName(), pmsProjectSprint.getSprintAssigneeId()); + PmsProjectSprintSimpleVo sprintSimpleVo = new PmsProjectSprintSimpleVo(); + if (existingSprint == null) { + insertPmsProjectSprint(pmsProjectSprint); + sprintSimpleVo.setSprintName(pmsProjectSprint.getSprintName()); + sprintSimpleVo.setId(pmsProjectSprint.getId()); + } else { + sprintSimpleVo.setSprintName(existingSprint.getSprintName()); + sprintSimpleVo.setId(existingSprint.getId()); + } + return sprintSimpleVo; + } + /** * 修改项目迭代 * diff --git a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectSprintMapper.xml b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectSprintMapper.xml index 02e321c51..7aa6a8d1e 100644 --- a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectSprintMapper.xml +++ b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectSprintMapper.xml @@ -175,4 +175,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{testSheetLinkSprintId} + \ No newline at end of file