From ce82939b2d2ef793e446f464314c6e570c7ebad5 Mon Sep 17 00:00:00 2001 From: jhjang <jhjang@maprex.co.kr> Date: 수, 05 1월 2022 10:48:42 +0900 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java | 111 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 91 insertions(+), 20 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java index 375f32b..1e2a2b3 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java @@ -4,6 +4,7 @@ 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; @@ -15,6 +16,7 @@ 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; @@ -145,6 +147,28 @@ description.append(CommonUtil.decryptAES128(user.getAccount())); description.append(")"); description.append("</span></h6>"); + break; + + case SEND: + description.append("<h6 class=\"creat\"><span class=\"dot\"></span><span translate=\"common.sendMailIssue\">�씠�뒋 硫붿씪 �쟾�넚</span>"); + description.append("<span class=\"activity-timestamp\">"); + description.append(DateUtil.convertDateToStr(new Date())); + description.append(" ("); + + if (user != null) { + description.append(user.getName()); + description.append(" - "); + description.append(CommonUtil.decryptAES128(user.getAccount())); + } + else { + description.append("OWL-ITS-SYSTEM"); + description.append(" - "); + description.append(this.systemEmail); + } + + description.append(")"); + description.append("</span></h6>"); + description.append(issueChangeDescription); break; } @@ -288,13 +312,25 @@ // �씠�뒋 �븘�씠�뵒�뿉 �빐�떦�븯�뒗 湲곕줉 �젙蹂대�� 媛��졇�삩�떎. @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(); // �씠�뒋 �봽濡쒖젥�듃 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎. @@ -304,7 +340,7 @@ // �씠�뒋 �슦�꽑�닚�쐞 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎. 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); // �씠�뒋�뿉 泥⑤��맂 �뙆�씪�뿉 ���빐 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎. @@ -313,8 +349,11 @@ 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); @@ -385,11 +424,12 @@ // �씠�뒋 �긽�깭 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎. @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()); @@ -413,7 +453,7 @@ 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); @@ -496,10 +536,34 @@ } } + // �씠�뒋 硫붿씪 �쟾�넚 �젙蹂대�� 湲곕줉�븳�떎. + @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(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) { //異붽� �븷 寃쎌슦 @@ -534,8 +598,13 @@ // 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) { @@ -570,8 +639,13 @@ // �샇�뒪�똿 �젙蹂� 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎. @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) { @@ -688,10 +762,7 @@ // �씠�뒋 �쐞�뿕 愿�由ъ뿉 �떞�떦遺��꽌 蹂�寃� �젙蹂대�� �뾽�뜲�씠�듃 �븳�떎. - �떞�떦遺��꽌 蹂�寃� 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; -- Gitblit v1.8.0