| | |
| | | import kr.wisestone.owl.constant.Constants; |
| | | import kr.wisestone.owl.constant.ElasticSearchConstants; |
| | | import kr.wisestone.owl.constant.MsgConstants; |
| | | import kr.wisestone.owl.data.CheckIssueData; |
| | | import kr.wisestone.owl.domain.*; |
| | | import kr.wisestone.owl.domain.enumType.CustomFieldType; |
| | | import kr.wisestone.owl.domain.enumType.IssueHistoryType; |
| | |
| | | import kr.wisestone.owl.vo.IssueHistoryVo; |
| | | import kr.wisestone.owl.vo.IssueVo; |
| | | import kr.wisestone.owl.web.condition.IssueHistoryCondition; |
| | | import kr.wisestone.owl.web.form.EmailTemplateForm; |
| | | import kr.wisestone.owl.web.form.IssueForm; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.slf4j.Logger; |
| | |
| | | // 이슈 아이디에 해당하는 기록 정보를 가져온다. |
| | | @Override |
| | | @Transactional(readOnly = true) |
| | | public List<IssueHistoryVo> findIssueHistory(Long issueId) { |
| | | return this.issueHistoryRepository.findByIssueId(issueId); |
| | | public List<IssueHistoryVo> findIssueHistory(Issue issue) { |
| | | List<IssueHistoryVo> issueHistoryVos = this.issueHistoryRepository.findByIssueId(issue.getId()); |
| | | if (issueHistoryVos != null && issueHistoryVos.size() > 0) { |
| | | for (IssueHistoryVo issueHistoryVo : issueHistoryVos) { |
| | | issueHistoryVo.setTitle(issue.getTitle()); |
| | | } |
| | | } |
| | | return issueHistoryVos; |
| | | } |
| | | |
| | | // 이슈 변경 내역을 추출한다. |
| | | @Override |
| | | public StringBuilder detectIssueChange(Issue issue, IssueForm issueForm, Project project, IssueStatus issueStatus, IssueType issueType, Priority priority, Severity severity, List<MultipartFile> files) { |
| | | public StringBuilder detectIssueChange(IssueForm issueForm, CheckIssueData data, List<MultipartFile> files) { |
| | | return this.detectIssueChange(data.getIssue(), issueForm, data.getProject(), data.getOldIssueStatus(), data.getNewIssueStatus(), data.getIssueType(), data.getPriority(), data.getSeverity(), files); |
| | | } |
| | | |
| | | // 이슈 변경 내역을 추출한다. |
| | | @Override |
| | | public StringBuilder detectIssueChange(Issue issue, IssueForm issueForm, Project project, IssueStatus oldIssueStatus, IssueStatus issueStatus, IssueType issueType, Priority priority, Severity severity, List<MultipartFile> files) { |
| | | StringBuilder description = new StringBuilder(); |
| | | |
| | | // 이슈 프로젝트 변경 정보를 기록한다. |
| | |
| | | // 이슈 우선순위 변경 정보를 기록한다. |
| | | this.detectIssuePriority(issue, issueForm, description, priority); |
| | | // 이슈 상태 변경 정보를 기록한다. |
| | | this.detectIssueStatus(issue, issueForm, description, issueStatus); |
| | | this.detectIssueStatus(issue, issueForm, description, oldIssueStatus, issueStatus); |
| | | // 이슈 타입 변경 정보를 기록한다. |
| | | this.detectIssueType(issue, issueForm, description, issueType); |
| | | // 이슈에 첨부된 파일에 대해 변경 정보를 기록한다. |
| | |
| | | |
| | | // 이슈 상태 변경 정보를 기록한다. |
| | | @Override |
| | | public void detectIssueStatus(Issue issue, IssueForm issueForm, StringBuilder description, IssueStatus issueStatus) { |
| | | if (!issue.getIssueStatus().getId().equals(issueForm.getIssueStatusId())) { |
| | | @Transactional |
| | | public void detectIssueStatus(Issue issue, IssueForm issueForm, StringBuilder description, IssueStatus oldIssueStatus, IssueStatus issueStatus) { |
| | | if (!oldIssueStatus.getId().equals(issueForm.getIssueStatusId())) { |
| | | String title = "<span translate=\"common.updateHasStatus\">상태가 변경되었습니다.</span>"; |
| | | // 이력 정보를 html 태그로 만들어 준다. |
| | | this.makeIssueHistoryHtml(description, title, issue.getIssueStatus().getName(), issueStatus.getName()); |
| | | this.makeIssueHistoryHtml(description, title, oldIssueStatus.getName(), issueStatus.getName()); |
| | | |
| | | // 이슈 위험 관리에 상태 변경 정보를 업데이트한다. - 담당자 변경 |
| | | this.issueRiskService.modifyIssueRisk(issue, true, false, issueForm.getIssueStatusId()); |
| | |
| | | // 이슈 메일 전송 정보를 기록한다. |
| | | @Override |
| | | public void detectSendIssueMail(IssueHistoryType type, IssueForm issueForm, StringBuilder description) { |
| | | this.detectSendIssueMail(type, issueForm.getSendEmails(), description); |
| | | } |
| | | |
| | | // 이슈 메일 전송 정보를 기록한다. |
| | | @Override |
| | | public void detectSendIssueMail(IssueHistoryType type, List<String> sendMails, StringBuilder description) { |
| | | if (type == IssueHistoryType.SEND) { |
| | | description.append("<span translate=\"issue.sendIssueMailHistory\">이슈 메일 전송을 완료했습니다. </span>"); |
| | | if(issueForm.getSendEmails() != null && issueForm.getSendEmails().size() > 0){ |
| | | for (String sendEmail : issueForm.getSendEmails()){ |
| | | if(sendMails != null && sendMails.size() > 0){ |
| | | for (String sendEmail : sendMails){ |
| | | description.append("<span class=\"text-primary bold\"> > " + CommonUtil.decryptAES128(sendEmail) + "</span>"); |
| | | } |
| | | } |