| | |
| | | } |
| | | |
| | | |
| | | // 하위 이슈가 모두 종료 처리 되었을 경우 상위이슈도 완료 처리 |
| | | private void setParentIssueComplete(Issue parentIssue) { |
| | | if (parentIssue != null) { |
| | | this.issueMapper.findNotCompleteByParentIssueId(parentIssue.getId()); |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | // 이슈를 수정한다(api용) |
| | | @Override |
| | | @Transactional |
| | |
| | | User user = this.convertToUser(issueApiForm.getToken()); |
| | | IssueForm issueForm = this.convertToIssueForm(issueApiForm, user); |
| | | |
| | | |
| | | List<IssueVo> issueVos = this.findIssue(issueApiForm); |
| | | if (issueVos != null && issueVos.size() > 0) { |
| | | List<Issue> issue = Lists.newArrayList(); |
| | | for (IssueVo issueVo : issueVos) { |
| | | IssueVo parentIssueVo = issueVo.getParentIssueVo(); |
| | | if (parentIssueVo != null) { |
| | | issueForm.setId(parentIssueVo.getId()); |
| | | } else { |
| | | issueForm.setId(issueVo.getId()); |
| | | issueForm.setId(issueVo.getId()); |
| | | |
| | | // 자동 종료 상태 설정이 되어 있지 않으면 오류발생 |
| | | Issue modifyIssue = this.modifyIssueForApi(user, issueForm, files); |
| | | Issue parentIssue = modifyIssue.getParentIssue(); |
| | | IssueType issueType = modifyIssue.getIssueType(); |
| | | IssueStatus issueStatus = issueType.getIssueStatus(); |
| | | if (issueStatus == null) { |
| | | throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_COMPLETE_ISSUE_STATUS_NOT_EXIST)); |
| | | } |
| | | issue.add(this.modifyIssueForApi(user, issueForm, files)); |
| | | |
| | | if (parentIssue != null) { |
| | | List<Map<String, Object>> results = this.issueMapper.findNotCompleteByParentIssueId(parentIssue.getId()); |
| | | // 하위 일감이 모두 종료 상태일때 상위 일감도 종료 처리 |
| | | if (results == null || results.size() == 0) { |
| | | parentIssue.setIssueStatus(issueType.getIssueStatus()); |
| | | } |
| | | } |
| | | |
| | | issue.add(modifyIssue); |
| | | } |
| | | return issue; |
| | | } else { |