From 34351d822ce35efe2488004e586beeb074fbe5ae Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 화, 04 1월 2022 13:25:28 +0900
Subject: [PATCH] - API 수정 명령시 댓글 추가 가능(comment) - API 이슈 입력시 상위 이슈에 같은 도메인 업체 등록되도록 수정

---
 src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java |   82 ++++++++++++++++++++++++++++++----------
 1 files changed, 61 insertions(+), 21 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 d0624c9..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;
@@ -310,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();
 
         //  �씠�뒋 �봽濡쒖젥�듃 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎.
@@ -326,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);
         //  �씠�뒋�뿉 泥⑤��맂 �뙆�씪�뿉 ���빐 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎.
@@ -335,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);
 
@@ -407,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());
@@ -435,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);
 
@@ -521,16 +539,31 @@
     // �씠�뒋 硫붿씪 �쟾�넚 �젙蹂대�� 湲곕줉�븳�떎.
     @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>");
-            description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + CommonUtil.decryptAES128(issueForm.getSendEmails().toString()) + "</span>");
+            if(sendMails != null && sendMails.size() > 0){
+                for (String sendEmail : sendMails){
+                    description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + 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) { //異붽� �븷 寃쎌슦
@@ -565,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) {
@@ -601,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) {
@@ -719,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