From 5496f1895986da5d217cf1df27ceaad7b93160b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=AD=E5=85=B6=E5=85=B5?= Date: Thu, 13 Mar 2025 11:26:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zentao/controller/ZtStoryController.java | 2 ++ .../java/com/sa/zentao/dao/ZtStoryDTO.java | 2 ++ .../com/sa/zentao/dao/ZtStoryUserDTO.java | 4 ++++ .../com/sa/zentao/entity/ZtStoryFeedback.java | 2 ++ .../service/impl/ZtProductServiceImpl.java | 23 +++++++++++-------- .../service/impl/ZtProjectServiceImpl.java | 8 +++---- .../service/impl/ZtStoryServiceImpl.java | 14 +++++++++++ .../service/impl/ZtStoryUserServiceImpl.java | 20 ++++++++++++++++ .../service/impl/ZtTaskServiceImpl.java | 19 +++++++++++++-- 9 files changed, 79 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/sa/zentao/controller/ZtStoryController.java b/src/main/java/com/sa/zentao/controller/ZtStoryController.java index 6d61354..b52c0b8 100644 --- a/src/main/java/com/sa/zentao/controller/ZtStoryController.java +++ b/src/main/java/com/sa/zentao/controller/ZtStoryController.java @@ -203,4 +203,6 @@ public class ZtStoryController { return Result.success(list); } + + } diff --git a/src/main/java/com/sa/zentao/dao/ZtStoryDTO.java b/src/main/java/com/sa/zentao/dao/ZtStoryDTO.java index df58196..7a9f632 100644 --- a/src/main/java/com/sa/zentao/dao/ZtStoryDTO.java +++ b/src/main/java/com/sa/zentao/dao/ZtStoryDTO.java @@ -242,6 +242,8 @@ public class ZtStoryDTO implements Serializable { private Integer userStory; + private ZtStoryUserDTO userStoryInfo; + private String userStoryName; private String ysRemark; diff --git a/src/main/java/com/sa/zentao/dao/ZtStoryUserDTO.java b/src/main/java/com/sa/zentao/dao/ZtStoryUserDTO.java index ce3dca4..a350a29 100644 --- a/src/main/java/com/sa/zentao/dao/ZtStoryUserDTO.java +++ b/src/main/java/com/sa/zentao/dao/ZtStoryUserDTO.java @@ -102,6 +102,8 @@ public class ZtStoryUserDTO implements Serializable { @TableField("assignedTo") private String assignedto; + private String assignedtoName; + @TableField("assignedDate") private Date assigneddate; @@ -212,6 +214,8 @@ public class ZtStoryUserDTO implements Serializable { private List views; + private List sList; + private String revieweUser; private String files; diff --git a/src/main/java/com/sa/zentao/entity/ZtStoryFeedback.java b/src/main/java/com/sa/zentao/entity/ZtStoryFeedback.java index c17d8a5..5dcdd1e 100644 --- a/src/main/java/com/sa/zentao/entity/ZtStoryFeedback.java +++ b/src/main/java/com/sa/zentao/entity/ZtStoryFeedback.java @@ -6,6 +6,7 @@ import java.util.Date; import java.util.List; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.sa.zentao.dao.ZtBugDTO; import com.sa.zentao.dao.ZtStoryDTO; @@ -102,6 +103,7 @@ public class ZtStoryFeedback implements Serializable { private String weixin; //1通过 2不通过 + @TableField(exist = false) private Integer ysFlag; private String dontHandSelect; diff --git a/src/main/java/com/sa/zentao/service/impl/ZtProductServiceImpl.java b/src/main/java/com/sa/zentao/service/impl/ZtProductServiceImpl.java index 0b34a49..4f8e0c8 100644 --- a/src/main/java/com/sa/zentao/service/impl/ZtProductServiceImpl.java +++ b/src/main/java/com/sa/zentao/service/impl/ZtProductServiceImpl.java @@ -422,10 +422,10 @@ public class ZtProductServiceImpl extends ServiceImpl ztProjects = this.projectService.listByIds(projectproductlist.stream().map(o -> o.getProject()).collect(Collectors.toList())); - result.put("project",Arrays.asList(ztProjects)); + result.put("project",ztProjects); List list = this.executionprojectService.list(new QueryWrapper().lambda().in(ZtExecutionproject::getProject, ztProjects.stream().map(o -> o.getId()).collect(Collectors.toList()))); List execList = this.projectService.listByIds(list.stream().map(o -> o.getExecution()).collect(Collectors.toList())); - result.put("execution",Arrays.asList(ztProjects)); + result.put("execution",execList); }else{ result.put("project",Arrays.asList()); result.put("execution",Arrays.asList()); @@ -468,10 +468,10 @@ public class ZtProductServiceImpl extends ServiceImpl ztProjects = this.projectService.listByIds(projectproductlist.stream().map(o -> o.getProject()).collect(Collectors.toList())); - result.put("project",Arrays.asList(ztProjects)); + result.put("project",ztProjects); List list = this.executionprojectService.list(new QueryWrapper().lambda().in(ZtExecutionproject::getProject, ztProjects.stream().map(o -> o.getId()).collect(Collectors.toList()))); List execList = this.projectService.listByIds(list.stream().map(o -> o.getExecution()).collect(Collectors.toList())); - result.put("execution",Arrays.asList(ztProjects)); + result.put("execution",execList); }else{ result.put("project",Arrays.asList()); result.put("execution",Arrays.asList()); @@ -488,10 +488,15 @@ public class ZtProductServiceImpl extends ServiceImpl pList = this.projectService.listByIds(list.stream().map(o -> o.getProject()).collect(Collectors.toList())); result.put("project",pList); if(!CollectionUtils.isEmpty(pList)){ - List productList = this.projectproductService.list(new QueryWrapper().lambda().in(ZtProjectproduct::getProject, pList.stream().map(o -> o.getProject()).collect(Collectors.toList()))); + List productList = this.projectproductService.list(new QueryWrapper().lambda().in(ZtProjectproduct::getProject + , pList.stream().map(o -> o.getProject()).collect(Collectors.toList()))); + if(CollectionUtils.isEmpty(productList)){ + result.put("product",Arrays.asList()); + }else{ + List products = this.baseMapper.selectList(new QueryWrapper().lambda().in(ZtProduct::getId, productList.stream().map(o -> o.getProduct()).collect(Collectors.toList()))); + result.put("product",products); + } - List products = this.baseMapper.selectList(new QueryWrapper().lambda().in(ZtProduct::getId, productList.stream().map(o -> o.getProduct()).collect(Collectors.toList()))); - result.put("product",products); } } @@ -524,10 +529,10 @@ public class ZtProductServiceImpl extends ServiceImpl ztProjects = this.projectService.listByIds(projectproductlist.stream().map(o -> o.getProject()).collect(Collectors.toList())); - result.put("project",Arrays.asList(ztProjects)); + result.put("project",ztProjects); List list = this.executionprojectService.list(new QueryWrapper().lambda().in(ZtExecutionproject::getProject, ztProjects.stream().map(o -> o.getId()).collect(Collectors.toList()))); List execList = this.projectService.listByIds(list.stream().map(o -> o.getExecution()).collect(Collectors.toList())); - result.put("execution",Arrays.asList(ztProjects)); + result.put("execution",execList); } }else{ result.put("story",null); diff --git a/src/main/java/com/sa/zentao/service/impl/ZtProjectServiceImpl.java b/src/main/java/com/sa/zentao/service/impl/ZtProjectServiceImpl.java index d85bfeb..f204ff2 100644 --- a/src/main/java/com/sa/zentao/service/impl/ZtProjectServiceImpl.java +++ b/src/main/java/com/sa/zentao/service/impl/ZtProjectServiceImpl.java @@ -1390,8 +1390,8 @@ public class ZtProjectServiceImpl extends ServiceImpl list = this.taskService.list(new QueryWrapper().lambda() .notIn(ZtTask::getStatus,"cancel","closed","reviewing" ,"draft") - .gt(ZtTask::getOpeneddate, firstDayOfMonth) - .lt(ZtTask::getOpeneddate, lastDayOfMonth) + .ge(ZtTask::getEstStarted, firstDayOfMonth) + .le(ZtTask::getEstStarted, lastDayOfMonth) .eq(ZtTask::getExecution, execution)); if (CollectionUtils.isEmpty(list)) { @@ -1624,8 +1624,8 @@ public class ZtProjectServiceImpl extends ServiceImpl list = this.taskService.list(new QueryWrapper().lambda() .notIn(ZtTask::getStatus,"cancel","closed","reviewing" ,"draft") - .gt(ZtTask::getOpeneddate, firstDayOfMonth) - .lt(ZtTask::getOpeneddate, lastDayOfMonth) + .ge(ZtTask::getEstStarted, firstDayOfMonth) + .le(ZtTask::getEstStarted, lastDayOfMonth) .in(ZtTask::getExecution, execList.stream().map(o -> o.getExecution()) .collect(Collectors.toList()))); diff --git a/src/main/java/com/sa/zentao/service/impl/ZtStoryServiceImpl.java b/src/main/java/com/sa/zentao/service/impl/ZtStoryServiceImpl.java index 957f757..fb39364 100644 --- a/src/main/java/com/sa/zentao/service/impl/ZtStoryServiceImpl.java +++ b/src/main/java/com/sa/zentao/service/impl/ZtStoryServiceImpl.java @@ -1723,6 +1723,20 @@ public class ZtStoryServiceImpl extends ServiceImpl impl d.setModuleName(ztModule.getName()); } } + if(d.getUserStory()!=null&&d.getUserStory()!=0){ + ZtStoryUser storyUser = this.storyUserService.getById(d.getUserStory()); + ZtStoryUserDTO ztStoryUserDTO = new ZtStoryUserDTO(); + BeanUtils.copyProperties(storyUser,ztStoryUserDTO); + ztUser = userMap.get(ztStoryUserDTO.getOpenedby()); + if(ztUser!=null){ + ztStoryUserDTO.setOpenedbyName(ztUser.getNickname()); + } + ztUser = userMap.get(ztStoryUserDTO.getAssignedto()); + if(ztUser!=null){ + ztStoryUserDTO.setAssignedtoName(ztUser.getNickname()); + } + d.setUserStoryInfo(ztStoryUserDTO); + } return d; } diff --git a/src/main/java/com/sa/zentao/service/impl/ZtStoryUserServiceImpl.java b/src/main/java/com/sa/zentao/service/impl/ZtStoryUserServiceImpl.java index 7cb365b..ec2c4a1 100644 --- a/src/main/java/com/sa/zentao/service/impl/ZtStoryUserServiceImpl.java +++ b/src/main/java/com/sa/zentao/service/impl/ZtStoryUserServiceImpl.java @@ -396,6 +396,26 @@ public class ZtStoryUserServiceImpl extends ServiceImpl list = this.storyService.list(new QueryWrapper().lambda().eq(ZtStory::getUserStory, dto.getId())); + if(!CollectionUtils.isEmpty(list)){ + List storyDTOList = BeanCopyUtil.copyListProperties(list, ZtStoryDTO::new); + if(!CollectionUtils.isEmpty(storyDTOList)){ + + for (ZtStoryDTO storyDTO:storyDTOList) { + ztUser = userMap.get(storyDTO.getAssignedTo()); + if(ztUser!=null){ + storyDTO.setAssignedToName(ztUser.getNickname()); + } + ztUser = userMap.get(storyDTO.getOpenedby()); + if(ztUser!=null){ + storyDTO.setOpenedbyName(ztUser.getNickname()); + } + } + + dto.setSList(storyDTOList); + } + } + return dto; } diff --git a/src/main/java/com/sa/zentao/service/impl/ZtTaskServiceImpl.java b/src/main/java/com/sa/zentao/service/impl/ZtTaskServiceImpl.java index 7c6e26d..148f408 100644 --- a/src/main/java/com/sa/zentao/service/impl/ZtTaskServiceImpl.java +++ b/src/main/java/com/sa/zentao/service/impl/ZtTaskServiceImpl.java @@ -345,6 +345,9 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme Integer story = ztTask.getStory(); if (story != null && story != 0) { ZtStory ztStory = this.storyService.getById(story); + if(ztStory.getStatus().equals("closed")){ + throw new BusinessException("已关闭的需求无法拆分任务"); + } ztStory.setTaskCount(ztStory.getTaskCount() + 1); this.storyService.updateById(ztStory); List list = projectstoryService.list(new QueryWrapper().lambda().eq(ZtProjectstory::getStory, story) @@ -814,6 +817,15 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme List list = dto.getList(); List saveList = new ArrayList(); + + List storyList = list.stream().filter(o -> o.getStory() != null && o.getStory() != 0).map(o -> o.getStory()).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(storyList)){ + List sList = this.storyService.listByIds(storyList); + List closedStoryList = sList.stream().filter(o -> o.getStatus().equals("closed")).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(closedStoryList)){ + throw new BusinessException(closedStoryList.get(0).getTitle()+"已关闭"); + } + } for (ZtTaskDTO d : list) { if (d.getEstimate() == null) { throw new BusinessException("请检查工时"); @@ -821,6 +833,8 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme ZtTask ztTask = new ZtTask(); BeanUtils.copyProperties(d, ztTask); + + ztTask.setProject(projectstory.getProject()); ztTask.setOpenedby(RiskUserThreadLocal.get().getName()); ztTask.setOpeneddate(new Date()); @@ -888,14 +902,15 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme if (dto.getApprovalStatus() == 1) { t.setStatus("wait"); //完成任务 - + t.setApprovalRemark(" "); } else { t.setApprovalResult(1); t.setStatus("draft"); + t.setApprovalRemark(dto.getApprovalRemark()); } - t.setApprovalRemark(dto.getApprovalRemark()); + t.setLastediteddate(new Date()); t.setLasteditedby(RiskUserThreadLocal.get().getName());