| | |
| | | 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; |
| | | } |
| | | |
| | | // 이슈 변경 내역을 추출한다. |
| | |
| | | this.detectIssuePeriod(issue, issueForm, description); |
| | | // 담당자 변경 정보를 기록한다. |
| | | this.detectIssueManager(issue, issueForm, description); |
| | | // 담당부서 변경 정보를 기록한다. |
| | | this.detectIssueDepartment(issue, issueForm, description); |
| | | |
| | | if (issueForm.getIsApi().equals(Issue.IS_API_NO)) { //api로 변경 시 담당부서 변경 불가 |
| | | // 담당부서 변경 정보를 기록한다. |
| | | this.detectIssueDepartment(issue, issueForm, description); |
| | | } |
| | | // 사용자 정의 필드 변경 정보를 기록한다. |
| | | this.detectCustomField(issue, issueForm, description); |
| | | |
| | |
| | | public void recordRemoveWorkflowToIssueStatus(String oldIssueStatusName, String newIssueStatusName, StringBuilder description) { |
| | | description.append("<ul class=\"activity-list\">"); |
| | | |
| | | String title = "<span translate=\"common.upddetectReservationIssueStatusateWorkflowNotExist\">변경된 워크플로우에서 상태가 존재하지 않아 이슈의 상태가 변경되었습니다.</span>"; |
| | | String title = "<span translate=\"common.updateWorkflowNotExist\">변경된 워크플로우에서 상태가 존재하지 않아 이슈의 상태가 변경되었습니다.</span>"; |
| | | // 이력 정보를 html 태그로 만들어 준다. |
| | | this.makeIssueHistoryHtml(description, title, oldIssueStatusName, newIssueStatusName); |
| | | |
| | |
| | | // 이슈 메일 전송 정보를 기록한다. |
| | | @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>"); |
| | | } |
| | | } |
| | |
| | | |
| | | // 업체 정보 변경 정보를 기록한다. |
| | | @Override |
| | | public void detectIssueCompany(IssueHistoryType type, Map<String, Object> param, IssueCompany issueCompany, StringBuilder description) { |
| | | Long id = MapUtil.getLong(param, "companyId"); |
| | | public void detectIssueCompany(IssueHistoryType type, Map<String, Object> param, CompanyField companyField, IssueCompany issueCompany, StringBuilder description) { |
| | | Long id = 0L; |
| | | if (param != null) { |
| | | id = MapUtil.getLong(param, "companyId"); |
| | | }else if(companyField != null) { |
| | | id = companyField.getId(); |
| | | } |
| | | Long companyFieldId = issueCompany.getCompanyField().getId(); |
| | | |
| | | if (type == IssueHistoryType.ADD) { //추가 할 경우 |
| | |
| | | |
| | | // ISP 정보 변경 정보를 기록한다. |
| | | @Override |
| | | public void detectIssueIsp(IssueHistoryType type, Map<String, Object> param, IssueIsp issueIsp, StringBuilder description) { |
| | | Long id = MapUtil.getLong(param, "companyId"); |
| | | public void detectIssueIsp(IssueHistoryType type, Map<String, Object> param, IspField ispField, IssueIsp issueIsp, StringBuilder description) { |
| | | Long id = 0L; |
| | | if (param != null) { |
| | | id = MapUtil.getLong(param, "companyId"); |
| | | } else if(ispField != null) { |
| | | id = ispField.getId(); |
| | | } |
| | | Long ispFieldId = issueIsp.getIspField().getId(); |
| | | |
| | | if (type == IssueHistoryType.ADD) { |
| | |
| | | |
| | | // 호스팅 정보 변경 정보를 기록한다. |
| | | @Override |
| | | public void detectIssueHosting(IssueHistoryType type, Map<String, Object> param, IssueHosting issueHosting, StringBuilder description) { |
| | | Long id = MapUtil.getLong(param, "companyId"); |
| | | public void detectIssueHosting(IssueHistoryType type, Map<String, Object> param, HostingField hostingField, IssueHosting issueHosting, StringBuilder description) { |
| | | Long id = 0L; |
| | | if (param != null) { |
| | | id = MapUtil.getLong(param, "companyId"); |
| | | }else if(hostingField != null) { |
| | | id = hostingField.getId(); |
| | | } |
| | | Long hostingFieldId = issueHosting.getHostingField().getId(); |
| | | |
| | | if (type == IssueHistoryType.ADD) { |
| | |
| | | // 이슈 위험 관리에 담당부서 변경 정보를 업데이트 한다. - 담당부서 변경 |
| | | this.issueRiskService.modifyIssueRisk(issue, false, true, null); |
| | | saveIssueRisk = true; |
| | | } |
| | | |
| | | // 담당부서 수는 같으나 담당부서가 달라졌을 경우 |
| | | if (issue.getIssueDepartments().size() > 0 && issueForm.getDepartmentIds().size() > 0) { |
| | | }else if (issue.getIssueDepartments().size() > 0 && issueForm.getDepartmentIds().size() > 0) {// 담당부서 수는 같으나 담당부서가 달라졌을 경우 |
| | | // 이전 담당자 표시 |
| | | for (IssueDepartment issueDepartment : issue.getIssueDepartments()) { |
| | | boolean change = true; |