From 3cd02cd7733aa51aef7c954a65b6a3664202c2f1 Mon Sep 17 00:00:00 2001 From: guoqibing Date: Tue, 2 Dec 2025 16:55:34 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9C=80=E6=B1=82=E5=A2=9E=E5=8A=A0=E7=AD=9B?= =?UTF-8?q?=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/sa/zentao/qo/ZtProjectQo.java | 2 + .../service/impl/ZtStoryUserServiceImpl.java | 5 + .../service/impl/ZtTaskServiceImpl.java | 143 +++++++++----- src/main/resources/mapper/ZtStoryMapper.xml | 186 +++++++++--------- .../resources/mapper/ZtStoryUserMapper.xml | 10 + 5 files changed, 204 insertions(+), 142 deletions(-) diff --git a/src/main/java/com/sa/zentao/qo/ZtProjectQo.java b/src/main/java/com/sa/zentao/qo/ZtProjectQo.java index aefe172..daa873f 100644 --- a/src/main/java/com/sa/zentao/qo/ZtProjectQo.java +++ b/src/main/java/com/sa/zentao/qo/ZtProjectQo.java @@ -64,6 +64,8 @@ public class ZtProjectQo extends BaseQo { private String status; + private List stageList; + private String title; private Integer module; 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 35e05eb..69f04ca 100644 --- a/src/main/java/com/sa/zentao/service/impl/ZtStoryUserServiceImpl.java +++ b/src/main/java/com/sa/zentao/service/impl/ZtStoryUserServiceImpl.java @@ -305,6 +305,11 @@ public class ZtStoryUserServiceImpl extends ServiceImpl page = PageHelper.startPage(qo.getCurrentPage(), qo.getPageSize()); List list = this.baseMapper.pageList(qo); if (!CollectionUtils.isEmpty(list)) { 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 924bf65..a722d3c 100644 --- a/src/main/java/com/sa/zentao/service/impl/ZtTaskServiceImpl.java +++ b/src/main/java/com/sa/zentao/service/impl/ZtTaskServiceImpl.java @@ -179,8 +179,8 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme if (CollectionUtils.isEmpty(taskList)) { return new ArrayList<>(); } - taskList=taskList.stream().peek(e->{ - if(e.getDeadline()!=null){ + taskList = taskList.stream().peek(e -> { + if (e.getDeadline() != null) { e.setDeadline(DateUtils.getDayLast(e.getDeadline())); } }).collect(Collectors.toList()); @@ -341,7 +341,7 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme // .and(e->e.or().) // ); - return this.baseMapper.taskListByPIdsAndDate(pids,firstDayOfMonth,lastDayOfMonth); + return this.baseMapper.taskListByPIdsAndDate(pids, firstDayOfMonth, lastDayOfMonth); // return taskList; } @@ -386,8 +386,8 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme } List taskList = this.list(new QueryWrapper().lambda() .select(SFunctionColums.taskColumes()) - .in(ZtTask::getProduct,pids) - .in(ZtTask::getAssignedTo,uids) + .in(ZtTask::getProduct, pids) + .in(ZtTask::getAssignedTo, uids) .ge(ZtTask::getFinishedDate, firstDayOfMonth).le(ZtTask::getFinishedDate, lastDayOfMonth)); return taskList; @@ -518,7 +518,7 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme List userIds = list.stream().map(o -> o.getFinishedby()).collect(Collectors.toList()); userIds.addAll(list.stream().map(o -> o.getAssignedTo()).collect(Collectors.toList())); Map userMap = this.userService.userMapByIds(null); - Date d=new Date(); + Date d = new Date(); for (ZtTaskDTO task : list) { ZtUser ztUser = userMap.get(task.getFinishedby()); if (ztUser != null) { @@ -531,16 +531,16 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme if (task.getDeadline() != null) { task.setDeadline(DateUtils.getDayLast(task.getDeadline())); } - if(task.getFinishedDate()!=null){ - if(task.getFinishedDate().getTime()>DateUtils.getDayLast(task.getDeadline()).getTime()){ + if (task.getFinishedDate() != null) { + if (task.getFinishedDate().getTime() > DateUtils.getDayLast(task.getDeadline()).getTime()) { task.setDelayFlag(1); - }else{ + } else { task.setDelayFlag(2); } - }else{ - if(d.getTime()>DateUtils.getDayLast(task.getDeadline()).getTime()){ + } else { + if (d.getTime() > DateUtils.getDayLast(task.getDeadline()).getTime()) { task.setDelayFlag(1); - }else{ + } else { task.setDelayFlag(2); } } @@ -644,16 +644,16 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme ztTask.setEstimate(ztTask.getUseTime().floatValue()); ztTask.setLeft(ztTask.getUseTime().floatValue()); } - if(ztTask.getDeadline()==null){ + if (ztTask.getDeadline() == null) { throw new BusinessException("当前环境异常请联系管理员"); } this.baseMapper.insert(ztTask); - if(ztTask.getDeadline()!=null&&ztTask.getStory()!=null&&ztTask.getStory()!=0){ + if (ztTask.getDeadline() != null && ztTask.getStory() != null && ztTask.getStory() != 0) { ZtStory ztStory = this.storyService.getById(ztTask.getStory()); - if(ztTask.getType().equals("devel")&&(ztStory.getDevelPlanEndTime()==null||ztTask.getDeadline().after(ztStory.getDevelPlanEndTime()))){ + if (ztTask.getType().equals("devel") && (ztStory.getDevelPlanEndTime() == null || ztTask.getDeadline().after(ztStory.getDevelPlanEndTime()))) { ztStory.setDevelPlanEndTime(ztTask.getDeadline()); } - if(ztTask.getType().equals("test")&&(ztStory.getTestPlanEndTime()==null||ztTask.getDeadline().after(ztStory.getTestPlanEndTime()))){ + if (ztTask.getType().equals("test") && (ztStory.getTestPlanEndTime() == null || ztTask.getDeadline().after(ztStory.getTestPlanEndTime()))) { ztStory.setTestPlanEndTime(ztTask.getDeadline()); } this.storyService.updateById(ztStory); @@ -703,7 +703,7 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme @Override @Transactional public void modifyTask(ZtTaskDTO dto) { - if(dto.getDeadline()==null||dto.getEstStarted()==null){ + if (dto.getDeadline() == null || dto.getEstStarted() == null) { throw new BusinessException("请录入开始结束日期"); } ZtTask ztTask = this.baseMapper.selectById(dto.getId()); @@ -786,6 +786,44 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme } } + if (ztTask.getDeadline() != null && ztTask.getStory() != null && ztTask.getStory() != 0) { + ZtStory ztStory = this.storyService.getById(ztTask.getStory()); + ztStory.setDevelPlanEndTime(null); + if (ztTask.getType().equals("devel") && (ztStory.getDevelPlanEndTime() == null || ztTask.getDeadline().after(ztStory.getDevelPlanEndTime()))) { + ztStory.setDevelPlanEndTime(ztTask.getDeadline()); + } else { + //查找最大时间那个 + List ztTasks = this.baseMapper.selectList(new QueryWrapper().lambda() + .select(ZtTask::getDeadline) + .isNotNull(ZtTask::getDeadline) + .eq(ZtTask::getType, "devel") + .ne(ZtTask::getId, ztTask.getId()) + .in(ZtTask::getStatus, "pause", "done", "wait", "reviewing", "doing", "draft") + .eq(ZtTask::getStory, ztTask.getStory()).orderByDesc(ZtTask::getDeadline)); + this.storyService.update(new UpdateWrapper().lambda() + .eq(ZtStory::getId, ztTask.getStory()) + .set(ZtStory::getDevelPlanEndTime, CollectionUtils.isEmpty(ztTasks) ? null : DateUtils.getDayLast(ztTasks.get(0).getDeadline()))); + } + if (ztTask.getType().equals("test") && (ztStory.getTestPlanEndTime() == null || ztTask.getDeadline().after(ztStory.getTestPlanEndTime()))) { + ztStory.setTestPlanEndTime(ztTask.getDeadline()); + } else { + if (ztTask.getType().equals("test") && ztStory.getTestPlanEndTime() != null) { + //查找最大时间那个 + ztStory.setDevelPlanEndTime(ztTask.getDeadline()); + List ztTasks = this.baseMapper.selectList(new QueryWrapper().lambda() + .select(ZtTask::getDeadline) + .isNotNull(ZtTask::getDeadline) + .eq(ZtTask::getType, "test") + .ne(ZtTask::getId, ztTask.getId()) + .in(ZtTask::getStatus, "pause", "done", "wait", "reviewing", "doing", "draft") + .eq(ZtTask::getStory, ztTask.getStory()).orderByDesc(ZtTask::getDeadline)); + this.storyService.update(new UpdateWrapper().lambda() + .eq(ZtStory::getId, ztTask.getStory()) + .set(ZtStory::getTestPlanEndTime, CollectionUtils.isEmpty(ztTasks) ? null : DateUtils.getDayLast(ztTasks.get(0).getDeadline()))); + } + } + this.storyService.updateById(ztStory); + } fileService.updateFile(dto.getFiles(), ztTask.getId(), FileTypes.task); @@ -812,11 +850,11 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme this.storyService.taskFinishChangeStatus(ztTask.getStory(), null, TaskType.transferType(ztTask.getType()), false); } - if(ObjectUtils.notEqual(oldExecution,newExecution)){ + if (ObjectUtils.notEqual(oldExecution, newExecution)) { //迭代切换了 - this.kanbanlaneService.removeKanbanCell(oldExecution,ztTask.getId(),KanbanCellType.TASK); + this.kanbanlaneService.removeKanbanCell(oldExecution, ztTask.getId(), KanbanCellType.TASK); //添加新的看板迭代 - this.kanbanlaneService.addKanbanCell(newExecution,ztTask.getId(),KanbanCellType.TASK,ztTask); + this.kanbanlaneService.addKanbanCell(newExecution, ztTask.getId(), KanbanCellType.TASK, ztTask); } taskSendZpMessage(ztTask.getId(), oldAssignedTo, ztTask.getAssignedTo()); @@ -872,7 +910,7 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme if ("doing".equals(ztTask.getStatus())) { this.storyFeedbackService.feedbackStart(ztTask.getFeedback()); } else { - this.storyFeedbackService.feedbackFinished(ztTask.getFeedback(),ztTask.getFeedbackRemark()); + this.storyFeedbackService.feedbackFinished(ztTask.getFeedback(), ztTask.getFeedbackRemark()); } } if (dto.getConsumed() > 0) { @@ -889,26 +927,26 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme actionService.addAction(ActionType.RW, ActionStatus.KS, dto.getId(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(), RiskUserThreadLocal.get().getName(), "", null); - if("done".equals(ztTask.getStatus())){ - String finishBy = StringUtils.isEmpty(ztTask.getFinishedby())?RiskUserThreadLocal.get().getName():ztTask.getFinishedby(); + if ("done".equals(ztTask.getStatus())) { + String finishBy = StringUtils.isEmpty(ztTask.getFinishedby()) ? RiskUserThreadLocal.get().getName() : ztTask.getFinishedby(); //如果是测试任务 提交交付物 - if("test".equals(ztTask.getType())&&!StringUtils.isEmpty(ztTask.getDeliverContent())){ - actionService.addAction(ActionType.RW, ActionStatus.TJJFW, dto.getId(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(), + if ("test".equals(ztTask.getType()) && !StringUtils.isEmpty(ztTask.getDeliverContent())) { + actionService.addAction(ActionType.RW, ActionStatus.TJJFW, ztTask.getId(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(), StringUtils.isEmpty(finishBy) ? RiskUserThreadLocal.get().getName() : finishBy, dto.getDeliverContent(), null); - if(ztTask.getStory()!=null&&ztTask.getStory()!=0){ - actionService.addAction(ActionType.XQ, ActionStatus.TJJFW, dto.getId(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(), + if (ztTask.getStory() != null && ztTask.getStory() != 0) { + actionService.addAction(ActionType.XQ, ActionStatus.TJJFW, ztTask.getStory(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(), StringUtils.isEmpty(finishBy) ? RiskUserThreadLocal.get().getName() : finishBy, dto.getDeliverContent(), null); } - if(ztTask.getStory()!=null&&ztTask.getStory()!=0){ + if (ztTask.getStory() != null && ztTask.getStory() != 0) { //更新需求交付物 ZtStory ztStory = this.storyService.getById(ztTask.getStory()); - if(ztStory!=null){ + if (ztStory != null) { ztStory.setDeliverContent(ztTask.getDeliverContent()); this.storyService.updateById(ztStory); } } } - if(!StringUtils.isEmpty(dto.getRemark())){ + if (!StringUtils.isEmpty(dto.getRemark())) { actionService.addAction(ActionType.RW, ActionStatus.TJBZ, dto.getId(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(), StringUtils.isEmpty(finishBy) ? RiskUserThreadLocal.get().getName() : finishBy, dto.getRemark(), null); } @@ -992,15 +1030,15 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme //添加action ZtProjectproduct projectproduct = projectproductService.getOne(new QueryWrapper().lambda().eq(ZtProjectproduct::getProject, ztTask.getProject())); //如果是测试任务 提交交付物 - if("test".equals(ztTask.getType())&&!StringUtils.isEmpty(ztTask.getDeliverContent())){ + if ("test".equals(ztTask.getType()) && !StringUtils.isEmpty(ztTask.getDeliverContent())) { actionService.addAction(ActionType.RW, ActionStatus.TJJFW, dto.getId(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(), StringUtils.isEmpty(finishBy) ? RiskUserThreadLocal.get().getName() : finishBy, dto.getDeliverContent(), null); - if(ztTask.getStory()!=null&&ztTask.getStory()!=0){ - actionService.addAction(ActionType.XQ, ActionStatus.TJJFW, dto.getId(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(), + if (ztTask.getStory() != null && ztTask.getStory() != 0) { + actionService.addAction(ActionType.XQ, ActionStatus.TJJFW, ztTask.getStory(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(), StringUtils.isEmpty(finishBy) ? RiskUserThreadLocal.get().getName() : finishBy, dto.getDeliverContent(), null); } } - if(!StringUtils.isEmpty(dto.getRemark())){ + if (!StringUtils.isEmpty(dto.getRemark())) { actionService.addAction(ActionType.RW, ActionStatus.TJBZ, dto.getId(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(), StringUtils.isEmpty(finishBy) ? RiskUserThreadLocal.get().getName() : finishBy, dto.getRemark(), null); } @@ -1033,7 +1071,7 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme this.storyService.taskFinishChangeStatus(ztTask.getStory(), finishBy, TaskType.transferType(type), false); } if (ztTask.getFeedback() != null && ztTask.getFeedback() != 0) { - this.storyFeedbackService.feedbackFinished(ztTask.getFeedback(),ztTask.getFeedbackRemark()); + this.storyFeedbackService.feedbackFinished(ztTask.getFeedback(), ztTask.getFeedbackRemark()); } } @@ -1052,9 +1090,9 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme ztTask.setLastediteddate(new Date()); this.baseMapper.updateById(ztTask); - if(ztTask.getDeadline()!=null&&ztTask.getStory()!=null&&ztTask.getStory()!=0){ + if (ztTask.getDeadline() != null && ztTask.getStory() != null && ztTask.getStory() != 0) { ZtStory ztStory = this.storyService.getById(ztTask.getStory()); - if(ztTask.getType().equals("devel")&&ztStory.getDevelPlanEndTime()!=null){ + if (ztTask.getType().equals("devel") && ztStory.getDevelPlanEndTime() != null) { //查找最大时间那个 ztStory.setDevelPlanEndTime(ztTask.getDeadline()); List ztTasks = this.baseMapper.selectList(new QueryWrapper().lambda() @@ -1065,10 +1103,10 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme .in(ZtTask::getStatus, "pause", "done", "wait", "reviewing", "doing", "draft") .eq(ZtTask::getStory, ztTask.getStory()).orderByDesc(ZtTask::getDeadline)); this.storyService.update(new UpdateWrapper().lambda() - .eq(ZtStory::getId, ztTask.getStory()) - .set(ZtStory::getDevelPlanEndTime,CollectionUtils.isEmpty(ztTasks)?null:DateUtils.getDayLast(ztTasks.get(0).getDeadline()))); + .eq(ZtStory::getId, ztTask.getStory()) + .set(ZtStory::getDevelPlanEndTime, CollectionUtils.isEmpty(ztTasks) ? null : DateUtils.getDayLast(ztTasks.get(0).getDeadline()))); } - if(ztTask.getType().equals("test")&&ztStory.getTestPlanEndTime()!=null){ + if (ztTask.getType().equals("test") && ztStory.getTestPlanEndTime() != null) { //查找最大时间那个 ztStory.setDevelPlanEndTime(ztTask.getDeadline()); List ztTasks = this.baseMapper.selectList(new QueryWrapper().lambda() @@ -1080,12 +1118,11 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme .eq(ZtTask::getStory, ztTask.getStory()).orderByDesc(ZtTask::getDeadline)); this.storyService.update(new UpdateWrapper().lambda() .eq(ZtStory::getId, ztTask.getStory()) - .set(ZtStory::getTestPlanEndTime,CollectionUtils.isEmpty(ztTasks)?null:DateUtils.getDayLast(ztTasks.get(0).getDeadline()))); + .set(ZtStory::getTestPlanEndTime, CollectionUtils.isEmpty(ztTasks) ? null : DateUtils.getDayLast(ztTasks.get(0).getDeadline()))); } } - ZtProjectproduct projectproduct = projectproductService.getOne(new QueryWrapper().lambda().eq(ZtProjectproduct::getProject, ztTask.getProject())); //添加action @@ -1131,9 +1168,9 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme //添加action actionService.addAction(ActionType.RW, ActionStatus.QX, dto.getId(), projectproduct == null ? null : projectproduct.getProduct().toString(), ztTask.getProject(), ztTask.getExecution(), RiskUserThreadLocal.get().getName(), dto.getDesc(), null); - if(ztTask.getDeadline()!=null&&ztTask.getStory()!=null&&ztTask.getStory()!=0){ + if (ztTask.getDeadline() != null && ztTask.getStory() != null && ztTask.getStory() != 0) { ZtStory ztStory = this.storyService.getById(ztTask.getStory()); - if(ztTask.getType().equals("devel")&&ztStory.getDevelPlanEndTime()!=null){ + if (ztTask.getType().equals("devel") && ztStory.getDevelPlanEndTime() != null) { //查找最大时间那个 ztStory.setDevelPlanEndTime(ztTask.getDeadline()); List ztTasks = this.baseMapper.selectList(new QueryWrapper().lambda() @@ -1145,9 +1182,9 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme .eq(ZtTask::getStory, ztTask.getStory()).orderByDesc(ZtTask::getDeadline)); this.storyService.update(new UpdateWrapper().lambda() .eq(ZtStory::getId, ztTask.getStory()) - .set(ZtStory::getDevelPlanEndTime,CollectionUtils.isEmpty(ztTasks)?null:DateUtils.getDayLast(ztTasks.get(0).getDeadline()))); + .set(ZtStory::getDevelPlanEndTime, CollectionUtils.isEmpty(ztTasks) ? null : DateUtils.getDayLast(ztTasks.get(0).getDeadline()))); } - if(ztTask.getType().equals("test")&&ztStory.getTestPlanEndTime()!=null){ + if (ztTask.getType().equals("test") && ztStory.getTestPlanEndTime() != null) { //查找最大时间那个 ztStory.setDevelPlanEndTime(ztTask.getDeadline()); List ztTasks = this.baseMapper.selectList(new QueryWrapper().lambda() @@ -1159,7 +1196,7 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme .eq(ZtTask::getStory, ztTask.getStory()).orderByDesc(ZtTask::getDeadline)); this.storyService.update(new UpdateWrapper().lambda() .eq(ZtStory::getId, ztTask.getStory()) - .set(ZtStory::getTestPlanEndTime,CollectionUtils.isEmpty(ztTasks)?null:DateUtils.getDayLast(ztTasks.get(0).getDeadline()))); + .set(ZtStory::getTestPlanEndTime, CollectionUtils.isEmpty(ztTasks) ? null : DateUtils.getDayLast(ztTasks.get(0).getDeadline()))); } } if (ztTask.getExecution() != null && ztTask.getExecution() != 0) { @@ -1207,7 +1244,7 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme List list = dto.getList(); long nullDeadlineCount = list.stream().filter(o -> o.getDeadline() == null || o.getEstStarted() == null).count(); - if(nullDeadlineCount>0){ + if (nullDeadlineCount > 0) { throw new BusinessException("请录入开始结束日期"); } @@ -1254,13 +1291,13 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme } saveList.add(ztTask); - if(ztTask.getDeadline()!=null&&ztTask.getStory()!=null&&ztTask.getStory()!=0){ + if (ztTask.getDeadline() != null && ztTask.getStory() != null && ztTask.getStory() != 0) { ZtStory ztStory = this.storyService.getById(ztTask.getStory()); - if(ztTask.getType().equals("devel")&&(ztStory.getDevelPlanEndTime()==null||ztTask.getDeadline().getTime()>=ztStory.getDevelPlanEndTime().getTime() - )){ + if (ztTask.getType().equals("devel") && (ztStory.getDevelPlanEndTime() == null || ztTask.getDeadline().getTime() >= ztStory.getDevelPlanEndTime().getTime() + )) { ztStory.setDevelPlanEndTime(ztTask.getDeadline()); } - if(ztTask.getType().equals("test")&&(ztStory.getTestPlanEndTime()==null||ztTask.getDeadline().getTime()>=ztStory.getTestPlanEndTime().getTime())){ + if (ztTask.getType().equals("test") && (ztStory.getTestPlanEndTime() == null || ztTask.getDeadline().getTime() >= ztStory.getTestPlanEndTime().getTime())) { ztStory.setTestPlanEndTime(ztTask.getDeadline()); } this.storyService.updateById(ztStory); @@ -1275,7 +1312,7 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme this.storyService.taskFinishChangeStatus(ztTask.getStory(), null, TaskType.transferType(ztTask.getType()), false); taskSendZpMessage(ztTask.getId(), null, ztTask.getAssignedTo()); } else { - taskSendPsMessage(ztTask.getId(), ztProject.getPm(),ztTask.getOpenedby()); + taskSendPsMessage(ztTask.getId(), ztProject.getPm(), ztTask.getOpenedby()); } } diff --git a/src/main/resources/mapper/ZtStoryMapper.xml b/src/main/resources/mapper/ZtStoryMapper.xml index 0954318..75480d1 100644 --- a/src/main/resources/mapper/ZtStoryMapper.xml +++ b/src/main/resources/mapper/ZtStoryMapper.xml @@ -257,11 +257,16 @@ and closedBy =#{qo.userName} + + and s.stage in + + #{id} + + group by s.id - - @@ -277,21 +282,10 @@ order by s.id desc - - - - -- order by id desc - -