修改bug

This commit is contained in:
2025-03-13 11:26:06 +08:00
parent 016458af4b
commit 5496f18959
9 changed files with 79 additions and 15 deletions

View File

@ -203,4 +203,6 @@ public class ZtStoryController {
return Result.success(list); return Result.success(list);
} }
} }

View File

@ -242,6 +242,8 @@ public class ZtStoryDTO implements Serializable {
private Integer userStory; private Integer userStory;
private ZtStoryUserDTO userStoryInfo;
private String userStoryName; private String userStoryName;
private String ysRemark; private String ysRemark;

View File

@ -102,6 +102,8 @@ public class ZtStoryUserDTO implements Serializable {
@TableField("assignedTo") @TableField("assignedTo")
private String assignedto; private String assignedto;
private String assignedtoName;
@TableField("assignedDate") @TableField("assignedDate")
private Date assigneddate; private Date assigneddate;
@ -212,6 +214,8 @@ public class ZtStoryUserDTO implements Serializable {
private List<ZtStoryreviewDTO> views; private List<ZtStoryreviewDTO> views;
private List<ZtStoryDTO> sList;
private String revieweUser; private String revieweUser;
private String files; private String files;

View File

@ -6,6 +6,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.sa.zentao.dao.ZtBugDTO; import com.sa.zentao.dao.ZtBugDTO;
import com.sa.zentao.dao.ZtStoryDTO; import com.sa.zentao.dao.ZtStoryDTO;
@ -102,6 +103,7 @@ public class ZtStoryFeedback implements Serializable {
private String weixin; private String weixin;
//1通过 2不通过 //1通过 2不通过
@TableField(exist = false)
private Integer ysFlag; private Integer ysFlag;
private String dontHandSelect; private String dontHandSelect;

View File

@ -422,10 +422,10 @@ public class ZtProductServiceImpl extends ServiceImpl<ZtProductMapper, ZtProduct
.eq(ZtProjectproduct::getProduct, productId)); .eq(ZtProjectproduct::getProduct, productId));
if(!CollectionUtils.isEmpty(projectproductlist)){ if(!CollectionUtils.isEmpty(projectproductlist)){
List<ZtProject> ztProjects = this.projectService.listByIds(projectproductlist.stream().map(o -> o.getProject()).collect(Collectors.toList())); List<ZtProject> ztProjects = this.projectService.listByIds(projectproductlist.stream().map(o -> o.getProject()).collect(Collectors.toList()));
result.put("project",Arrays.asList(ztProjects)); result.put("project",ztProjects);
List<ZtExecutionproject> list = this.executionprojectService.list(new QueryWrapper<ZtExecutionproject>().lambda().in(ZtExecutionproject::getProject, ztProjects.stream().map(o -> o.getId()).collect(Collectors.toList()))); List<ZtExecutionproject> list = this.executionprojectService.list(new QueryWrapper<ZtExecutionproject>().lambda().in(ZtExecutionproject::getProject, ztProjects.stream().map(o -> o.getId()).collect(Collectors.toList())));
List<ZtProject> execList = this.projectService.listByIds(list.stream().map(o -> o.getExecution()).collect(Collectors.toList())); List<ZtProject> execList = this.projectService.listByIds(list.stream().map(o -> o.getExecution()).collect(Collectors.toList()));
result.put("execution",Arrays.asList(ztProjects)); result.put("execution",execList);
}else{ }else{
result.put("project",Arrays.asList()); result.put("project",Arrays.asList());
result.put("execution",Arrays.asList()); result.put("execution",Arrays.asList());
@ -468,10 +468,10 @@ public class ZtProductServiceImpl extends ServiceImpl<ZtProductMapper, ZtProduct
.eq(ZtProjectproduct::getProduct, pId)); .eq(ZtProjectproduct::getProduct, pId));
if(!CollectionUtils.isEmpty(projectproductlist)){ if(!CollectionUtils.isEmpty(projectproductlist)){
List<ZtProject> ztProjects = this.projectService.listByIds(projectproductlist.stream().map(o -> o.getProject()).collect(Collectors.toList())); List<ZtProject> ztProjects = this.projectService.listByIds(projectproductlist.stream().map(o -> o.getProject()).collect(Collectors.toList()));
result.put("project",Arrays.asList(ztProjects)); result.put("project",ztProjects);
List<ZtExecutionproject> list = this.executionprojectService.list(new QueryWrapper<ZtExecutionproject>().lambda().in(ZtExecutionproject::getProject, ztProjects.stream().map(o -> o.getId()).collect(Collectors.toList()))); List<ZtExecutionproject> list = this.executionprojectService.list(new QueryWrapper<ZtExecutionproject>().lambda().in(ZtExecutionproject::getProject, ztProjects.stream().map(o -> o.getId()).collect(Collectors.toList())));
List<ZtProject> execList = this.projectService.listByIds(list.stream().map(o -> o.getExecution()).collect(Collectors.toList())); List<ZtProject> execList = this.projectService.listByIds(list.stream().map(o -> o.getExecution()).collect(Collectors.toList()));
result.put("execution",Arrays.asList(ztProjects)); result.put("execution",execList);
}else{ }else{
result.put("project",Arrays.asList()); result.put("project",Arrays.asList());
result.put("execution",Arrays.asList()); result.put("execution",Arrays.asList());
@ -488,11 +488,16 @@ public class ZtProductServiceImpl extends ServiceImpl<ZtProductMapper, ZtProduct
List<ZtProject> pList = this.projectService.listByIds(list.stream().map(o -> o.getProject()).collect(Collectors.toList())); List<ZtProject> pList = this.projectService.listByIds(list.stream().map(o -> o.getProject()).collect(Collectors.toList()));
result.put("project",pList); result.put("project",pList);
if(!CollectionUtils.isEmpty(pList)){ if(!CollectionUtils.isEmpty(pList)){
List<ZtProjectproduct> productList = this.projectproductService.list(new QueryWrapper<ZtProjectproduct>().lambda().in(ZtProjectproduct::getProject, pList.stream().map(o -> o.getProject()).collect(Collectors.toList()))); List<ZtProjectproduct> productList = this.projectproductService.list(new QueryWrapper<ZtProjectproduct>().lambda().in(ZtProjectproduct::getProject
, pList.stream().map(o -> o.getProject()).collect(Collectors.toList())));
if(CollectionUtils.isEmpty(productList)){
result.put("product",Arrays.asList());
}else{
List<ZtProduct> products = this.baseMapper.selectList(new QueryWrapper<ZtProduct>().lambda().in(ZtProduct::getId, productList.stream().map(o -> o.getProduct()).collect(Collectors.toList()))); List<ZtProduct> products = this.baseMapper.selectList(new QueryWrapper<ZtProduct>().lambda().in(ZtProduct::getId, productList.stream().map(o -> o.getProduct()).collect(Collectors.toList())));
result.put("product",products); result.put("product",products);
} }
}
} }
Integer taskId = dto.getTaskId(); Integer taskId = dto.getTaskId();
@ -524,10 +529,10 @@ public class ZtProductServiceImpl extends ServiceImpl<ZtProductMapper, ZtProduct
.eq(ZtProjectproduct::getProduct, product.getId())); .eq(ZtProjectproduct::getProduct, product.getId()));
if(!CollectionUtils.isEmpty(projectproductlist)){ if(!CollectionUtils.isEmpty(projectproductlist)){
List<ZtProject> ztProjects = this.projectService.listByIds(projectproductlist.stream().map(o -> o.getProject()).collect(Collectors.toList())); List<ZtProject> ztProjects = this.projectService.listByIds(projectproductlist.stream().map(o -> o.getProject()).collect(Collectors.toList()));
result.put("project",Arrays.asList(ztProjects)); result.put("project",ztProjects);
List<ZtExecutionproject> list = this.executionprojectService.list(new QueryWrapper<ZtExecutionproject>().lambda().in(ZtExecutionproject::getProject, ztProjects.stream().map(o -> o.getId()).collect(Collectors.toList()))); List<ZtExecutionproject> list = this.executionprojectService.list(new QueryWrapper<ZtExecutionproject>().lambda().in(ZtExecutionproject::getProject, ztProjects.stream().map(o -> o.getId()).collect(Collectors.toList())));
List<ZtProject> execList = this.projectService.listByIds(list.stream().map(o -> o.getExecution()).collect(Collectors.toList())); List<ZtProject> execList = this.projectService.listByIds(list.stream().map(o -> o.getExecution()).collect(Collectors.toList()));
result.put("execution",Arrays.asList(ztProjects)); result.put("execution",execList);
} }
}else{ }else{
result.put("story",null); result.put("story",null);

View File

@ -1390,8 +1390,8 @@ public class ZtProjectServiceImpl extends ServiceImpl<ZtProjectMapper, ZtProject
List<ZtTask> list = this.taskService.list(new QueryWrapper<ZtTask>().lambda() List<ZtTask> list = this.taskService.list(new QueryWrapper<ZtTask>().lambda()
.notIn(ZtTask::getStatus,"cancel","closed","reviewing" ,"draft") .notIn(ZtTask::getStatus,"cancel","closed","reviewing" ,"draft")
.gt(ZtTask::getOpeneddate, firstDayOfMonth) .ge(ZtTask::getEstStarted, firstDayOfMonth)
.lt(ZtTask::getOpeneddate, lastDayOfMonth) .le(ZtTask::getEstStarted, lastDayOfMonth)
.eq(ZtTask::getExecution, execution)); .eq(ZtTask::getExecution, execution));
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
@ -1624,8 +1624,8 @@ public class ZtProjectServiceImpl extends ServiceImpl<ZtProjectMapper, ZtProject
List<ZtTask> list = this.taskService.list(new QueryWrapper<ZtTask>().lambda() List<ZtTask> list = this.taskService.list(new QueryWrapper<ZtTask>().lambda()
.notIn(ZtTask::getStatus,"cancel","closed","reviewing" ,"draft") .notIn(ZtTask::getStatus,"cancel","closed","reviewing" ,"draft")
.gt(ZtTask::getOpeneddate, firstDayOfMonth) .ge(ZtTask::getEstStarted, firstDayOfMonth)
.lt(ZtTask::getOpeneddate, lastDayOfMonth) .le(ZtTask::getEstStarted, lastDayOfMonth)
.in(ZtTask::getExecution, execList.stream().map(o -> o.getExecution()) .in(ZtTask::getExecution, execList.stream().map(o -> o.getExecution())
.collect(Collectors.toList()))); .collect(Collectors.toList())));

View File

@ -1723,6 +1723,20 @@ public class ZtStoryServiceImpl extends ServiceImpl<ZtStoryMapper, ZtStory> impl
d.setModuleName(ztModule.getName()); 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; return d;
} }

View File

@ -396,6 +396,26 @@ public class ZtStoryUserServiceImpl extends ServiceImpl<ZtStoryUserMapper, ZtSto
dto.setReviewedbyName(b.toString()); dto.setReviewedbyName(b.toString());
} }
dto.setViews(rMap.get(d.getId())); dto.setViews(rMap.get(d.getId()));
List<ZtStory> list = this.storyService.list(new QueryWrapper<ZtStory>().lambda().eq(ZtStory::getUserStory, dto.getId()));
if(!CollectionUtils.isEmpty(list)){
List<ZtStoryDTO> 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; return dto;
} }

View File

@ -345,6 +345,9 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
Integer story = ztTask.getStory(); Integer story = ztTask.getStory();
if (story != null && story != 0) { if (story != null && story != 0) {
ZtStory ztStory = this.storyService.getById(story); ZtStory ztStory = this.storyService.getById(story);
if(ztStory.getStatus().equals("closed")){
throw new BusinessException("已关闭的需求无法拆分任务");
}
ztStory.setTaskCount(ztStory.getTaskCount() + 1); ztStory.setTaskCount(ztStory.getTaskCount() + 1);
this.storyService.updateById(ztStory); this.storyService.updateById(ztStory);
List<ZtProjectstory> list = projectstoryService.list(new QueryWrapper<ZtProjectstory>().lambda().eq(ZtProjectstory::getStory, story) List<ZtProjectstory> list = projectstoryService.list(new QueryWrapper<ZtProjectstory>().lambda().eq(ZtProjectstory::getStory, story)
@ -814,6 +817,15 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
List<ZtTaskDTO> list = dto.getList(); List<ZtTaskDTO> list = dto.getList();
List<ZtTask> saveList = new ArrayList(); List<ZtTask> saveList = new ArrayList();
List<Integer> storyList = list.stream().filter(o -> o.getStory() != null && o.getStory() != 0).map(o -> o.getStory()).collect(Collectors.toList());
if(!CollectionUtils.isEmpty(storyList)){
List<ZtStory> sList = this.storyService.listByIds(storyList);
List<ZtStory> 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) { for (ZtTaskDTO d : list) {
if (d.getEstimate() == null) { if (d.getEstimate() == null) {
throw new BusinessException("请检查工时"); throw new BusinessException("请检查工时");
@ -821,6 +833,8 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
ZtTask ztTask = new ZtTask(); ZtTask ztTask = new ZtTask();
BeanUtils.copyProperties(d, ztTask); BeanUtils.copyProperties(d, ztTask);
ztTask.setProject(projectstory.getProject()); ztTask.setProject(projectstory.getProject());
ztTask.setOpenedby(RiskUserThreadLocal.get().getName()); ztTask.setOpenedby(RiskUserThreadLocal.get().getName());
ztTask.setOpeneddate(new Date()); ztTask.setOpeneddate(new Date());
@ -888,14 +902,15 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
if (dto.getApprovalStatus() == 1) { if (dto.getApprovalStatus() == 1) {
t.setStatus("wait"); t.setStatus("wait");
//完成任务 //完成任务
t.setApprovalRemark(" ");
} else { } else {
t.setApprovalResult(1); t.setApprovalResult(1);
t.setStatus("draft"); t.setStatus("draft");
t.setApprovalRemark(dto.getApprovalRemark());
} }
t.setApprovalRemark(dto.getApprovalRemark());
t.setLastediteddate(new Date()); t.setLastediteddate(new Date());
t.setLasteditedby(RiskUserThreadLocal.get().getName()); t.setLasteditedby(RiskUserThreadLocal.get().getName());