diff --git a/src/main/java/com/sa/zentao/controller/ZtBugController.java b/src/main/java/com/sa/zentao/controller/ZtBugController.java index 52b784f..b67d769 100644 --- a/src/main/java/com/sa/zentao/controller/ZtBugController.java +++ b/src/main/java/com/sa/zentao/controller/ZtBugController.java @@ -124,6 +124,12 @@ public class ZtBugController { return Result.success(bugService.bugListByTaskStory(dto)); } + //添加备注 + @RequestMapping(value = "/addRemark", method = RequestMethod.POST, produces = "application/json; charset=UTF-8") + public Result addRemark(@RequestBody ZtBugDTO dto){ + bugService.addRemark(dto); + return Result.success(); + } } diff --git a/src/main/java/com/sa/zentao/service/IZtBugService.java b/src/main/java/com/sa/zentao/service/IZtBugService.java index cfa21fb..d67fb21 100644 --- a/src/main/java/com/sa/zentao/service/IZtBugService.java +++ b/src/main/java/com/sa/zentao/service/IZtBugService.java @@ -62,4 +62,5 @@ public interface IZtBugService extends IService { List getDevBugList(List bugList); + void addRemark(ZtBugDTO dto); } diff --git a/src/main/java/com/sa/zentao/service/impl/IZtCountService.java b/src/main/java/com/sa/zentao/service/impl/IZtCountService.java index e6d62f7..38d3e77 100644 --- a/src/main/java/com/sa/zentao/service/impl/IZtCountService.java +++ b/src/main/java/com/sa/zentao/service/impl/IZtCountService.java @@ -2833,12 +2833,21 @@ public class IZtCountService { BigDecimal finishPunctuality =BigDecimal.ZERO; int kfzCount=0; List multipleUserList= getmultipleDepartProjectTeam(firstDayOfMonth,lastDayOfMonth); + //分配总工时 + List taskList = this.taskService.taskListByEIdsAndDate(firstDayOfMonth, lastDayOfMonth, pIds); + BigDecimal totalTime = floatBatchAdd(this.taskService.getNormalTaskList(taskList).stream().map(o -> o.getConsumed()).collect(Collectors.toList())); + for (PerformanceDTO performanceDTO : performanceDTOS) { ZtUser ztUser = userMap.get(performanceDTO.getAccount()); if (ztUser != null && ztUser.getUserType() == UserType.KFZ) { //如果多项目组 那么 分配任务工时占 总工时的% TODO if(multipleUserList.contains(ztUser.getAccount())){ - examineTime = examineTime.add(performanceDTO.getAllocationTime()); + examineTime = + examineTime.add( + (BigDecimalUtils.isZero(performanceDTO.getAllocationTime())||BigDecimalUtils.isZero(totalTime))?BigDecimal.ZERO: + (performanceDTO.getAllocationTime().divide(totalTime,2,BigDecimal.ROUND_HALF_UP)) + .multiply(performanceDTO.getExamineTime()) + ); }else{ examineTime = examineTime.add(performanceDTO.getExamineTime()); } diff --git a/src/main/java/com/sa/zentao/service/impl/ZtBugServiceImpl.java b/src/main/java/com/sa/zentao/service/impl/ZtBugServiceImpl.java index 6173bf3..26cf114 100644 --- a/src/main/java/com/sa/zentao/service/impl/ZtBugServiceImpl.java +++ b/src/main/java/com/sa/zentao/service/impl/ZtBugServiceImpl.java @@ -90,6 +90,9 @@ public class ZtBugServiceImpl extends ServiceImpl implements @Autowired private IZtBugBoundUserService bugBoundUserService; + @Autowired + private VxService vxService; + @Override public PageInfo bugPageList(ZtProjectQo qo) { @@ -604,6 +607,17 @@ public class ZtBugServiceImpl extends ServiceImpl implements return bugList.stream().filter(o->"dev".equals(o.getBugType())||"releaseBug".equals(o.getBugType())).collect(Collectors.toList()); } + @Override + public void addRemark(ZtBugDTO dto) { + ZtBug ztBug = this.baseMapper.selectById(dto.getId()); + if(ztBug==null){ + throw new BusinessException("未查询到数据"); + } + + actionService.addAction(ActionType.BUG, ActionStatus.TJBZ, dto.getId(), ztBug.getProduct()==null?null:ztBug.getProduct().toString(), ztBug.getProject(), ztBug.getExecution(), + RiskUserThreadLocal.get().getName(), dto.getRemark(), ""); + } + @Override @Transactional @@ -653,11 +667,12 @@ public class ZtBugServiceImpl extends ServiceImpl implements if(dto.getExecution()!=null&&dto.getExecution()!=0){ kanbanlaneService.addBug(dto.getExecution(), Arrays.asList(ztBug)); } - Integer tostory = ztBug.getTostory(); + if(ztBug.getFeedback()!=null&&ztBug.getFeedback()!=0){ + this.storyFeedbackService.feedbackStart(ztBug.getFeedback()); + } - - this.actionService.addAction(ActionType.BUG, ActionStatus.XJ,ztBug.getId(),ztBug.getProject()+"",ztBug.getProject(),ztBug.getExecution() + this.actionService.addAction(ActionType.BUG, ActionStatus.XJ,ztBug.getId(),ztBug.getProduct()+"",ztBug.getProject(),ztBug.getExecution() ,RiskUserThreadLocal.get().getName(),"","" ); @@ -817,7 +832,6 @@ public class ZtBugServiceImpl extends ServiceImpl implements kanbanlaneService.changeStatus(ztBug.getExecution(), ztBug.getId(), "bug", "fixed"); } if(ztBug.getFeedback()!=null&&ztBug.getFeedback()!=0){ - this.storyFeedbackService.feedbackStart(ztBug.getFeedback()); this.storyFeedbackService.feedbackFinished(ztBug.getFeedback(),null); } @@ -858,8 +872,7 @@ public class ZtBugServiceImpl extends ServiceImpl implements ); } - @Autowired - private VxService vxService; + private void bugSendMessage(Integer id, String oldUser, String newUser) { if (ObjectUtils.notEqual(oldUser, newUser) && !StringUtils.isEmpty(newUser)) { 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 623ecee..164d92f 100644 --- a/src/main/java/com/sa/zentao/service/impl/ZtProjectServiceImpl.java +++ b/src/main/java/com/sa/zentao/service/impl/ZtProjectServiceImpl.java @@ -1555,6 +1555,7 @@ public class ZtProjectServiceImpl extends ServiceImpl(); } List list = this.taskService.list(new QueryWrapper().lambda() + .select(SFunctionColums.taskColumes()) .notIn(ZtTask::getStatus,"cancel","closed","reviewing" ,"draft") .ge(ZtTask::getEstStarted, firstDayOfMonth) .le(ZtTask::getEstStarted, lastDayOfMonth).in(ZtTask::getAssignedTo,teams.stream().map(o->o.getAccount()).collect(Collectors.toList()))); diff --git a/src/main/java/com/sa/zentao/service/impl/ZtStoryFeedbackServiceImpl.java b/src/main/java/com/sa/zentao/service/impl/ZtStoryFeedbackServiceImpl.java index a3baef3..dd9445d 100644 --- a/src/main/java/com/sa/zentao/service/impl/ZtStoryFeedbackServiceImpl.java +++ b/src/main/java/com/sa/zentao/service/impl/ZtStoryFeedbackServiceImpl.java @@ -186,9 +186,9 @@ public class ZtStoryFeedbackServiceImpl extends ServiceImpl impl if (dto.getFeedback() != null && dto.getFeedback() != 0) { ZtStoryFeedback storyFeedback = this.storyFeedbackService.getById(dto.getFeedback()); - if (!storyFeedback.getStatus().equals("wait")) { + if (!Arrays.asList("wait","doing").contains(storyFeedback.getStatus())) { throw new BusinessException("问题反馈已被处理"); } + this.storyFeedbackService.feedbackStart(dto.getFeedback()); } if (dto.getUserStory() != null && dto.getUserStory() != 0) { ZtStoryUser storyUser = storyUserService.getById(dto.getUserStory()); 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 14d09fb..17aa703 100644 --- a/src/main/java/com/sa/zentao/service/impl/ZtTaskServiceImpl.java +++ b/src/main/java/com/sa/zentao/service/impl/ZtTaskServiceImpl.java @@ -539,9 +539,9 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme @Override @Transactional public void addTask(ZtTaskDTO dto) { - if(dto.getDeadline()==null||dto.getEstStarted()==null){ - throw new BusinessException("请录入开始结束日期"); - } +// if(dto.getDeadline()==null||dto.getEstStarted()==null){ +// throw new BusinessException("请录入开始结束日期"); +// } ZtTask ztTask = new ZtTask(); BeanUtils.copyProperties(dto, ztTask); ztTask.setOpenedby(RiskUserThreadLocal.get().getName()); @@ -621,7 +621,9 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme ztTask.setEstimate(ztTask.getUseTime().floatValue()); ztTask.setLeft(ztTask.getUseTime().floatValue()); } - + if(ztTask.getDeadline()==null){ + throw new BusinessException("当前环境异常请联系管理员"); + } this.baseMapper.insert(ztTask); if ("wait".equals(ztTask.getStatus())) { this.storyService.taskFinishChangeStatus(ztTask.getStory(), null, TaskType.transferType(ztTask.getType()), false); @@ -655,6 +657,11 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme if (ztTask.getStatus().equals("reviewing")) { taskSendPsMessage(ztTask.getId(), null, ztProject.getPm()); } + + if (ztTask.getFeedback() != null && ztTask.getFeedback() != 0) { + this.storyFeedbackService.feedbackStart(ztTask.getFeedback()); + } + taskSendZpMessage(ztTask.getId(), null, ztTask.getAssignedTo()); @@ -819,7 +826,6 @@ public class ZtTaskServiceImpl extends ServiceImpl impleme } else { this.storyFeedbackService.feedbackFinished(ztTask.getFeedback(),ztTask.getFeedbackRemark()); } - } if (dto.getConsumed() > 0) { ZtEffortDTO e = new ZtEffortDTO(); diff --git a/src/main/resources/mapper/ZtStoryFeedbackMapper.xml b/src/main/resources/mapper/ZtStoryFeedbackMapper.xml index 6d59641..71abd61 100644 --- a/src/main/resources/mapper/ZtStoryFeedbackMapper.xml +++ b/src/main/resources/mapper/ZtStoryFeedbackMapper.xml @@ -59,7 +59,7 @@ AND ys_flag=2 - AND and s.status = #{qo.status} and ys_flag in (null,0) + AND s.status = #{qo.status} and ys_flag in (null,0) and s.status = #{qo.status}