From d6a98aa57654a50c59e166bcf0ba659fcc9f270f Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 수, 19 1월 2022 17:09:50 +0900
Subject: [PATCH] 하위 이슈 직접 검색 후 하위이슈 상세화면 이동후에 상위 이슈 이동 안되는 문제 해결

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java |   48 +++++++++++++++++++++++++++---------------------
 1 files changed, 27 insertions(+), 21 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
index 54e58cf..ce55b1b 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -486,6 +486,8 @@
     @Override
     @Transactional
     public Issue addIssue(User user, IssueForm issueForm, List<MultipartFile> multipartFiles) {
+        StringBuilder detectIssueChange = new StringBuilder();
+
         //  �궗�슜�븯怨� �엳�뒗 �뾽臾� 怨듦컙�씠 �솢�꽦 �긽�깭�씤吏� �솗�씤�븳�떎. �궗�슜 怨듦컙�뿉�꽌 濡쒓렇�씤�븳 �궗�슜�옄媛� 鍮꾪솢�꽦�씤吏� �솗�씤�븳�떎.
         Workspace workspace = this.workspaceService.checkUseWorkspace(user, user.getLastWorkspaceId());
         //  �봽濡쒖젥�듃 �쑀�슚�꽦 泥댄겕
@@ -528,11 +530,11 @@
         //  �떞�떦遺��꽌 吏��젙
         this.issueDepartmentService.modifyIssueDepartment(issue, user, project.getWorkspace(), issueForm.getDepartmentIds());
         //  �뾽泥� �젙蹂� ���옣
-        this.issueCompanyService.modifyIssueCompanyField(issue, issueForm);
+        this.issueCompanyService.modifyIssueCompanyField(issue, issueForm, detectIssueChange);
         //  ISP �젙蹂� ���옣
-        this.issueIspService.modifyIssueIspField(issue, issueForm);
+        this.issueIspService.modifyIssueIspField(issue, issueForm, detectIssueChange);
         //  HOSTING �젙蹂� ���옣
-        this.issueHostingService.modifyIssueHostingField(issue, issueForm);
+        this.issueHostingService.modifyIssueHostingField(issue, issueForm, detectIssueChange);
 
         //  泥⑤� �뙆�씪 ���옣
         //  multipartFile �쓣 file Map List 媛앹껜濡� 蹂�寃쏀븳�떎.
@@ -579,6 +581,8 @@
     @Override
     @Transactional
     public Issue addDownIssue(User user, IssueForm issueForm, List<MultipartFile> multipartFiles) {
+        StringBuilder detectIssueChange = new StringBuilder();
+
         //  �궗�슜�븯怨� �엳�뒗 �뾽臾� 怨듦컙�씠 �솢�꽦 �긽�깭�씤吏� �솗�씤�븳�떎. �궗�슜 怨듦컙�뿉�꽌 濡쒓렇�씤�븳 �궗�슜�옄媛� 鍮꾪솢�꽦�씤吏� �솗�씤�븳�떎.
         Workspace workspace = this.workspaceService.checkUseWorkspace(user, user.getLastWorkspaceId());
         //  �봽濡쒖젥�듃 �쑀�슚�꽦 泥댄겕
@@ -621,11 +625,11 @@
         //  �떞�떦遺��꽌 吏��젙
         this.issueDepartmentService.modifyIssueDepartment(issue, user, project.getWorkspace(), issueForm.getDepartmentIds());
         //  �뾽泥� �젙蹂� ���옣
-        this.issueCompanyService.modifyIssueCompanyField(issue, issueForm);
+        this.issueCompanyService.modifyIssueCompanyField(issue, issueForm, detectIssueChange);
         //  ISP �젙蹂� ���옣
-        this.issueIspService.modifyIssueIspField(issue, issueForm);
+        this.issueIspService.modifyIssueIspField(issue, issueForm, detectIssueChange);
         //  HOSTING �젙蹂� ���옣
-        this.issueHostingService.modifyIssueHostingField(issue, issueForm);
+        this.issueHostingService.modifyIssueHostingField(issue, issueForm, detectIssueChange);
 
         //  泥⑤� �뙆�씪 ���옣
         //  multipartFile �쓣 file Map List 媛앹껜濡� 蹂�寃쏀븳�떎.
@@ -656,6 +660,7 @@
     @Override
     @Transactional
     public Issue addRelIssue(User user, IssueForm issueForm, List<MultipartFile> multipartFiles) {
+        StringBuilder detectIssueChange = new StringBuilder();
         //  �궗�슜�븯怨� �엳�뒗 �뾽臾� 怨듦컙�씠 �솢�꽦 �긽�깭�씤吏� �솗�씤�븳�떎. �궗�슜 怨듦컙�뿉�꽌 濡쒓렇�씤�븳 �궗�슜�옄媛� 鍮꾪솢�꽦�씤吏� �솗�씤�븳�떎.
         Workspace workspace = this.workspaceService.checkUseWorkspace(user, user.getLastWorkspaceId());
         //  �봽濡쒖젥�듃 �쑀�슚�꽦 泥댄겕
@@ -698,11 +703,11 @@
         //  �떞�떦遺��꽌 吏��젙
         this.issueDepartmentService.modifyIssueDepartment(issue, user, project.getWorkspace(), issueForm.getDepartmentIds());
         //  �뾽泥� �젙蹂� ���옣
-        this.issueCompanyService.modifyIssueCompanyField(issue, issueForm);
+        this.issueCompanyService.modifyIssueCompanyField(issue, issueForm, detectIssueChange);
         //  ISP �젙蹂� ���옣
-        this.issueIspService.modifyIssueIspField(issue, issueForm);
+        this.issueIspService.modifyIssueIspField(issue, issueForm, detectIssueChange);
         //  HOSTING �젙蹂� ���옣
-        this.issueHostingService.modifyIssueHostingField(issue, issueForm);
+        this.issueHostingService.modifyIssueHostingField(issue, issueForm, detectIssueChange);
 
         //  泥⑤� �뙆�씪 ���옣
         //  multipartFile �쓣 file Map List 媛앹껜濡� 蹂�寃쏀븳�떎.
@@ -1608,6 +1613,11 @@
     @Override
     @Transactional(readOnly = true)
     public void setIssueDetail(IssueVo issueVo, Issue issue, User user) {
+        //  �씠�뒋 �닔�젙 沅뚰븳�쓣 媛뽮퀬 �엳�뒗吏� �솗�씤
+        if (this.checkHasPermission(issueVo, issueVo.getUserVos(), user, issueVo.getDepartmentVos())) {
+            issueVo.setModifyPermissionCheck(Boolean.TRUE);
+        }
+
         issueVo.setProjectVo(ConvertUtil.copyProperties(issue.getProject(), ProjectVo.class));
         issueVo.setIssueTypeVo(ConvertUtil.copyProperties(issue.getIssueType(), IssueTypeVo.class));
         IssueStatusVo issueStatusVo = ConvertUtil.copyProperties(issue.getIssueStatus(), IssueStatusVo.class, "issueStatusType");
@@ -1643,11 +1653,6 @@
         this.setIssueIspField(issue, issueVo);  //ISP �젙蹂� �꽭�똿
         this.setIssueHostingField(issue, issueVo);  //HOSTING �젙蹂� �꽭�똿
         this.setParentIssue(issue,issueVo); //�긽�쐞 �씠�뒋 �젙蹂� �꽭�똿
-
-        //  �씠�뒋 �닔�젙 沅뚰븳�쓣 媛뽮퀬 �엳�뒗吏� �솗�씤
-        if (this.checkHasPermission(issueVo, issueVo.getUserVos(), user, issueVo.getDepartmentVos())) {
-            issueVo.setModifyPermissionCheck(Boolean.TRUE);
-        }
     }
 
     //  �긽�쐞�씪媛� �젙蹂� 異붽�
@@ -2087,20 +2092,21 @@
         this.checkNotHaveIssueIdAttachedFile(issue, issueForm);
         //  �궗�슜�옄 �젙�쓽 �븘�뱶 ���옣
         this.issueCustomFieldValueService.modifyIssueCustomFieldValue(issue, issueForm.getIssueCustomFields());
-        //  �씠�뒋 �씠�젰 �벑濡�
-        if (!StringUtils.isEmpty(detectIssueChange.toString())) {
-            this.issueHistoryService.addIssueHistory(issue, user, IssueHistoryType.MODIFY, detectIssueChange.toString());
-        }
         //  �궗�슜�옄 �떆�뒪�뀥 湲곕뒫 �궗�슜 �젙蹂� �닔吏�
         UserVo userVo = ConvertUtil.copyProperties(user, UserVo.class);
         log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(userVo, ElasticSearchConstants.ISSUE_MODIFY));
 
         //  �뾽泥� �젙蹂� ���옣
-        this.issueCompanyService.modifyIssueCompanyField(issue, issueForm);
+        this.issueCompanyService.modifyIssueCompanyField(issue, issueForm, detectIssueChange);
         //  ISP �젙蹂� ���옣
-        this.issueIspService.modifyIssueIspField(issue, issueForm);
+        this.issueIspService.modifyIssueIspField(issue, issueForm, detectIssueChange);
         //  HOSTING �젙蹂� ���옣
-        this.issueHostingService.modifyIssueHostingField(issue, issueForm);
+        this.issueHostingService.modifyIssueHostingField(issue, issueForm, detectIssueChange);
+
+        //  �씠�뒋 �씠�젰 �벑濡�
+        if (!StringUtils.isEmpty(detectIssueChange.toString())) {
+            this.issueHistoryService.addIssueHistory(issue, user, IssueHistoryType.MODIFY, detectIssueChange.toString());
+        }
 
         return issue;
     }

--
Gitblit v1.8.0